SystemVerilog是基于Verilog扩展的统一硬件设计,规范和验证语言。
来自 Systemverilog LRM: 程序变量只能使用阻塞赋值来赋值。非程序变量只能使用非阻塞赋值来赋值。使用带有
我决定使用verilog任务功能来编写通用且可读的代码,但我遇到了麻烦。 当我用 Task 编写和调用它时,它看不到电路的输出,它只写......
至于标题减少或在循环中进行位切片时未按预期工作。 这是我所拥有的内容的摘录: 逻辑[3:0][1:0]quad_mask_dq_qq; 逻辑[1:0] dfifo_rrdy_qq; 总是_梳...
我多年来一直在 Modelsim、Questa、Vivado、Quartus 上使用 $bits() 和流操作符: 本地参数 NUMS = 4; typedef 结构体打包 { 逻辑[31:0] val1l } t_fields; t_fields array_rd[NU...
SystemVerilog 测试平台:制作具有运行时确定宽度的逻辑数组
我在 SystemVerilog 中有一个类,它代表我系统中的抽象数据事务。它看起来像这样: 类 #(参数 BIT_DEPTH) MyData; 逻辑[BIT_DEPTH-1:0]数据[];
SystemVerilog - N 个访问控制设备,默认情况下都是唯一的,需要参数机制来允许它们分组
我想要一个这样的参数: 参数位 GROUP [N - 1:0] = '{0:0, 1:1, 2:2, 3:3, 等等...} 因此,每个索引都在自己的组中,但集成商可以集成模块,并且也可以...
我想强制信号从我的测试平台向下传递。这些模块是根据原理图自动创建的(不可能更改设计),并且它们主要基于电线类型。 一个代码
为什么“分配 a = a/2”(在任务内)仅导致单个值更改?
今天遇到一段很奇特的测试代码,大家都难住了它为什么会这样运行。它的简化版本看起来像这样(请注意...
直到 VHDL 2019 为止,VHDL 没有任何方法来获取系统日期和时间。这意味着如果我需要在编译 FPGA 设计时或仿真时存储 FPGA 设计综合时间...
调试使用 SVA 的 VHDL 和 Systemverilog 简单示例。无法理解的 Z 和 X 值
我使用 VHDL 创建了一个简单的触发器实例和测试平台。 此外,我想使用 systemverilog 中的属性断言进行调试。尽管 sva 错误工作正常,但被报告...
我在日志目录中有一个文件 abc/xyz.log 。如何确定文件是否存在于 SystemVerilog 类中?如果该文件存在,我想删除该文件。
我试图了解模拟器如何处理延迟控制(通过#),但我无法解释以下两个片段中观察到的差异: (1) 模块顶部(); reg a,b...
我想编写一个任意范围的简单随机十进制数生成器。 我用 Verilog 编写了以下代码: 模块 randnumgen (时钟, r); 输入时钟; 整数n; 输出r; 总是@(pos...
我想编写一个任意范围的简单随机十进制数生成器。 我用 Verilog 编写了以下代码: 模块 randnumgen (时钟, r); 输入时钟; 整数n; 输出r; 总是@(pos...
我正在尝试在 Verilog 中使用加法和移位方法制作一个 4 位乘 4 位乘法器。 但是,当我运行模拟时,结果值始终为 00。 这是我使用的代码...
我是 System Verilog 的初学者。我想实现一个覆盖范围,以便用户发送信号 - 让我们称之为 input_signal[Width-1 :0] 其中宽度是可变的。我想要按位切换 cov...
使用 if-generate 结构定义函数的两个变体,并在同一个 tb 中调用该函数
这是一个小tb,带有一些示例代码,我尝试以两种方式定义一个函数,然后在其定义下面调用该fn。 模块尝试事实; 本地参数 FUNCTION_IS_STATIC = 1; 根...
模块input2(输出[3:0]out1、out2,输入[3:0]in1,输入clk); 时钟 c_clk @(posege clk); 输出 #2ns out1, temp = in1[1:0]; 输入in1; 结束时钟 时钟 d_clk @(posege clk); 输出...
根据 IEEE 1800-2023 LRM 支持三引号字符串,但没有一个模拟器能够编译(出现以下错误)任何线索都将有助于更好地理解。 模块顶部; 字符串 foo...