在标题中,结构和行为Verilog之间的主要区别是什么?
答案 0 :(得分:11)
根据IEEE标准,这些术语没有严格的定义。但是,通常,结构是指使用模块实例描述设计(特别是对于较低级别的构建块,如AND门和触发器),而行为是指使用always
块描述设计。
网关网表始终是结构,RTL代码通常是行为。 RTL通常具有时钟门和同步器单元的实例。
答案 1 :(得分:4)
<强>结构强>
此处使用基本组件(如逆变器)定义功能, MUX,加法器,解码器,基本数字逻辑门等。它只是 喜欢连接和安排可用的电路的不同部分 实现一个功能。
<强> Behavorial 强>
Verilog中的行为描述用于描述功能 以算法的方式设计Verilog中的行为建模 使用类似于C语言结构的构造。此外,这是 分为2个子类别。
将数据分配给输出是连续的。这将会 使用显式“assign”语句或通过分配a来实现 在声明期间对电线的价值。 如果分配任何输入的变化将 立即影响输出。因此输出将被声明为
wire
此处数据分配不是连续执行的 发生在敏感性列表中指定的特定事件。这类 使用诸如的过程块来实现建模方案 “总是”或“初始”。
此处,输出变量必须定义为
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提供的最低抽象级别。一个模块可以是
根据交换机,存储节点和互连实现
他们之间。