|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
1.process 语句里的语句是顺序语句还是并行语句?
process(clk)
begin
if rising_edge(clk) then
S_1<=not S_1;
S_2<=S_1;
end if;
end process;
在上面这个程序中,S_1和S_2都是signal ,std_logic。
我现在假设S_1初值是0,那么当时钟上升沿过后,S_1变成1,S_2变成0。
现在问题来了:书上说process里的语句是顺序语句,也就是所process中的语句是顺序执行,那就意味着程序执行完S_1<=not S_1;再执行S_2<=S_1; 那照这个逻辑的话,S_2应该是1才对啊?
2.signal和variable的区别是什么?
同样是上面的程序,我把S_1换成变量(Variable),S_2依然是信号(signal),那么结果就变了:还是假设S_1是0(注意此时S_1是变量);当时钟上升沿过后;S_1变成1;S_2变成1;为什么? |
|