proyecto vhdl secuencialessolano.orgfree.com/dd_vhdl/practica_9 latchs y flip flops.pdf/e'...

8
INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL ING MIGUEL ANGEL PEREZ SOLANO Página 11 PRACTICA No. 9 LATCHES Y FLIPFLOPS Con ésta práctica se inicia el estudio de los circuitos lógicos secuenciales. Se estudian los circuitos multivibradores en la clasificación de los biestables. Estos dispositivos (biestables) se dividen en dos categorías: latches y flipflops. Se conocen como biestables ya que tienen dos estados estables, denominados SET (1= activación) y RESET (0 = desactivación), en los cuales se pueden mantener indefinidamente, lo que les hace muy útiles como dispositivos de almacenamiento e intercambian entre estados mediante una señal de disparo (trigger). Los flip-flops son los bloques básicos de construcción de los contadores, registros y otros circuitos de control secuencial, y se emplean también en ciertos tipos de memorias y son síncronos, ya que dependen del cambio de estado de una señal llamada clock (borde de subida ó borde de bajada), mientras que el latch es totalmente asíncrono (depende del estado de la puerta ENABLE). Primeramente, estudiaremos al LATCH, el cuál es un dispositivo de almacenamiento temporal de dos estados (biestable), que se suele agrupar en una categoría diferente a la de los flip-flops. Básicamente, los latches son similares a los flip-flops, ya que son también dispositivos de dos estados que pueden permanecer en cualquiera de sus dos estados gracias a su capacidad de realimentación, lo que consiste en conectar (realimentar) cada una de las salidas a la entrada opuesta. La diferencia principal entre ambos tipos de dispositivos está en el método empleado para cambiar de estado. El latch S-R (SET-RESET). Un latch S-R (Set-Reset) con entrada activa a nivel ALTO se compone de dos puertas NOR acopladas, tal como se muestra en la Figura 9.1(a); un latch con entrada activa a nivel BAJO está formado por dos puertas NAND conectadas tal como se muestra en la figura 9.1(b). Observe que la salida de cada puerta se conecta a la entrada de la puerta opuesta. Esto origina la realimentación (feedback) regenerativa característica de todos los latches y flip- flops. Figura 9.1 Dos versiones de la los latch S-R (set-reset) El latch S-R con entrada de habilitación (enable: En). El diagrama y el símbolo lógico de un latch con entrada de habilitación se muestran en la Figura 9.2. Las entradas S y R controlan el estado al que va a cambiar el latch cuando se aplica un nivel ALTO (habilitar) a la entrada EN.

Upload: others

Post on 13-Feb-2020

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 11

PRACTICA No. 9 LATCHES Y FLIPFLOPS

Con ésta práctica se inicia el estudio de los circuitos lógicos secuenciales. Se estudian los circuitos multivibradores en la clasificación de los biestables. Estos dispositivos (biestables) se dividen en dos categorías: latches y flipflops. Se conocen como biestables ya que tienen dos estados estables, denominados SET (1= activación) y RESET (0 = desactivación), en los cuales se pueden mantener indefinidamente, lo que les hace muy útiles como dispositivos de almacenamiento e intercambian entre estados mediante una señal de disparo (trigger). Los flip-flops son los bloques básicos de construcción de los contadores, registros y otros circuitos de control secuencial, y se emplean también en ciertos tipos de memorias y son síncronos, ya que dependen del cambio de estado de una señal llamada clock (borde de subida ó borde de bajada), mientras que el latch es totalmente asíncrono (depende del estado de la puerta ENABLE). Primeramente, estudiaremos al LATCH, el cuál es un dispositivo de almacenamiento temporal de dos estados (biestable), que se suele agrupar en una categoría diferente a la de los flip-flops. Básicamente, los latches son similares a los flip-flops, ya que son también dispositivos de dos estados que pueden permanecer en cualquiera de sus dos estados gracias a su capacidad de realimentación, lo que consiste en conectar (realimentar) cada una de las salidas a la entrada opuesta. La diferencia principal entre ambos tipos de dispositivos está en el método empleado para cambiar de estado. El latch S-R (SET-RESET). Un latch S-R (Set-Reset) con entrada activa a nivel ALTO se compone de dos puertas NOR acopladas, tal como se muestra en la Figura 9.1(a); un latch con entrada activa a nivel BAJO está formado por dos puertas NAND conectadas tal como se muestra en la figura 9.1(b). Observe que la salida de cada puerta se conecta a la entrada de la puerta opuesta. Esto origina la realimentación (feedback) regenerativa característica de todos los latches y flip-flops.

Figura 9.1 Dos versiones de la los latch S-R (set-reset)

El latch S-R con entrada de habilitación (enable: En). El diagrama y el símbolo lógico de un latch con entrada de habilitación se muestran en la Figura 9.2. Las entradas S y R controlan el estado al que va a cambiar el latch cuando se aplica un nivel ALTO (habilitar) a la entrada EN.

