2014年6月18日 星期三

Virtex6 Transceivers Note

ML605上使用8個在FMC HPC上的GTX(TX ONLY),其對應的腳位為
Pin Location (ML605)







Reference Input Clock

HPC中我選擇使用者輸入的Refclk0,因為另外一個不知道怎麼用(),在另外加一個SMA輸出的GTX,因為所有的GTX速度必須一樣,所以如果到時候子版有問題可以拿這個SMAGTXdebug




Refclk 中已經內接了100ohm的電阻,還有800mVcommon mode voltage MGTAVCC



外接Refclk必須輔合下列的條件
  • 必須接AC Coupling(0.1 uF Capacitor)


  • Refclkpinquad clk pin需為dedicated
  • differential voltage swing需在200mV-2000mV,常值為1200mV
  • 如果bypass tx buffer 則需提供持續togglingrefclk
  • 還需符合其它Virtex6 timing條件如下表frequencz rangerise/fall time

每個quad都可以跟北方與南方的quad共享refclk, 最多只能三個quad共享一個refclk,如下圖所示,所以基本上整個FMC兩個quad只需要一個Refclk,不管選哪個refclk最終都會進入TX PLL,Refclk進來了以後要馬上進入IBUFDS_GTXE1



referance project中後級又在另外接了一個bufg,但是在datasheet中沒看到


另外在reference project裡面可以找到gtxrefclkconstraint , 在實際的project中必須加在ucf裡面



Lane Rate0.48G0.6G間時會強制oversampling(optional 5X digital oversampling). Lane Rate無法低於0.48G
  1. 如果oversampling,refrence file有多產生一些code(晚點詳看)

TXUSRCLK2是將Data送入邏輯的clk, 它的速度是由Lane Rate,Data Width 與是否使用8b|10b encode來決定, Lane Rate如果調得越高,所需的Data Width越大第二個Clk TXUSRCLK是提供給txPCS邏輯來使用,由使用者的設定來決定由內部產生還是由使用者輸入,GTX Lanes in Channel 表示再一個quad裡面使用幾個GTX
GEN_TXUSRCLK
True : TXUSRCLK為內部產生且需接地
False : TXUSRCLK 為使用者提供(MMCM進入)


ML605中在FMC使用八個GTX, 其在quad112,113, data width設為16,所以 TXUSRCLK會自己產生並接地


如果選擇其它選項而使用者要自己輸入TXUSRCLK, 則要注意其CLK必須與
TXUSRCLK2正緣對齊,相對速度如下圖由Data width來決定



Project 的對應圖應為下圖, 其它byte or 4 bytesmultiple lanes都要用到MMCM,所以真的是輸入2 bytes是給自己一條生路?








TX 初始化

初始化有三種方式
  1. configure FPGA
  2. drive GTXTXRESET
  3. 可以安插一個或是多個RESET來重設特定的區塊Component
利用GTXTEST[1] 可以用來重設TX Output Clock,在下列情況下必須使用
When the TX output clock divider, TXPLL_DIVSEL_OUT, is set to /2 or /4
After FPGA power-up and configuration
After the associated reset of the PLL used by the TX is toggled
After turning on a reference clock to the PLL used by the TX
After changing the reference clock to the PLL used by the TX
After assertion/deassertion of TXPOWERDOWN
After assertion/deassertion of GTXTXRESET

GTXTEST GUI中要另外勾選,但是不管有沒有選, GTXfunctional model都會包含一個double_reset model
, 只要輸入 100000000000 , 系統跟根據counter自動產生如下圖的pulse,使用者不用另外instance double_reset

疑問 : 這個GTXTEST的定位到底是系統會自動設還是也可以人工控制,看起來不管我有沒有拉出這個pin,functional model都會使用這個double reset,即使拉出來輸入 100000000000,它也會自己自動計算並改變GTXTEST[1],還是是因為我的TXPLL_DIVSEL_OUT4,所以系統自動強制Reset?





另外GTXTXRESET要設到板子上的RESET

沒有留言:

張貼留言