Diseno Ascensor

23
Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus 1 DISEÑO DEL SISTEMA DIGITAL “ASCENSOR” 1. Especificaciones preliminares de diseño Se debe diseñar un sistema digital que controle el funcionamiento de un ascensor que transporta libros, con el fin de mejorar el desempeño de las actividades de una biblioteca. El bibliotecario debe colocar los libros en el ascensor, programar los pisos en los cuales el ascensor debe detenerse, y dar inicio a la secuencia. Si se requiere que el ascensor retorne al primer piso, el usuario puede hacer la petición mediante un botón de alarma. El usuario debe saber el estado del ascensor (subiendo, bajando, detenido, alarma) y el piso en el que se encuentra. Las especificaciones del diseño son: - El ascensor debe atender en 5 pisos. - La selección de los 5 pisos se debe hacer por medio de un dipswitch. Se representa por 5 bits, donde cada bit indica un piso determinado. La señal de salida del dipswitch se llama PISOS y es activa en alto. - Después de la selección de los pisos, una señal de entrada INICIO se encarga de hacer que el ascensor comience a operar. La señal INICIO es activa en alto. - El piso en el cual se encuentra el ascensor, debe ser mostrado en un display de 7 segmentos. - El display debe encenderse y apagarse cuando el ascensor se detenga en uno de los pisos programados. - Una señal de entrada debe ser ALARMA, la cual en el momento de activarse, debe encender una chicharra, y sin importar en el piso que se encuentra el ascensor, éste debe regresar al 1 o piso. Ejemplo: si el ascensor se encuentra en el 4º piso y la alarma es activada, el ascensor debe pasar por el 3º, por el 2º y llegar al 1 o . - Por medio de 2 LEDS se debe mostrar el estado en el cual se encuentra el ascensor, de la siguiente manera: 0 0 Está en alarma 1 0 Está subiendo 01 Está bajando 1 1 Está detenido 1.1 Funcionamiento del sistema Al encenderse el sistema, el ascensor debe estar en el 1 o piso. Luego el usuario programa los pisos en los cuales el ascensor se detendrá. El ascensor se detendrá en cada uno de los pisos programados en orden ascendente. A continuación, se debe activar una señal INICIO, para que el ascensor comience a operar. Un display 7 segmentos debe comenzar a mostrar la secuencia de pisos determinada por el usuario. Cuando el ascensor se detiene en un piso, el número del piso indicado debe encenderse y apagarse por un periodo de tiempo razonable que permita el uso del sistema. Luego de cumplida la secuencia, el ascensor debe retornar en orden descendente, hasta llegar al 1º. Sólo debe detenerse en los pisos en la secuencia ascendente.

Transcript of Diseno Ascensor

Page 1: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

1

DISEÑO DEL SISTEMA DIGITAL “ASCENSOR” 1. Especificaciones preliminares de diseño Se debe diseñar un sistema digital que controle el funcionamiento de un ascensor que transporta libros, con el fin de mejorar el desempeño de las actividades de una biblioteca. El bibliotecario debe colocar los libros en el ascensor, programar los pisos en los cuales el ascensor debe detenerse, y dar inicio a la secuencia. Si se requiere que el ascensor retorne al primer piso, el usuario puede hacer la petición mediante un botón de alarma. El usuario debe saber el estado del ascensor (subiendo, bajando, detenido, alarma) y el piso en el que se encuentra. Las especificaciones del diseño son: - El ascensor debe atender en 5 pisos.

- La selección de los 5 pisos se debe hacer por medio de un dipswitch. Se representa por 5 bits, donde cada bit indica un piso determinado. La señal de salida del dipswitch se llama PISOS y es activa en alto.

- Después de la selección de los pisos, una señal de entrada INICIO se encarga de hacer que el ascensor comience a operar. La señal INICIO es activa en alto.

- El piso en el cual se encuentra el ascensor, debe ser mostrado en un display de 7 segmentos.

- El display debe encenderse y apagarse cuando el ascensor se detenga en uno de los pisos programados.

- Una señal de entrada debe ser ALARMA, la cual en el momento de activarse, debe encender una chicharra, y sin importar en el piso que se encuentra el ascensor, éste debe regresar al 1o piso. Ejemplo: si el ascensor se encuentra en el 4º piso y la alarma es activada, el ascensor debe pasar por el 3º, por el 2º y llegar al 1o.

- Por medio de 2 LEDS se debe mostrar el estado en el cual se encuentra el ascensor, de la siguiente manera:

0 0 Está en alarma

1 0 Está subiendo

01 Está bajando

1 1 Está detenido 1.1 Funcionamiento del sistema Al encenderse el sistema, el ascensor debe estar en el 1o piso. Luego el usuario programa los pisos en los cuales el ascensor se detendrá. El ascensor se detendrá en cada uno de los pisos programados en orden ascendente. A continuación, se debe activar una señal INICIO, para que el ascensor comience a operar. Un display 7 segmentos debe comenzar a mostrar la secuencia de pisos determinada por el usuario. Cuando el ascensor se detiene en un piso, el número del piso indicado debe encenderse y apagarse por un periodo de tiempo razonable que permita el uso del sistema. Luego de cumplida la secuencia, el ascensor debe retornar en orden descendente, hasta llegar al 1º. Sólo debe detenerse en los pisos en la secuencia ascendente.

