结构Verilog和行为Verilog有什么区别?

时间:2013-03-28 11:59:40

标签: verilog

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

6 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:4)

<强>结构

  

此处使用基本组件(如逆变器)定义功能,   MUX,加法器,解码器,基本数字逻辑门等。它只是   喜欢连接和安排可用的电路的不同部分   实现一个功能。

<强> Behavorial

  

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

  • (a)连续
  

将数据分配给输出是连续的。这将会   使用显式“assign”语句或通过分配a来实现   在声明期间对电线的价值。   如果分配任何输入的变化将   立即影响输出。因此输出将被声明为   wire

  • (b)程序
  

此处数据分配不是连续执行的   发生在敏感性列表中指定的特定事件。这类   使用诸如的过程块来实现建模方案   “总是”或“初始”。

     

此处,输出变量必须定义为reg,因为它们需要   保持先前的值,直到在指定的灵敏度列表中发生任何更改后发生新的分配。

希望这会有所帮助:)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

行为不使用您可以使用的逻辑门描述And,或者,不是已经在verilog中定义的门 虽然结构使用逻辑门描述,你描述你想要一个名为(和/或/不)的模块并描述它的作用&amp; / | /〜。

答案 4 :(得分:0)

Structural Verilog以简单的词(例如and和or或not等)处理基元。 这些原语从库中调用/推断,并与输入输出端口连接。 例子

 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书。

答案 5 :(得分:0)

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

行为水平
->这是Verilog HDL提供的最高抽象级别。主要构造使用 “总是”和“初始”块。

数据流级别
->在此级别,通过指定数据流来设计模块。条件使用“ assign”关键字进行描述。

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

开关级别
->这是Verilog提供的最低抽象级别。一个模块可以是 根据交换机,存储节点和互连实现 他们之间。