verilog语法问题

在一个模块里如果有一个以上的always,那么它们是否能访问同一个reg?我在网上看到说一个寄存器只能在一个always里用,我的实际经历也是这样,但是今天看到同学的程序... 在一个模块里如果有一个以上的always,那么它们是否能访问同一个reg?我在网上看到说一个寄存器只能在一个always里用,我的实际经历也是这样,但是今天看到同学的程序用两个always里访问了相同的reg。reg到底能在几个always里用??条件是什么?? 展开
 我来答
bingpi1984
2015-11-12 · TA获得超过132个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:137万
展开全部
一个寄存器只能在一个 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里用一个reg计数,在另一个always里把值赋给输出
追答
always @ (posedge clk )begin
R_cnt <= 11111111
....
...
end

always @ (posedge clk) begin
R_out <= R_cnt;
...
...
end

这样吗?这样也可以,将自己赋给别的寄存器。
m2john
2015-11-12 · TA获得超过358个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:142万
展开全部
如果不要求代码是可以综合的,在几个always里访问都可以
追问
请问这里的综合简单说是什么意思?是不是可以在软件里设置的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式