怎么样在fpga ——verilog语言 并发过程中对一个变量两次赋值

怎么样在fpga——verilog语言并发过程中对一个变量两次赋值?如:always(....).........q<=q+1;......第二个always(,,,).... 怎么样在fpga ——verilog语言 并发过程中对一个变量两次赋值?如: always(....) ......... q<=q+1;...... 第二个always (,,,)........q<=q-1;......
我知道这个是错误的,但是怎么样改正呢应该?
展开
 我来答
happy19941128
2018-09-29 · TA获得超过132个赞
知道小有建树答主
回答量:147
采纳率:50%
帮助的人:12.5万
展开全部
//我经常用这一招:将q定义成两个变量,一个是q_W,一个是q_R。
//他俩互异代表真,相同代表假。
always(...)
q_W <= ((q_W ^ q_R) + 1) ^ q_R;
always(...)
q_R <= ((q_W ^ q_R) - 1) ^ q_W;
//读取改变量q的时候要使用(q_W ^ q_R)。
nisonhou
2011-10-23 · TA获得超过382个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:192万
展开全部
同一个变量不能在多个进程中进行赋值,否则编译器会报错,你可以这样写:
always @(*)
begin
if ----
q<=q+1;
else
q<=q;
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ppc68
2011-10-24 · TA获得超过581个赞
知道小有建树答主
回答量:1257
采纳率:100%
帮助的人:773万
展开全部
找个中间变量,再找个使能信号最后再做个选择
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂飙20码
2011-10-24
知道答主
回答量:20
采纳率:0%
帮助的人:14.9万
展开全部
可以在同一个always块里面赋值啊。为什么要两个?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weilei_321
2011-10-23
知道答主
回答量:16
采纳率:0%
帮助的人:8万
展开全部
并发的两次赋值?? 你的目的是为了什么 同时赋值不就产生了竞争么,结果就不确定了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式