verilog语法问题
在一个模块里如果有一个以上的always,那么它们是否能访问同一个reg?我在网上看到说一个寄存器只能在一个always里用,我的实际经历也是这样,但是今天看到同学的程序...
在一个模块里如果有一个以上的always,那么它们是否能访问同一个reg?我在网上看到说一个寄存器只能在一个always里用,我的实际经历也是这样,但是今天看到同学的程序用两个always里访问了相同的reg。reg到底能在几个always里用??条件是什么??
展开
2个回答
展开全部
一个寄存器只能在一个 always 块里面赋值。
这个寄存器可以作为条件出现在任意的别的always块中。
always @ (posedge clk )begin
R_cnt <= 11111111
....
...
end
always @ (posedge clk) begin
if (R_cnt == xxx)
R_1 <= 1111111;
...
...
end
always @ (posedge clk) begin
if (R_cnt == xxxxxx)
R_2 <= 222222;
...
...
end
这个寄存器可以作为条件出现在任意的别的always块中。
always @ (posedge clk )begin
R_cnt <= 11111111
....
...
end
always @ (posedge clk) begin
if (R_cnt == xxx)
R_1 <= 1111111;
...
...
end
always @ (posedge clk) begin
if (R_cnt == xxxxxx)
R_2 <= 222222;
...
...
end
更多追问追答
追问
我看到同学的代码一个always里用一个reg计数,在另一个always里把值赋给输出
追答
always @ (posedge clk )begin
R_cnt <= 11111111
....
...
end
always @ (posedge clk) begin
R_out <= R_cnt;
...
...
end
这样吗?这样也可以,将自己赋给别的寄存器。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询