51得票5回答
使用wire或reg与输入或输出。

当你将某物声明为输入或输出时,如何知道你是否还必须将其声明为reg或wire?

47得票2回答
在 Verilog 中,花括号表示什么意思?

我在Verilog中理解以下语法方面遇到了困难: input [15:0] a; // 16-bit input output [31:0] result; // 32-bit output assign result = {{16{a[15]}}, {a[15:0]}}; ...

44得票4回答
Verilog中“==”和“===”有什么区别?

这两者有什么区别:if (dataoutput[7:0] == 8'bx) begin 并且if (dataoutput[7:0] === 8'bx) begin 执行 dataoutput = 52'bx 后,第二个结果为1,但第一个结果为0。 为什么?(0或1是比较结果。)

42得票3回答
如何在Verilog中声明和使用1D和2D字节数组?

如何在Verilog中声明和使用一维和二维字节数组? 例如,如何像下面这样实现:byte a_2D[3][3]; byte a_1D[3]; // using 1D for (int i=0; i< 3; i++) { a_1D[i] = (byte)i; } // usi...

40得票1回答
always_ff、always_comb、always_latch和always的区别是什么?

我对这四个术语感到非常困惑:always_ff、always_comb、always_latch 和 always。它们可以如何使用,以及用于什么目的?

35得票2回答
使用 +: 对向量和数组进行索引

我正在看一段SystemVerilog代码,其中有类似于这样的内容:if(address[2*pointer+:2]) do_something; 当我索引这个向量时,如何理解+:? 我发现这被称为比特切片,但我找不到关于它的解释。

31得票7回答
System Verilog中的packed向量与unpacked向量对比

我在维护一些System Verilog代码时发现了一些被定义为这样的信号:node [range_hi:range_lo]x; 还有一些定义方式如下:node y[range_hi:range_lo]; 我了解到x被定义为packed,而y被定义为unpacked。但是,我不知道这意味着什么...

28得票6回答
如何解释Verilog中的阻塞和非阻塞赋值?

我对阻塞和非阻塞赋值在绘制硬件图时的解释有些困惑。我们是否需要推断出非阻塞赋值给我们提供了一个寄存器?那么根据这个语句 c <= a+b ,c会是一个寄存器,但a和b不是吗?module add (input logic clock, output logic[7:0] f); ...

28得票8回答
VHDL/Verilog相关编程论坛?

现在使用 VHDL 或 Verilog 进行硬件设计更像是进行编程。但是,我看到 Stack Overflow 的成员并没有太积极地讨论 VHDL/Verilog 编程。 是否有任何论坛涉及 Verilog/VHDL/SystemVerilog 或 SystemC 硬件设计?

28得票3回答
什么是 `+:` 和 `-:`?

+:和-:是Verilog/SystemVerilog运算符?何时以及如何使用它们?例如:logic [15:0] down_vect; logic [0:15] up_vect; down_vect[lsb_base_expr +: width_expr] up_vect [msb_ba...