Page 2: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

2

1.2 Describir entradas, salidas y sus características PISOS(5): Entrada de cinco posiciones, representadas cada una por un bit activado mediante un dipswitch. Esta entrada es manipulada por el usuario, e indica los pisos en los cuales debe detenerse el ascensor. Es una señal activa en alto. INICIO(1): Entrada de un bit que indica cuándo el ascensor debe comenzar su secuencia. El usuario la manipula, y es una señal activa en alto. DISPLAY(7): Salida que muestra el piso en el cual se encuentra el ascensor. Activa en alto. CLK: Reloj del sistema; se utiliza el borde de subida para actualizar los datos. Dependiendo del dispositivo FPGA se elije el período del reloj. Para este diseño se utilizará un reloj de un período de 125 ns (8 MHz). LED(2): Salida que muestra mediante 2 LEDS el estado del ascensor así: 00-Alarma 01-Bajando 10-Subiendo 11-Quieto ALARMA(1): Entrada de un bit mediante la cual el usuario indica al ascensor que debe suspender su secuencia y descender hasta el primer piso. Activa en alto. CHICHARRA (1): Salida que se activa en alto cuando se selecciona la señal ALARMA, y se mantiene así hasta que el ascensor llega al primer piso. 2. Diagramas generales 2.1 Diagrama de bloques del sistema

Page 3: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

3

2.2 Descripción del funcionamiento de cada bloque El sistema ha sido concebido de tal forma que los estados estén directamente relacionados a los pisos que recorre el ascensor. BLOQUE_ REG_ENTRADA: Este bloque representa un registro de 5 bits, el cual almacena los pisos que el usuario puede seleccionar, con el fin de poderlos manipular y generar la lógica de dirección del ascensor. En el momento en que el ascensor visite uno de los pisos programados, su registro correspondiente se desactivará; y de esta forma cuando el ascensor haya visitado todos los pisos programados, todos los bits de BLOQUE_ REG_ENTRADA se desactivarán. La salida de este bloque es reg_entrada(5). BLOQUE_ DIR: La señal reg_entrada(5) es la entrada a BLOQUE_DIR. Allí se debe realizar la lógica para encontrar la dirección del ascensor, teniendo en cuenta el estado de los bits de la señal reg_entrada, la señal ALARMA y CHICHARRA. La salida de este bloque es direccion(1). BLOQUE_ DETENERSE: Determina si el ascensor debe detenerse o no dependiendo de los pisos programados, y el piso en el cual se encuentra el ascensor. En caso de que el bit correspondiente en la señal PISOS(5) al piso actual del ascensor esté activo, la señal de salida detenerse(1) se activa en alto. El piso actual del ascensor se obtiene mediante el estado del sistema.

Page 4: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

4

CONTROL: La salida que presenta este bloque es estado, obtenida a partir de la señal INICIO(1), dirección (1), detenerse(1) y contador(1) (señales de control). BLOQUE_ DISPLAY: Este bloque se encarga de mostrar el piso en el cual se encuentra el ascensor mediante un display 7 segmentos. El piso actual del ascensor se obtiene mediante el estado del sistema. Por lo tanto, este bloque depende de la señal estado. BLOQUE_ LED: Las señales estado, CHICHARRA (1) y dirección (1), determinan la salida LED(2). Los posibles valores son 00 cuando esta en alarma, 10 cuando esta subiendo, 01 cuando esta bajando y 11 cuando se encuentra detenido, las cuales son representadas por medio de la activación en alto de los leds. BLOQUE_CHICHARRA: Este bloque funciona con un registro el cual mantiene la salida CHICHARRA en alto mientras la alarma esta activada; es necesario tener en cuenta que en el primer piso la chicharra está desactivada, por esta razón es necesario incluir la señal estado que representa los pisos que recorre el ascensor. También depende de ALARMA(1) y CLK. BLOQUE_CONTADOR: El reloj del sistema tiene un período de tiempo muy corto, razón por la cual es necesario incluir un contador que controle el cambio de estado para que el ascensor se detenga en los pisos durante un tiempo razonable y sea posible hacer uso de él. Para que el sistema permanezca en cada estado durante 2 segundos, el contador debe contar 16 000 000 pulsos de reloj y luego debe activar una señal (contador) que autorice el cambio de estado. Después del cambio de estado, debe iniciar el conteo nuevamente. Señales intermedias reg_entrada(5): Señal de 5 bits que representa los pisos del ascensor programados en el dipswitch. Contiene la información de BLOQUE_REG_ENTRADA. dirección (1): Señal que indica el sentido en que viaja el ascensor. Una vez que reg_entrada(5) pasa por el BLOQUE_DIR, éste realiza una lógica encargada de proporcionar la dirección del ascensor, por tal razón esta señal es de 1 bit, donde 0 indica que el ascensor se moverá hacia arriba y 1 hacia abajo. detenerse(1): Señal que indica si el ascensor debe detenerse o no en el piso que visita, se utiliza como señal de control. Su valor es 1 si debe detenerse, 0 si no debe detenerse. estado: Señal que representa el estado del sistema, y está relacionada con los pisos que visita el ascensor. contador(1): Señal activa en alto que indica la finalización del conteo necesario para cambiar de estado.

