Verilog中怎样把一个变量赋值成全1?
thx
设一个中间变量,按如下方式赋值。不过还是有个疑问,如果不知道位宽,如何去定义这个变量?
- initial begin
- a = 'h0;
- b = ~a;
- 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
