语序问题
时间:10-02
整理:3721RD
点击:
比如这个时序
always@(posedge clk or negedge nrst)begin
if(~nrst) BCD<=0;
else BCD<=BCD+1;
if (BCD==9) BCD<=0;
end
请问这里的
if (BCD==9) 中的BCD是BCD<=BCD+1语句中的左边的BCD还是右边的BCD?
急!
always@(posedge clk or negedge nrst)begin
if(~nrst) BCD<=0;
else BCD<=BCD+1;
if (BCD==9) BCD<=0;
end
请问这里的
if (BCD==9) 中的BCD是BCD<=BCD+1语句中的左边的BCD还是右边的BCD?
急!
有这么写的吗,这样容易让脑海中生成的RTL电路产生歧义。
always@(posedge clk or negedge nrst)begin
if(~nrst)
BCD<=0;
else if (BCD==9)
BCD<=0;
else
BCD<=BCD+1;
end
这样写,不是一目了然?
谢谢!那你知道if里面的判断语句,在事件队列中是放在哪步执行的,在阻塞赋值还是非阻塞赋值之后?
说实话,软件上的解释我还真不清楚,但这在硬件RTL设计上显然是不合理的。
这不是哪步执行的问题,你写的这个RTL是硬件描述语言,综合的结果是映射为电路结构,结果就是异步置位计数器。
好的,这就是写可以综合电路的语句