Page 2: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 12

Figura 9.2 Latch S-R con entrada de habilitación. El latch D con entrada de habilitación (en activo alto): Existe otro tipo de latch con entrada de habilitación que se denomina latch D. Se diferencia del latch S-R en que sólo tiene una entrada, además de la de habilitación, EN. La entrada D recibe el nombre de entrada de datos. La Figura 8.3 muestra el diagrama y el símbolo lógico de este tipo de latch. Cuando la entrada D está a nivel ALTO y la entrada EN también, el latch se pone en estado SET. Cuando la entrada D está a nivel BAJO y la entrada EN está a nivel ALTO, el latch se pone en estado RESET. Dicho de otra manera, la salida Q es igual a la entrada D cuando la entrada de habilitación EN está a nivel ALTO. Los flip-flops son dispositivos síncronos de dos estados, también conocidos como multivibradores biestables. En este caso, el término síncrono significa que la salida cambia de estado únicamente en un instante específico de una entrada de disparo denominada reloj (CLK), la cual recibe el nombre de entrada clk. Esto significa que los cambios en la salida se producen sincronizadamente con los bordes del reloj. Un flip-flop disparado por flanco cambia de estado con el flanco positivo (flanco de subida) o con el flanco negativo (flanco de bajada) del pulso del clk, y es sensible a sus entradas sólo en esta transición del reloj. Se analizarán tres tipos de flip-flops disparados por flanco: S-R, D y J-K.

Figura 9.3 Símbolos lógicos de los latches disparados por flanco (parte superior: disparado por flanco positivo; parte inferior: disparado por flanco negativo).

Page 3: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 13

Flip-flop S-R disparado por flanco: Las entradas S y R de un flip-flop S-R se denominan entradas síncronas, dado que los datos en estas entradas se transfieren a las salidas del flip-flop sólo con el flanco de disparo del impulso del reloj. El flip-flop D disparado por flanco: El flip-flop D resulta muy útil cuando se necesita almacenar un único bit de datos (1 o 0). Si se añade un inversor de S con dirección a R, de un flip-flop S-R se obtiene un flipflop D básico. El flip-flop J-K disparado por flanco: El flip-flop J-K es versátil y es uno de los tipos de flip-flop más ampliamente utilizado. El funcionamiento del flip-flop J-K es idéntico al del flip-flop S-R en las condiciones de operación SET, RESET y de permanencia de estado (no cambio). La diferencia está en que el flip-flop J-K no tiene condiciones no válidas como ocurre en el S-R, al tener 1´s en J y K, entra en modo de toggleo. Esto es, en cada transición las salidas se invierten. El flip-flop tipo T disparado por flanco: Es un dispositivo de almacenamiento temporal de dos estados (alto y bajo). El biestable T cambia de estado ("toggle" en inglés) cada vez que la entrada de sincronismo o de reloj se dispara. Si la entrada T está a nivel bajo, el biestable retiene el nivel previo. Puede obtenerse al unir las entradas de control de un biestable JK, unión que se corresponde a la entrada T Entradas asíncronas de inicialización (set, preset) y borrado (reset, clear): En los flip-flops que acabamos de estudiar, el S-R, el D, T y el J-K, se dice que sus entradas son entradas síncronas, ya que los datos de estas entradas condicionan la salida de los flip-flops sólo durante el flanco de disparo del impulso de reloj; esto significa que los datos se transfieren sincronizados con los bordes de la señal de reloj. La mayoría de los circuitos integrados flip-flops tienen también entradas asíncronas. Estas son entradas que pueden variar el estado del flip-flop independientemente del reloj. Generalmente, los fabricantes las denominan de inicialización, preset, (SET o PRE) y borrado, clear, (RESET o CLR). Un nivel activo en la entrada de inicialización del flip-flop (preset) pone a SET el dispositivo, y un nivel activo en la entrada de borrado (clear) lo pone en estado RESET. En la Figura 9.4 se muestra el símbolo lógico de un flip-flop J-K y uno tipo D con entradas asíncronas preset y clear. Estas entradas son activas a nivel BAJO, como indican los círculos. Estas entradas de inicialización y borrado deben mantenerse a nivel ALTO para el funcionamiento síncrono.

Page 4: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 14

Figura 9.3Símbolo lógico de un flip-flop J-K y uno tipo Dcon entrada de inicialización (preset) y de borrado (clear) activas a nivel BAJO.

EJERCICIOS RESUELTOS ER9_1 Modelar (por flujo de datos: booleano) un latch S-R ( en ac vo alto), que se muestra en el siguiente diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf.

Diagrama del circuito

Modelado del circuito en ty ER9_1 is Port ( S : in STD_LOGIC; R : in STD_LOGIC; Q : inout STD_LOGIC); end ER9_1; architecture Behavioral of ER9_1 is SIGNAL notQ: STD_LOGIC; begin Q <= notQ NOR R; notQ <= S NOR Q; END architecture;

