maquinas secuenciales sincronicas

Diseño de máquinas secuenciales sincrónicas 1 ) Dado el diagrama de estados de una maquina sincrónica y la asignación de

Views 144 Downloads 39 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Diseño de máquinas secuenciales sincrónicas 1 ) Dado el diagrama de estados de una maquina sincrónica y la asignación de estados

S2

Dir2

S1

MSS

clk

Dir1

Resetn

Formato: S2 , S1 /Dir2 , Dir1 Resetn 00/00 a 01/01

𝜙1/00

10/10

1𝜙/00 0𝜙/01

𝜙0/10

b

c

Asignación de estados: 𝑦1 0

1

0

a

c

1

𝜙

b

𝑦0

Se pide: 1. 2. 3. 4. 5.

ASM. Mapas de estado siguiente y salida (ASM a mapas). Tabla de Verdad y mapas de E.S. y salida (D.E. a Tabla y Tabla a mapas). Implementación, con multiplexores y flip-flop tipo D. Código VHDL completo y diagrama de tiempo (simulado).

ASM: Viendo el diagrama de estados podemos formar el diagrama ASM, solo tenemos que ver las condiciones de entrada (bloque de decisión) y las salidas que sean 1 (inicio/fin). Las salidas que tienen un inicio/fin(ovalo), son salidas tipo Mealy, es decir, varían acorde la condición de entrada.

Resetn

00

Ta

0 0 S2

S1

S1

1

0

Dir1

Dir2

Tb

11

Tc

Dir1

1

1

S2

0

10

Dir2

0

1 S1

Mapas de Karnaugh -

Para el mapa de estado siguiente, nos posicionamos en un estado cualquiera, el inicial preferible podría ser… (Ta), y vemos las rutas posibles que tiene este estado al llegar a otros estados, solo tomamos en cuenta los estados que tengan en su código, el bit de 1 debido a que éste se multiplica por la ecuación resultante en la trayectoria.

En Ta (00): En el camino rojo vemos que hay unas dos ecuaciones en la posición de 𝑦1 : ̅̅̅2 𝑆1 + 𝑆2 𝑆̅1 = 𝑆2 ⊕ 𝑆1 𝑆 En la trayectoria azul, hay un solo camino en la posición de 𝑦0 : ̅̅̅2 𝑆1 𝑆 Como no hay más caminos, esta dupla la colocamos en el mapa de Karnaugh en la posición 00 y así continuamos con el siguiente estado: En Tb (11): Camino naranja, posición 𝑦1 : ̅̅̅ 𝑺𝟐 Camino verde, posición 𝑦0 : ̅̅̅2 𝑆 En Tc (10): Camino morado, posición 𝑦1 : 𝑆̅1 En 𝑦0 no hay presencia de 1 en la trayectoria, entonces es 0

(𝑌1 , 𝑌0 ): 𝑦1 0

1

0

̅̅̅2 𝑆1 𝑆2 ⊕ 𝑆1 , 𝑆

𝑆̅1 , 0

1

𝜙 ,𝜙

̅̅̅ ̅̅̅2 𝑺𝟐 , 𝑆

𝑦0

Decodificador de estado siguiente

Para la salida, solo vemos los bloques de inicio/fin (ovalos), ya que estos son 1’s a la salida, así mismo, nos centramos en un estado, preferible el estado inicial, y ver las trayectorias hacia otro estado, pero solo en donde haya las condiciones de salida. La posición la determina la variable de salida acorde al formato establecido.

En la posición de Dir1: Camino rojo (Ta) ̅̅̅2 𝑆1 𝑆 Camino verde (Tb) ̅̅̅2 𝑆 En la posición de Dir2: Camino azul (Ta) 𝑆2 𝑆̅1 Camino morado (Tc) 𝑆̅1

(𝐷𝑖𝑟2 , 𝐷𝑖𝑟1 ):

(deco de salida) 𝑦1 0

1

0

̅̅̅2 𝑆1 S2 S̅1 , 𝑆

𝑆1 , 0

1

𝝓,𝝓

0 , ̅̅̅ 𝑆2

𝑦0

Por tablas de verdad: E.P. 𝑦1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

IN 𝑦0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

𝑌1 0 1 1 0 𝜙 𝜙 𝜙 𝜙 1 0 1 0 1 1 0 0

𝑆2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

𝑆2 ⊕ 𝑆1

𝜙

𝑆̅1

̅̅̅2 𝑆

E.S. 𝑆1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 𝑌0 0 1 0 0 𝜙 𝜙 𝜙 𝜙 0 0 0 0 1 1 0 0

𝑌1 0 1 1 0 𝜙 𝜙 𝜙 𝜙 1 0 1 0 1 1 0 0

̅̅̅2 𝑆1 𝑆

𝜙

0

̅̅̅2 𝑆

OUT 𝑌0 0 1 0 0 𝜙 𝜙 𝜙 𝜙 0 0 0 0 1 1 0 0

𝐷𝑖𝑟2 0 0 1 0 𝜙 𝜙 𝜙 𝜙 1 0 1 0 0 0 0 0 𝐷𝑖𝑟2 0 0 1 0 𝜙 𝜙 𝜙 𝜙 1 0 1 0 0 0 0 0

𝐷𝑖𝑟1 0 1 0 0 𝜙 𝜙 𝜙 𝜙 0 0 0 0 1 1 0 0

𝑆2 𝑆̅1

𝜙

𝑆1

0

𝐷𝑖𝑟1 0 1 0 0 𝜙 𝜙 𝜙 𝜙 0 0 0 0 1 1 0 0

̅̅̅2 𝑆1 𝑆

𝜙

0

̅̅̅2 𝑆

Este método es Variable Entrante al Mapa, la tabla debe ser reducida hasta que tenga las variables de estado actual, después éstas salidas colocarlas en un mapa de Karnaugh: Decodificador de Estado Siguiente: 𝑦1 0

1

0

̅̅̅2 𝑆1 𝑆2 ⊕ 𝑆1 , 𝑆

𝑆̅1 , 0

1

𝜙 ,𝜙

̅̅̅ ̅̅̅2 𝑺𝟐 , 𝑆

0

1

0

̅̅̅2 𝑆1 S2 S̅1 , 𝑆

𝑆1 , 0

1

𝜙,𝜙

̅̅̅2 0,𝑆

𝑦0

Decodificador de Salida 𝑦1 𝑦0

Si existen demasiadas entradas, no es recomendable hacer una tabla de verdad debido a la cantidad excesiva de combinaciones que se deben realizar, cuando este problema se presenta, es recomendable realizar el diagrama ASM y posteriormente realizar los mapas.

Implementación: S2

S1

𝑦1 𝑦1

𝑦0

𝑦0 S2 0 S1

0

1 FF-D

1 MUX

Y1

8-1

Dir2

MUX 8-1

2

D Q

2

𝑦1 3

Clock reset

3

𝑦1

𝑦0 𝑦1

𝑦0

0 S1 1 MUX 8-1

0

FF-D Y0

S2

D Q

2 Clock reset

3

𝑦0

1 2 3

Clock

reset

MUX 8-1

Dir1

VHDL: library ieee; use ieee.std_logic_1164.all; -- black box o bloque general con entradas y salidas entity ejemplo_e_14 is port(S1,S2,clk,Resetn: in std_logic; Dir1,Dir2: out std_logic); end ejemplo_e_14; architecture behaviour of ejemplo_e_14 is -- estados type states is (Ta,Tb,Tc); signal y: states:=Ta; begin -- deco de estado siguiente process(clk,Resetn) begin if Resetn = '0' then y if I1 = '0' then y