本工程基於以下條件使用:
- 板卡:DBF板v3.0
- 芯片型號:Virtex6 315T
- ISE版本:14.7
- IP核版本: v6_gtxwizard : 1.12
一、IP核配置進行流程
第一頁配置:線速率和編碼
- TX、RX的
Line Rate
、Data Path Width
、Reference Clock
根據項目的實際情況進行選擇 Reference Clock
:表示 外界時鍾輸入給GTX模塊的參考時鍾
- 注:
- 紅色框代表必須按照截圖設置。
- 綠色框代表根據項目需求進行設置。
- 黃色框代表,可自由選擇項。
第二頁配置:參考時鍾位置選擇
- 此處必須參考原理圖選擇REFCLK。
第三頁配置:同步和對齊
- RXUSRCLK Source 一般選擇
RERECCLK
,但是在位寬32bit,且使用GTX格式較多的情況下,建議選擇TXOUTCLK
因為這樣可以節省出大量的BUFG資源。 - RX Comma Alignment部分,Xilinx 在V6系列處理的不好,設置作用不是很明顯,還是有翻轉情況出現。
第四頁配置:預加重,終端、均衡
- Enable DFE : 當外部信號傳輸質量比較差(>100ppm)時,建議選上。
- Rx Equalization:此處保持默認即可,當實際工程中,發現誤碼較高時,可以在程序中動態修改此值。
- Post Emphasis:當對方接受誤碼較高時,可適當修改此值進行調試。
第五頁配置:失同步狀態機
- 保持默認不變
第六頁配置:通道綁定
- 此功能沒有用過,保持默認不變
第七頁配置:時鍾校准
- Use Clock Correction :在同源時鍾下可以不選擇
- Sequence : 00011100,配置向導中使用了此值即K28.0,實驗室所有的項目也是按照此值配置的。但是個人認為按照我們平時習慣用法,此值應該配置成10111100,K28.5。經簡單測試沒有發現問題,但未在任何大型項目上驗證過。
工程使用說明
基本使用方法
-
當IP核生成以后將如下文件添加到工程:
- ip/[gtx核名].v
- ip/[gtx核名]_gtx.v
- ip/[gtx核名]/example_design/所有文件
-
在[gtx核名]_top 文件中將
GTX0_RXENMCOMMAALIGN_IN
,GTX0_RXENPCOMMAALIGN_IN
括號內的值改為1(如下圖),這里用到了多少了gtx模塊就要按照序號該幾處。 -
此時工程已基本可以仿真與簡單測試,在modlesim中切換到如下目錄,並輸入
simulate_mti.do
即可開始仿真。..\imp\ip\fiber\simulation\functional
gtx重點信號線說明
-
在整個GTX工程中只需關注top層如下信號線即可。
-
TOP層輸入輸出端口
Qx_CLK0_MGTREFCLK_PAD_N_IN
:x視實際位置而定,表示GTX參考時鍾GTXTXRESET_IN\GTXRXRESET_IN
:由用戶控制的TX/RX全局復位RXN_IN
:GTX接收引腳TXP_OUT
:GTX發送引腳
-
重要控制信號線說明
gtx0_loopback_i
:gtx自環控制。
- 3’b000:非自環模式;
- 3’b001,近端PCS自環;
- 3’b010,近端PMA自環,一般仿真或單板測試時選擇此模式。
gtx0_rxnotintable_i
:接收錯誤指示信號線:當接收到無法通過8b/10b解碼的數據時此信號線拉高,可以簡單的理解為接收到誤碼的標志。
-
重要數據時鍾信號線說明
- 接收
gtx0_rxusrclk2_i
:當IP核配置第三頁的 RXUSRCLK Source 選擇RXRECCLK
時,每個gtx模塊單獨對應一個此類型時鍾。gtx0_rxdata_i
: 用戶接收到的數據gtx0_rxcharisk_i
: 用戶接收到的K碼,用於指示gtx0_rxdata_i
數據類型。
- 當
gtx0_rxcharisk_i
某位為1時,表示gtx0_rxdata_i
對應的某個8位為K碼。
- 當
- 發送
gtx0_txusrclk2_i
:用戶發送時鍾,所有的gtx發送模塊均用此時鍾;當IP核配置第三頁的 RXUSRCLK Source 選擇TXOUTCLK
時,所有的gtx接收模塊也是用此時鍾。gtx0_txcharisk_i
:用戶待發送的K碼gtx0_txdata_i
:用戶待發送的數據
- 接收
實際開發工程的使用
- 在實際開發中還需對工程做如下的修改,才更方便使用。
刪除例程測試部分
- 起點:從注釋
Frame Generators
處開始 - 終點:一直到代碼
begin:no_chipscope
,以上全部刪除。 - 其他:后面的vio,ila核內容一並刪除,以及一些其他導致報錯的多余代碼。
修改UCF文件
-
為了保證在以后大工程中使用gtx核時路徑不出問題,需對gtx的兩個ucf文件做如下修改。
-
xxx_attributes.ucf
:在所有約束前加入*/
xxx_top.ucf
:和上面類似,在User Clokc Constraints 和 mgt wrapper constraints 約束的前面加入*/
- 轉載:http://blog.csdn.net/lutianfeiml/article/details/51242160