问题标签 [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.
vector - 系统verilog中的打包与解包向量
查看我在 System Verilog 中维护的一些代码,我看到一些信号定义如下:
以及其他定义如下:
我知道这x
被定义为打包,而y
被定义为未打包。但是,我不知道这意味着什么。
System Verilog 中的压缩向量和非压缩向量有什么区别?
编辑:响应@Empi 的回答,为什么在 SV 中编写的硬件设计师应该关心数组的内部表示?是否有任何时候我不应该或不能使用打包信号?
system-verilog - 为什么我应该在 System Verilog 中使用未打包的向量?
跟进这个关于 SV 中压缩向量和非压缩向量之间的区别的问题,我为什么要使用解压缩向量?
压缩向量具有未压缩向量所没有的这些优点:
- 您可以对它们执行按位操作
- 您可以对它们执行算术运算
- 你可以把它们切片
- 您可以将它们复制为一个整体矢量
- 您可以使用未打包的向量做任何事情(据我所知)
解压向量比打包向量有什么优势?
verilog - 使用 DPI 将任务导出到“C”
我有一个基于 verilog 的测试平台,使用 DPI 连接到'C 源代码。现在使用 DPI,我打算编写我的整个固件。为此,我需要三件事
- 注册读取
- 寄存器写
- 中断处理程序 据我了解,寄存器读取和写入是我需要从 RTL 测试台导出的任务。和中断处理程序(我通过从'C导入一个函数来实现)。
我检查了大多数 cadence 文档,没有发现任何有用的提示。我也注册了 cadence 用户社区,但在他们批准我的注册之前,我似乎无法提问。
万一有人知道这一点,将不胜感激他们的帮助。
verilog - 在 Verilog 编译中查找所有依赖项
我正在尝试廉价且准确地预测构建流程的所有 SystemVerilog 依赖项。过度预测依赖关系并找到一些不是 sv 依赖关系的 Verilog 文件是可以的,但我不想错过任何依赖关系。
我是否真的必须解析 Verilog 才能确定它的所有依赖项?有 tick-include 预处理器宏,但那些 tick-include 似乎并没有加载当前正在编译的所有代码。有一个SYSTEM\_VERILOG\_PATH
环境变量。我是否需要解析该SYSTEM\_VERILOG\_PATH
变量中的每个 SystemVerilog 文件以确定在哪些文件中定义了哪些模块?
verilog - 用于 Verilog 或 SystemVerilog 的 TAP(测试任何协议)模块
Verilog是否有 TAP(测试任何协议)实现?这会很好,因为这样我就可以使用证明来自动检查我的结果。
更新:10/9/09:有人问为什么不使用断言。部分 TAP 给了我一些很好的报告,例如文件数量和测试数量。它还可以与 smolder 一起使用,以报告一段时间内的进度。
2009 年 10 月 12 日:我正在寻找一个最小的实现,在开始和结束时测试数量以及 ok、diag 和 fail 功能。is() 真的很好,但不是必需的。
system-verilog - 如何改变 SystemVerilog 随机变量的概率分布?
这是针对 SystemVerilog 的。我知道您可以在随机变量从中选择的一组值中指定值或值范围的权重,但是如果您想要一个好的高斯分布怎么办?你怎么写这种约束?
arrays - 如何在 Verilog 中声明和使用一维和二维字节数组?
如何在 Verilog 中声明和使用一维和二维字节数组?
例如。如何做类似的事情
vhdl - VHDL/Verilog 相关的编程论坛?
如今,使用 VHDL 或 Verilog 进行硬件设计更像是编程。但是,我看到 SO 成员并没有那么积极地谈论 VHDL/Verilog 编程。
是否有任何论坛处理使用 Verilog/VHDL/SystemVerilog 或 SystemC 进行硬件设计?
java - 如何从 C 中运行/控制 Java 程序?
我在 ASIC 模拟器中运行 System Verilog。SV 有一个导入/导出机制,可以从 SV 调用 C 函数,并且可以从 C 中调用 SV 函数。
我想将来自模拟的实时(非常慢的流)数据发送到我将用 Java 编写的图表程序。使用模拟器/C 程序定期更新调用 Java 的最佳方法是什么?
verilog - 处理 SystemVerilog 包中的参数化
SystemVerilog 添加了一些包来为通用代码片段(函数、类型、常量等)提供命名空间。但是由于包没有被实例化,它们不能被参数化,所以处理参数化的成员是有问题的。在实践中,我发现这非常有限,因为我的自定义类型通常有一些参数来指示字段宽度等。
我通常通过使用具有默认值的参数来处理这个问题,并且只是理解我需要回去更改某些应用程序的包源代码,这对我来说似乎是非常错误的。但我还没有找到一种更干净地处理这个问题的方法。例如:
有没有人找到更清洁的方法来处理这个问题?我很想听听它,因为我认为包是 SV 的一个非常强大的补充,可以实现更安全的代码重用,但这个限制非常严重。