《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Xilinx芯片的FPGA的DONE信號(hào)上拉電阻阻值分析
基于Xilinx芯片的FPGA的DONE信號(hào)上拉電阻阻值分析
2017年微型機(jī)與應(yīng)用第10期
郭京,,沈華,段小虎
中航工業(yè)西安航空計(jì)算技術(shù)研究所,,陜西 西安 710068
摘要: 基于Xilinx芯片的FPGA集成了越來(lái)越多的可配置邏輯資源、各種各樣的外部總線接口以及豐富的內(nèi)部RAM 資源。在FPGA的電路設(shè)計(jì)中,,上電配置電路至關(guān)重要。其中,,DONE信號(hào)上拉電阻阻值的選擇很容易被人忽略,,錯(cuò)誤的阻值選擇往往會(huì)導(dǎo)致意想不到的情況。通過(guò)采用4.7 kΩ電阻上拉DONE信號(hào)產(chǎn)生的試驗(yàn)結(jié)果,,來(lái)分析DONE信號(hào)上拉電阻必須為330 Ω的原因,。
關(guān)鍵詞: FPGA 上拉電阻 DONE信號(hào)
Abstract:
Key words :

  郭京,沈華,段小虎

 ?。ㄖ泻焦I(yè)西安航空計(jì)算技術(shù)研究所,,陜西 西安 710068)

  摘要:基于Xilinx芯片的FPGA集成了越來(lái)越多的可配置邏輯資源、各種各樣的外部總線接口以及豐富的內(nèi)部RAM 資源,。在FPGA的電路設(shè)計(jì)中,,上電配置電路至關(guān)重要。其中,,DONE信號(hào)上拉電阻阻值的選擇很容易被人忽略,,錯(cuò)誤的阻值選擇往往會(huì)導(dǎo)致意想不到的情況。通過(guò)采用4.7 kΩ電阻上拉DONE信號(hào)產(chǎn)生的試驗(yàn)結(jié)果,,來(lái)分析DONE信號(hào)上拉電阻必須為330 Ω的原因,。

  關(guān)鍵詞:FPGA;上拉電阻,;DONE信號(hào)

  中圖分類號(hào):TP302.7文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.011

  引用格式:郭京,,沈華,段小虎.基于Xilinx芯片的FPGA的DONE信號(hào)上拉電阻阻值分析[J].微型機(jī)與應(yīng)用,2017,36(10):37-39.

0引言

  隨著半導(dǎo)體和芯片技術(shù)的飛速發(fā)展, 現(xiàn)在的現(xiàn)場(chǎng)可編程門(mén)陣列(FieldProgrammable Gate Array, FPGA)集成了越來(lái)越多的可配置邏輯資源,、各種各樣的外部總線接口以及豐富的內(nèi)部RAM 資源, 使其在國(guó)防,、醫(yī)療、消費(fèi)電子等領(lǐng)域得到了越來(lái)越廣泛的應(yīng)用,。但是FPGA 大多數(shù)是基于SRAM 工藝的, 具有易失性, 因此FPGA 通常使用外部存儲(chǔ)器件(如PROM) 存儲(chǔ)必需的配置信息, 防止設(shè)備掉電后FPGA丟失自我配置能力,。但FPGA 配置在一定的條件和時(shí)間下才能成功完成, 隨著FPGA 容量的不斷攀升,配置時(shí)間也被大大加長(zhǎng), 上電時(shí)如不充分考慮FPGA的配置時(shí)序以及對(duì)其他器件的影響, 根據(jù)常規(guī)經(jīng)驗(yàn)設(shè)計(jì)電路, 往往會(huì)影響系統(tǒng)其他外圍器件的正常工作, 嚴(yán)重時(shí)會(huì)導(dǎo)致整個(gè)系統(tǒng)的失效,。因此, FPGA 的配置方式和上電時(shí)序已成為系統(tǒng)設(shè)計(jì)的重要一環(huán)[1]。本文主要分析在FPGA上電配置過(guò)程中,,因DONE上拉電阻阻值的不同而引起的不同上電結(jié)果,。

1FPGA的加載過(guò)程

  FPGA加載過(guò)程分為8個(gè)序列[1],如圖1所示,。

Image 001.jpg

  在前7個(gè)步驟完成后,,配置數(shù)據(jù)的CRC校驗(yàn)完成,進(jìn)入最后的Startup序列,,Startup序列所需要處理的事件如圖2所示,。

Image 002.jpg

  這7個(gè)事件的前后關(guān)系是可以在FPGA的目標(biāo)碼bit文件生成選項(xiàng)中進(jìn)行設(shè)置的,默認(rèn)的設(shè)置順序如圖3所示,。

