首页 文章

什么是HDL合成中的“网”

提问于
浏览
2

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

1 回答

  • 5

    不,你的理解不正确 .

    Verilog

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

    IEEE 1800-2012声明:

    6.5网络和变量有两组主要的数据对象:变量和网络 . 这两个组在分配和保持值方面有所不同 . 网络可以通过一个或多个连续分配,基元输出或模块端口写入 . 多个驱动器的结果值由网络类型的分辨率函数确定 . 网不能在程序上分配 .

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

    IEEE 1800-2012继续说:

    变量可以由一个或多个程序语句编写,包括程序连续分配 . 最后一次写入确定值 . 或者,变量可以由一个连续分配或一个端口写入 .

    变量和网络行为之间的主要区别在于从多个位置分配时的行为,如两个引号中的粗体文本所示:

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

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

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

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

    Electronics

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

    Synthesis

    所以,回答你的问题,如果有人在谈论逻辑合成器(门级网表)的输出时使用术语"net",他们几乎肯定意味着第二个想法:门级网表使用的任何格式的构造模拟一个门与另一个门之间的连接 . 由于合成器通常将其门级网表输出为Verilog,因此门之间的连接可能使用Verilog网络建模(可能是 wire s) .

相关问题