inout端口引入:节省引脚资源。
inout端口功能:数据线,既可以作为输入端口接收数据;也可以作为输出端口发出数据。
图例:在FPGA中,通过三态门来控制inout端口,如下。
使用:
当z=0 时,数据走通路1,I输入,I/O输出,此时I/O口作为输出口;
当z=1 时,通路1置为高阻态,数据走通路2,I/O输入,O输出,此时数据由外向内输入,这时的I/O口作为输入口。
FPGA内部处理双向信号,有2种方式:
(1)写代码
assign IO = (z == 1’b0)? I : 1'bz ;
assign O = IO ;
(2a)调用IP---Altera ---ALTIOBUF
(2b)例化原语--Xilinx
IOBUF #(
.DRIVE(12), // Specify the output drive strength
.IBUF_LOW_PWR("TRUE"), // Low Power - "TRUE", High Performance = "FALSE"
.IOSTANDARD("DEFAULT"), // Specify the I/O standard
.SLEW("SLOW") // Specify the output slew rate
) IOBUF_inst (
.O(O), // Buffer output
.IO(IO), // Buffer inout port (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input, high=input, low=output
);
欢迎关注我的微信公众号:FPGA干货架