Código de programación de respuesta
Entrada a, b, c, d, e;
Entrada res, clk, clk 1;
salida[7:0]fila, ra;
salida[3:0 ]q 1;
Salida q1, q2, q3, q4, q5, pitido;
reg q1, q2, q3, q4, q5, pitido;
reg[7:0]fila,ra;
reg[3:0]q 1;
reg[2:0]Y;
siempre @(res o q1 o q2 o q3 o q4 o q5)
comenzar
if (!res)
comenzar q 1 <= 0;q2 & lt=0;q3 & lt=0;q4 & lt=0;q5 & lt=0;
Fin
Otro
Inicio
si(q1||q2||q3||q4||q5)
comenzar q 1 & lt;= q 1 & lt= q2q3 & lt= q3q4 & lt= q4q5 & lt= q5
Fin
Otro
Inicio
Si (a)
comenzar q 1 < ;=1;
finalizar
si no(b)
comenzar el segundo trimestre<=1;
Fin
else if(c)
Inicio tercer trimestre<=1;
Fin
else if(d)
Inicio en el cuarto trimestre<.
=1;
Fin
De lo contrario, si (e)
Iniciar q5 & lt=1;
Fin
Fin
Fin
Fin
Siempre@(posedgeclock)
Inicio
if(q 1< ;4'b1000)
q 1<= q 1+1;
Otros
q 1<= 4' b0000
If(q1)
Inicio
Caso(Q1)
0: línea de inicio<= 8 ' b 01111111; ra & lt= 8 ' b 00011000;
1: Línea inicial <= 8 ' b 10111111; ra & lt= 8 ' b 00011000; Fin
2: Línea inicial & lt= 8 ' b 11011111; lt= 8 ' b 00011000; Fin
3: Línea inicial & lt= 8 ' b 11101111; ra & lt= 8 ' b 00011000; = 8 ' b 11110111; ra & lt= 8 ' b 00011000; Fin
5: Línea inicial & lt= 8 ' b 11111011; ra & lt= 8 ' b 00011000; p>6: línea de inicio <= 8' b 11111101; ra <= 8' b 00011000; fin
7: línea de inicio <= 8' b 11111110; 00011000; finalizar
finalizar caso
finalizar
si no (q2)
iniciar
caso (Q1) )
0: línea inicial & lt= 8 ' b 01111111; ra & lt= 8 ' b 11111111; fin
1: línea inicial & lt= 8 ' b 10111111; & lt= 8 ' b 11111111; fin
2: Línea inicial & lt= 8 ' b 11011111; ra & lt= 8 ' b 00000011; = 8 ' b 11101111; ra & lt= 8 ' b 11111111; Fin
4: Línea de inicio & lt= 8 ' b 11110111; ra & lt= 8 ' b 11111111; p>5: línea de inicio <= 8' b 11111011; ra <= 8' b 11000000; final
6: línea de inicio <= 8' b 11111101; 11111111; Fin
7: Línea inicial & lt= 8 ' b 11111110; ra & lt= 8 ' b 11111111; Fin
Fin Caso
Fin
De lo contrario, si (q3)
Inicio
Caso (Q1)
0: Línea de inicio & lt= 8 ' b 01111111; & lt= 8 ' b 11111111; Fin
1: Línea de inicio & lt= 8 ' b 10111111; ra & lt= 8 ' b 11111111; línea & lt= 8 ' b 11011111; ra & lt= 8 ' b 00000011; Fin
3: Línea inicial & lt= 8 ' b 1110111
1; ra & lt= 8 ' b 11111111; Fin
4: Línea de inicio & lt= 8 ' b 11110111; ra & lt= 8 ' b 11111111; Línea inicial & lt= 8 ' b 11111011; ra & lt= 8 ' b 00000011; Fin
6: Línea inicial & lt= 8 ' b 11111101; ra & lt= 8 ' b 11111111; /p>
7: Línea inicial & lt= 8 ' b 11111110; ra & lt= 8 ' b 11111111; Fin
Fin caso
Fin
else if(q4)
inicio
caso (Q1)
0: línea inicial & lt= 8 ' b 01111111; ra & lt= 8 ' b 11000011; fin
1: línea de inicio & lt= 8 ' b 10111111; ra & lt= 8 ' b 11000011; fin
2: línea de inicio & lt= 8 ' b 11011111; ra & lt= 8 ' b 11000011; Fin
3: Línea de inicio & lt= 8 ' b 11101111; ra & lt= 8 ' b 11111111; :Línea inicial & lt= 8 ' b 11110111; ra & lt= 8 ' b 11111111; Fin
5: Línea inicial & lt= 8 ' b 11111011;
6: Línea de inicio <= 8 ' b 11111101; ra & lt= 8 ' b 00000011; Fin
7: Línea de inicio & lt= 8 ' b 11111110; lt= 8 ' b 00000011; fin
Fin de caso
Fin
else if(q5)
Inicio
Caso (Q1)
0: Línea inicial & lt= 8 ' b 01111111; ra & lt= 8 ' b 11111111; Fin
1: Línea inicial & lt= 8 ' b 10111111; ra & lt= 8 ' b 11111111; final
2: Línea inicial & lt= 8 ' b 11011111; ra & lt= 8 ' b 11000000; 3: Línea inicial <= 8' b 11101111; ra <= 8' b 11111111; Fin
4: Línea inicial <= 8' b 11110111; Fin
5: Línea inicial <= 8 ' b 11111011; ra & lt= 8 ' b 00000011; Fin
6: Línea inicial <= 8 ' b 11111101; & lt= 8 ' b 11111111; fin
7: Línea inicial & lt= 8 ' b 11111110; ra & lt= 8 ' b 11111111; >
Fin
Otro
Inicio
Caso (Q1)
0: Línea de inicio<= 8 ' b 01111111 ; & lt= 8 ' b00000000 fin
1: línea de inicio & lt= 8 ' b 10111111; ra & lt= 8 ' b00000000 fin
2: Línea de inicio <= 8' b 11011111; ra <= 8' b00000000 Fin
3: Línea de inicio <= 8' b 11101111; ra <= 8' b00000000 Fin
>4: Línea de inicio <= 8' b 11110111; ra <= 8' b00000000 Fin
5: Línea de inicio <= 8' b 11111011; b00000000 Fin
6: Línea de inicio <= 8 ' b 11111101; ra & lt= 8 ' b00000000 Fin
7: Línea de inicio & lt= 8 ' b 11111110; lt = 8 ' b00000000End
Fin de caso
Fin
Fin
Siempre @(posedge clk1)
Iniciar
if(RES & amp;& amp(a||b||c||d||e))
Iniciar
if(Y <2)bip = ' b 1;
else bip = ' b0
Y = Y+1; fin
if (!(res & amp& amp(a | | b | | c | | d | | e)))beep = ' B0;
Fin
Fin del módulo