我在Mac上使用iverilog,编译一些包含always_ff和always_comb块的代码有问题。ModelSim编译这些代码没有任何问题。是否可以配置iverilog以支持always_ff和always_comb块,或者编译器不支持它们?
发布于 2017-04-24 20:22:42
always_comb、always_latch和always_ff是SystemVerilog IEEE Std 1800-2012中引入的一些关键词。它们不是Verilog IEEE Std 1364-2005的一部分,这是Icarus Verilog编译器所支持的。
我不知道任何免费的SystemVerilog模拟器。但是,您始终可以使用SystemVerilog来模拟和综合您的EDA游乐场设计。
发布于 2020-04-17 14:19:27
安德烈斯的回答并不完全准确。Icarus默认为IEEESTD1364-2005,它是更好支持的标准,但可以通过-g交换机来更改。来自man iverilog
-g1995|-g2001|-g2001-noconfig|-g2005|-g2005-sv|-g2009|-g2012 选择要在编译器中支持的Verilog语言生成。这将选择2012 1364-1995、2012 1364-2001、2012 1364-2005、2012 1800-2005、2012 1800-2009或2012 1800-2012之间。Icarus目前默认为2005 1364-2005代语言。此标志用于将语言限制为一组关键字/特性,这允许模拟可能使用更新关键字并与其他工具兼容的旧Verilog代码。目前不支持许多IEEE1800代功能。IEEE1800代确实解析了所有的关键字,因此它们可以用于验证符合IEEE1364的Verilog代码不使用任何新的IEEE1800关键字。
实际上,当尝试在端口中使用未打包的数组时,它会告诉您:
错误:端口不能解压缩数组。尝试启用SystemVerilog支持。
https://stackoverflow.com/questions/43595585
复制相似问题