用EDK把ip核通过总线挂载到microblaze上的问题,求各位指点!
时间:10-02
整理:3721RD
点击:
我自己写了一个加速器的IP,运用了3个slv_reg;我想把加速器的输入通过Bus2IP送给slv_reg0和slv_reg1,加速器的输出通过slv_reg2写给IP2Bus;但我看过IP核自动生成的驱动文件(层层外壳各种头文件啊)之后,发现从slv_reg2读数据的函数ECC_Readslvreg2(BaseAddress,offset)似乎只是从一个自己给出的地址读出数据,而和IP硬件电路内部连接没什么关系,因为读出的数据一直为0(而且觉得对三个slv_reg的地址分配应该是在综合前就设定好的,为什么这里在软件中还可以选地址?);请问各位大神,我的理解是否正确?想从slv_reg2读数据该如何实现呢?真诚求教,多谢啦!
不明白你的问题,什么叫自己给出的数据?这个函数应该是从BaseAddress+offset读数据的,你在生成IP时EDA 工具会自动为你的IP分配基地址,寄存器地址依次加4.你从驱动里当然看不见硬件电路的连接情况了。看看reg2的offset是否是0x12.
多谢回答!这个就是我觉得不是很懂得地方,没有看到slv_reg2的地址是多少,之前在XPS中只能设置IP核的地址范围(high add和 low add),不知道如何分配具体slv_reg2的地址。所以有一个这样的疑问:Readslv_reg1(baseadd,4)和Readslv_reg2(baseadd,0)一样?
什么意思?按照编号依次加0x04,Readslv_reg1(baseadd,0x04),Readslv_reg2(baseadd,0x08)才对。我在上次说是12说错了。
