Configuración de programación Eda
Biblioteca ieee
Usa IEEE.STD_Logic_1164.all;
Usa IEEE.STD_Logic_ unsigned all;
La entidad wj7157_count60 es
port(clk:in STD_logic;
bcd10, BCD 1:buffer STD_logic_vector(3 hasta 0);
presente: en std_logic;
co:out STD _ logic);
end wj 7157 _ count 60
El rtl de construcción de wj7157_count60 es
Señal co_1:STD_logic;
Inicio
Proceso(reloj, actual)
Inicio
Si existe='0', entonces BCD 1<="0000";
De lo contrario, si clk='1' y clk' evento, entonces
Si bcd1="1001", entonces BCD 1<=" 0000";
else BCD 1<= BCD 1+' 1';
Finalizar si; finalizar si; finalizar si; finalizar proceso;
Proceso( reloj, actual, bcd1)
Inicio
Si existe='0 ', entonces BCD 10<="0000";co _ 1<='0';
De lo contrario, si clk='1' y clk' evento, entonces
Si bcd1="1000" y bcd10="0101" entonces co_1<='1';
elsif BCD 1="1001" y bcd10="0101" luego BCD 10& lt;="0000";co_1<='0';
elsif BCD 1 = "1001" luego BCD 10<= BCD 1' 1';co_1& lt;='0';
Finalizar si; finalizar si;
co & lt= no co _ 1; finalizar RTL;
3. Programa VHDL de recuento del módulo de circuito decimal de tiempo12.
Biblioteca ieee
Usa IEEE.STD_logic_1164.all;
Usa IEEE.STD_logic_unsigned.all;
La entidad wj7157_count12 es p>
puerto(clk:in STD_logic;
bcd10, BCD 1:buffer STD_logic_vector(3 hasta 0));
p>end wj 7157_count 12; p>
El rtl de construcción de wj7157_count12 es
Iniciar
Proceso (reloj)
Iniciar
Si clk='1 evento 'y clk', entonces
Si bcd10="0001" entonces si bcd1="0001" entonces BCD 1<="0000" ;
si no BCD 1 <= BCD 1+' 1 ';
Fin si;
De lo contrario, si bcd1="1001 ", entonces BCD 1 <="0000";
else BCD 1 <= BCD 1+' 1 ';
finalizar si; finalizar si; finalizar si;
Finalizar proceso;
Proceso(reloj, bcd1) )
Inicio
Si clk='1' y clk' evento, entonces
Si bcd1="0001" y bcd10="0001", entonces BCD 10 <="0000";
elsif BCD 1 = "1001" luego BCD 10<= BCD 10 +' 1 ';
Finalizar si; finalizar si; end RTL;
Módulo de circuito decimal de tiempo cuenta12 forma de onda de simulación de sincronización
4. Decodificación dinámica y un programa VHDL que muestra la pantalla del módulo de escaneo.
Biblioteca ieee
Usa IEEE.STD_logic_1164.all;
Usa IEEE.STD_logic_unsigned.all;
La entidad wj 7157 _display es
puerto(din0, din1, din2, din3, din4, din 5: en STD _ logic _ vector (3 hasta 0);
clk: en std_logic;
led_sa, led_sb, led_sc, led_a, led_b, led_c, led_d, led_e, led_f, led_g, led_DP:out STD_logic);
end wj 7157 _ display;
El la arquitectura de wj7157_display se muestra como
Selección de señal:STD _ logic _ vector(6 hasta 0);
Selección de señal:STD _ logic _ vector(2 hasta 0);
Número de señal: std_logic_vector(3 hasta 0);
Señal s: STD_logic_vector(2 hasta 0);
Inicio p>
led_sa<=sel(0);led_sb<=sel(1);led_sc<=sel(2); _ b & lt= seg(1);
led _ c & lt= seg(2); led _ d & lt= seg( 3);
led _ f & lt= seg(5); led _ g & lt= seg(6);
Proceso (reloj)
Inicio p>
Si clk evento y clk='1' entonces
Si s="101 "entonces s & lt="000" ;
si no s & lt= s+ ' 1 ';
Finalizar si; finalizar si; finalizar proceso;
Proceso (s, din0, din1, din2, din3, din4, din5)
Inicio
Si s="000 "entonces sel & lt="000";num & lt= din4led _ dp & lt='0' ;Elcipher
s="001 " Luego seleccione& lt="001";num & lt= din5led _ dp & lt='0';Elcipher
s="010 "Luego seleccione& lt="010";num & lt= din2led _ dp & lt='0';Elsifer
s="011 "Luego seleccione& lt= "011";num & lt= din3led _ dp & lt='0';Elsifer
s="100 "Luego seleccione& lt="100";num & lt= din0led _ dp & lt='0';Elsifer
s="101 "Luego seleccione& lt="101";num & lt= din 1; led _ dp & lt='0';else sel & lt="XXX"; num & lt="XXXX"; if; finalizar proceso;
seg & ltcuando Cuando num = 0 = " 011111 "
Cuando num = 1, es "000
0110"
Cuando num = 2, es "1011011"
Cuando num = 3, es "100111"
Cuando num = 4, es "1100110" p>
Cuando num = 5, es "11011"
Cuando num = 6, es "11111"
Cuando num = 7, es es "0000111"
Cuando num = 8, es "111111"
Cuando num = 9, es "110111"
Cuando num = 10, es "110111"
"11111100 "Cuando num = 11 en otro caso
"0111001" cuando num = 12 en otro caso
"10111110" cuando num = 13 en otro caso
"1111001" cuando num = 14 en caso contrario
"1110001" cuando num = 15 en caso contrario
"0000000";
El módulo de escaneo de visualización y decodificación dinámica muestra formas de onda de simulación de temporización
5.
Biblioteca ieee
Usa IEEE.STD_logic_1164.all;
Usa IEEE.STD_logic_unsigned.all;
La entidad wj 7157 _ring es
puerto(clk1, clk 2:en STD_logic;
m1,m10,s1,s 10:en STD_logic_vector (3 hasta 0);
q: out STD _ logic);
end wj 7157 _ ring
El comportamiento estructural de wj 7157 _ ring es
Inicio
Proceso (m1, m10, s1, s10)
Inicio
Si m10="0101 " y m1=" 1001 ", entonces
Si s10=" 0101 ", entonces
Si s1="0101 " o s1="011 " o s1="1001 "
entonces q<= clk 1;
fin if;end if;
elsif m10="0000" y m1="0000" y s10="0000" y s1=" 0000 "Entonces q & lt= clk2
elseq & lt='0';
Finalizar si; finalizar el proceso; finalizar el comportamiento;
Módulo de diseño de circuito de cronometraje Forma de onda de simulación de temporización de timbre
6. módulo de circuito divisor de frecuencia div (5 MHz dividido en 1 kHz, 2 kHz, 5 Hz)
Biblioteca ieee
Utilice IEEE.STD_logic_1164.all;
Utilice IEEE.STD_logic_unsigned. all;
La entidad wj_div es
puerto ( clk_50MHz: in std_logic;
clk_2kHz, clk_1kHz, clk_5Hz:out STD_logic);
end wj_div
El rtl de construcción de wj_div es
Señales q1, q2, q3: rango de enteros 0 a 10000100
Inicio
Proceso (clk_50MHz)
Inicio
Si eventos clk_50MHz='1' y clk_50MHz', entonces
Si q1=24999, entonces
q 1<=0;clk_2kHz<= '1';
else q 1 & lt;= q 1+1; clk _ 2kHz & lt='0';
Finalizar si; finalizar si;
Finalizar proceso;
Proceso (clk_50MHz)
Iniciar
Si clk_50MHz='1 ' y clk_50MHz ' evento, entonces
Si q2=49999, entonces q2<=0;clk_1 khz<='1';
si no q2<= Q2+1;clk_1 khz<=' 0' ;
Finalizar si; finalizar si;
Finalizar proceso;
Proceso (clk_50MHz)
Iniciar
Si los eventos clk_50MHz='1' y clk_50MHz', entonces
Si q3=9999999, entonces q3 & lt=0;clk _ 5Hz & lt='1';
si no, q3 & lt= Q3+1; pulsar _ 5Hz & lt='
0';
Finalizar si; finalizar si;
Finalizar proceso;
Finalizar RTL;
Debido a demasiadas simulaciones, el software Las condiciones de simulación son insuficientes y no se puede obtener la forma de onda de simulación de temporización div del módulo de circuito divisor de frecuencia.
7. Programa VHDL del módulo de circuito de cinco bandas div5.
Biblioteca ieee
Usa IEEE.STD_logic_1164.all;
Usa IEEE.STD_logic_unsigned.all;
La entidad wj7157_div5 es p>
port(clk:in STD_logic;
q:out STD_logic);
end wj 7157_div 5 ;
El rtl de construcción de wj7157_div5 es
Señal q 1: STD_logic_vector (2 hasta 0
Inicio
Proceso (reloj)
Inicio);
Si clk='1' y clk' evento, entonces
Si q1="100", entonces q 1 & lt;="000";q & lt='1 ';
else q 1 & lt;= q 1+' 1 ';q & lt='0';
Fin si; Fin si;
Finalizar proceso; finalizar RTL;
Forma de onda de simulación de sincronización
8. Programa VHDL del módulo de circuito antirrebote qudou.
Biblioteca ieee
Usa IEEE.STD_logic_1164.all;
Usa IEEE.STD_logic_unsigned.all;
La entidad wj7157_qudou es p>
puerto(clk:en STD_logic;
din:en std_logic;
dout:out STD_logic
Fin;
);Arquitectura RTL wj 7157 _qudou es
Señal CNT:STD _ lógica _ vector(6 hasta 0);
Inicio
Proceso (reloj)
Inicio
Si clk event y clk='1' entonces
Si din = 0, entonces
Si CNT = " 1100011 ", luego dout & lt= '0';cnt & lt="0000000";
si no cnt & lt= CNT+1; dout & lt='1';
Finalizar si;
else dout & lt='1';
Finalizar si; finalizar si;
Finalizar proceso;
Debido a demasiadas simulaciones y condiciones de simulación de software insuficientes, no se puede obtener la forma de onda de simulación de temporización de curvatura del circuito antirrebote.
9. Programa VHDL para reemplazar el módulo de circuito mux2
Biblioteca ieee
Usando IEEE.STD_logic_1164.all;
La entidad wj7157_mux2 es
puerto (a, b: en bits;
sel: en bits;
q: bit de salida
Entidad final); wj 7157 _ mu x2;
La arquitectura de wj7157_mux2 es
Inicio
q & lt=a cuando sel=' 0 'De lo contrario b;
Fin de la arquitectura uno;
Módulo de circuito dos en uno mux2 forma de onda de simulación de temporización
Programa VHDL del diseño del módulo de circuito dos en uno mux4
Biblioteca ieee
Usando IEEE.STD_logic_1164.all;
Usando IEEE.STD_logic_unsigned.all;
La entidad wj7157_mux42 es
port(a, b, c, d: en STD _ logic _ vector (3 hasta 0);
sel: en bits;
q1, Q2:out STD_logic_vector (3 hasta 0));
Entidad final wj 7157_mux 42;
wj7157_mux42 Una de las estructuras es
Inicio
Proceso (selección)
Inicio
Si sel='0 ', entonces q 1 & lt ;= c; & lt;= a; q2 & lt= b;
Finalizar si;
Finalizar proceso;
Finalizar uno;