180 likes | 328 Views
Referencias. Project Reliability Guidelines, Max+PlusII help http://www.sm.luth.se/csee/courses/smd/098. Hoja de ruta. Project Reliability Guidelines (Max+PlusII) Transferencias condicionales de RTL Pipelines Codificación de estados en máquinas de estado Máquinas de estado en VHDL
E N D
Referencias • Project Reliability Guidelines, Max+PlusII help • http://www.sm.luth.se/csee/courses/smd/098
Hoja de ruta • Project Reliability Guidelines (Max+PlusII) • Transferencias condicionales de RTL • Pipelines • Codificación de estados en máquinas de estado • Máquinas de estado en VHDL • Metodología de diseño
Project Reliability Guidelines Asynchronous Inputs • respetar setup y hold • problemas de metaestabilidad • señal asíncrona debe entrar a 1 solo FF
Project Reliability GuidelinesClock Configurations • Global Clocks. Primitiva GLOBAL • Gated Clocks • Reloj generada con una sola compuerta • Mucho cuidado con glitches • Gated Clock Examples * • Multi-Level Clocks • Reloj generada con lógica en varios niveles. • Multi-Level Clock Example *
Project Reliability GuidelinesClock Configurations (cont.) • Ripple Clocks • Ripple Clock Examples. • Multi-Clock Networks • Multi-Clock Network Example
Project Reliability GuidelinesDelay Chains • retardo que quiero introducir exprofeso • peligro de que el compilador lo elimine al minimizar • No es una buena costumbre, no hay garantía de duración de los retardos introducidos • Delay Chain Examples
Project Reliability GuidelinesExpander Networks • En lo posible usar latches y FF del dispositivo • Si es necesario armar un latch con compuertas, entonces usar las macrofunciones de Max+Plus (p. ej. nandltch y norltch)
Project Reliability GuidelinesReset • igual que clocks, ojo con glitches • Master Reset • Preset & Clear Configurations • Se deben inicializar todos los FF explícitamente, en forma asíncrona o síncrona • para reset asíncrono se puede usar GLOBAL
Project Reliability GuidelinesCarreras, Azares • Race Conditions • Race Condition Example • Static Hazards
Hoja de ruta • Project Reliability Guidelines (Max+PlusII) • Transferencias condicionales de RTL • Pipelines • Codificación de estados en máquinas de estado • Máquinas de estado en VHDL • Metodología de diseño
A B S Transferencias condicionales RTL • viola todas las reglas • Usar entrada habilitación y multiplexor a la entrada D:
Transferencias condicionales RTL flipflop: process (ck, reset) begin if (ck'event and ck=1) then if ena='1' then Q <= D; end if; -- ena end if; -- ck end process • Primitiva FFE • En VHDL:
Pipeline • retardo combinatorio entre registros limita fmax • Idea: partir el retardo comb intercalando un registro • Mayor retardo entrada-salida (latencia) • Menor período de reloj • Mejor throughput (resultados por unidad de tiempo) si puedo mantener cargado el pipeline • Algunos LPM de Altera tienen previsto hacer pipeline, parámetro configurable cuantos niveles
BloqueCombinatorio out in Registrode estado n_state p_state CK Maquinas de estado en VHDL maquina: process (ck, reset) begin if reset = ‘1’ then p_state <= idle; elsif ck’event and ck=‘1’ then p_state <= n_state; end if; end process n_state y out: • funciones combinatorias • Proceso o asignaciones concurrentes
Codificación de estados • Siempre inicializar estados • Código “One Hot” • simplifica lógica próximo estado • facilita eliminar glitches en salidas
Codificación de estadosVHDL • Tipo enumerado Type t_estado is (Reposo, E1, E2, E3); Signal presentState, nextState: t_estado Begin … • Constantes para representar estados Constant Reposo: std_logic_vector(1 downto 0):=‘00’ Constant E1 : std_logic_vector(1 downto 0):=‘01’ … Signal presentState, nextState: std_logic_vector(1 downto 0)
Suggested design methodology • Understand the specifications • Specify the interface (inout and output ports) • Identify what data path elements are needed • Draw a block diagram show the data path elements and interconnect • Identify necessary control signals for data path elements • Control signals specify the interface of the control path • Derive ASM chart(s) for the FSM(s) in the control path • Add the control path to block diagram • Now (not before) describe your design in VHDL. Use a structural approach • Simulation, synthesis, implementation... (de http://www.sm.luth.se/csee/courses/smd/098)