问题标签 [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.
verilog - 如何在 Verilog 中调用函数并为其指定参数?
如何在verilog中调用模块内的函数,该函数具有参数,并为其定义参数?
对于一个简单的例子:
我将如何调用它并在调用中定义 W ?
string - Verilog 中的字符串操作
我需要在 Verilog 模拟中对字符串执行基本操作,例如连接、替换和比较。怎么可能?有内置支持吗?
提前致谢。
verilog - Verilog 和 SystemVerilog 什么时候不需要包含指令?
假设我有一个顶级文件传递给我的编译器,它具有:
在“my_component.sv”文件中,我使用了“my_defines.sv”中的一些定义,如下所示:
问题如下:我需要`include "my_defines.sv"
在“my_component.sv”里面吗?也许这个要求是特定于编译器的?
object - 如何使用在 SystemVerilog 中对其进行操作的方法获取实例的名称?
有什么方法可以获取它在 SystemVerilog 中操作的对象的名称?
就像实施
应该打印字符串
verilog - 是否可以在单个特定类实例中禁用 SystemVerilog 任务?
在 SystemVerilog 中,可以使用该disable
构造来终止命名块或任务。但是我今天发现禁用类实例中的任务会影响所有类实例中任务的所有副本。
考虑一个在其中定义了一些任务的类。如果在类内部调用disable <taskname>
,这将禁用该类的所有实例中的所有任务副本。这不是我所期望的行为,但根据 LRM 是正确的:
如果多次启用任务,则禁用此类任务将禁用该任务的所有激活。
是否有一种机制或解决方法来仅禁用类的特定实例中的任务?
下面的代码突出了我面临的问题。基本上,我有一个计时器任务,由于其他一些事件,我想禁用它。这都包含在一个类中。在我的验证环境中,我有这个类的多个实例,它们完全独立运行。因此,在一个实例中禁用计时器不应影响其他实例。但是它的disable
工作方式正在影响其他实例。
我试过disable this.timer
了,但没有编译。
在这个例子中,我有两个实例,class c
其中包含一个timer
任务。有一个disabler
并行启动的任务调用disable timer
. 此示例中的目的是在timer
计数中途禁用。所以c1
会在时间 5c2
被禁用,并在时间 10 被禁用。但是,它们都在时间 5 被禁用,因为disable timer
发起的调用在和c1
中都禁用了任务。c1
c2
输出:
我知道我可以重写它以使其在不使用的情况下工作disable
,但这是一种提前终止任务的简单方法,我希望我缺少一些东西。
verilog - 如何使用 Verilog 宏模拟 $display?
我想创建一个带有多个参数的宏,就像 $display 一样。
我的代码看起来像这样,但它不起作用。
这就是我调用 format_macro 的方式。
我怎样才能做到这一点?
verilog - Verilog 中有类似 __LINE__ 的东西吗?
我是 Verilog 的新手,但多年来一直是 C 程序员,这让我很危险。
我正在为一堂课做一些 Verilog。我想在我的模拟代码中使用 C assert() 样式测试。https://en.wikipedia.org/wiki/Assert.h
我们没有使用 System Verilog,所以没有我能找到的标准断言。我拼凑了以下宏。
据我所知,没有办法获得行号。因此,如果断言失败,我只会收到一条消息,无法链接回失败的位置。
有没有办法获取当前行号?或者有没有更好的方法在 Verilog 中进行断言测试?
谢谢!
properties - 我可以在一个循环中生成多个 SystemVerilog 属性吗?
我有两个打包的信号数组,我需要为该属性创建一个属性和相关的断言,以证明这两个数组在某些条件下是相同的。我正在正式验证,该工具无法证明单个属性中的两个完整数组,因此我需要将其拆分为单个元素。那么有没有一种方法可以使用循环为数组的每个元素生成一个属性?目前,我的代码非常冗长且难以导航。
我的代码目前如下所示:
这就是我希望我的代码看起来像的样子:
verilog - 在verilog中使用'<='运算符
谁能解释为什么当我们使用'<='而不是'='时这个特定模块不起作用的原因
为了在verilog中使用'<='我们应该确保什么。
verilog - Verilog中数组错误的初始化
初始化数组sbox
时,出现语法错误。请帮帮我。
这实际上是 sbox。它显示的错误:
“=”附近:语法错误,意外的“=”,需要 IDENTIFIER 或 TYPE_IDENTIFIER
我正在使用modelsim模拟器