ModelSim中Verilog代码报错原因咨询:string_literal.v(3)语法错误
Verilog代码语法错误排查
错误原因
string是SystemVerilog(IEEE 1800标准)新增的数据类型,ModelSim默认采用传统Verilog(IEEE 1364标准,如Verilog-2001及更早版本)编译时,无法识别string关键字,因此在第3行string a;处触发语法错误。
解决方法
方案1:切换到SystemVerilog编译模式
在ModelSim中编译时,指定使用SystemVerilog标准:
- 命令行方式:执行
vlog -sv string_literal.v - GUI方式:将目标文件的属性设置为SystemVerilog类型后再编译
方案2:改用传统Verilog兼容的字符串实现
如果需要兼容传统Verilog标准,用reg数组存储字符串(每个ASCII字符占8位),修改后的代码如下:
module string_l(); reg [8*5-1:0] a; // 5个字符,每个占8位,总计40位 initial begin a = "Hello"; $display ("@%gns a=%s", $time, a); end endmodule
内容的提问来源于stack exchange,提问作者Meher81
相关产品推荐
相关产品推荐

