微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Verilog中怎样把一个变量赋值成全1?

Verilog中怎样把一个变量赋值成全1?

时间:10-02 整理:3721RD 点击:
如题,变量是一个一维数组,非常长,赋值成全零就=0就可以,在不清楚位宽的情况下,那怎么赋值成全1呢?
thx



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

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

复制代码


这样的,变量的位宽是确定的,但是每次赋值所赋值的范围和宽度是不同的。我找到一个办法,前提是要知道每次赋值的宽度,然后用{NUM{1’b1}}来赋值,NUM是位宽。

VERILOG的位宽如果不是固定值,则可以用参数定义,但不能用变量来定义位宽,
你说的这种情况就这样
N: data_width
a = N{1‘b1};



    keep verilog cookbook...

(1<<N)-1 也可以.

直接 a = -1就可以了……=_=不过注意不要用signed



  前辈您好,我在用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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top