La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Semáforo Versión.TDF AHDL Bloque de objetos ( entradas y salidas ) reset reloj100ms y rojo1 amarillo1 verde1 rojo2 verde2 amarillo2 semáforo.

Presentaciones similares


Presentación del tema: "Semáforo Versión.TDF AHDL Bloque de objetos ( entradas y salidas ) reset reloj100ms y rojo1 amarillo1 verde1 rojo2 verde2 amarillo2 semáforo."— Transcripción de la presentación:

1 Semáforo Versión.TDF AHDL Bloque de objetos ( entradas y salidas ) reset reloj100ms y rojo1 amarillo1 verde1 rojo2 verde2 amarillo2 semáforo

2 Esquema de funcionamiento

3 Diagrama de estados semáforo (Moore) S2S2 S0S0 S1S1 S3S3 S4S4 S5S5 S6S6 S7S r1,r2 v1,r2 a1,r2 r1,r2 r1,v2 a1,a r1,a ,0 1 0 día 1 noche

4 Semáforo: Entradas y salidas, procesos, Variables y nodos AHDL cuenta Cuenta.q[7..0] Cuenta.data[7..0] % N FFD reloj100ms D If Cuenta.data[7..0]= Cuenta.q[7..0] Cuenta IF CASE Cuenta.q[7..0] y Dia /noche SalidaSalida FF Xtal 8 Mhz R1,A1,V1,R2,A2,V2 30 If case S 2 30 If case S If case S 4 30 If case S 5 If case S If casecase S 1 reset table Entradadatos[7..0] BLOQUE COMBINA TORIO BLOQUE SEC salida[5..0] relojmáquina Entradadatos[7..0] SS LPM_counter

5 Esquemáticos

6

7 AHDL Subdesign SUBDESIGN semaforo2 ( reloj100ms, y, reset : INPUT; rojo1, rojo2, amari1, amari2, verde1, verde2 : OUTPUT; )

8 AHDL Variables y Nodos internos VARIABLE cuenta: lpm_counter WITH ( LPM_WIDTH=8); ss: MACHINE WITH STATES (s0, s1, s2, s3, s4, s5, s6, s7); salida[5..0], entradacontador[7..0], relojmaquina : NODE; borrar: NODE; salidaff : DFF; BEGIN

9 Proceso Table TABLE %estado entrada salida proximo % %actual actual actual estado % ss,y =>salida[], ss; s0,0 =>B"100100", s1; s1,0 =>B"001100", s2; s2,0 =>B"010100",s3; s3,0 =>B"100100",s4; s4,0 =>B"100001",s5; s5,0 =>B"100010",s0; s6,0 => B"010010", s0; s7,0 =>B"000000",s0; s0,1 =>B"100100",s7; s1,1 =>B"001100",s7; s2,1 =>B"010100",s7; s3,1 =>B"100100",s7; s4,1 =>B"100001",s7; s5,1 =>B"100010",s7; s6,1 =>B"010010",s7; s7,1 =>B"000000",s6; END TABLE;

10 Proceso IF CASE CASE salida [] IS WHENB"100100" => entradacontador[] = H"1E"; WHENB"001100" => entradacontador[] = H"B4"; WHENB"010100" => entradacontador[] = H"1E"; WHENB"100100" => entradacontador[] = H"1E"; WHENB"100001" => entradacontador[] = H"B4"; WHENB"100010" => entradacontador[] = H"1E"; WHENB"010010" => entradacontador[] = H"0A"; WHENB"000000" => entradacontador[] = H"0A"; END CASE;

11 Proceso IF ELSE salidaff.clk = reloj100ms; cuenta.clock = reloj100ms; cuenta.sclr = borrar; cuenta.data[] = entradacontador[]; IF cuenta.q[7..0] < entradacontador[7..0] THEN salidaff.d = GND; borrar = GND; ELSE borrar = VCC; salidaff.d = VCC; END IF; %Fin etapa programador de tiempo% relojmaquina = salidaff.q;

12 salidas rojo1 = salida[5]; amari1 = salida[4]; verde1 = salida[3]; rojo2 = salida[2]; amari2 = salida[1]; verde2 = salida[0];

13 LPM_Counter LPM_WIDTHIntegerYesThe number of bits in the count, or the width of the q[] and data[] ports, if they are used. LPM_DIRECTIONStringNoValues are "UP", "DOWN", and "UNUSED". If the LPM_DIRECTION parameter is used, the updown port cannot be connected. When the updown port is not connected, the default for the LPM_DIRECTION parameter is "UP".

14 FFD

15 Simulación: Estados (detalle)

16 Simulación: Estados Los estados rojo-amarillo y verde -amarillo duran 3 s el estado rojo-verde dura 18 seg. (diurno) Intervalo rojo verde

17 Floorplan

18 EPM7128

19 ARQUITECTURA MAX 7000

20 macrocelda

21 I/0

22 JTAG

23 Conectory señales JTAG


Descargar ppt "Semáforo Versión.TDF AHDL Bloque de objetos ( entradas y salidas ) reset reloj100ms y rojo1 amarillo1 verde1 rojo2 verde2 amarillo2 semáforo."

Presentaciones similares


Anuncios Google