xtt*_*xtt 2 verilog synthesis hdl
我是电路综合的初学者,我经常遇到net这个词,但我永远无法找到它的标准定义.在我看来,它指的是任何一种"黑匣子",它接收输入并产生输出.所以它可以是一个大电路内的子电路,它可以是一个门阵列.我的理解是否正确?
不,你的理解不正确.
的Verilog
在Verilog中,net有一个精确的定义:
IEEE 1800-2012声明:
6.5网和变量
有两组主要的数据对象:变量和网络.这两个组在分配和保持值方面有所不同.
网络可以通过一个或多个连续分配,基元输出或模块端口写入. 多个驱动器的结果值由网络类型的分辨率函数确定.网不能在程序上分配.
净可能是多种类型之一,例如:wire,supply0,wand,但截至目前为止最常见的类型是wire.
IEEE 1800-2012继续说:
变量可以由一个或多个程序语句编写,包括程序连续分配.最后一次写入确定值.或者,变量可以由一个连续分配或一个端口写入.
变量和网络行为之间的主要区别在于从多个位置分配时的行为,如两个引号中的粗体文本所示:
对于网络,如果从多个位置分配给它,其结果值由分辨率函数确定,对于内置网络类型(wire等).分辨率函数的行为取决于净类型,即网络类型之间的差异.因此,例如,具有wire,如果同时1'b0和1'b1被分配给它时,所得值将是1'bx(未知)如果两个分配分配值具有相同的强度.分辨率功能旨在模拟真实的电子设备.(用户定义的网络类型和驱动器强度也增加了复杂性,但让我们把它们留给讨论.)
对于变量,如果从多个位置分配给它,则其结果值由最后写入的任何值确定(就像正常的软件变量一样).因此,例如,如果1'b0分配a 然后1'b1分配a,则结果值将是1'b1因为该值是最后分配的.没有涉及分辨率功能,也没有任何驱动强度的概念.
网络和变量都用于模拟组合逻辑和顺序逻辑.有关何时可以使用网络以及何时可以使用变量以及使用哪种变量的规则由这些规则控制(在上面的引号中给出).这些在verilog中是严格的,但在System-Verilog中已经放宽到如此程度,如果你不使用三态逻辑设计,你不需要在System-Verilog中使用网络.
VHDL具有完全相同的区别.Verilog网络的VHDL等价物是一个信号 ; Verilog变量的VHDL等价物是一个变量.然而,在VHDL中使用哪些地方的规则是不同的,而且更严格(毫不奇怪).
电子产品
在电子设备中,网络意味着电流流过的金属片.换句话说,网络是一个地方与另一个地方之间的联系.物理上,它可以是PCB轨道,电缆,键合线或IC上的金属连接.通常,在数字电子产品中,最像是IC上的金属连接.
合成
那么,回答你的问题,如果有人在谈论逻辑合成器(门级网表)的输出时使用术语"网" ,他们几乎肯定意味着第二个想法:门级网表的任何格式的构造用于模拟一个门与另一个门之间的连接.由于合成器通常将其门级网表输出为Verilog,因此门之间的连接可能使用Verilog网络建模(可能是wires).