11得票2回答
从测试台访问uvm_config_db的最佳方法是什么?

我希望在我的顶层测试台中创建一个时钟,其周期可以从测试中进行控制。我所做的是将周期设置到uvm_config_db中,并在测试台中获取它。我不得不放入#1以确保构建阶段完成,否则get返回错误的值:module testbench_top; int clk_period; bit c...

11得票2回答
如何在RTL中使用时钟门控技术?

我正在对我的设计中的一些锁存器和逻辑进行时钟门控。我在综合和布局布线方面没有太多经验。在RTL中实现时钟门控的正确方法是什么? 示例1:always_comb begin gated_clk = clk & latch_update_en; end always_latc...

11得票4回答
什么是在固定常数下执行整数硬件除法的最快方法?

我有一个16位数字,想将它除以100。假设这个数字是50000。目标是获得500。然而,我试图避免在我的FPGA上使用推断式除法器,因为它们会破坏时序要求。结果不必精确,近似值就可以。 我尝试了硬件乘法0.01,但不支持实数。现在我正在研究流水线除法器,但希望不要用到它。

10得票4回答
Verilog always @* 敏感性列表中包含什么?

我对在 always 块敏感性列表中使用通配符 @* 时什么被认为是输入有点困惑。例如,在以下示例中,哪些信号被解释为输入,导致重新评估 always 块? 据我所了解,clk 和 reset 并不包括在其中,因为它们没有出现在 always 块的任何过程语句的右侧。 a 和 b 包括在内,...

10得票3回答
自动变量的好处是什么?

我正在寻找有关Systemverilog中"automatic"的好处。我看到了"automatic"阶乘示例,但是我无法理解它们。有人知道为什么我们要使用"automatic"吗?

10得票3回答
Verilog的变量可以在always块中被赋予局部作用域吗?

我有时候发现在时钟触发的always块中使用阻塞赋值语句来定义“局部变量”很有用。这可以帮助减少重复代码。 为了避免在不同的always块中意外使用相同的变量(这可能会导致仿真结果不确定),我想给它一个局部作用域。有没有一种好的可综合方法来实现这个目的? 类似于: module sum3...

9得票2回答
在类型为reg的变量中存储有带符号整数值,需要打印出该值。

我该如何打印一个有符号整数值,它存储在一个声明为8位寄存器的变量中? reg [7:0] acc; 使用: $display("acc : %d", acc) 它打印无符号值。 $display函数的正确语法是什么?

9得票2回答
错误: "(vlog-2110) 非法引用网"

我有一个简单的 SystemVerilog FIFO 代码。我得到了几个 “vlog-2110 非法引用net” 错误信息。这里是我的错误消息,紧随其后是我的代码: 错误消息: vlog -work work -sv -stats=none C:/Users/Single_FIFO.sv...

9得票2回答
SystemVerilog传递函数作为参数

在SystemVerilog中是否可以将函数作为参数传递? 这段代码希望能够演示,但它并不起作用。有什么帮助吗?谢谢。 module funcparam; int result; function int xxx(int x, re...

9得票5回答
宽度无关函数

是否有可能编写一个函数,可以自动检测输入数据的宽度?例如,考虑下面的奇偶校验函数: function parity; input [31:0] data; parity = ^ data; endfunction 当调用 parity(data) 时,输入数据应限制为32位。 ...