Red de conocimiento informático - Material del sitio web - ¿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.

¿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;

finalizar proceso;

finalizar comportamiento;