如何在Verilog中使用参数化的位宽作为常量值?

问题描述 投票:0回答:1

请考虑以下示例:

parameter BITWIDTH = 16;

此作品:

logic [1:0][BITWIDTH-1:0] var = {16'h30, 16'h40};

这不起作用:

logic [1:0][BITWIDTH-1:0] var = {BITWIDTH'h30, BITWIDTH'h40}; 

如何在上面的代码行中使用参数?

verilog system-verilog hdl digital-logic register-transfer-level
1个回答
0
投票

SystemVerilog将按照定义良好的规则将数字文字的大小调整为正确的大小,因此不必定义大小:

logic [1:0][BITWIDTH-1:0] x = {'h30, 'h40};

但是,有些工具会发出警告,因此您可以像这样将文字转换为正确的大小:

logic [1:0][BITWIDTH-1:0] x = {BITWIDTH'('h30), BITWIDTH'('h40)};
© www.soinside.com 2019 - 2024. All rights reserved.