Vous êtes sur la page 1sur 32

CIRCUITOS SECUENCIALES EN

VHDL
Dra. Alicia Vera Marquina
Electrnica Digital II
2011-1
UNIVERSIDAD DE SONORA
INGENIERA EN TECNOLOGA ELECTRNICA
Elementos de memoria
Los 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 datos
LD : in std_logic; -- Carga de datos
Q : out std_logic -- Salida
);
end Candado;

architecture Simple of Candado is
begin
process(D, LD)
begin
if (LD='1') then
Q <= D;
end if;
end process;
end Simple;
Candado activado por nivel
LD D Q
n+1
0 X Q
n
1 0 0
1 1 1
library IEEE;
use IEEE.std_logic_1164.all;
enity Candado_c is
port(
D : in std_logic; -- Entrada de datos
LD : in std_logic; -- Carga de datos
Clr : in std_logic; -- Borrado
Q : out std_logic -- Salida
);
end Candado_c;
architecture Simple of Candado_c is
begin
process(D, LD, Clr)
begin
if (Clr='0') then
Q <= '0';
elsif (LD='1') then
Q <= D;
end if;
end process;
end Simple;
Candado con borrado asincrono
library IEEE;
use IEEE.std_logic_1164.all;

entity Flip_flop_d is
port(
D : in std_logic; -- Entrada de datos
Clk : in std_logic; -- Reloj
Q : 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') then
Q <= D;
end if;
end process;
end Simple;
Flip-flop D con borde de disparo
positivo
CLK D Qn+1
0 X Qn
1 X Qn
0 0
1 1
library IEEE;
use IEEE.std_logic_1164.all;
entity Flip_flop_d_cs is
port(
D : in std_logic; -- Entrada de datos
Clk : in std_logic; -- Reloj
Clr : in std_logic; -- Borrado
Q : 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') then
Q <= '0';
if (Clk'event and clk='1') then
Q <= D;
end if;
end process;
end Simple;
Flip-flop D con borrado asincrono
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 asncronos
Cada FF divide la frecuencia de entrada entre 2
N 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:
1. Determine el nmero de FF a utilizar mediante la frmula:
f = [ log2m] ( 1 )
2. Conecte las terminales J y K a 1 lgico
3. Haga la interconexin de los FF como los de la figura 1
4. Encuentre la representacin binaria del mdulo m.
5. 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.
1. Determine el nmero de FF a utilizar mediante la frmula:
f = [ log2m]
2. Conecte las terminales J y K a 1 lgico
3. Haga la interconexin de los FF como los de la figura 1
4. Encuentre la representacin binaria del mdulo m-1.
5. 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:
1. Estados
2. Transiciones
3. Entradas
4. Salidas
Los estados de una FSM son todas las combinaciones lgicas posibles que
presentan los elementos de memoria.

Donde
s nmero de estados
m elementos de memoria
Dentro 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 condicionales
n nmero de entradas
Grafo 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 Mealy
Mquina 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 Salida
X Entradas
P Estados presentes
N Prximos estados
F Indica una funcin lgica combinacional
La maquina Moore puede ser sincronizada en forma sencilla y es mas rpida
Estructura a bloques de la maquina Mealy Estructura a bloques de la maquina Moore

Grafo de una mquina Mealy
SA
SC SB
0/0
1/0 1/1
0/1
0/1 1/1
x/y
Grafo de una mquina Moore
SA
SC SB
1
0 0
1
1
0
1 1
0
x
y
X entradas
Y salidas
Mquinas secuenciales sncronas
El 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 sncronas
El proceso de sntesis se puede resumir en los siguientes pasos:
1 Asignacin de estados
2 Tabla de transiciones
3 Transiciones de los flip flops
4 Minimizacin
5 Realizacin
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 FF
La asignacin puede ser:
Estado Asignacion unitaria
SA 001
SB 010
SC 100
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)
2 Seleccione como pivote al estado que tenga un mayor numero de llegadas y
asgnele el estado 0..00
3 Asigne cdigos adyacentes a estados adyacentes hasta finalizar el grafo
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.
Estado Asignacin compacta
A 00
B 01
C 10
D 11
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.
Estado presente

Entrada
X
Prximo estado

Salida
Y
001 0 001 0
001 1 010 1
010 0 100 1
010 1 010 1
100 0 100 1
100 1 001 0
Tabla de transiciones de la mquina Mealy
A
n
B
n
C
n
Q Q Q
A
n
B
n
C
n
Q Q Q
1 1 1
El 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 presente

Prximo estado D
0 0 0
0 1 1
1 0 0
1 1 1
n
Q
1 n
Q
Transiciones de un FF tipo D
Transiciones de un FF tipo JK
Estado presente

Prximo estado
J

K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
n
Q
1 n
Q
Tabla de transiciones de la maquina Mealy
Estado
presente

Entrada
X
Prximo estado

DCDBDA JCKCJBKBJAKA Salida
Y
001 0 001 001 0X 0X X0 0
001 1 010 010 0X 1X X1 1
010 0 100 100 1X X1 0X 1
010 1 010 010 0X X0 0X 1
100 0 100 100 X0 0X 0X 1
100 1 001 001 X1 0X 1X 0
Otro valor X XXX XXX XX XX XX X
A
n
B
n
C
n
Q Q Q
A
n
B
n
C
n
Q Q Q
1 1 1
Lo siguiente es hacer la minimizacin de las funciones lgicas
X Q K
X Q J
X Q K
X Q J
X K
X Q J
X Q X Q D
X Q D
X Q D
X Q X Q Y
A A
C A
A B
A B
C
A C
C A A
C B
A C
C A


' '
' '
'
'
' '
' ' '
PR y CL manipulan las terminales de borrado y puesta
Contadores sncronos
Son un caso especial de mquinas
secuenciales.
Ejemplo : Contador ascencente MOD-10
con JK.

Las ecuaciones son:
JD=QCQBQA
KD=QA
JC=QBQA
KC=QBQA
JB=QDQA
KB=QA
JA=1 KA=1
Circuito de contador ascendente MOD-10
Ejemplo: Contador sncrono ascendente/descendente mod-4
U significa si es ascendente (U=0) o descendente (U=1)
Estado presente

U Prximo estado DBDA
00 0 01 01
00 1 11 11
01 0 10 10
01 1 00 00
10 0 11 11
10 1 01 01
11 0 00 00
11 1 10 10
A
n
B
n
Q Q
A
n
B
n
Q Q
1 1
Ecuaciones:
'
A A
A B B
Q D
U Q Q D


Contador ascendente/descendente MOD-4

Vous aimerez peut-être aussi