VHDL语句谁能帮我 解释一下 (在线等~急)

来源:百度知道 编辑:UC知道 时间:2024/05/30 12:53:41
library ieee;
 use ieee.std_logic_1164.all; STD_LOGIC_1164程序包
 use ieee.std_logic_arith.all; std_logic_arith程序包
entity kzq is
port(reset,set_t,start,test,clk,done:in std_logic;
cook,ld_8888,ld_clk,ld_done:out std_logic);
end entity kzq;
architecture art of kzq is
type state_type is(idie,lamp_test,set_clock,timer,done_msg);
signal nxt_state,curr_state:state_type;
begin
process(clk,reset)
begin
if reset='1'then
curr_state<=idie;
elsif clk'event and clk='1'then
curr_state<=nxt_state;
end if;
end process;
process(clk,curr_state,set_t,test,done)is
begin
nxt_state<=idie;
ld_8888<='0';
ld_done<='0';
ld_clk<='0';
case curr_state is
when lamp_test=>ld_8888<='1';cook<='0';
when set_clock=>ld_clk<='1';cook<='0';
when done_msg=>l

弄懂一个VHDL程序的功能的便捷方法是先看输入输出信号有哪些,然后从architecture里找出输入输出之间的逻辑关系。
第一个程序kzq不全,没有细看。
第二个程序ymq.vhd是七段译码器的程序,输入一个四位的二进制数(0到13),输出的是七段译码管上的信号。楼主可查一下“七段译码管”。
第三个程序dcnt6.vhd是一个减法计时器,计数值为6,即5,4,3,2,1,0,5,4,……这样数。
补充的dcnt10.vhd就是从第三个程序改了一下数,计数值改为10,每次从9倒数到0再回到9倒数。