Verilog实现inout端口类型
inout端口类型既可以作为输出,也可以作为输入
/*
TRI_INOUT:三态门,既可以作为输入,也可以作为输出
:高阻态时为输入,其他情况为输出
:可根据需要调整端口位宽
*/
module TRI_INOUT
(
input [15:0] TRI_data_in, //当inout引脚为输出时,输出该引脚的数据
input TRI_control, //控制引脚,控制inout输入还是输出
output [15:0] TRI_data_out, //当inout引脚为输入时,该引脚输出inout输入的数据
inout [15:0] TRI_data //输入输出引脚
);
//TRI_control = 1时,为输出
//TRI_control = 0时,高阻态,为输入
assign TRI_data = TRI_control ? TRI_data_in : 16'bzzzzzzzzzzzzzzzz;
assign TRI_data_out = TRI_data;
endmodule
下面是其RTL电路: