三态门
三态门中,EN‘为0时,门电路正常工作,EN’为1时,T1、T2均截止,整个门电路不对外输出,成高阻态,三态门常用在总线传输中,多个器件共用一个数据总线,通过控制多个EN唯一导通,实现指定器件的数据传输。
三态门还可用于引脚I/O设置,右图,当EN为1,G1作用,G2高阻态断路,D0经G1输出D0’数据到总线;EN为0,G2作用,G1高阻态断路,引脚从总线上读取数据D1经G2输入到D1‘。I/O的实现即用了两个三态门控制,一个负责O,一个负责I,通过EN与EN’作为控制信号来实现一个高阻断路,另一个真正作用。
Verilog实现及仿真
网上比较常见的InOut控制代码:
module test(
input flag,
input [3:0]in_a,
output [3:0]out_b,
inout [3:0]data
);
assign data = flag?in_a