icarus verilog:无法绑定变量

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

我试图将字符串作为参数传递给模块并收到此错误:

无法绑定变量

module dut #(parameter string CONFIG_FILE) 
(
input logic clk
);
endmodule

module main;
localparam string CONFIG_FILE = "Config.txt";
logic clk;
                   
dut
# (.CONFIG_FILE (CONFIG_FILE)) 
dut_inst
(.clk(clk));

endmodule

用伊卡洛斯编译:

> iverilog -g2012 tb2.sv
------
tb2.sv:12: error: Unable to bind variable `CONFIG_FILE' in `main'
1 error(s) during elaboration.
verilog system-verilog iverilog
1个回答
1
投票

我在 EDA Playground 上也遇到了

iverilog
错误。错误消息与您的不同,这可能意味着
iverilog
的版本不同。

这在 EDA Playground

上编译没有错误
module dut #(parameter CONFIG_FILE="file.txt") 
(
input logic clk
);
endmodule

module main;
localparam CONFIG_FILE = "Config.txt";
logic clk;
                   
dut
# (.CONFIG_FILE (CONFIG_FILE)) 
dut_inst
(.clk(clk));

endmodule

该版本显然不喜欢

string
与参数一起使用。但是,在这种情况下,没有必要使用
string
关键字。

它还需要参数的默认值。

iverilog
不支持所有 SystemVerilog 功能 (IEEE Std 1800-2017)。

© www.soinside.com 2019 - 2024. All rights reserved.