32
CIRCUITOS SECUENCIALES EN VHDL Dra. Alicia Vera Marquina Electrónica Digital II 2011-1 UNIVERSIDAD DE SONORA INGENIERÍA EN TECNOLOGÍA ELECTRÓNICA

Capitulo 2 (Maquinas de Estado)

  • Upload
    w33t7

  • View
    47

  • Download
    2

Embed Size (px)

Citation preview

  • CIRCUITOS SECUENCIALES EN VHDLDra. Alicia Vera MarquinaElectrnica Digital II2011-1UNIVERSIDAD DE SONORAINGENIERA EN TECNOLOGA ELECTRNICA

  • Elementos de memoriaLos elementos bsicos de memoria son de dos tipos principales: candados y Flip-flops.

    Un candado se activa mediante una seal de nivel

    Un flip-flop se activa mediante un flanco de transicin.

    Pueden tener seales de borrado y/o inicializacin, en forma sncrona o asncrona.

  • library IEEE;use IEEE.std_logic_1164.all;

    entity Candado is port(D : in std_logic; -- Entrada de datosLD : in std_logic; -- Carga de datosQ : out std_logic -- Salida); end Candado;

    architecture Simple of Candado is begin process(D, LD)begin if (LD='1') thenQ

  • library IEEE;use IEEE.std_logic_1164.all;enity Candado_c is port(D : in std_logic; -- Entrada de datosLD : in std_logic; -- Carga de datosClr : in std_logic; -- BorradoQ : out std_logic -- Salida); end Candado_c;architecture Simple of Candado_c is begin process(D, LD, Clr)begin if (Clr='0') thenQ
  • library IEEE;use IEEE.std_logic_1164.all;

    entity Flip_flop_d is port(D : in std_logic; -- Entrada de datosClk : in std_logic; -- RelojQ : out std_logic -- Salida); end Flip_flop_d;

    architecture Simple of Flip_flop_d is begin process(Clk)begin if (Clk'event and clk='1') thenQ

  • library IEEE;use IEEE.std_logic_1164.all;entity Flip_flop_d_cs is port(D : in std_logic; -- Entrada de datosClk : in std_logic; -- RelojClr : in std_logic; -- BorradoQ : out std_logic -- Salida); end Flip_flop_d_cs;architecture Simple of Flip_flop_d_cs is begin process(Clk, Clr)begin if (Clr='0') thenQ
  • Contadores

    Los contadores son el grupo ms sencillo de mquinas secuenciales y son circuitos que permiten dar una secuencia preestablecida. Por ejemplo: Un sistema que entregue la secuencia de los dgitos decimales como: 0-1-2-3-4-5-6-7-8-9-0.Contador. Es un circuito que permite dar una secuencia de datos en forma cclica.Mdulo. Indica el nmero de estados diferentes que posee la mquina secuencial.Direccin. Se dice que un contador es ascendente cuando la cuenta se realiza en forma incremental. El contador se designa como descendente cuando la cuenta se realiza en forma decremental.Sncrona. Un contador puede ser diseado como mquina secuencial sncrona o asncrona, de acuerdo con la definicin de circuito secuencial sncrono.

  • Contadores asncronosCada FF divide la frecuencia de entrada entre 2N FFs producirn una frecuencia de salida en el ltimo FF igual a 1/2 de la frecuencia de entrada del reloj.

    N

  • Para tener un contador descendente, el circuito de la figura se debe modificar para que aparezca como el mostrado:Los contadores descritos hasta este momento tienen un mdulo que es potencia exacta de 2. Cuando el mdulo deseado no es una potencia exacta de 2, las estructuras bsicas de las figuras anteriores deben ser modificadas para lograr el mdulo deseado, haciendo uso de las terminales de puesta y borrado.

  • Para los contadores ascendentes de mdulo arbitrario m se sigue el procedimiento descrito a continuacin:Determine el nmero de FF a utilizar mediante la frmula: f = [ log2m] ( 1 )Conecte las terminales J y K a 1 lgicoHaga la interconexin de los FF como los de la figura 1Encuentre la representacin binaria del mdulo m.La salida Q de los FF que corresponden a los unos de la representacin binaria del mdulo m se conectan a una compuerta NAND y su salida se conecta a la terminal de borrado de todos los FF.

    Ejemplo: Contador asncrono, ascendente, mdulo 5.

    Paso 1: Aplicando la formula se obtiene que el nmero de FF es f=3.Paso 2 y 3: La conexin de las entradas JK y los relojes se realizan.Paso 4: m = 5 y su representacin binaria es 101.Paso 5: La salida Q de los FF 1 y 3 se conecta a una compuerta NAND de dos entradas y su salida se conecta al borrado de los FF.

  • Un procedimiento similar se sigue para el diseo de contadores asncronos, descendientes de mdulo arbitrario m que no es potencia exacta de dos.

  • Determine el nmero de FF a utilizar mediante la frmula: f = [ log2m]Conecte las terminales J y K a 1 lgicoHaga la interconexin de los FF como los de la figura 1Encuentre la representacin binaria del mdulo m-1.Conecte todas las salidas Q de los FF a una compuerta NAND y su salida envela a la seal de borrado de aquellos FF donde la representacin binaria de m-1 sea cero.

  • Ejemplo: Contador asncrono, descendente, mdulo 5.

    Paso 1: Aplicando la formula se obtiene que el nmero de FF es f=3.Paso 2 y 3: La conexin de las entradas JK y los relojes se realizan.Paso 4: m-1 = 4 y su representacin binaria es 100.Paso 5: La salida Q de los FF se conecta a una compuerta NAND de tres entradas y su salida se conecta al borrado de los FF dos y uno.

  • Mquinas de Estado Finitos El circuito secuencial ms simple que existe es la mquina de estados finitos o FSM (Finite-State Machine) . Esta mquina se dice que es de estados finitos porque el numero de estados (combinaciones lgicas posibles de los elementos de memoria) que contiene es una cantidad finita. En logica secuencial se necesitan tablas de transiciones y grafos. El grafo de una FSM es la representacin diagramtica o grfica del comportamiento de la mquina y contiene:EstadosTransicionesEntradas SalidasLos estados de una FSM son todas las combinaciones lgicas posibles que presentan los elementos de memoria.

  • Donde s nmero de estadosm elementos de memoriaDentro del grafo, los estados se representan como circunferencias etiquetadas con el nombre del estado.

  • Las transiciones en una mquina de estados es la forma en que se dan los cambios de estado. Se simbolizan mediante flechas que parten del estado presente y llegan al prximo estado. Las transiciones que dependen de una o varias entradas se denominan transiciones condicionales.Cada estado tiene tantas transiciones como combinaciones lgicas existan entre las entradas.

  • El nmero de transiciones est dado por:Donde :L nmero de transiciones condicionalesn nmero de entradasGrafo condiciona 1

  • Las salidas en una mquina de estados definen dos aspectos de la misma: el tipo de maquina y las salidas propias. Una maquina secuencial tiene dos posibles estructuras y son:

    Mquina MealyMquina Moore

    En la mquina Mealy, las salidas son funcin de las entradas y de los estados presentes, se indican a un lado de las entradas, separndolas por una diagonal.En la mquina Moore las salidas son funcin exclusiva de los estados presentes y se indican dentro del mismo estado, debajo de la etiqueta.La diferencia entre las maquinas es el comportamiento de las salidas:Mquina Mealy:Mquina Moore:Y = F(X,P)Y = F(P)N = F(X,P) N = F(X,P)

  • Donde: Y SalidaX EntradasP Estados presentesN Prximos estadosF Indica una funcin lgica combinacionalLa maquina Moore puede ser sincronizada en forma sencilla y es mas rpidaEstructura a bloques de la maquina Mealy Estructura a bloques de la maquina Moore

  • Grafo de una mquina MealyGrafo de una mquina MooreX entradasY salidas

  • Mquinas secuenciales sncronasEl proceso de sntesis de una mquina secuencial sncrona parte del grafo que describe su comportamiento para culminar en un circuito que realice la operacin descrita.Sntesis de mquinas secuenciales sncronasEl proceso de sntesis se puede resumir en los siguientes pasos:Asignacin de estadosTabla de transicionesTransiciones de los flip flopsMinimizacinRealizacin Existen varias tcnicas para la asignacin binaria de los estados de una mquina secuencial, las ms importante son:

  • Codificacin unitaria (One hot). Consiste en asignar un flip-flop por cada uno de los estados existentes de la mquina secuencial, de tal forma que el nmero total de FF es igual al numero de estados.Ejemplo de la maquina Mealy, se tienen 3 estados entonces se necesitan 3 FFLa asignacin puede ser:Asignacin compacta. Cuando se desea tener el menor numero posible de FF en la sntesis.1 Determine el nmero de FF de acuerdo a la frmula (1)Seleccione como pivote al estado que tenga un mayor numero de llegadas y asgnele el estado 0..00Asigne cdigos adyacentes a estados adyacentes hasta finalizar el grafo

    EstadoAsignacion unitariaSA001SB010SC100

  • Como ejemplo para la mquina secuencial condicional 1, aplicando la frmula (1) se determina el numero de FF y el resultado es 2. Como tiene el mismo numero de llegadas, se procede a asignar el pivote en forma arbitraria.Una vez realizada la asignacin de estados, se procede a formar la tabla de transiciones de la mquina secuencial que es el vaciado del grafo, respetando la asignacin realizada

    Ejemplo de sntesis para la maquina Mealy con asignacin de estados unitaria.

    EstadoAsignacin compactaA00B01C10D11

  • Tabla de transiciones de la mquina MealyEl tercer paso de la sintesis consiste en vaciar la tabla de transiciones de los FF para cada uno de los elementos de memoria. Dependiendo el tipo de FF, sta ser su tabla de transiciones.

    Estado presenteEntradaXPrximo estadoSalidaY001000100011010101001001010101011000100110010010

  • Transiciones de un FF tipo DTransiciones de un FF tipo JK

    Estado presentePrximo estadoD000011100111

    Estado presentePrximo estadoJK000X011X10X111X0

  • Tabla de transiciones de la maquina MealyLo siguiente es hacer la minimizacin de las funciones lgicas

    Estado presenteEntradaXPrximo estadoDCDBDAJCKCJBKBJAKASalidaY00100010010X 0X X0000110100100X 1X X1101001001001X X1 0X101010100100X X0 0X11000100100X0 0X 0X11001001001X1 0X 1X0Otro valorXXXXXXXXX XX XXX

  • PR y CL manipulan las terminales de borrado y puesta

  • Contadores sncronosSon un caso especial de mquinas secuenciales.Ejemplo : Contador ascencente MOD-10 con JK.

    Las ecuaciones son:JD=QCQBQAKD=QAJC=QBQAKC=QBQAJB=QDQAKB=QAJA=1 KA=1

  • Circuito de contador ascendente MOD-10

  • Ejemplo: Contador sncrono ascendente/descendente mod-4U significa si es ascendente (U=0) o descendente (U=1)Ecuaciones:

    Estado presenteUPrximo estadoDBDA00001010011111010101001100001001111101010111000001111010

  • Contador ascendente/descendente MOD-4

    ********************************