[Quartus] AXI4Lite自定义IP

[复制链接]
3419|11
 楼主| cen00 发表于 2012-11-7 22:16 | 显示全部楼层 |阅读模式
AXI4Lite自定义IP最多有32个用户寄存器,在文档DS765中介绍"地址范围定义参数(ARD)数组"可以增加用户的应用,如何应用?
GoldSunMonkey 发表于 2012-11-8 00:25 | 显示全部楼层
嗯?难道你没有那个例子?
 楼主| cen00 发表于 2012-11-8 10:15 | 显示全部楼层
哪个例子?指教一下!
 楼主| cen00 发表于 2012-11-8 13:13 | 显示全部楼层
DS765中介绍:用户地址空间译码是通过定义在AXI4-Lite IPIF中的两个"地址范围定义(ARD)"数组参数,这些参数映射到VHDL的类属表中或者Verilog的参数中去.这两个类属名是C_ARD_ADDR_RANGE_ARRAY和C_ARD_NUM_CE_ARRAY.
C_ARD_ADDR_RANGE_ARRAY数组内定义来自处理器总地址空间的连续地址块为一个地址空间,用数组中一对元素来指定:第一个元素是块的起始地址(Base Address),第二个元素是块结束地址(High Address),地址是字节地址,元素的数据类型是std_logic_vector(0 to 63).地址对的值遵循三个规则:1.块大小(以字节计)必须2次幂(2, 4, 8, 16, 32, 64, 128, 256等等);2.起始地址必须是以块的倍数为边界;3.结束地址是等于起始地址加块大小减一.例如,连续块大小是2048字节,如果起始地址是0x00000000,那么结束地址就是0x000007FF.
C_ARD_NUM_CE_ARRAY数组内每个元素定义为对一个地址空间内片允许(CE)的数量,值是正整数的2次幂,每个地址空间最少必须指定一个片允许.地址空间被以数据宽度或32位一个片允许来细分并顺序指定.
由以上介绍知道:用户IP如有三个寄存器的地址空间,其连续地址块大小将是3X4等于12字节在C_ARD_ADDR_RANGE_ARRAY数组内,而对应C_ARD_NUM_CE_ARRAY数组内一个元素的值,也即对应地址空间的片允许数量是4(要满足2次幂);CIP精灵建立的AXI4-Lite用户IP最多是32个32位寄存器,片允许数量应是32,32X4,其地址空间范围就是128字节.问题:地址空间范围应该能大于128字节,也就是可以有多于32个寄存器可用,我如何修改我的用户IP能使用比32多的寄存器?
GoldSunMonkey 发表于 2012-11-8 21:52 | 显示全部楼层
专门有一个Axi4lite例子,你找一找。
GoldSunMonkey 发表于 2012-11-9 22:46 | 显示全部楼层
怎么没有回信?
 楼主| cen00 发表于 2012-11-12 09:12 | 显示全部楼层
没有找到例子.
GoldSunMonkey 发表于 2012-11-12 21:51 | 显示全部楼层
我现在有点找不着了。
反正是5个例子中的第三个。
GoldSunMonkey 发表于 2012-11-12 21:52 | 显示全部楼层
GoldSunMonkey 发表于 2012-11-12 21:52 | 显示全部楼层
不知道是PLB还是AXI4的,你自己看一下。
 楼主| cen00 发表于 2012-11-14 13:06 | 显示全部楼层
Thank you!
GoldSunMonkey 发表于 2012-11-14 18:42 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

32

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部