Altera FPGA 的PIO IP当中bidir和inout选项的区别

PIO IP是FPGA 设计中比较简单常用的IP, 当设置PIO IP的Direction的时候,可以看到有如下4个选项:

1.png


Input代表这组IO是输入引脚,Output代表这组IO是输出引脚,这些很好理解,但Bidir和InOut都表示双向的意思,它们有什么区别吗?

参考28.4.1.2. Direction (intel.com)可知:

2.png


bidir,指n位宽的信号中的每一位都可以单独/分别设置为读或是写。
inout,指将n位宽的信号,全设置为读或全部设置为写,但是不能要求其中某些位读而某些位为写。

只有设置为bidir模式的时候,才存在direction寄存器,用于控制某个I/O端口用于读(input),还是用于写(output):

3.png


不过在Altera PIO IP之外,其他地方在用bidir和inout表达的时候,bidir(bidir是“bidirectional”的缩写)更侧重于表示双向的特性,是一个概念性的描述;而inout是硬件描述语言中用于声明双向信号或端口的关键字,是一种具体的语法形式。例如在VHDL和Verilog中,都使用inout关键字来实现bidir功能,用于实现双向的接口或总线,如I2C等总线。

I2C的信号线电路设计参考如下:

I2C的信号线电路设计参考.JPG

本文转载自:友晶科技