寫在前面
IP是什么?簡(jiǎn)單來講,IP就是Xilinx或者第三方開發(fā)者把自己的邏輯模塊封裝成一個(gè)黑盒子,然后拿出來給別人用。那什么又是黑盒子?黑盒子就是你看不到里面的東西,你只能看到外面的接口。也就是說IP是某類可以不了解內(nèi)部構(gòu)造,僅僅需要對(duì)對(duì)外接口操作即可以使用的某類特定功能模塊。
封裝成黑盒子的好處是顯而易見的-----你無需對(duì)復(fù)雜的內(nèi)部結(jié)構(gòu)了如執(zhí)掌,只要能做到如何使用即可。可能有人會(huì)說了:那這豈不是不符合我們從小學(xué)習(xí)的“知其然,知其所以然”?不好意思,你是工程師,你不是科學(xué)家。老板只關(guān)心你把東西做出來、做好,不會(huì)關(guān)心這個(gè)東西你到底懂不懂。
說了這么多的意思就是。Aurora IP核這個(gè)東西我們會(huì)用就行了,不用糾結(jié)它具體是怎么實(shí)現(xiàn)的(當(dāng)然知道肯定更好,無非就是個(gè)時(shí)間性價(jià)比的問題)。那么具體到一個(gè)FPGA IP類的黑盒子,我們需要了解哪些對(duì)外接口才能把它給用起來呢?無非就是三類:
- 時(shí)鐘:對(duì)于一個(gè)系統(tǒng),時(shí)鐘架構(gòu)是必不可少的,根據(jù)其復(fù)雜程度,時(shí)鐘數(shù)量、種類也會(huì)不同
- 復(fù)位:一個(gè)穩(wěn)健的系統(tǒng),各類復(fù)位信號(hào)也是不可缺少的(要能把IP初始化成功)
- 指示:輔以數(shù)個(gè)指示信號(hào),可以實(shí)現(xiàn)更好的操作、調(diào)試等交互功能
1、時(shí)鐘
時(shí)鐘看手冊(cè)好像很多,實(shí)際上真的與我們密切相關(guān)的無非就是4個(gè)。
首先我們打開IP定制界面的第一頁(yè)Core Options,可以看到3個(gè)時(shí)鐘:
- GT Refclk :Aurora IP核是基于GT作為物理層實(shí)現(xiàn)的,所以時(shí)鐘GT Refclk就是GT的參考時(shí)鐘。GT的時(shí)鐘參考只能使用外部的差分時(shí)鐘,所以具體的值取決你板卡的硬件設(shè)計(jì)。默認(rèn)125Mhz。
- INIT CLK :初始化階段的時(shí)鐘 ,在上電初始化階段,可以使用該時(shí)鐘來驅(qū)動(dòng)一些邏輯。默認(rèn)值:50Mhz。
- DRP CLK : DRP時(shí)鐘,動(dòng)態(tài)重配置,一般沒用,默認(rèn)值:50Mhz(通常一個(gè)內(nèi)部模塊需要進(jìn)行配置,使用兩種方法:端口控制和配置參數(shù)控制。一個(gè)常見的應(yīng)用就是線速率切換。這時(shí)候就需要利用DRP端口來調(diào)整部分參數(shù)的值,然后復(fù)位GTX,使GTX工作在不同的線速率下。)。
上面這三個(gè)時(shí)鐘,是IP核工作所需要的時(shí)鐘,也是我們需要提供給IP核的。此外,還有一個(gè)時(shí)鐘是IP核提供給我們的:user_clk。這個(gè)時(shí)鐘,是IP核根據(jù)設(shè)置的線速率及Lane的位寬計(jì)算出來的用戶時(shí)鐘,用戶需要傳輸?shù)臄?shù)據(jù)必須是該時(shí)鐘域下的數(shù)據(jù),否則會(huì)存在亞穩(wěn)態(tài)風(fēng)險(xiǎn)。關(guān)于user_clk值的計(jì)算我們?cè)谙乱徽鹿?jié)再討論。
基本就能總結(jié)了:1、GT Refclk的值根據(jù)對(duì)應(yīng)硬件設(shè)計(jì)的來;INIT CLK 和DRP CLK可以用PLL或者M(jìn)MCM生成;3、user_clk是用戶時(shí)鐘域,我們的數(shù)據(jù)收發(fā)接口應(yīng)該工作在此時(shí)鐘域下。
2、復(fù)位
復(fù)位信號(hào)一定要好好了解,不然你的IP為什么起不來你都不知道咋回事!
復(fù)位信號(hào)用于將Aurora 8B/10B核心設(shè)置為一個(gè)已知的啟動(dòng)狀態(tài)。在復(fù)位時(shí),IP核停止任何當(dāng)前操作并重新初始化一個(gè)新通道。在雙工模塊上,復(fù)位信號(hào)復(fù)位通道的TX和RX兩側(cè)。
復(fù)位案例1:雙工模式下的reset復(fù)位
復(fù)位信號(hào)reset需要至少維持6個(gè)時(shí)鐘周期,然后3個(gè)周期后,channel_up信號(hào)被拉低,表示傳輸通道建立失效
復(fù)位案例2:雙工模式下的gt_reset復(fù)位
復(fù)位信號(hào)gt_reset需要至少維持6個(gè)時(shí)鐘周期,然后一段時(shí)間后,user_clk也會(huì)失效(這是因?yàn)閡ser_clk的時(shí)鐘來源是GT,gt_reset復(fù)位會(huì)從最底層的物理層復(fù)位),隨后channel_up信號(hào)被拉低,表示傳輸通道建立失效
單工模式的復(fù)位步驟就不講了,請(qǐng)參考手冊(cè)。
雙工模式下的上電時(shí)序
雙工模式下,給FPGA上電時(shí),gt_reset和reset信號(hào)都必須保持為高電平,與此同時(shí)GT的參考時(shí)鐘gt_clk和初始化時(shí)鐘init_clk都必須保持穩(wěn)定。
雙工模式下的正常操作復(fù)位時(shí)序
1. 在gt_reset斷言之前,reset信號(hào)必須穩(wěn)定保持128個(gè)user_clk時(shí)鐘周期的斷言
2. gt_reset斷言保持一段時(shí)間(圖中所示為1s)
3. 在gt_reset取消斷言一段時(shí)間后,reset取消斷言
3、狀態(tài)指示
Aurora IP還提供了一系列的指示接口出來,方便我們進(jìn)行調(diào)試:
- loopback:回環(huán)模式,實(shí)際使用一般接到0
- power down:高電平有效。當(dāng)其為高時(shí),GT會(huì)進(jìn)入非工作、低功耗的模式(類似睡眠模式)。我們使用的時(shí)候一般直接拉低。
- lane_up:當(dāng)對(duì)應(yīng)的Lane初始化完成后,會(huì)斷言對(duì)應(yīng)的lane_up
- channel_up:當(dāng)Auroa 8b/10b 初始化完成后,并且當(dāng)前已經(jīng)可以進(jìn)行數(shù)據(jù)的傳輸時(shí),會(huì)斷言該信號(hào)
- hard_err:錯(cuò)誤表征應(yīng)信號(hào),主要是硬件類錯(cuò)誤
- soft_err:錯(cuò)誤表征應(yīng)信號(hào),主要是軟件類錯(cuò)誤
- frame_err:錯(cuò)誤表征應(yīng)信號(hào),主要是幀類錯(cuò)誤
4、其他
其他
除了上述部分外,還有一些不太常用的功能(自己看手冊(cè)吧):
- 流控:Flow Control(Native Flow Control、User Flow Control)
- 加擾/解擾:Scrambler/Descrambler
- 循環(huán)冗余校驗(yàn):Cyclic Redundancy Check,CRC
預(yù)告
下一節(jié)我們?cè)賮硪黄饘W(xué)習(xí)下Aurora IP核的example design(兩種接口一起)。
參考
Aurora 8B/10B Protocol Specification
Aurora 8B/10B v11.1 LogiCORE IP Product Guide
審核編輯:符乾江
-
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1736瀏覽量
131587 -
AURORA
+關(guān)注
關(guān)注
0文章
25瀏覽量
5400
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論