PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE
TEMA 3. Modelos de sistemas con VHDL Curso 05/06
© Departamento de Arquitectura y Tecnología de Sistemas Informáticos - Facultad de Informática Universidad Politécnica de Madrid - V. Rodellar
1
TEMA 3. Modelos de sistemas digitales 3.1 Sistemas combinacionales 3.1.1 Modelado de retardos en funciones lógicas y estilos de descripción de arquitecturas. 3.1.2 Modelado de multiplexores en los estilos: algorítmico, flujo y estructural 3.1.3 Modelado de decodificadores en los estilos: algorítmico, flujo y estructural
3.2 Sistemas de memoria 3.2.1 Realización de biestables y latches en estilos: comportamiento, flujo y estructural. Entradas de control asíncronas y asíncronas. Relojes. 3.2.2 Realización de registros en estilo estructural. Reusabilidad. Bucles hardware. 3.2.3 Otros ejemplos.
© Departamento de Arquitectura y Tecnología de Sistemas Informáticos - Facultad de Informática Universidad Politécnica de Madrid - V. Rodellar
2
3.3 Sistemas secuenciales 3.3.1 Modelos para máquinas de estados finitos 3.3.2 Realización de una máquina de Moore 3.3.3 Realización de una máquina de Mealy
Resumen
NOTA: Los apartados 3.1 y 3.2 han sido desarrollados en las clases de teoría de temas anteriores y en las clases de laboratorio.
© Departamento de Arquitectura y Tecnología de Sistemas Informáticos - Facultad de Informática Universidad Politécnica de Madrid - V. Rodellar
3
3.3.1 Modelos para máquinas de estados finitos (FSM) - Modelos de Moore y Mealy - Metodología de diseño de FSM -Modelo algorítmico - Un mal modelo - Un modelo mejorado (Moore) - Señales de Reset - Varios PROCESS - Modelo Data flow - Modelo estructural - Comparación entre los modelos de Mealy y Moore © Departamento de Arquitectura y Tecnología de Sistemas Informáticos - Facultad de Informática Universidad Politécnica de Madrid - V. Rodellar
4
Esquemas de Moore y Mealy Estructura de Moore
(FSMs)
Estructura de Mealy
O(t) = F1( S(t))
O(t) = F1( S(t), I(t))
S(t+1) = F2 (I(t), S(t))
S(t+1) = F2 (I(t), S(t)) O(t) Salidas
O(t) Salidas
(combinacional)
(combinacional)
inputs I(t)
Estado futuro
S(t+1) Estado futuro
(Combinacional)
S(t+1)
(Combinacional) inputs I(t)
Estado actual S(t)
Estado actual
Registro (Secuencial) clock
S(t)
Registro (Secuencial)
© Departamento de Arquitectura y Tecnología de Sistemas Informáticos - Facultad de Informática Universidad Politécnica de Madrid - V. Rodellar
5 clock
Metodología de diseño de FSM Niveles de Descripción asociados con los HDLs
Etapas básicas
1) Diagrama-Tabla de estados, ASM entrada
Moore
estado
estado
salida
salida
}
entrada/salida estado
Comportamiento o algorítmico
estado Mealy 6
Metodología de diseño de FSM Etapas básicas
Niveles de Descripción asociados con los HDLs 2) Ecuaciones del estado futuro y salidas Estado actual Entradas Estado futuro C1(t) C0(t)
Salidas
A(t) B(t) C1(t+1) C0(t+1)
X(t) Y(t)
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
.......
...........
...........
..........
D1(t+1) = C1(t) A(t) + C0(t) A(t)’+ ...... D0(t+1) = C1(t) B(t) + C0(t) B(t)’+ ...... X(t) = ........
Y(t) = ................
}
Flujo de datos o transferencia entre registros 7
Metodología de diseño de FSM Etapas básicas
Niveles de Descripción asociados con los HDLs
3) Implementación del circuito Componentes: Dispositivos lógicos (puertas: NOT, AND ... MUX, DECODERS, .....)
}
Estructural
Elementos de memoria ( Flip-Flops) Conexionado
8
Modelado Algorítmico de FSM • Consideraciones Generales: – El estilo del código tiene que ser independiente de la máquina de estados que se diseñe. – Diferentes formas de modelar la misma máquina: • ¿Cuantos procesos PROCESS? • ¿Señales o variables? • ¿Sentencias IF o CASE? • El uso de la sentencia WAIT – ¿Debe ser inicializada la máquina en un estado válido? ¿Hay que utilizar señal de reset? – Portabilidad del código © Departamento de Arquitectura y Tecnología de Sistemas Informáticos - Facultad de Informática Universidad Politécnica de Madrid - V. Rodellar
9
Modelado algorítmico de una FSM - Un mal modelo
Máquina de Moore Retardo en la operación de lectura en una memoria RAM Read (R)
Slow (S)
Write (W) Clock
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.all; ST_READ R=1 W=0
ST_WRITE
S=0
R=0 W=1
S=1 ST_DELAY R=0 W=0
ENTITY fsm_bad IS PORT ( clock: IN STD_LOGIC; -- flanco subida slow: IN STD_LOGIC; -- entrada control read, write: OUT STD_LOGIC -- salidas ); END fsm_bad;
© Departamento de Arquitectura y Tecnología de Sistemas Informáticos - Facultad de Informática Universidad Politécnica de Madrid - V. Rodellar
10
Modelado algorítmico de una FSM - Un mal modelo Retardo en la operación de lectura en una memoria RAM ST_READ R=1 W=0
ST_WRITE
S=0
R=0 W=1
S=1 ST_DELAY R=0 W=0
Máquina de Moore
ARCHITECTURE bad OF fsm_bad IS BEGIN PROCESS TYPE state_type IS (ST_read, ST_write, ST_delay); VARIABLE state :state_type := ST_read; BEGIN WAIT UNTIL rising_edge(clock); CASE state IS WHEN ST_read => read