verilog中,对1位reg型变量赋值是否有必要用if语句判断其当前值
对一个1位的reg型变量a,如果a的值为0则将它赋为1,如果它本身就是1则保持不变,也就是说在不知道a当前值的情况下要使它为1。那么有没有必要写成:if(a==1'b0)...
对一个1位的reg型变量a,如果a的值为0则将它赋为1,如果它本身就是1则保持不变,也就是说在不知道a当前值的情况下要使它为1。那么有没有必要写成:
if(a==1'b0) a<=1'b1; else a<=a;
还是直接写 a<=1'b1 更节省硬件资源? 展开
if(a==1'b0) a<=1'b1; else a<=a;
还是直接写 a<=1'b1 更节省硬件资源? 展开
3个回答
展开全部
直接写a <= 1'b1就可以了(如果你是想让a一直有个确定的值1),如果你写成if(a==1'b0) a<=1'b1; else a<=a;那么要注意当a=x的时候a是会保持x值(顺便解释下信号有四值逻辑(0,1,x,z),8种驱动强度)。节省硬件资源应该不会,因为综合的时候,综合 工具会自动优化的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接写rega=1;就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询