【发布时间】:2014-05-08 23:06:26
【问题描述】:
我在将字符串值传递给 SystemVerilog 中的通用参数时遇到问题。 模块的实例化如下所示。内存将一些值写入 FILE_OUT,这是一个通用参数。 我需要为不同的内存实例生成两个不同的文件——“file1.txt”和“file2.txt”。
最初我尝试使用`define 指令:
if(ch_ID==1)
`define FILE_OUT file1.txt
else
`define FILE_OUT file2.txt
但是,由于 `define 创建全局宏,模拟总是给出输出“file2.txt”
然后我尝试将文件名作为参数传递
if(ch_ID==1)
parameter FILE_OUT= "file1.txt"
else
parameter FILE_OUT= "file2.txt"
memory #(.FILE_OUT (FILE_OUT)) mem
这给了我错误-“FILE_OUT”应该是一个常数值”。
SV 不支持字符串值作为参数吗?如果不是,为什么当我使用`define 时它接受字符串值?
有人可以帮我解决这个问题吗?
【问题讨论】: