对icarus(iverilog编译器)的SystemVerilog支持

对icarus(iverilog编译器)的SystemVerilog支持,verilog,hardware,system-verilog,iverilog,icarus,Verilog,Hardware,System Verilog,Iverilog,Icarus,我在Mac上使用iverilog,在编译一些代码时遇到问题,其中包括always\u ff和always\u comb块。ModelSim编译这些代码没有任何问题。是否可以将iVirlog配置为支持always\u ff和always\u comb块,或者编译器不支持它们?always\u comb、always\u latch和always\u ff是SystemVerilog中引入的一些关键字。它们不是Verilog IEEE Std 1364-2005的一部分,这是Icarus Veril

我在Mac上使用iverilog,在编译一些代码时遇到问题,其中包括always\u ff和always\u comb块。ModelSim编译这些代码没有任何问题。是否可以将iVirlog配置为支持always\u ff和always\u comb块,或者编译器不支持它们?

always\u comb、always\u latch和always\u ff是SystemVerilog中引入的一些关键字。它们不是Verilog IEEE Std 1364-2005的一部分,这是Icarus Verilog编译器支持的

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

always\u comb、always\u latch和always\u ff是SystemVerilog中引入的一些关键字。它们不是Verilog IEEE Std 1364-2005的一部分,这是Icarus Verilog编译器支持的


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

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支持


安德烈的回答并不完全准确。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支持


有没有其他方法可以在Mac上编译SystemVerilog?或者我必须坚持使用VM或本机windows?有没有其他方法可以在Mac上编译SystemVerilog?或者我必须坚持使用VM或本机windows?免费的SystemVerilog模拟器仅在Windows平台上受支持,而不支持完整语言。@dave_59:我相信Altera Modelsim Starter Edition在Windows和Linux上都受支持。但不确定MacOS。Verilator是一种开源模拟器,支持SystemVerilog的可合成子集:免费SystemVerilog模拟器仅在Windows平台上受支持,而不支持完整语言。@dave_59:我相信Altera Modelsim Starter Edition在Windows和Linux上都受支持。但不确定MacOS。Verilator是一种开源模拟器,支持SystemVerilog的可合成子集: