问题标签 [system-verilog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
22818 浏览

system-verilog - 大 SystemVerilog 约束的示例

你能举一个大而复杂的 SystemVerilog 约束的例子吗?越大越好,最好是现实的。也许一些地址计算也取决于其他一些变量。

我正在评估将我们的 IP 切换为使用 SystemVerilog 约束,我的管理层希望了解创建/理解 SystemVerilog 约束的难易程度。

0 投票
2 回答
1744 浏览

c++ - 如何在 C++ 中进行 SystemVerilog 样式的位向量切片分配?

我正在将一些 SystemVerilog 代码移植到 SystemC/C++。我正在使用 std::bitset 来表示位向量,但我可以看到它已经没有提供访问切片的方法。

例如,如果我想使用 SystemVerilog 代码将 reg1 设置为 reg2 的第 4-8 位:

我怎么能用 std::bitset 做到这一点?

有没有更好的办法?

0 投票
4 回答
2147 浏览

verilog - 系统 verilog 构造是否可综合?

该构造是否可do <blah> while (0)在系统 verilog 中综合?

我问是因为我有一些复杂的宏,我希望使用这种语法来保护它们。

例如

或者我可以使用类似的verilog构造。Verilog 将是首选,因为它被更多工具使用。

0 投票
4 回答
14098 浏览

system-verilog - 如何在 SystemVerilog 中将字节与字符串连接起来

在 ModelSim 中,以下代码可以正常工作:

在 Aldec Riviera 中,这会导致编译错误Incompatible types at assignment: .r<string> <- s[i]<byte>

阅读 SystemVerilog LRM,我可以看到花括号似乎只支持连接字符串,而不是字节。因此,要么 ModelSim 对 LRM 不那么严格,要么它隐式地将s[i]字节转换为一个字符的字符串(这在这种情况下似乎是明智的)。在里维埃拉,看起来我必须s[i]手动将字节转换为一个字符的字符串。什么是最有效和最简洁的解决方案(如果可能,不必引入临时变量)?

0 投票
1 回答
314 浏览

verilog - 如何在verilog中定义m * n输出

我正在为左移寄存器编写verilog代码,该代码在每次移位后存储其值到子寄存器中。我可以像这样将输出寄存器定义为数组吗,提供的代码只是一个简单的例子来展示这个概念而不是我的代码,

代替

第一种方法是我如何调用 c[i]

0 投票
3 回答
2547 浏览

verilog - 这个 Verilog 初始化语法的重要性顺序是什么?

这是一个简单的 SystemVerilog 问题,我很难找到答案。

在这种位数组初始化语法中,b[0] 部分是分配给 a 的最高有效位还是最低有效位?

那么 a[0] == 1 还是 a[7] == 1?

0 投票
2 回答
8470 浏览

verilog - 在 SystemVerilog 中的结构内使用联合分配模式

这是一个用于说明的示例。在 SystemVerilog 中,它具有数组分配模式和结构分配模式语法。不管这里的 union 构造是打包还是解包,不管它是否可合成,它是赋值模式的有效用法吗?如果是, union 应该是什么值x

如果不是,是否意味着我必须为解压结构逐个字段指定初始值?

0 投票
5 回答
84307 浏览

system-verilog - SystemVerilog 数据类型的区别(寄存器、逻辑、位)

systemverilog 中有不同的数据类型,可以使用如下:

他们三个有什么不同?

0 投票
2 回答
1807 浏览

system-verilog - System Verilog wait() 语句将等待的最短时间/周期是多少?

我有一个 SystemVerilog 任务,我正在尝试移植到 SystemC。任务的主体只是等待一个布尔表达式,然后推送到一个队列中。SystemC 等待机制的工作方式并不完全相同,它只会等待时间或事件。

所以我想知道 SystemVerilog wait() 在重新测试布尔表达式之前等待的最小周期/时间长度是多少。换句话说,在 SV wait() 中驱动重新测试布尔表达式的频率或原因是什么?

如果答案只是每个周期一次,我希望并期望但无法确认,那么解决方案很容易。

这是代码,其中一些内容被重命名和简化,以便脱离上下文更有意义:

0 投票
2 回答
68274 浏览

arrays - $size, $bits, verilog

$sizeverilog中的和运算符有什么区别$bits?如果我有变量[9:0]a,,,,[6:0]b[31:0]c

上述表达式的“c”处的输出是什么?