一个关于赋值执行顺序的程序问题
begins_t1<=s_in;
s_t2<=s_t1;
end
assign s_out=s_t1&(!s_t2);
在这两个赋值语句中,先执行s_t1<=s_in,在执行第二行时,就把此时s_t1的值赋给s_t2,最后s_t1和s_t2的值相同。而结果中的s_out总是1,请问我哪里理解错了?谢谢! 兄弟,begin...end之间你采用的非阻塞语句,s_t1<=s_in; s_t2<=s_t1; 是同时进行的,不是你上边理解的
先执行s_t1<=s_in,在执行第二行。最后s_t1和s_t2的值是不相同的,s_t2值是s_t1前一个时钟状态的值。
所以最s_out的结果中当然是1了 恩 分析的对
页:
[1]