C6678-SRIO和Virtex6-FPGA
設計的板子到了SRIO調試階段了,在板子上,一片V6和兩片6678通過4XSRIO互聯,中間沒有Switch,總算搞定了相互之間的通信。
? 首先,感謝Ti論壇提供的SRIO程序范例,但是其硬件平臺是EVM板,更多的只能用于loopback測試,但是可以在其基礎上修改。
1.初始化DSP的SRIO,主要是對SerDes進行配置,然后是Lane和Speed的配置,最后需要等待FPGA的LinK建立,我們在建立時候碰到一點困難,每次建立并不都是4X,一直沒有找到問題,我們使用了一個別的辦法來保證link為4X。
2.數據發送,DSP上提供的數據發送方法主要有兩種,DirectIO和Message,主要區別為DirectIO需要TX和RX雙方知道地址映射關系,而Message是通過Message中mail信息得到數據需要保存的地址,我們使用的為DirectIO方法,6678上提供了8組LSU來進行DirectIO數據發送,每個LSU有6個寄存器,當5th寄存器寫完后,數據會發送出去,第6個寄存器主要用于檢測當前的LSU狀態。LSU還有16(32)個影子寄存器?
3.SWRITE/NWRITE/NREAD:對DSP來說,初始化完SRIO后,FPGA便可以通過SRIO來發送數據,但是要注意,Designer并不知道什么時候FPGA會發送數據,所以通常會先發送一個DoorBell信息來告知DSP,FPGA要發送數據了,DoorBell可以觸發中斷,對于NREAD來說,FPGA發送這個命令后,DSP會自動的將請求的數據發送出去,Designer也并不知道數據發送出去,這些都需要DoorBell來支持。
?
轉載于:https://www.cnblogs.com/fpga/archive/2012/07/13/2590929.html
總結
以上是生活随笔為你收集整理的C6678-SRIO和Virtex6-FPGA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄山风景区旅游攻略一日游
- 下一篇: jquery 实现表单验证功能代码(简洁