【发布时间】:2018-10-10 06:53:14
【问题描述】:
HDL 语言允许端口是双向的(例如:verilog 中的 inout)。 从后硅片的角度来看,双向端口的缺点是什么。 为什么我们不能把所有的端口都写成双向的?
【问题讨论】:
HDL 语言允许端口是双向的(例如:verilog 中的 inout)。 从后硅片的角度来看,双向端口的缺点是什么。 为什么我们不能把所有的端口都写成双向的?
【问题讨论】:
HDL 用于描述硬件,模块或芯片上的数字端口可以是输入(仅检测电平)、输出(仅驱动电平)或双向(检测和驱动电平)。
所以要使用 HDL 正确描述硬件,您应该使用反映硬件操作的端口模式,即输入、输出或双向。
使用正确的端口模式可以轻松跟踪设计中的信号,因为您可以确定哪个模块驱动信号(输出)以及哪些模块感应(输入)信号。
具有连接到同一信号的多个双向端口通常表示该信号有多个驱动程序。一些硬件,如 FPGA,不支持内部信号,因此如果尝试为 FPGA 综合该设计,将所有端口声明为双向可能会导致错误。
【讨论】:
使用输入/输出端口允许 linting 工具检查设计中的额外错误,例如定向连接错误 (!),即当您写入输入端口时。
一些方法可以基于方向,例如,方法通常需要连接所有输入并允许悬空输出。你不能用 inouts 来做。还有其他基于方向的分析规则。
模拟可以利用这些指令进行一些额外的优化或分区。一般来说,它并不关心它何时使整个设计变平。合成很可能不在乎,但也可以运行一些检查器。
【讨论】: