顺序执行还是并行执行?
PulseCNT: Process(reset,CLK200k)
Begin
if RESET = '0' then
locaCntPulse <= "0000000000000000";
EnPulseOut <= '0';
EnPulseOut <= '0';
elsif (clk200k'EVENT AND CLK200k = '1') then
LocaCntPulse <= LocaCntPulse + "0000000000000001";
If (LocaCntPulse>"0000000000000001" and LocaCntPulse<"0000000000110001") then
EnPulseIN <= '1';
EnPulseOut <= '0';
elsif (LocaCntPulse="0000000000110001") then
EnPulseIN <= '0';
EnPulseOut <= '0';
elsif (LocaCntPulse>"0000000000110001" and LocaCntPulse<"1100000000110001")
EnPulseIN <= '0';
EnPulseOut <= '1';
elsif (LocaCntPulse="1100000000110001") then
EnPulseIN <= '0';
EnPulseOut <= '0';
end if;
end if;
end process PulseCNT;
请问,在第一次clk200k上升沿进入此process后,是对1进行判断还是对0进行判断?
即是这样运行吗:clk200k上升沿触发后,计数加1的同时,对LocaCntPulse进行判断,即对0进行判断,计数和判断结束后,推出process。下一次进入这个process后,LocaCntPulse才更新,此时LocaCntPulse才是1.
还是这种情况:clk200k上升沿触发后,顺序执行,对LocaCntPulse加1计数,对1进行判断,判断结束后,才推出process。第一种情况,EnPulseIN 变高前,有3个clock,即0,1,2;第二种情况,EnPulseIN 变高前,有2个clock,即,1,2;我个人觉得应该是第一种情况,但看过资料,说process内部,是顺序执行,应该是第二种情况,到底应该是哪种情况,请指点一二,谢谢!
|