<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > SPI-4接口的數(shù)據(jù)處理

          SPI-4接口的數(shù)據(jù)處理

          作者: 時間:2011-12-22 來源:網絡 收藏
          從圖1所示的系統(tǒng)框圖中可以看出內部處理是相當復雜的,為了讓讀者更好地了解接口的設計過程,筆者在框圖中劃分了內部處理模塊,即分為LO接口處理模塊、用戶FIFO和參數(shù)配置3大部分。其中最關鍵的部分是I/O接口處理,它把高速數(shù)據(jù)在FPGA內部利用Virtex-5器件內部ISERDES、OSERDES和IODELAY資源進行了串并轉換和DPA(動態(tài)相位對齊)。

            圖1 Xilinx SPL-4解決方案框圖

            (1)Sink Core I/0接口設計

            對于數(shù)據(jù)通道,Sink Core的接收數(shù)據(jù)在FPGA I/O內部通過ISERDES串并轉換后,把數(shù)據(jù)速率降低供內部處理。這樣做的目的是降低了FPGA內部系統(tǒng)頻率,使時序更加容易滿足。而對于狀態(tài)信`患通道,把內部處理的數(shù)據(jù)直接經過LO里的寄存器鎖存輸出,如圖2所示。

            圖2 Sink Core I/O接口

            (2)Source Core I/O接口設計

            Source Core的處理是內部已經處理好的數(shù)據(jù)經過FPGA I/O內部的OSERDES進行并串轉換輸出。而對于狀態(tài)信息通道,因為速率比較低,最高不超過數(shù)據(jù)通道速率的1/4。所以處理起來比較簡單,直接使用FPGA I/O內部的寄存器鎖存輸出到內部處理即可,如圖3所示。

            圖3 Source Core I/O接口

            (3)DPA功能

            對于數(shù)據(jù)對齊來說,由于在SPI-4中允許數(shù)據(jù)的偏移為±1個BIT,所以除了要做位對齊外,還需要做通道對齊。位對齊就是利用Xilinx Vitex-5器件內部的IODELAY模塊用移相狀態(tài)機在其上面進行移相。多達64級,每級大約75ps,直到采樣時鐘對齊到數(shù)據(jù)窗口的中間位置。位對齊的效果如圖4所示。

            圖4 位對齊效果

            通道對齊利用協(xié)議指定的Training Pattern作為對齊信息和ISERDES模塊中的BITSLIP功能來進行,效果如圖5所示。

          通道對齊前后效果

            圖5 通道對齊前后效果

            只有完成這兩個對齊過程,接收端的輸入數(shù)據(jù)才真正被處理完畢,這時數(shù)據(jù)就可以直接供給內部做協(xié)議處理。

            (4)用戶FIFO

            該FIFO用于與用戶邏輯連接的,其原理是把內部協(xié)議處理后的數(shù)據(jù)寫入FIFO,然后讀出FIFO的數(shù)據(jù)作為后級的用戶邏輯使用。有機地隔離了用戶邏輯和用戶FIFO,使用戶邏輯的設計更加清晰和容易。

            (5)參數(shù)配置

            該模塊主要做參數(shù)配置作用,用來配置支持的端口數(shù)、最大發(fā)送包長、遍歷長度及連續(xù)的DIP4和DIP2有效數(shù)目等。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();