今天在打包ip的时候看到ug1118(page58,v2016.4)。发现port,pin,interface几个概念接近又不同。
在vivado当中,port就是指ip的输出端口。external port是与硬件相连的端口,port本身有可能只是指block design的端口。
上面所说的external port与具体的硬件管脚(pin)相连接,这样端口就算是完成了管脚映射。
Interface的概念不太容易注意到,在ug1118中有这样一句话说:
Interfaces provide the ability to group signals into common grouping to use between IP in a Vivado IP integrator design。
这里所做的解释适用于bus interface,但是也存在单个比特的interface,承接上面的定义,单个bits的接口映射相当于让vivado知道这是专门用于某种功能的接口,比如时钟,reset接口。这样的话auto connection这种功能就有可能正常运作。
在ug835的page15~16当中有一张图算是介绍了在FPGA当中出现所有对象的基本存属关系。ug912的page9也有这样一张图,并且这份手册专门对Vivado当中出现的各种元素做了分类。
Figure 1-1: Netlist and Device Objects
概略的说,上面所有的元素可以分成Netlist Objects和Device Objects。简单起见本文只说Netlist Objects目录下的PIN(不包含硬件实体的Package_pin)和PORT两部分。
Pin:指器件原型或者层级细胞的一个逻辑连接点。
Port:一般只是指层级细胞的连接接口,可以看做是Pin的一种。Port更倾向于指外部接口,比如说block design连接外部物理接口的连接点就更常被称为port(一般叫external port)。