¿Cómo diseñar un circuito de visualización dinámica de tubo digital de 8 bits utilizando el lenguaje VHDL? ¡Es una pasantía de EDA! Héroes, por favor ayúdenme.
biblioteca IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED. TODOS;
la dinámica de la entidad es
Puerto ( clk : en std_logic;
reset: en std_logic;
din1 : en std_logic_vector( 6 hasta 0); --Señal de datos decodificada 1
din2: en std_logic_vector(6 hasta 0); --Señal de datos decodificada 2
din3: en std_logic_vector(6 hasta 0) ; --Señal de datos decodificada 3
din4: en std_logic_vector(6 hasta 0); --Señal de datos decodificada 4
shift: fuera std_logic_vector(3 hasta 0); señal de selección
bus4: out std_logic_vector(6 downto 0)); --señal de datos
finalizar dinámica;
arquitectura El comportamiento de la dinámica es
señal scan_clk:std_logic_vector(1 downto 0);
comenzar
proceso(clk,scan_clk,reset) -- Proceso de división de frecuencia
escaneo de variables :std_logic_vector(17 abajo a 0);
comenzar
si reset='1' entonces
escanear :="000000000000000000";
scan_clk<="00";
elsif clk'event y clk='1'entonces
scan:=scan+ 1;
finalizar si;
scan_clk<=scan(17 hasta 16);
finalizar proceso;
proceso(scan_clk, din1,din2,din3,din4) --Proceso de escaneo
comenzar
caso scan_clk es
cuando "00"=>
bus4<=din1;
turno <="0001";
cuando "01"=>
bus4<=din2;
turno<="0010";
cuando "10"=>
bus4<=din3;
turno<="0100";
cuando "11"=>
bus4<=din4;<
/p>
shift<="1000";
cuando otros=> bus4<="0000000";shift<="0000";
fin de caso; p>
finalizar proceso;
finalizar comportamiento;