什么是HDL合成中的“网”

时间:2017-03-03 10:24:21

标签: verilog hdl synthesis

我是电路综合的初学者,我偶然发现了 net 这个词,但我永远无法找到它的标准定义。在我看来,它指的是任何一种“黑匣子”,它接收输入并产生输出。所以它可以是一个大电路内的子电路,它可以是一个门阵列。我的理解是否正确?

1 个答案:

答案 0 :(得分:5)

不,你的理解不正确。

<强>的Verilog

在Verilog中, net 有一个准确的定义:

IEEE 1800-2012声明:

  

6.5网络和变量

     

有两组主要的数据对象:变量和网络。这两组在他们的方式上有所不同   分配并保持值。

     

网络可以由一个或多个写入   连续分配,原始输出或模块端口。   多个驱动程序的结果值由   净类型的分辨率函数。网不能是程序性的   分配。

网络可以是多种类型中的一种,例如:wiresupply0wand,但到目前为止,最常见的类型是wire

IEEE 1800-2012继续说:

  

变量可以由一个或多个程序语句编写,   包括程序性连续作业。 最后一次写入确定   值。或者,变量可以由一个连续写入   任务或一个港口。

变量和网络行为之间的主要区别在于从多个地方分配时的行为,正如两个引号中的粗体文字所突出显示的那样:

对于网络,如果您从多个地方分配,其结果值由解析功能确定,对于内置网络类型(wire等)。分辨率函数的行为取决于净类型,即网络类型之间的差异。因此,例如,对于wire,如果同时为1'b01'b1分配了1'bx,则如果两个赋值都赋值,则结果值将为1'b0(未知)相同的力量。分辨率功能旨在模拟真实的电子设备。 (用户定义的网络类型和驱动力优势也增加了复杂性,但是让我们把它们留给讨论。)

对于变量,如果从多个位置分配它,则其结果值由最后写入的任何值确定(就像普通的软件变量一样)。因此,例如,如果分配了1'b1,然后分配了1'b1,则结果值将为wire,因为该值是最后分配的。没有涉及分辨率功能,也没有任何驱动强度的概念。

网络和变量都用于模拟组合逻辑和顺序逻辑。有关何时可以使用网络以及何时可以使用变量以及使用哪种变量的规则由这些规则控制(在上面的引号中给出)。这些在verilog中是严格的,但在System-Verilog中已经放宽到如此程度,如果你不使用三态逻辑设计,你就不需要在System-Verilog中使用网络。

VHDL具有完全相同的区别。 Verilog网络的VHDL等价物是信号; Verilog变量的VHDL等价物是变量。然而,在VHDL中使用哪些规则是不同的规则,并且更严格(毫不奇怪)。

<强>电子

在电子产品中, net 表示电流流过的一块金属。换句话说,网络是一个地方与另一个地方之间的联系。物理上,它可以是PCB轨道,电缆,键合线或IC上的金属连接。通常,在数字电子产品中,最像是IC上的金属连接。

<强>合成

所以,要回答你的问题,如果有人使用术语&#34; net&#34;在谈到逻辑合成器的输出(门级网表)时,它们几乎肯定意味着第二个想法:门级网表使用的任何格式的构造,用于模拟一个门之间的连接和另一个。由于合成器通常将其门级网表输出为Verilog,因此门之间的连接可能使用 Verilog网进行建模(可能{{1}} s)。