9

如标题所示,结构 Verilog 和行为 Verilog 之间的主要区别是什么?

4

6 回答 6

12

根据 IEEE 标准,这些术语没有严格的定义。然而,通常,结构是指使用模块实例来描述设计(尤其是对于较低级别的构建块,例如与门和触发器),而行为是指使用always模块来描述设计。

门网表总是结构性的,而 RTL 代码通常是行为性的。RTL 通常具有时钟门和同步器单元的实例。

于 2013-03-28T13:04:22.490 回答
9

结构

这里的功能是使用基本组件定义的,例如反相器、MUX、加法器、解码器、基本数字逻辑门等。就像连接和布置可用于实现功能的电路的不同部分一样。

行为的

Verilog 中的行为描述用于以算法的方式描述设计的功能。Verilog 中的行为建模使用类似于 C 语言结构的结构。此外,这分为 2 个子类别。

  • (a)连续

将数据分配给输出是连续的。这将使用显式的“分配”语句或通过在其声明期间为其分配一个值来实现。在分配的情况下,输入的任何变化都会立即影响输出。因此输出将被声明为 wire

  • (b)程序

这里的数据分配不是连续进行的,而是发生在敏感度列表中指定的特定事件上。这种类型的建模方案是使用诸如“always”或“initial”之类的程序块来实现的。

在这里,必须将输出变量定义为,reg因为它们需要保持先前的值,直到在指定的敏感度列表发生任何变化后发生新的赋值。

希望这可以帮助 :)

于 2015-11-06T05:59:14.907 回答
0

结构 Verilog 通常指的是可合成的(具有准确且有意义的硬件实现)的 Verilog 代码,通常以寄存器传输级别 (RTL) 编写。另一方面,行为 Verilog 通常是对更高级别的硬件或功能的行为描述。行为代码不必是可合成的,例如,当您在按时间尺度缩放的 verilog 代码中定义延迟时,合成器在将代码转换为逻辑和硬件时不会考​​虑它,而是具有模拟目的。结构和行为 VHDL 也是如此。

于 2016-07-26T10:47:55.683 回答
0

行为不使用逻辑门描述您可以使用已经在 verilog 中定义的 And,Or,Not 门,而结构使用逻辑门描述您需要一个名为 (And/Or/Not) 的模块并描述它的作用& / | /~。

于 2017-11-04T01:33:22.977 回答
0

结构 Verilog 用简单的词处理原语,如和、或、非等。原语从库中调用/推断,并与输入输出端口连接。例子

 module structural(y,a,b);
    input a,b;
    output y;
    and a1 (y,a,b); // and is the primitive inferred and a1 is the instance name.
 endmodule

行为verilog处理系统的逻辑或行为。它处理复杂的逻辑实现,这就是为什么在工业上都实现称为 RTL 的系统行为模型。一旦前端工程师使用 SV/UVM 验证行为 RTL,然后此 RTL 将转换为门级,即用于综合的结构。

有关详细信息,请参阅 Samir Palnitkar 编写的 verilog 书。

于 2018-07-17T09:35:31.803 回答
0

Verilog既是一种行为语言,又是一种结构语言。根据设计的需要,每个模块的内部可以在四个抽象级别上定义。结构 Verilog 描述了一个模块如何由更简单的模块或基本原语(如门或晶体管)组成。行为 Verilog 描述了如何将输出计算为输入的函数。

行为级别
-> 这是 Verilog HDL 提供的最高抽象级别。主要使用“always”和“initial”块构建。

数据流级别
-> 在这个级别,通过指定数据流来设计模块。条件描述使用“分配”关键字。

门级
-> 模块根据逻辑门和这些门之间的互连来实现。

Switch level
-> 这是 Verilog 提供的最低级别的抽象。一个模块可以通过交换机、存储节点以及它们之间的互连来实现。

于 2020-09-15T04:35:43.247 回答