在ML605上使用8個在FMC
HPC上的GTX(TX
ONLY),其對應的腳位為
Pin Location (ML605)
Reference Input Clock
在HPC中我選擇使用者輸入的Refclk0,因為另外一個不知道怎麼用(囧),在另外加一個SMA輸出的GTX,因為所有的GTX速度必須一樣,所以如果到時候子版有問題可以拿這個SMA的GTX來debug
Refclk 中已經內接了100ohm的電阻,還有800mV的common
mode voltage MGTAVCC
外接Refclk必須輔合下列的條件
- 必須接AC Coupling(0.1 uF Capacitor)
- Refclk的pin與quad clk pin需為dedicated
- differential voltage swing需在200mV-2000mV間,常值為1200mV
- 如果bypass tx buffer 則需提供持續toggling的refclk
- 還需符合其它Virtex6 的timing條件如下表frequencz range與rise/fall time
每個quad都可以跟北方與南方的quad共享refclk,
最多只能三個quad共享一個refclk,如下圖所示,所以基本上整個FMC兩個quad只需要一個Refclk,不管選哪個refclk最終都會進入TX
PLL,Refclk進來了以後要馬上進入IBUFDS_GTXE1
在referance
project中後級又在另外接了一個bufg,但是在datasheet中沒看到
另外在reference
project裡面可以找到gtx跟refclk的constraint
, 在實際的project中必須加在ucf裡面
當Lane
Rate為0.48G與0.6G間時會強制oversampling(optional
5X digital oversampling). Lane Rate無法低於0.48G
-
如果oversampling,在refrence file有多產生一些code(晚點詳看)
TXUSRCLK2是將Data送入邏輯的clk, 它的速度是由Lane Rate,Data Width 與是否使用8b|10b encode來決定, Lane Rate如果調得越高,所需的Data Width越大第二個Clk TXUSRCLK是提供給tx的PCS邏輯來使用,由使用者的設定來決定由內部產生還是由使用者輸入,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 bytes的multiple
lanes都要用到MMCM,所以真的是輸入2
bytes是給自己一條生路?
TX 初始化
初始化有三種方式
- configure FPGA
- drive GTXTXRESET
- 可以安插一個或是多個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中要另外勾選,但是不管有沒有選,
GTX的functional
model都會包含一個double_reset
model
,
只要輸入
100000000000
, 系統跟根據counter自動產生如下圖的pulse,使用者不用另外instance
double_reset
疑問
:
這個GTXTEST的定位到底是系統會自動設還是也可以人工控制,看起來不管我有沒有拉出這個pin,functional
model都會使用這個double
reset,即使拉出來輸入
100000000000,它也會自己自動計算並改變GTXTEST[1],還是是因為我的TXPLL_DIVSEL_OUT為4,所以系統自動強制Reset?
另外GTXTXRESET要設到板子上的RESET
沒有留言:
張貼留言