fpga中在某个时钟周期给一个reg或wire变量赋值,从下一个时钟开始不赋值,那么输出会保持原来的值吗

always@(posedgeclk)beginif(!rst)cnt<=0;elsebeigncnt<=cnt+1;if(cnt==0)a<=1;if(cnt==100... always@(posedge clk)
begin
if(!rst) cnt<=0;
else beign
cnt<=cnt+1;
if(cnt==0) a<=1;
if(cnt==100) a<=0;
end
end
请问在cnt为1到99期间a的值是多少
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
kyo4749
推荐于2017-09-18 · TA获得超过433个赞
知道小有建树答主
回答量:294
采纳率:100%
帮助的人:188万
展开全部
首先从你的问题看你没有理解reg和wire,reg是寄存器,是用时钟驱动锁存数据的,所以给用时钟给变量赋值只能是reg;wire是相当于连在一个reg后面的线,这个线上的值由前面的reg或者是一些运算结果得到的,和时钟基本上没有直接关系。
然后是你的问题,if语句,主要应用场景主要是组合逻辑和时序逻辑,在组合逻辑中,一定要把所有的条件都写全,不然会造成一些不想要的结果(具体是什么我也不知道),反正要保证每一个条件都写全了;在逻辑时序中,也就是用时钟驱动的时候,就相当于条件满足一次就执行一次,不满足的时候就锁存当前的值,相当于if。。。。if.......else a<=a;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式