VHDL学习心得

问题1:

signal reg :std_logic_vector(2 downto 0) :="010" ;
这样声明一个signal 后面加【:=】后可以直接赋值,这个值是初始值,但是我用以下代码出现了问题

signal reg :std_logic_vector(2 downto 0) :="010" ;
begin
    process(a)
    begin
    test <= not reg;    
if(a = reg) then 
    alarm <= '0';
    reg <= "110";
else
    alarm <= '0';
end if;
end process; 

这样的代码 输出的是110 并不是初始化值010 ??

程序理论上上电后a/=010,为什么直接就进入if语句,将reg的值变成了110了?

如果把if语句中的reg<=110注释掉,则可以正常输出010

 

问题1认识:

1,.系统上电,则直接进入process执行一遍,不论信号是什么,我的理解是,上电后a的值也会突变,由不定变为定值

posted @ 2011-12-25 21:00  Freezing_  阅读(464)  评论(0编辑  收藏  举报