微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > pcie、ddr2仲裁问题

pcie、ddr2仲裁问题

时间:10-02 整理:3721RD 点击:
目前我做了从PCIE收数据放入ddr2的工程,现在想加一个数据处理算法进去,同样也要从ddr2读写数据,这样的话,PCIE传输模块和算法模块会共用DDR2接口,这个仲裁机制该怎么解决呢?


不清楚你加的这个算法要怎么样工作,一般来说, 写入DDR2之前做算法处理,再写进去;反向,先从DDR2读数据,然后再做算法反处理,这样就不需要把数据从DDR2折腾两次。


你的PCIE是作为EP吧?也就是数据何时到来或读取不受FPGA控制吧。
其实这个仲裁不难,只要你这两部分对于时序的要求不太高够用就行。比如PCIE作为EP,是可以有等待时间的,就是如果PC或RC来写一个数据,如果DDR没准备好的话,是可以放在BAR里缓存下;同样,读一个数据,暂时不可行的话,也会等待DDR过段时间返回数据才会完成。 而这段时间是TLP层面上的等待,并不是DLLP数据链路上的等待,并不会出现timeout之类的ERROR。也就是等会没影响。

同样,你的算法接口应该也不会对DDR操作过于频繁。

可以参考类似令牌的方式, 如果其中一端想占用DDR读写了,那先查询当前状态,另一方没有占用,那将之占用,同时将状态拉高,待用完后释放。 如果一方优先级高,那也可以在对方完成一次简单的读写后就将之强行释放再占用。等等,

应该不会太复杂,你可以将算法读写的优先级设置得更高。



   嗯,我也想过这样做,可是PCIE并不保证数据的顺序。



  嗯,谢谢你!很详细了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top