急急急!!!Xilinx RapidIO IP核设计示例问题

[复制链接]
 楼主| hzywlx 发表于 2013-3-31 17:34 | 显示全部楼层 |阅读模式
我用Ise14.4套件的Core Generator 生成了一个RapidIO Ip核,我把它自动生成的那个example_design放入一个新的工程中,然后仿真,波形正确,我仔细看了里面的代码,发现无论目的deviceId如何变化,波形显示都能够正常的收发,难道rapidIO不用通过DeviceId来确定发的目地吗?!!
GoldSunMonkey 发表于 2013-3-31 23:53 | 显示全部楼层
付费了么??
 楼主| hzywlx 发表于 2013-4-1 08:18 | 显示全部楼层
我现在还没有下载到开发板上,只是在做仿真,而且也没有报错。我感到很奇怪的是:设计实例的仿真,只是简单的例化了两个设计实例的顶层,他们之间通过什么来通信?实际中应该是通过rapidIO的物理媒体连接的吧。
hdxuan 发表于 2013-4-2 09:49 | 显示全部楼层
DeviceID是本地地址,目的地址需要维护端口配置。
 楼主| hzywlx 发表于 2013-4-2 14:18 | 显示全部楼层
hdxuan 发表于 2013-4-2 09:49
DeviceID是本地地址,目的地址需要维护端口配置。

多谢回复!
我知道LOG模块输出了一个16位的本地deviceId,但是不知你有没有看srio_request_gen.v这个文件,这个模块应该是实现发起事物请求的,其中有个输入是dest_id,通过仿真可以看出,这个dest_id是通过val_ireq_tuser传给核心模块的,这个dest_id不是该事物所对应的目标deviceId吗??而且我发现无论把这个dest_id设为多少,仿真时对应节点都可以收到。。。
hdxuan 发表于 2013-4-2 14:42 | 显示全部楼层
不知道你接触SRIO多长时间了,我觉得先得把文档看懂,这个IP核基本就会用了。至于dest_id的问题我也试过,猜测是因为这个仿真是点对点的,如果多几个SRIO肯定不行,远端设备ID也是通过维护端口配置的。
 楼主| hzywlx 发表于 2013-4-2 15:35 | 显示全部楼层
hdxuan 发表于 2013-4-2 14:42
不知道你接触SRIO多长时间了,我觉得先得把文档看懂,这个IP核基本就会用了。至于dest_id的问题我也试过, ...

多谢建议!
我看RapidIO™Interconnect Specification这个文档和LogiCORE IP Serial RapidIO Gen2 Endpoint v1.5这两个文档两个月了,基本上通信机制我已经了解。现在我的问题是在系统初始化这一块,或者说,若是一个新的节点加入rapidIO系统中,如何让其他的节点识别到它并与之通信。
hdxuan 发表于 2013-4-2 15:52 | 显示全部楼层
我目前只做了点对点的通信,不过原理是一样的。
你看在port和link初始化完成以后,example_design在maintenance端口进行了寄存器配置,如果你看懂了它的读写是什么意思,初始化就没问题了。文档中Register Space中有这方面的说明。
 楼主| hzywlx 发表于 2013-4-2 16:02 | 显示全部楼层
hdxuan 发表于 2013-4-2 15:52
我目前只做了点对点的通信,不过原理是一样的。
你看在port和link初始化完成以后,example_design在mainten ...

这个倒是看懂了,就是读取了本地和远程的厂商信息寄存器,然后设置了远程设备的deviceID号……我的问题是,在没有设置远程节点的deviceId之前,它是怎么把这个维护请求发到远端的,因为它并不知道对方的deviceId。另外,如果是点对点的通信,rapidIO设备就不检查收到的报文的dest_deviceId是否与自己的deviceId是否相同吗?
hdxuan 发表于 2013-4-2 16:35 | 显示全部楼层
维护请求可以通过地址来发送,比如本地设备ID地址是32'h0000_0060,远端设备ID地址是32'h0100_0060,可以往这个地址写值来设定ID,但多个SRIO我没试过,你可以试试,我觉得和Local Configuration Space Base Address有关。
第二个,我觉得肯定是有检查的,我记得仿真中收到的响应的tuser信号就是远端ID。希望对你有帮助。

评分

参与人数 1威望 +1 收起 理由
hzywlx + 1 赞一个!

查看全部评分

 楼主| hzywlx 发表于 2013-4-2 20:10 | 显示全部楼层
hdxuan 发表于 2013-4-2 16:35
维护请求可以通过地址来发送,比如本地设备ID地址是32'h0000_0060,远端设备ID地址是32'h0100_0060,可以往这 ...

多谢。再请教一个问题:rapidIO有没有类似广播这种机制呢,我用的是消息传递这种通信机制。
fenglema 发表于 2013-4-15 20:30 | 显示全部楼层
我新手,刚用rapidio。老师让玩一个平台,FPGA与DSP通信用的是rapidio。有一个测试程序DSP发数,然后DSP度数。。。。我想在FPGA里面把DSP发过来的数读出来,请各位高手指点一下,该怎么弄啊?!!!看了几天Logicore ip serial rapedio v5.6(UG503),还是没想通该怎么弄。NREAD/nwrite讲的也能看懂。我是要写一个读请求格式包吗?还是能直接读到底层存储空间的数据? 求高手给指点一下,推荐点资料也可以,谢谢啊。。。。
GoldSunMonkey 发表于 2013-10-8 22:59 | 显示全部楼层
为什么老帖子上来了
GoldSunMonkey 发表于 2013-10-8 23:00 | 显示全部楼层
奇怪啊
hjz07091982 发表于 2014-3-11 21:43 来自手机 | 显示全部楼层
Rapdio要收费吧?
GoldSunMonkey 发表于 2014-3-11 23:38 | 显示全部楼层
hjz07091982 发表于 2014-3-11 21:43
Rapdio要收费吧?

是收费的,亲
18307471859 发表于 2017-6-13 17:08 | 显示全部楼层
vivadio上调用的这个rapidio gen2 我申请了license 为什么还是不能生成bit文件,一直报错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

16

帖子

0

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

5

主题

16

帖子

0

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