FPGA Notes

IPIF - PLBv46_Slave_Single

0
阅读(2495)

要做CustomIP,就要好好理解IPIF。
PLBv46的IPIF分为很多类型,Slave的和Master的,Single Beat的和Burst的。
PLBv46 Slave Single 的 Datasheet 已经写得很清楚了,在此做一些简要笔记。

应用PLBv46 Slave Single,最主要是要理解其中的两个参数:C_ARD_ADDR_RANGE_ARRAY 和 C_ARD_NUM_CE_ARRAY.

ARD 的意思就是 Address Range Definition.

这两个参数和这些Port有关:
Bus2IP_CS --> 总线宽度为C_ARD_ADDR_RANGE_ARRAY除2。
Bus2IP_WrCE和Bus2IP_RdCE --> 总线宽度为C_ARD_NUM_CE_ARRAY。

C_ARD_ADDR_RANGE_ARRAY --> CS
这个参数(GENERIC)定义了整个IP的地址空间中可以有多少个独立而不要求连续的地址空间。
参数内容成对出现,一个基地址,一个高地址。
使用64bit地址以备将来扩展。

C_ARD_NUM_CE_ARRAY --> CE
这个参数定义了一个地址空间中有多少个需要独立使能信号(CE)。主要是为了控制不同的寄存器组而设计。
数值需要是2的次方,比如1, 2, 4, 8, 16, 32等等。
每个地址空间必须有至少一个CE。

这两个参数都是在plb_address_decoder.vhd中被定义和使用。
如果是做CustomIP,完全可以手动定义这两个GENERIC参数。
如果需要做某种范围内的自动生成,可以参照GPIO的qual_ard_addr_range_array函数计算过程。

Baidu
map