Image 003.jpg

  所以,,默認(rèn)狀態(tài)下,F(xiàn)PGA在配置數(shù)據(jù)加載完并且通過(guò)CRC校驗(yàn)后,,依次完成以下工作:

 ?。?)釋放DONE信號(hào):配置數(shù)據(jù)加載期間FPGA驅(qū)動(dòng)DONE信號(hào)為低,到Startup序列后FPGA將DONE信號(hào)置為高阻態(tài),,靠外部上拉電阻將DONE信號(hào)拉為高,。

  (2)處理GTS事件:配置數(shù)據(jù)加載期間FPGA IO管腳為高阻態(tài)(或也可由FPGA的某個(gè)配置管腳將所有IO在配置數(shù)據(jù)加載期間設(shè)置為上拉,,該管腳的名字通常為PUDC_B或HSWAPEN),,到Startup序列后FPGA取消IO的高阻態(tài),使能其輸出,。

 ?。?)處理GWE事件:配置數(shù)據(jù)加載期間FPGA禁止RAM的寫(xiě)入和flipflop狀態(tài)的改變,到Startup序列后使能RAM的寫(xiě)入,,并允許flipflop狀態(tài)發(fā)生改變,。

  默認(rèn)狀態(tài)下DLL和DCI不作為Startup序列的一部分,由FPGA自行處理完成后進(jìn)入Lock狀態(tài),。

2DONE信號(hào)上拉電阻與GTS事件

  為了分析DONE信號(hào)上拉電阻阻值對(duì)上電配置的影響,,本文將DONE信號(hào)上拉4.7 kΩ電阻來(lái)觀察造成的結(jié)果。使用一個(gè)離散量輸出作為GTS事件的標(biāo)志,,該離散量在VHDL源碼中賦為“0”,,由于FPGA電路配置為在加載期間IO上拉,從而該離散量信號(hào)在GTS事件之前時(shí)為高電平,,在GTS事件后變?yōu)榈碗娖?,該信?hào)的電平變化就標(biāo)志了GTS事件的發(fā)生,離散量無(wú)變化即為GTS未發(fā)生,。FPGA采用XCF32P PROM Flash的CLKOUT作為配置時(shí)鐘CCLK的時(shí)鐘源,。默認(rèn)狀態(tài)下,,該時(shí)鐘僅可輸出20 MHz或40 MHz時(shí)鐘,若使用MCS壓縮模式,,該時(shí)鐘還可以輸出10 MHz時(shí)鐘,。

  當(dāng)DONE信號(hào)上拉電阻阻值為4.7 kΩ時(shí),經(jīng)過(guò)多種組合情況的測(cè)試,,結(jié)果如表1所示,。 

Image 005.jpg

  通常而言,,如果PCB走線較差,,F(xiàn)PGA配置電路信號(hào)完整性不好,F(xiàn)PGA配置時(shí)鐘頻率較高時(shí)容易發(fā)生配置失敗,,但這通常會(huì)使配置數(shù)據(jù)載入錯(cuò)誤,造成CRC校驗(yàn)錯(cuò)誤,,從而導(dǎo)致配置失敗,。而在這樣配置環(huán)境中,即使采用40 MHz的配置時(shí)鐘,,CRC校驗(yàn)仍然不會(huì)發(fā)生錯(cuò)誤,,所以離散量不輸出并不是信號(hào)完整性較差引發(fā)的,肯定有著與GTS事件處理直接相關(guān)的原因,。

  進(jìn)一步對(duì)GTS事件時(shí)配置電路的行為進(jìn)行波形捕獲與分析,,在不同的配置時(shí)鐘頻率下,使用示波器對(duì)該離散量,、DONE信號(hào),、配置時(shí)鐘進(jìn)行捕獲,獲得波形如圖4,、圖5,、圖6所示。

  

Image 004.jpg

  以上三幅圖中的T表示相應(yīng)情況下的時(shí)鐘周期,??偨Y(jié)分析如表2所示。

  