ER9.2 Modelar (comportamental: if………. then….. else) un latch po D con puerta habilitadora (EN) en ac vo alto, que se muestra en el siguiente diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf.

library IEEE; use IEEE.STD_LOGIC_1164.ALL; en ty ER9_2 is Port ( EN : in STD_LOGIC; D : in STD_LOGIC; Q : out STD_LOGIC); end ER9_2;

Page 5: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 15

architecture Behavioral of ER9_2 is begin process (EN, D) begin if (EN = '1') then Q <= D; end if; end process; end Behavioral;

ER9.3 Modelar (Comportal: IF…..THEN….ELSE) un FF po D con entradas asíncronas R(reset) y S (set), ambas en ac vo bajo, y el clk (sensible a los bordes de subida), que se muestra en el siguiente diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf.

LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY ER9_3 IS PORT (D,R,S,CLK : IN std_logic; Q : OUT std_logic ); END ENTITY ER9_3; ARCHITECTURE behavioural OF ER9_3 IS BEGIN D_FF : PROCESS (CLK,R,S) BEGIN IF R = '0' THEN Q <= '0'; ELSIF S = '0' THEN Q <= '1'; ELSIF (rising_edge(CLK)) THEN Q <= D; END IF; END PROCESS ER9_3; END ARCHITECTURE behavioural;

ER9.4 Modelar (Comportal: IF…..THEN….ELSE) un FF po JK, con Reset síncrono en ac vo alto, y habilitación clock enable (en ac vo alto) y el clk (con borde de subida), que se muestra en el siguiente diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf.

Page 6: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 16

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; en ty JK_FF_VHDL is port( J,K: in std_logic; Reset: in std_logic; Clock_enable: in std_logic; Clock: in std_logic; Output: out std_logic); end JK_FF_VHDL; architecture Behavioral of JK_FF_VHDL is signal temp: std_logic; begin process (Clock) begin if rising_edge(Clock) then if Reset='1' then temp <= '0'; elsif Clock_enable ='1' then if (J='0' and K='0') then temp <= temp; elsif (J='0' and K='1') then temp <= '0'; elsif (J='1' and K='0') then temp <= '1'; elsif (J='1' and K='1') then temp <= not (temp); end if; end if; end if; end process; Output <= temp; end Behavioral;

ER9_5 Modelar (Comportal: IF…..THEN….ELSE) un FF po T, con Reset síncrono en ac vo alto, y habilitación clock_enable (en ac vo alto) y el clk (con borde de subida), que se muestra en el siguiente diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf.

Page 7: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 17

library IEEE; use IEEE.STD_LOGIC_1164.ALL; en ty ER9_5 is port (T,Reset,CLK,CLK_enable: in std_logic; Q: out std_logic); END ER9_5; architecture Behavioral of ER9_5 is signal temp: std_logic; begin process (Reset,CLK) begin if (rising_edge(CLK)) then if Reset='1' then temp <= '0'; elsif CLK_enable ='1' then temp <= T xor temp; end if; end if; end process; Q <= temp; end Behavioral;

EJERCICIOS PROPUESTOS

EP9_1 Modelar (por flujo de datos: booleano) un latch S-R ( entradas en ac vo bajo), obtenga su diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf. EP9_2 Modelar (comportamental: if………. then….. else) un latch po D ( en ac vo bajo) con puerta habilitadora (EN) en ac vo bajo, obtenga su diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf. EP9_3 Modelar (Comportametal: IF…..THEN….ELSE) un FF po D con entradas síncronas R(reset) y S (set), ambas en ac vo bajo, sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf. EP9_4 Modelar (Comportal: IF…..THEN….ELSE) un FF po JK, con Reset síncrono en ac vo alto, y habilitación clock enable (en ac vo alto) y el clk (con borde de subida), que se muestra en el siguiente diagrama. Sinte zar en implementarlo en la Nexys 3 con el MasterNexys3.ucf.

Page 8: PROYECTO VHDL SECUENCIALESsolano.orgfree.com/DD_VHDL/PRACTICA_9 LATCHS Y FLIP FLOPS.pdf/e' d/'h > e' > w z ^k> ek w p ] v í í wz d/ e } x õ > d , ^ z &>/w&>kw^ &rq pvwd suifwlfd

INSTITUTO TECNOLOGICO DE OAXACA DISEÑO DIGITAL CON FPGAs Y VHDL

ING MIGUEL ANGEL PEREZ SOLANO Página 18

EP9_5 Modelar (Comportal: IF…..THEN….ELSE) un FF po T, con Reset asíncrono en ac vo bajo, y habilitación clock_enable (en ac vo bajo) y el clk (con borde de bajada), obtenga su diagrama, simularlo e implementarlo en la Nexys 3 con el MasterNexys3.ucf.