- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Mac 上使用 iverilog
,但在编译一些包含 always_ff
和 always_comb
block 的代码时遇到问题。 ModelSim 编译这些代码没有任何问题。是否可以配置 iverilog
以支持 always_ff
和 always_comb
block ,或者编译器不支持它们?
最佳答案
AndresM 的回答并不完全准确。 Icarus verilog 默认为 IEEE Std 1364-2005,它是更好支持的标准,但可以通过 -g
开关进行更改。来自 man iverilog
:
-g1995|-g2001|-g2001-noconfig|-g2005|-g2005-sv|-g2009|-g2012
Select the Verilog language generation to support in the compiler. This selects between IEEE1364-1995, IEEE1364-2001, IEEE1364-2005, IEEE1800-2005, IEEE1800-2009, or IEEE1800-2012. Icarus Verilog currently defaults to the IEEE1364-2005 generation of the language. This flag is used to restrict the language to a set of keywords/features, this allows simulation of older Verilog code that may use newer keywords and for compatibility with other tools. Much of the IEEE1800 generations functionality is not currently supported. The IEEE1800 generations do parse all the keywords, so they can be used to verify that IEEE1364 compliant Verilog code does not use any of the new IEEE1800 keywords.
确实,当您尝试在端口中使用未打包的数组时,它会告诉您:
error: Ports cannot be unpacked arrays. Try enabling SystemVerilog support.
关于verilog - icarus 的 SystemVerilog 支持(iverilog 编译器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43595585/
我为连接编写了如下代码,但显示错误: module main ; bit [4:0] a; reg b,c,d; initial begin b = 0; c =
我正在尝试创建一个 for 循环,在给定循环迭代的情况下将不同的值分配给逻辑数组。 因此,例如,假设我正在尝试实例化两个不同的积木,宽度均为 10,高度均为 5。我们还假设这些值中的每一个都是 10
我有一个 systemverilog 模块,它引用一个生成的头文件,其中包含各种类型定义和函数。这是可合成的代码。该模块之前工作正常,因为头文件是使用预处理器包含的。 现在我的架构发生了变化,我需要实
我将两种设计组合成一个单芯片设计。 RTL 代码是用 SystemVerilog 编写的,用于综合。不幸的是,这两种设计包含许多名称相同但逻辑略有不同的模块。 SystemVerilog 中是否有 n
我正在尝试在系统verilog中随机化3个不同的变量,但以循环方式。我的意思是,我有以下 3 个变量 rand int a; rand int b; rand int c; constraint c_
默认情况下,SystemVerilog 是按值还是按引用传递数组? 例如: int array[5] = '{0,1,2,3,4}; some_function(array); // <-- val
SystemVerilog 是否支持向下转型(将基础对象转型为派生对象)?如果是这样,怎么办? 下面的沮丧示例不起作用: class base; int a = 5; endclass class
这是设计代码: module mul_clock (input clkA, clkB, in, output out); bit temp; reg x[2:0]; always @ (p
我有 Verilog-95 背景,我正在尝试找出我不再需要跳过的 Verilog-95 障碍。 在 Verilog-95 中编写具有异步设置和复位功能的触发器的明显方法是: always @(pose
我在寄存器 block Regblock 中实例化了寄存器,如下所示: DUT.Regblock.Register1 DUT.Regblock.RegisterA DUT.Regblock.Regis
我正在尝试理解 SystemVerilog 中的向上转型和向下转型。向上转型是转换为父类(super class)型,而向下转型是转换为子类型。向上转型总是被允许的,但向下转型涉及类型检查。 所以我做
在 SystemVerilog 中有没有一种方法可以分析压缩结构并确定它的整体大小(以位为单位)? typedef struct packed unsigned { logic [15:0]
我经常使用 systemverilog。 我正在使用 UltraEdit 作为文本编辑器。我也使用 VIM。 有时我必须从其他地方复制代码并将其粘贴到我的代码中。 它可能没有正确缩进。再次正确缩进是一
我有两个打包的信号数组,我需要为该属性创建一个属性和关联的断言,以证明这两个数组在某些条件下是相同的。我正在正式验证并且该工具无法在单个属性中证明两个完整数组,因此我需要将其拆分为单个元素。那么有没有
有什么方法可以获取它在 SystemVerilog 中操作的对象的名称? 就像实现 object1.printName() 应该打印字符串 object1 最佳答案 不,语言中没有为类执行此操作的机
我正在尝试创建一个像这样的解包数组: logic [3:0] AAA[0:9]; 我想将此数组初始化为以下值: AAA = '{1, 1, 1, 1, 2, 2, 2, 3, 3, 4}; 为了提高效
我将一些 systermverilog 代码重写为 chisel,但我找不到在 chisel 中表达 systemverilog 的打包联合的好方法。例如, typedef struct packed
我正在尝试了解在 SystemVerilog 中应如何定义引脚。 我有: 一个普通的dataBus 一个 ramController 模块,可以在其 ioData 引脚上发送或接收数据。 一个可以写入
以下两个属性有何不同? property p1; @(posedge clk) disable iff (Reset) b ##1 c; endproperty property p2;
我正在尝试将一些 SystemVerilog 代码移植到 C++/SystemC,并且在我看到奇怪的数组索引的几行上有点卡住了。这是我所看到的简化版本。 typedef enum bit [2:0]
我是一名优秀的程序员,十分优秀!