在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10188|回复: 7

[求助] Verilog中怎样把一个变量赋值成全1?

[复制链接]
发表于 2014-7-18 11:03:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如题,变量是一个一维数组,非常长,赋值成全零就=0就可以,在不清楚位宽的情况下,那怎么赋值成全1呢?
thx
发表于 2014-7-18 12:36:06 | 显示全部楼层
回复 1# kekeguda


     设一个中间变量,按如下方式赋值。不过还是有个疑问,如果不知道位宽,如何去定义这个变量?



  1. initial begin
  2.    a = 'h0;
  3.    b = ~a;
  4. end


复制代码
 楼主| 发表于 2014-7-18 14:42:10 | 显示全部楼层
回复 2# rvnistelrooy

这样的,变量的位宽是确定的,但是每次赋值所赋值的范围和宽度是不同的。我找到一个办法,前提是要知道每次赋值的宽度,然后用{NUM{1’b1}}来赋值,NUM是位宽。
发表于 2014-7-18 20:43:46 | 显示全部楼层
VERILOG的位宽如果不是固定值,则可以用参数定义,但不能用变量来定义位宽,
你说的这种情况就这样
N: data_width
a = N{1‘b1};
发表于 2014-7-19 13:01:25 | 显示全部楼层
回复 1# kekeguda


    keep verilog cookbook...
发表于 2014-7-31 05:37:07 | 显示全部楼层
(1<<N)-1 也可以.
发表于 2014-7-31 12:13:11 | 显示全部楼层
直接 a = -1就可以了……=_=不过注意不要用signed
发表于 2015-4-30 10:54:14 | 显示全部楼层
回复 4# autim


  前辈您好,我在用verilog导入到cadence时提示如下错误,但是我在.v文件中没发现错误,请您帮忙看一下。/home/dianke/ic5141/design/sar_logic.v
assign start   =!en_! & en_reg;
                    |
ncvlog: *E,EXPSMC (/home/dianke/ic5141/design/sar_logic.v,28|20): expecting a semicolon (';') [6.1(IEEE)].
                 begin
                     |
ncvlog: *E,CSISYX (/home/dianke/ic5141/design/sar_logic.v,110|21): case item syntax error [9.5(IEEE)].
                default:
                      |
ncvlog: *E,NOTSTT (/home/dianke/ic5141/design/sar_logic.v,114|22): expecting a statement [9(IEEE)].
               endcase
                     |
ncvlog: *E,NOTSTT (/home/dianke/ic5141/design/sar_logic.v,119|21): expecting a statement [9(IEEE)].

module __nclib.sar_logic:module

errors: 4, warnings: 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 03:45 , Processed in 0.019737 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表