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的值也会突变,由不定变为定值