Buscar: programa de prueba de simulación Verilog HDL para contador de resta decimal.
La función de este programa es diseñar un contador decimal con al menos 4 dígitos, que tiene las funciones de sumar, restar y configurar números, y puede mostrar los resultados del conteo a través del tubo digital. Suena una alarma audible cuando la reducción llega a cero. Alarma cuando el sumando es 9999.
- En este programa, cuando clk se conecta a 1KHZ, los bits cambian cada segundo.
-D:\VHDL\test\test\four\tres\cascada de tubos digitales de 4 bits\más conteo-
¿Biblioteca? es decir
¿Usar? IEEE .STD_logic_1164 todos;
¿Uso? IEEE . STD _ lógica _ sin firmar todos;
-
¿Entidad? cuenta atrás? Sí
Puerto (clk: in? std_logic
? clr: in? std_logic
? boy: in? std_logic
p>? std_logic_vector(1? tonto? 0); ? clkup: std_logic_vector(? 1? ¿no? 0);? std_logic_vector(3? ¿no confías? 0);
Altavoz: ¿Fuera? ;
¿Fin? ¿entidad? Contar;
-
¿Edificio? ¿Arte? ¿de? cuenta atrás? ¿Es
una señal? dout: STD_LOGIC_VECTOR(3?Tangtuo?0);
¿Señal? dout0, dout1, dout2, dout3: STD_LOGIC_VECTOR (3? Donto? 0);
¿Señal? Contador: std_logic_vector(1? Tangto? 0);
Inicio
-Proceso 1.
Uno:? -Este proceso consiste en que después de que el tubo digital cambia de 0 a 9, la posición del tubo digital cambia secuencialmente.
El proceso (clkup) es
Iniciar
Si (en="00 ") entonces
Si (clkup'event? entonces Qué. clkup='1 ') entonces
¿Y si? clr='1'? ¿Entonces qué? punto0 lt="0000"; punto 1 lt;="0000"; punto2 lt="0000"; punto3 lt="0000"; muchacho='1 '? ¿Entonces qué? dout0 lt= dindout 1 lt;= dindout2 lt= dindout3 lt= din
elsif(dout 0 gt;="1001 ")¿Y luego qué? dout0 lt="0000";? -Mostrar un dígito.
if(dout 1 gt;="1001 ")¿Y luego qué? salida 1 <="0000"? -Mostrar decenas de dígitos.
if(dout 2 gt;="1001 ")¿Y luego qué? dout2 lt="0000";? -Mostrar cientos de dígitos.
if(dout 3 gt;="1001 ")¿Y luego qué? dout3 lt="0000"; - Mostrar miles de dígitos
¿Y si? dout3 lt= dout 3 1;
¿Fin? ¿Qué pasa si;
¿De lo contrario? dout2 lt= dout 2 1;
¿Fin? ¿Qué pasa si;
¿De lo contrario? dout 1 lt;= dout 1 1;
¿Fin? ¿Qué pasa si;
¿De lo contrario? dout0 lt= dout 0 1;
¿Fin? Si;
¿Fin? Si;
¿Fin? Si;
¿Fin? Proceso;
-
¿Proceso (clk)? Sí
Empezar
¿Y si? (¿clk'event? ¿Y entonces qué. clk='1 ')? Entonces
if(dout0="1001 "? Entonces qué. dout1="1001 "? Entonces qué. dout2="1001 "? Entonces qué. dout3="1001 ") Entonces
altavoz='1';? ¿De lo contrario? Speaker lt='0';
¿Fin? Si;
¿Fin? si;?
¿Fin? ¿proceso? ;
-Proceso 2.
Dos:
¿Proceso (clk)? Sí
Iniciar
¿Y si? (¿clk'event? ¿Y entonces qué. clk='1 ')? Entonces
-
contador lt= contador ' 1 ';? -
¿Caso? ¿encimera? Sí-
¿Cuándo? " 00 " =>dout lt=?dout 1;? -
¿Cuándo? " 01"= >dout lt=?dout2? -
¿Cuándo? " 10"= >dout lt=?dout3? -
¿Cuándo? " 11"= >dout lt=?dout0? -
¿Cuándo? otro = gtNULL? -
¿Fin? Caso;-
¿Fin? Si;
-?
¿Fin? ¿proceso? 2;
sel lt=counter;
-Proceso 3.
Tres: - Este proceso consiste en agregar 1 cuando se ingresa una salida de reloj, y el número mostrado en el tubo digital aumentará en 1 en consecuencia hasta que el tubo digital cambie de 1 a 9;
¿El proceso (dout) es
inicio
el caso? ¿Dudar? ¿Sí?
¿Cuándo? ¿"0000"?=gt? Puchero lt="11111100";
¿Cuándo? ¿"0001"?=gt? Puchero lt="01100000";
¿Cuándo? ¿"0010"?=gt? Puchero lt="11011010";
¿Cuándo? ¿"0011"?=gt? Puchero lt="11110010";
¿Cuándo? ¿"0100"?=gt? Puchero lt="01100110";
¿Cuándo? ¿"0101"?=gt? Puchero lt="10110110";
¿Cuándo? ¿"0110"?=gt? Puchero lt="10111110";
¿Cuándo? ¿"0111"?=gt? Puchero lt="11100100";
¿Cuándo? ¿"1000"?= gt? Puchero lt="11111110";
¿Cuándo? ¿"1001"?=gt? Puchero lt="11110110";
¿Cuándo? ¿otro? =gt? Pout lt="00000001";
¿Fin? Caso;
¿Fin? ¿proceso? Tres;
-
¿Fin? ¿arquitectura? Art;
-?D:\VHDL\test\test\four\tres\cascada de tubos digitales de 4 dígitos\cuenta regresiva-.
¿Biblioteca? es decir
¿Usar? IEEE .STD_logic_1164 todos;
¿Uso? IEEE . STD _ lógica _ sin firmar todos;
-
¿Entidad? cuenta? Sí
Puerto (clk: in? std_logic
? clr: in? std_logic
? boy: in? std_logic
p>? std_logic_vector(1? tonto? 0); ? clkdn: std_logic_vector(? 1? ¿no? 0);? std_logic_vector(3? ¿no confías? 0);
Altavoz: ¿Fuera? ;
¿Fin? ¿entidad? countdn
-
¿Edificio? ¿Arte? ¿de? cuenta? ¿Es
una señal? dout, pdout: STD_LOGIC_VECTOR (3? Donto? 0);
¿Señal? dout5, dout6, dout7, dout8: STD_LOGIC_VECTOR (3? ¿Donto? 0);
¿Señal? Contador: std_logic_vector(1? Tangto? 0);
Inicio
-Proceso 1.
uno1:? -Este proceso consiste en que después de que el tubo digital cambia de 0 a 9, la posición del tubo digital cambia secuencialmente.
El proceso (clkdn) es
Iniciar
¿Si? es="01 "Entonces
si(dout6="0000 "? ¿Entonces qué? dout7="0000 "? ¿Entonces qué? dout8="0000 "? Entonces qué.
dout5="0000 ") entonces
speaker lt='1'; altavoz lt='0';?
¿Fin? si;?
if(clkdn'event? Entonces qué. clkdn='1 ') Entonces
¿Y si? clr='1'? ¿Entonces qué? dout5 lt="0000"; dout6 lt="0000"; dout7 lt="0000"; dout8 lt="0000"; muchacho='1 '? ¿Entonces qué? dout5 lt= dindout6 lt= dindout7 lt= dindout8 lt= din
elsif(dout5="0000 ")¿Y luego qué? dout5 lt="1001" - muestra un solo dígito.
if(dout6="0000 ")¿Y entonces? dout6 lt="1001"; - Muestra decenas de dígitos.
if(dout7="0000 ")¿Y entonces? dout7 lt="1001"; - Muestra el dígito de las centenas.
¿Si (dout8="0000 ")entonces? dout8 lt="1001" - Muestra miles de dígitos.
¿Y si? dout8 lt= dout 8-1;
¿Fin? ¿Qué pasa si;
¿De lo contrario? dout7 lt= dout 7-1;
¿Fin? ¿Qué pasa si;
¿De lo contrario? dout6 lt= dout 6-1;
¿Fin? ¿Qué pasa si;
¿De lo contrario? dout5 lt= dout 5-1;
¿Fin? Si;
¿Fin? Si;
¿Fin? Si;
¿Fin? ¿proceso? uno 1;
-Proceso 2.
Dos:
¿Proceso (clk)? Sí
Iniciar
¿Y si? (¿clk'event? ¿Y entonces qué. clk='1 ')? Entonces
-
contador lt= contador ' 1 ';? -
¿Caso? ¿encimera? Sí-
¿Cuándo? " 00 " =>;dout lt=?dout6-
¿Cuándo? " 01"= >dout lt=?dout7-
¿Cuándo? " 10"= >dout lt=?dout8-
¿Cuándo? " 11"= >dout lt=?dout5? -
¿Cuándo? otro = gtNULL? -
¿Fin? Caso;-
¿Fin? Si;
-?
¿Fin? ¿proceso? 2;
sel lt=counter;
-Proceso 3.
Tres: - Este proceso consiste en agregar 1 cuando se ingresa una salida de reloj, y el número mostrado en el tubo digital aumentará en 1 en consecuencia hasta que el tubo digital cambie de 1 a 9;
¿El proceso (dout) es
inicio
el caso? ¿Dudar? ¿Sí?
¿Cuándo? ¿"0000"?=gt? Puchero lt="11111100";
¿Cuándo? ¿"0001"?=gt? Puchero lt="01100000";
¿Cuándo? ¿"0010"?=gt? Puchero lt="11011010";
¿Cuándo? ¿"0011"?=gt? Puchero lt="11110010";
¿Cuándo? ¿"0100"?=gt? Puchero lt="01100110";
¿Cuándo? ¿"0101"?=gt? Puchero lt="10110110";
¿Cuándo? ¿"0110"?=gt? Puchero lt="10111110";
¿Cuándo? ¿"0111"?=gt? Puchero lt="11100100";
¿Cuándo? ¿"1000"?= gt? Puchero lt="11111110";
¿Cuándo? ¿"1001"?=gt? Puchero lt="11110110";
¿Cuándo? ¿otro? =gt? Pout lt="00000001";
¿Fin? Caso;
¿Fin? ¿proceso? Tres;
-
¿Fin? ¿arquitectura? Art;
-Pout2 Seleccione 1 programa-
¿Biblioteca? es decir
¿Usar? IEEE .STD_logic_1164 todos;
¿Uso? IEEE . STD _ lógica _ sin firmar todos;
-
¿Entidad? ¿Abadejo? Sí
Puerto (A: In? std_logic_vector (7? Tang Tuo? 0);
? B: In? std_logic_vector (7? Tang Tuo? 0);?
? p>
? c: fuera? std_logic_vector(7? donto? 0);?
¿Fin? ¿entidad? Haciendo pucheros;
-
¿Construyendo? ¿Arte? ¿de? ¿Abadejo? Sí
Iniciar
Proceso (en, a, b) Sí
Iniciar
¿Si? es="00 "¿Y luego qué? c lt= a;
¿Y si? c lt= b;
¿Fin? Si;
¿Fin? ¿proceso? uno 1;
¿Fin? ¿arquitectura? Bellas Artes;
- Programa SEL 2 Choice 1.
¿Biblioteca? es decir
¿Usar? IEEE .STD_logic_1164 todos;
¿Uso? IEEE . STD _ lógica _ sin firmar todos;
-
¿Entidad? sel? Sí
Puerto (A: ¿En? std_logic_vector (1? Tang Tuo? 0);
? B: ¿En? std_logic_vector (1? Tang Tuo? 0);?
? p>
? c: fuera? std_logic_vector(1? donto? 0);?
¿Fin? ¿entidad? sel
-
¿Arquitectura? ¿Arte? ¿de? sel? Sí
Iniciar
Proceso (en, a, b) Sí
Iniciar
¿Si? es="00 "¿Y luego qué? c lt= a;
¿Y si? c lt= b;
¿Fin? Si;
¿Fin? ¿proceso? uno 1;
¿Fin? ¿arquitectura? Arte;