SystemVerilog支持icarus(iverilog编译器)

时间:2017-04-24 18:47:25

标签: verilog hardware system-verilog iverilog icarus

我在Mac上使用iverilog,编译包含always_ff和always_comb块的代码时遇到问题。 ModelSim编译这些代码没有任何问题。是否可以配置iverilog以支持always_ff和always_comb块,或者编译器不支持它们

提前致谢!

2 个答案:

答案 0 :(得分:7)

AndresM的答案并不完全准确。 Icarus verilog的默认值为IEEE Std 1364-2005,它是受更好支持的标准,但可以使用-g开关进行更改。来自man iverilog

-g1995 | -g2001 | -g2001-noconfig | -g2005 | -g2005-sv | -g2009 | -g2012

选择在编译器中支持的Verilog语言生成。这可以在IEEE1364-1995,IEEE1364-2001,IEEE1364-2005,IEEE1800-2005,IEEE1800-2009或IEEE1800-2012之间进行选择。 Icarus Verilog当前默认为该语言的IEEE1364-2005代。该标志用于将语言限制为一组关键字/功能,从而可以模拟可能使用较新关键字的较旧Verilog代码,并与其他工具兼容。当前不支持许多IEEE1800代功能。 IEEE1800代确实解析了所有关键字,因此它们可用于验证符合IEEE1364的Verilog代码没有使用任何新的IEEE1800关键字。

实际上,它告诉您在端口中使用解压缩数组时的提示:

错误:端口不能解压缩数组。尝试启用SystemVerilog支持。

答案 1 :(得分:2)

always_combalways_latchalways_ff是SystemVerilog IEEE Std 1800-2012中引入的一些关键字。它们不是Verilog IEEE Std 1364-2005的一部分,这是Icarus Verilog编译器所支持的。

我不知道任何免费的SystemVerilog模拟器。但是,您始终可以使用EDA Playground来模拟和合成SystemVerilog设计。