Red de conocimiento informático - Conocimiento sistemático - Buscar: programa de prueba de simulación Verilog HDL para contador de resta decimal.

Buscar: programa de prueba de simulación Verilog HDL para contador de resta decimal.

Utilice VHDL.

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;