Page 5: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

5

2.3 Diagrama de tiempos

Page 6: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

6

3. Descripción AHPL

Page 7: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

7

Page 8: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

8

Page 9: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

9

4. Esquemáticos preliminares Bloque Chicharra

Bloque Detener

Bloque Dir

Page 10: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

10

Bloque Display

Bloque Led

Page 11: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

11

Bloque Reg_entrada

Control

Page 12: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

12

Page 13: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

13

Page 14: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

14

5. Descripción VHDL (Proyecto en Quartus) 6. Jerarquía definitiva

Page 15: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

15

7. Análisis de recursos del dispositivo programable:

El dispositivo programable elegido es la familia ACEX 1K. Se utilizó un total de 111 elementos logicos, 19 pines, 0 bits de memoria y 0 PLL. En general se utilizó un 4 % de los elementos logicos que posee el dispositivo, y 19% de los pines. Esta información nos indica que el dispositivo logico elegido posee capacidad más que suficiente para soportar el diseño, incluso se está desaprovechando gran parte él. 8. Análisis de tiempos a partir de los reportes entregados por la herramienta QUARTUS II.

En el reporte se observan los peores tiempos obtenidos para los siguientes casos: Set up time: 11.7 ns Clock to output time: 20 ns Input to output time: 14.7 ns Hold time: 0.36 ns

Page 16: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

16

Debido al periodo de reloj escogido en el diseño (125 ns) se puede concluir que los tiempos descritos no afectan el desempeño del sistema. Los retardos en cualquiera de los casos no se superponen con el siguiente pulso de reloj. 9. Protocolo de pruebas para simulación Para este diseño se ha realizado el siguiente protocolo de pruebas: Operación normal: Se configuran entradas de pisos aleatorias, se oprime RESET y luego INICIO. Operación en estado de alarma: Se configuran entradas en operación normal y en algún momento aleatorio se oprime ALARMA. Operación con INICIO o RESET: Se configura una operación normal y en cualquier momento se oprime INICIO y en condiciones similares se oprime RESET. Operación sin entradas: Se configuran todas las entradas de piso en bajo y se oprime INICIO. 10. Simulación en la herramienta QUARTUS II (Proyecto en Quartus) 11. Análisis de glitches y metaestabilidad Los tiempos mas cortos son los periodos de reloj, ninguna entrada ha sido configurada con un tiempo mas corto ya que solo hay 2 tipos de entrada: las entradas constantes (pisos) y las entradas temporales (inicio y alarma). Las constantes se mantienen durante todo el trayecto de ascensor, las temporales son ejecutadas por el usuario, y se ha previsto con el periodo de reloj, que ninguna de estas entradas puede tener un tiempo en alto mas grande que el reloj. Adicionalmente los estados del sistema deben contar hasta 5 pulsos para poder cambiar, así que durante la simulación no hay señales mas cortas que el mismo reloj. Para evitar la metaestabilidad, es necesario que un circuito biestable sea configurado antes de las entradas de usuario (inicio y alarma), de esta forma se puede asegurar en gran medida que el sistema tome valores lógicos validos. 12. Especificaciones del diseño finales Para el sistema diseñado se tuvo en cuenta un cambio muy importante en la simulación. En el uso real del sistema, el tiempo de estado determinado fue de 2 segundos que corresponde a 16 000 000 pulsos de reloj que debe contar BLOQUE_CONTADOR antes de cambiar de estado. Sin embargo Quartus demora la simulación demasiado tiempo con este valor de conteo, lo cual no es óptimo en un proceso de diseño ya que cada vez que se requiera simular, se debe esperar un tiempo considerable. Así es que para efectos de simulación se configura un conteo de 5 pulsos solamente. Una especificación de funcionamiento a considerar es que el botón RESET, solamente debe utilizarse en el momento en que se enciende el sistema, para llevarlo a un estado conocido. Como esta señal es la que tiene mayor jerarquía entre las señales de control,

Page 17: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

17

puede activarse en cualquier estado y responderá de la misma manera llevando al sistema al estado 1. En funcionamiento normal del sistema, utilizar esta señal sería caótico, así que externamente debe crearse un dispositivo para que el usuario no tenga que manipular la señal en lo posible. Las demás especificaciones son las mismas que se plantearon al principio. 13. Esquemático definitivo extractando el RTL con la herramienta QUARTUS II

Page 18: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

18

Diagrama de Bloques

Page 19: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

19

Bloque Chicharra

Bloque Detener

Bloque Dir

Compuerta NOT

Compuerta OR 3 IN

Page 20: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

20

Compuerta OR 5 IN

Bloque Display

Bloque Led

Page 21: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

21

Page 22: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

22

Control

Page 23: Diseno Ascensor

Pontificia Universidad Javeriana Tutorial de un método para implementar sistemas digitales en Quartus

23

Bloque Contador