verilog 中为什么不能再两个always中同时赋值同一参数

verilog中为什么不能再两个always中同时赋值同一参数... verilog 中为什么不能再两个always中同时赋值同一参数 展开
 我来答
lymnank
2011-01-03
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
因为那样是电路不可以实现的,一个always中要进行赋值必须是reg变量,一个reg变量对应在时序逻辑电路里是一个触发器的输出,你两个always模块中对同一个reg变量赋值是综合不出来的。。。我的理解是这样。所以写到一个模块里吧。如果还解决不了可以附代码出来,我帮你改改。本人菜鸟,多交流。
nowindee
推荐于2018-03-23 · TA获得超过1359个赞
知道答主
回答量:42
采纳率:0%
帮助的人:66.4万
展开全部
这是可综合风格的要求。如果仅仅是用于仿真,两个always块里同时赋值同一个reg参数,仿真器可能不会报error。但是如果进一步要用于综合,在硬件实现上会产生冲突,综合器是肯定会报错。所以基于可综合风格的要求,一个reg变量只能在一个always块里被赋值。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fineshang
2011-01-03 · 超过25用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:72.9万
展开全部
废话,硬件是并行处理的关系,两个硬件同时给一个参数赋值,必然会产生竞争关系,哪怕你的信号源是截然不同的。如果在某一时刻,同时收到两个信号,一个在还在Th,一个在Ts,你说硬件赋值哪一个?根据墨菲法则,绝对不能在两个always中同时赋值同一参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tonyytyyu
2011-01-14 · TA获得超过735个赞
知道小有建树答主
回答量:161
采纳率:100%
帮助的人:187万
展开全部
这个没有什么为什么,就是不可以。就好像人做事不能分身一样,你不可能在两个地方同时做两件事情。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fb835ab0f
2011-01-03
知道答主
回答量:17
采纳率:0%
帮助的人:8.5万
展开全部
这是语法规定,
在两个always中同时赋值同一参数,综合时会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式