Verilog 中 inou t 端口的使用方法Verilog 中 inou t 端口的使用方法(本文中所有 Verilog 描述仅为展示 inou t 端口的用法,实际描述则需要更丰富的功能描述)Inou t 端口的使用在芯片中为了管脚复用,很多管脚都是双向的,既可以输入也可以输出
在 Verilog 中即为inou t 型端口
Inou t 端口的实现是使用三态门,如 FPGA 中的管脚复用部分:三态门的第三个状态是高阻态 Z
在实际电路中高阻态意味着响应的管脚悬空、断开
当三态门的控制信号为真时,三态门导通;控制信号为假时,三态门的输出端是高阻态
Verilog 中的 inou t 端口被综合为如下形式:Inou t 端口是一个很容易出错的地方,理解 inou t 端口模型必须要抓住三点:inou t 端口不可能独立存在;作为输入必须有 reg 型缓冲(一个 inou t 两个控制信号);相连的两个 inou t 端口由一对信号交错控制;下面一一分析
inou t 端口不可能独立存在:分析 inou t 的端口特性,对于一个模块来说,inou t 端口既可以当做输入,又可以当做输出,那么,与 inou t 端口相连的另一模块是什么情形呢
显然,另一模块也应该是 inou t 端口,inou t端口不可能独立存在
但是在实际编写 Verilog 代码的过程中,却常常忽略这一点,而仅仅是另一模块的一条输出线和一条输入线同时连接到 inou t 端口上,乍看起来符合逻辑,实则不然
以下图为例:图中的存储器 Memory用RAM实现,无论 CPU 还是 RAM 都只有一组数据总线,而图中输入给 Memory的有 WriteData,从 Memory输出的有 MemData,这两组其实是一组数据总线,而实现此管脚复用功能的就是管脚复用
在用 Verilog 描述的过程中,只考虑