请教多个alwars里面对同个变量赋值报错问题
always @(negedge nRST)begin
reg_dat<= 0;
end
always @(posedge clk)
begin
reg_dat 《= reg_dat +1;
end
如此写法在 Quartus 里面是报出错的
可要实现这样的功能,要如何表达呢? nRST是异步复位信号?
应该和clk放到同一个always里面去 回复【楼主位】wangwenjia
-----------------------------------------------------------------------
一个变量不能在多个always块中被赋值。应该为:
always @(posedge clk or negedge nRST)
begin
if(!nRST)
reg_dat<= 0;
else
reg_dat 《= reg_dat +1;
end 回复【楼主位】wangwenjia
-----------------------------------------------------------------------
sorry 上面的赋值符号写错了(应是 '<=' )
always @(posedge clk or negedge nRST)
begin
if(!nRST)
reg_dat <= 0;
else
reg_dat <= reg_dat +1;
end 【1楼】 leacom
nRST是异步复位信号?
应该和clk放到同一个always里面去
-----------------------------------------------------------------------------
是的复位信号
【3楼】 lslong 大龙
-----------------------------------------------------------------------------
谢谢 我试下 3楼正解。 回复【2楼】lslong 大龙
回复【楼主位】wangwenjia
-----------------------------------------------------------------------
一个变量不能在多个always块中被赋值。应该为:
always @(posedge clk or negedge nrst)
begin
if(!nrst)
reg_dat<= 0;
else
reg_dat 《= reg_dat +1;
end
-----------------------------------------------------------------------
说出了原因。
页:
[1]