Image 006.jpg

  不同配置時(shí)鐘頻率下“DONE信號(hào)爬升時(shí)間”有所差異,,DONE信號(hào)的爬升速度緩慢造成了GTS事件的失敗,,在較低頻率的配置時(shí)鐘下,DONE信號(hào)需要較少時(shí)鐘周期即可為高,,而在較高頻率的配置時(shí)鐘下,,DONE信號(hào)需要較多時(shí)鐘周期才能升高。所以配置時(shí)鐘頻率較高時(shí),,發(fā)生GTS事件失敗的概率較高,。

  根據(jù)不同配置時(shí)鐘頻率下“DONE信號(hào)釋放到GTS事件時(shí)間”的差異,,進(jìn)一步得出GTS事件的發(fā)生需要對(duì)DONE信號(hào)的電平狀態(tài)進(jìn)行回采,即FPGA在釋放DONE信號(hào)后,,并不是在下一個(gè)時(shí)鐘周期立即執(zhí)行GTS事件,,而是要在每個(gè)時(shí)鐘周期對(duì)DONE信號(hào)的狀態(tài)進(jìn)行采集判斷,直至外部上拉電阻將DONE信號(hào)電平拉高之后才會(huì)開(kāi)始執(zhí)行GTS事件,。

  根據(jù)GTS事件到配置時(shí)鐘終止時(shí)間,,猜測(cè)XCF32P PROM Flash是根據(jù)FPGA的DONE信號(hào)電平狀態(tài)來(lái)決定何時(shí)終止CLKOUT配置時(shí)鐘的輸出,待其CE#管腳采集到DONE信號(hào)為高后,,再給出7~8個(gè)配置時(shí)鐘周期,,即終止配置時(shí)鐘。

  至此,,對(duì)GTS事件失敗的原因分析結(jié)果為:配置數(shù)據(jù)加載并校驗(yàn)完成之后,,F(xiàn)PGA釋放DONE信號(hào),由外部上拉電阻將DONE信號(hào)拉為高,,DONE信號(hào)開(kāi)始爬升,。FPGA對(duì)DONE信號(hào)的實(shí)際電平狀態(tài)進(jìn)行回采,待其電平為高后執(zhí)行GTS事件,。如果FPGA的DONE信號(hào)并未按照Xilinx手冊(cè)用330 Ω電阻上拉,,而使用了4.7 kΩ電阻上拉,這就造成了DONE信號(hào)爬升太過(guò)緩慢,,需要配置多個(gè)時(shí)鐘周期才可為高,。這樣的話,在FPGA對(duì)DONE信號(hào)實(shí)際電平進(jìn)行回采時(shí),,即有可能因?yàn)镈ONE信號(hào)有回溝而采集到混亂的DONE信號(hào)狀態(tài)(例如首先為高然后為低),,這就可能造成GTS事件的失敗,從而造成FPGA 的IO管腳無(wú)法輸出,,進(jìn)而影響整個(gè)系統(tǒng),。

3分析結(jié)果的驗(yàn)證

  為驗(yàn)證以上分析,需要加快DONE信號(hào)爬升速度,,來(lái)觀測(cè)GTS事件失敗的情況,。

  在FPGA的目標(biāo)碼bit文件生成選項(xiàng)中,選擇“Drive Done Pin High”選項(xiàng)來(lái)使FPGA在配置數(shù)據(jù)加載并校驗(yàn)完成之后,,并不釋放DONE信號(hào),,而是主動(dòng)將DONE信號(hào)驅(qū)動(dòng)為高。選擇該選項(xiàng)后,,DONE信號(hào)不再需要外部上拉電阻來(lái)驅(qū)動(dòng),,而是由FPGA直接從低驅(qū)動(dòng)為高,在這種情況下,示波器采集所獲波形如圖7所示,?!?/p>

Image 007.jpg

  在這種情況下,F(xiàn)PGA對(duì)DONE信號(hào)實(shí)際電平進(jìn)行回采時(shí),,就不會(huì)再采集到DONE信號(hào)的不定態(tài),,GTS事件不會(huì)再失敗。離散量也就輸出正常,。

  經(jīng)此選項(xiàng)后,,在40 MHz配置時(shí)鐘下多次試驗(yàn),GTS事件也不會(huì)再失敗,。

  通過(guò)FPGA的目標(biāo)碼bit文件生成選項(xiàng)可以更改GTS事件和GWE事件的前后關(guān)系,。如果將GWE事件與GTS事件交換位置,則會(huì)發(fā)生GWE事件失敗而GTS事件成功的情況,。這說(shuō)明DONE信號(hào)釋放后的第一個(gè)事件會(huì)受到影響,,再之后的事件由于DONE信號(hào)已爬升為高,因而不會(huì)再失敗,。

4結(jié)論

  Xilinx不直接對(duì)DONE信號(hào)進(jìn)行驅(qū)高,,而是由外部上拉電阻拉高,這樣可以讓多個(gè)FPGA的DONE信號(hào)連在一起,,回采其信號(hào),從而可使所有FPGA都加載完成之后,,同步開(kāi)始工作,。

  Xilinx要求使用330 Ω電阻對(duì)DONE信號(hào)進(jìn)行上拉的原因是,該阻值可以保證在所允許的最高頻率的配置時(shí)鐘下,,DONE信號(hào)仍可在一個(gè)時(shí)鐘周期內(nèi)爬升為高,,從而保證后續(xù)GTS事件的成功處理。

參考文獻(xiàn)

 ?。?] 紀(jì)斌.Xilinx FPGA 上電時(shí)序分析與設(shè)計(jì)[J].電訊技術(shù),,2012,52(4):591-594.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。