Вы находитесь на странице: 1из 4

Sincronizacin mediante el diagrama de estados

Tambin se pueden ajustar seales lentas mediante verificaciones en el diagrama de estados: Ejemplo : Disear una MSS modelo MOORE cuya salida F sea alta, si se presiona y suelta el pulsador B dos veces.
Formato : B / F
0/0

a
1/0 1/0

b El estado a es de espera inicial. Al presionar el pulsador B, la MSS pasa al estado b, donde queda retenida por tantos pulsos de reloj mientras se mantenga presionado B. Solo si se suelta B la MSS pasa al estado c. En los estados d y e se repite el esquema para detectar que se presion B por segunda vez. Luego regresa al estado a generando alto en la salida F.
0/0 /1 0/0

c
1/0 1/0

d
0/0

e
41

Diseo de una MSS usando VHDL y herramientas CAD.


Una manera tradicional (un poco obsoleta) de uso de herramientas CAD consiste en disear manualmente el circuito secuencial a partir de un Diagrama de Estados usando los flip-flops, puertas, etc. Luego introducir el circuito en el software de diseo y simulacin utilizando el Editor Grafico. Utilizando este software se puede simular el comportamiento de la MSS e implementarla en un PLD. Es bastante trabajoso manualmente sintetizar la MSS a partir de un Diagrama de Estados. Resulta ms atractivo describir el Diagrama de Estados utilizando un HDL (Hardware Description Language) como VHDL. A continuacin se presenta ejemplo del cdigo VHDL para la MSS del primer Ejemplo. Analizaremos el cdigo lnea por lnea.

42

Reset 0/0 1/0

Formato : w / z

a
0/0 1/0

0/1

c
1/1

43

La entity describe las conexiones externas e indica todos los terminales de entrada y salida que permiten al subcircuito diseado interactuar con los dems subcircuitos o subsistemas. A continuacin, mediante la keyword port se especifican los nombres de estos terminales y se indica su direccin (modo): in entrada out salida inout entrada o salida buffer salida de una entity (o component) cuyo valor puede ser ledo o realimentado, pero puede tener solamente una asignacin. Tambin se indican el tipo de datos que pueden llegar a estos terminales. VHDL fue estandartizado por la IEEE. Las lneas 1-2 proporcionan acceso a las library de IEEE. La declaracin library ieee es la declaracin de la biblioteca general de solo lectura que contiene un conjunto de definiciones estndar para VHDL que pueden ser usados por varios diseos a la vez. La declaracin use ieee.std_logic_1164.all es la declaracin del paquete estndar donde guardan definiciones de tipos de seales, variables, constantes, etc. Las siguientes lneas declaran una entity que se llama simple y tiene tres terminales de entrada Clock, Resetn y w, y un terminal de salida z.
44

La informacin esta representada en cdigo VHDL como objeto de datos. Se proporcionan tres clases de objetos: seales, constantes y variables. Para describir los circuitos lgicos, los ms importantes objetos de datos son seales (signal). Ellos representan las seales lgicos (alambres) en el circuito. Los constantes y variables se usan menos frecuentemente. Hay tres lugares donde las seales pueden ser declarados en VHDL: en la declaracin de entity, en la seccin de declaraciones de architecture y en la seccin de declaraciones de package. Las seales (signal) son objetos usados para conectar elementos concurrentes, tales como component, process, y asignaciones concurrentes de manera similar que los alambres son usados para conectar componentes en un diagrama esquemtico. Siempre tienen que ser declaradas con un tipo asociado (type). signal signal_name: type_name; type de una seal determina los valores legales que la seal puede tener y sus usos legales en cdigo VHDL. Son ejemplos de type para signal: bit, bit_vector, std_logic, std_logic_vector, integer.

45

Para el bloque de architecture se utilizo la palabra comportamiento ya que vamos a describir el comportamiento de la MSS, pero se puede utilizar cualquier palabra vlida en VHDL. La siguiente lnea introduce la keyword type, que representa una caracterstica especial de VHDL. Palabra clave type permite crear nuevo tipo de seales. El nuevo tipo de seales es llamado estado y el cdigo especifica que una seal de este tipo puede tener tres posibles valores: a, b y c. La siguiente lnea define una signal llamado y y declara que es tambin de tipo estado. La seal y es usada para representar la salidas de los flip-flops que implementan el bloque de Memoria de Estados en una MSS sin especificar el nmero de flip-flops, es decir, y representa el cdigo de Estado Presente sin especificar el nmero de bits del cdigo. Solo especifica que y puede tener tres simblicos valores a, b y c. El compilador VHDL automticamente elije un nmero apropiado de los flipflops cuando sintetiza el circuito para implementar la MSS. Tambin elije las asignaciones de cdigo de estados para los estados a, b y c. El Siguiente paso es especificar las transiciones entre los estados, por lo tanto, las siguientes lneas representan una de las maneras de describir el Diagrama de Estados.

46

Transiciones

La declaracin process describe la MSS como un circuito secuencial. Entre parntesis esta la lista de sensibilidad (sensitivity list), es decir las seales de entrada que pueden causar que process cambie. En nuestro caso son Resetn y Clock. La seal w no est incluida en la lista de sensibilidad porque un cambio solo en el valor de entrada w, no afecta al etado y hasta que ocurre el flanco de subida de Clock. La nica seal que se modifica en el process es la salida y.
47

Las lneas iniciales especifican que MSS debe entrar en estado a si Resetn = 0. Con la letra n se acostumbran indicar que la seal es de lgica negativa. Ya que la condicin de la declaracin de if no depende de la seal de Clock esto significa que Resetn es asincrnico. Cuando seal de Resetn no es verdadera la declaracin de elsif especifica que circuito espera por el flanco positivo de Clock. El comportamiento de la seal de salida y es definido por la declaracin secuencial case - when. case - when es la declaracin secuencial usada dentro de process que selecciona y ejecuta una alternativa de entre varias posibles, evaluando una expresin dada (y en nuestro caso). Debe terminar con end. La declaracin case - when se distingue de la declaracin if then else en que no hay prioridad entre alternativas. Ya que la declaracin case esta dentro de la condicin elsif, cualquier cambio de y puede tener lugar solo en el flanco positivo de Clock. Es decir, la condicin elsif implica que la seal y debe ser implementado como la salida de uno o mas flip-flops. Cada clusula when en la declaracin case representa un estado de la MSS.
48

Вам также может понравиться