利用 Platform Flash PROM 實(shí)現(xiàn)多重啟動(dòng)功能
一些應(yīng)用利用 Xilinx FPGA 在每次啟動(dòng)時(shí)可改變配置的能力,根據(jù)所需來改變 FPGA 的功能。Xilinx Platform Flash XCFxxP PROM 的設(shè)計(jì)修訂 (Design Revisioning) 功能,允許用戶在單個(gè)PROM 中將多種配置存儲(chǔ)為不同的修訂版本,從而簡(jiǎn)化了 FPGA 配置更改。在 FPGA 內(nèi)部加入少量的邏輯,用戶就能在 PROM 中存儲(chǔ)的多達(dá)四個(gè)不同的修訂版本之間進(jìn)行動(dòng)態(tài)切換。多重啟動(dòng)或從多個(gè)設(shè)計(jì)修訂進(jìn)行動(dòng)態(tài)重新配置的能力,與 Spartan-3E FPGA 和第三方并行 flash PROM 一起使用時(shí)所提供的 MultiBoot 選項(xiàng)相似。
本應(yīng)用指南將進(jìn)一步說明 Platform Flash PROM 如何提供附加選項(xiàng)來增強(qiáng)配置失敗時(shí)的安全性,以及如何減少引腳數(shù)量和板面積。此外,Platform Flash PROM 還為用戶提供其他優(yōu)勢(shì):iMPACT 編程支持、單一供應(yīng)商解決方案、低成本板設(shè)計(jì)和更快速的配置加載。
本應(yīng)用指南還詳細(xì)地介紹了一個(gè)包含 VHDL 源代碼的參考設(shè)計(jì)。
簡(jiǎn)介
與 FPGA 少量的內(nèi)部邏輯結(jié)合,Platform Flash PROM 可方便地支持需要動(dòng)態(tài)選擇多種 FPGA配置或修訂版本(即多重啟動(dòng))的應(yīng)用。利用 Xilinx Platform Flash 的 設(shè)計(jì)修訂功能和 FPGA少量的內(nèi)部邏輯,即可實(shí)現(xiàn)多重啟動(dòng)。該示例為需要多重啟動(dòng)功能的應(yīng)用,此時(shí) FPGA 需要同時(shí)支持一般功能和診斷功能(圖1)。在這種情況下,F(xiàn)PGA 使用診斷應(yīng)用啟動(dòng)以進(jìn)行板級(jí)測(cè)試。如果測(cè)試成功,F(xiàn)PGA 就通過第二個(gè)包含正常工作所需的一般功能配置鏡像的比特流觸發(fā)重配置。一般的 FPGA 應(yīng)用設(shè)計(jì)用于進(jìn)行重配置,以便隨時(shí)按需重新加載診斷應(yīng)用。
圖1 所示的示例中,默認(rèn)配置作為修訂版本 1 而存儲(chǔ)到 PROM 中。此默認(rèn)配置在系統(tǒng)復(fù)位時(shí)加載。當(dāng)多重啟動(dòng)被觸發(fā)時(shí),F(xiàn)PGA 將使用存儲(chǔ)在 PROM 中的配置鏡像(修訂版本 0)來自動(dòng)重配置。
注: Revision Select[1:0] 輸入有一個(gè) 50KΩ 的內(nèi)部上拉電阻接到 VCCO,在引腳未被驅(qū)動(dòng)時(shí),向器件提供邏輯 1。
作為修訂版本 1 存儲(chǔ)的默認(rèn)配置可包含一個(gè)“最佳”或“失效安全型”配置鏡像,可用于與外界進(jìn)行通信,檢查是否存在更新的配置鏡像。如果存在更新的配置鏡像,并且能夠通過驗(yàn)證,那么最佳配置會(huì)觸發(fā)重配置來加載新的鏡像。
注: 用戶能夠選擇使用存儲(chǔ)在多達(dá) 4 個(gè)修訂版本位置的任意一個(gè)配置鏡像,來重配置 FPGA。
設(shè)計(jì)修訂設(shè)計(jì)修訂允許用戶在單個(gè) PROM 或多個(gè)級(jí)聯(lián)的 PROM 中存儲(chǔ)多達(dá) 4 個(gè)不同的配置鏡像(圖2)。與動(dòng)態(tài)重配置結(jié)合,Platform Flash PROM 的設(shè)計(jì)修訂能力就能創(chuàng)建多重啟動(dòng)應(yīng)用。
利用設(shè)計(jì)修訂,每個(gè)配置鏡像都被存儲(chǔ)到一個(gè)特定的修訂版本位置(0 到 3),并且都能得到串行和并行輸出模式下的 8/16/32 Mbit XCFxxP Platform Flash PROM 的支持。利用 iMPACT 軟件能夠創(chuàng)建 PROM 編程文件和修訂版本信息文件 (.cfi)。稍后需要使用此 .cfi 文件實(shí)現(xiàn)設(shè)計(jì)修訂編程功能(詳情請(qǐng)參見 Xilinx ISE 8 軟件手冊(cè))。
在使用一系列配置鏡像對(duì) Platform Flash PROM 進(jìn)行編程后,可以通過外部 REV_SEL[1:0] 引腳或內(nèi)部可編程設(shè)計(jì)修訂控制位,來選擇一個(gè)存儲(chǔ)在特定版本位置的配置鏡像。
EN_EXT_SEL 引腳決定是使用外部引腳還是內(nèi)部控制位來選擇設(shè)計(jì)修訂版本。當(dāng)
EN_EXT_SEL 為低電平時(shí),通過外部修訂版本選擇引腳 REV_SEL[1:0] 來選擇使用哪個(gè)修訂版本。當(dāng) EN_EXT_SEL 為高電平時(shí),則通過內(nèi)部可編程的修訂版本選擇控制位來選擇相應(yīng)的修訂版本。
注: 對(duì)于本應(yīng)用指南的與參考設(shè)計(jì), EN_EXT_SEL 須置為低電平。
上電時(shí),由配置 PROM 的內(nèi)部邏輯對(duì)設(shè)計(jì)修訂版本選擇輸入(引腳或控制位)進(jìn)行采樣。上電結(jié)束后,當(dāng) CE 置為低電平(啟用 PROM 輸入),則在 CF 脈沖的上升沿,將再次對(duì)設(shè)計(jì)修訂版本選擇輸入進(jìn)行采樣。在此參考設(shè)計(jì)中, CE 接地,用戶將利用 FPGA 上的一個(gè) I/O 來控制 CF,請(qǐng)參見第 5 頁“參考設(shè)計(jì)”。選中的設(shè)計(jì)修訂版本的數(shù)據(jù)會(huì)出現(xiàn)在 FPGA 配置接口上。此接口可以是 8 位 SelecMAP (并行)或串行的。詳情請(qǐng)參見 DS123,Platform Flash 在系統(tǒng)可編程配置 PROM。
典型應(yīng)用
要利用 Platform Flash PROM 實(shí)現(xiàn)多重啟動(dòng)功能,需要對(duì)標(biāo)準(zhǔn) PROM 接口進(jìn)行一些修改,并且在 FPGA (圖3)中嵌入少量控制邏輯。除下面這幾個(gè)不同之處外,大部分與配置 PROM 的標(biāo)準(zhǔn)連接保持不變:
CE 必須與低電平相連,以確保 PROM 一直處于啟用狀態(tài)。在通常情況下, CE 與 DONE相連,以便在配置完成后禁用 PROM。
CF 由 FPGA 內(nèi)部的多重啟動(dòng)控制邏輯的一個(gè)輸出驅(qū)動(dòng),而不再像通常那樣連接到
PROG_B。
FPGA 的 PROG_B 引腳由多重啟動(dòng)控制邏輯的一個(gè)輸出驅(qū)動(dòng)。
注: 該連接需要使用 FPGA 的一個(gè)用戶 I/O。
REV_SEL 由多重啟動(dòng)控制邏輯的輸出驅(qū)動(dòng)。
控制邏輯監(jiān)控 RESET,而 RESET 可復(fù)位控制邏輯狀態(tài)機(jī)和多重啟動(dòng)觸發(fā)器(圖3 中的 MB 觸發(fā)器)。每個(gè)狀態(tài)間的時(shí)序非常關(guān)鍵;如果要確保成功進(jìn)行重配置,就需要仔細(xì)觀察一些建立和保持時(shí)間。這里給出了一個(gè)經(jīng)過充分驗(yàn)證的控制邏輯設(shè)計(jì),可以滿足這些時(shí)序約束條件(請(qǐng)參見第 5 頁“參考設(shè)計(jì)”)。
硬件接口
要啟用多重啟動(dòng)功能,F(xiàn)PGA 的一個(gè)輸出控制 PROM 上修訂版本選擇引腳的采樣。該信號(hào)與PROM 上 的 CF 輸入相連。當(dāng) PROM 檢測(cè)到 CF 上的一個(gè)上升沿時(shí),就開始對(duì)修訂版本選擇引腳進(jìn)行采樣。修訂版本選擇引腳 REV_SEL[1:0],由 FPGA 的其他輸出驅(qū)動(dòng),他們可控制由哪個(gè)修訂版本來為 FPGA 提供配置數(shù)據(jù)。修訂版本選擇引腳至少要在采樣被觸發(fā)前 300 ns 時(shí)被設(shè)置好,(請(qǐng)參考 Platform Flash 在系統(tǒng)可編程配置 PROM)。CF 變?yōu)楦唠娖街?,F(xiàn)PGA 內(nèi)部的多重啟動(dòng)邏輯模塊將一個(gè)與 PROG_B 相連的輸出驅(qū)動(dòng)至低電平,并保持 300 ns,以觸發(fā)重配置。配置完成后,F(xiàn)PGA 將按照選中的那個(gè)修訂版本來工作。
第 4 頁圖4 和表1 說明 FPGA 用于與 SelectMAP 模式下的 Platform Flash PROM 接口的配置信號(hào)。
參考設(shè)計(jì)
本應(yīng)用指南中所描述的參考設(shè)計(jì),使用 Platform Flash PROM 中存儲(chǔ)的修訂版本實(shí)現(xiàn)了加載多重啟動(dòng)配置數(shù)據(jù)所需的控制邏輯。在 FPGA 內(nèi)部實(shí)現(xiàn)的控制邏輯包含一個(gè)狀態(tài)機(jī),用來選擇設(shè)計(jì)修訂版本和對(duì) FPGA 進(jìn)行動(dòng)態(tài)重配置。多重啟動(dòng)控制邏輯設(shè)計(jì)成一個(gè)單獨(dú)的模塊,以方便地集成到設(shè)計(jì)中。使用該模塊時(shí),用戶須建立適當(dāng)?shù)倪B接,并在主應(yīng)用中插入邏輯,以便在觸發(fā)動(dòng)態(tài)重配置過程之前,設(shè)置和保持 REV_SEL 引腳。
本應(yīng)用指南中所描述的參考設(shè)計(jì),可從以下站點(diǎn)下載:
http://www.xilinx.com/cn/xlnx/xweb/xil_publications_display.jsp?category=Application+No
tes/Device+Configuration+and+Programming/FPGA+Configuration
show=xapp483.pdf
控制邏輯狀態(tài)機(jī)
控制邏輯狀態(tài)機(jī)包含三個(gè)狀態(tài):
狀態(tài) 0
一上電,F(xiàn)PGA 就從初始狀態(tài)(未畫出)進(jìn)入狀態(tài) 0,以便對(duì)設(shè)計(jì)中使用的變量或信號(hào)進(jìn)行置位/ 復(fù)位。收到來自主 FPGA 設(shè)計(jì)的動(dòng)態(tài)重配置的觸發(fā)信號(hào)后,狀態(tài)機(jī)從狀態(tài) 0 進(jìn)入狀態(tài) 1。
狀態(tài) 1
在控制邏輯將一個(gè)低電平信號(hào)驅(qū)動(dòng)到 PROM 上的 CF 引腳上,并將主應(yīng)用設(shè)置好的修訂版本傳至 PROM 的 REV_SEL[0:1] 引腳。
在達(dá)到指定的 REV_SEL 建立時(shí)間后 (300 ns),狀態(tài)機(jī)進(jìn)入狀態(tài) 2。
注: 對(duì)于使用 XCF16P PROM 或只需兩個(gè)修訂版本位置的設(shè)計(jì),多重啟動(dòng)控制邏輯模塊的 Rev_sel[1] 輸入必須接地,并且 PROM 的 REV_SEL[1] 也必須與地相連,以確保對(duì) FPGA 進(jìn)行適當(dāng)?shù)呐渲谩?BR>
狀態(tài) 2
一旦進(jìn)入狀態(tài) 2,狀態(tài)機(jī)就將一個(gè)高電平信號(hào)和一個(gè)低電平信號(hào)分別驅(qū)動(dòng)至 PROM 的 CF 輸入和 FPGA 上的 PROG_B 引腳上。300 ns 后,重配置開始,F(xiàn)PGA 開始對(duì)配置存儲(chǔ)器重新進(jìn)行初始化。一旦 INIT_B (在與 PROM 上 OE/RESET 相連的 FPGA 上)變?yōu)楦唠娖?,F(xiàn)PGA 即已準(zhǔn)備好接收數(shù)據(jù)。PROM 將存儲(chǔ)在被選中的修訂版本中的配置數(shù)據(jù)發(fā)送到 FPGA 中。重配置完成后,F(xiàn)PGA 配置邏輯就通過將 DONE 引腳置為高電平來發(fā)出信號(hào)。隨后,狀態(tài)機(jī)回到狀態(tài)0。
注: 本應(yīng)用指南假設(shè)每個(gè)修訂版本都包含有多重啟動(dòng)控制邏輯的例示。實(shí)際上,狀態(tài) 2 下 PROG_B 變?yōu)榈碗娖胶螅?00 ns 后),配置存儲(chǔ)器包括狀態(tài)機(jī)都會(huì)被擦除。因此,狀態(tài)機(jī)實(shí)際上不會(huì)從狀態(tài) 2 回到狀態(tài) 0,而是在狀態(tài) 2 中就停止工作。重配置和初始化 FPGA 之后,新配置中的多重啟動(dòng)控制邏輯例示將再次進(jìn)入狀態(tài) 0。
參考設(shè)計(jì)中所使用的狀態(tài)機(jī)的狀態(tài)圖如圖5 所示。
優(yōu)勢(shì)這里所描述的多重啟動(dòng)解決方案的主要優(yōu)勢(shì)有:
進(jìn)行重配置時(shí)不需要其他器件。該解決方案僅需要一個(gè) Platform Flash XCFxxP PROM 和一個(gè) FPGA,而大多數(shù)重配置設(shè)計(jì)都需要另一個(gè)邏輯器件,如 CPLD。
動(dòng)態(tài)重配置 FPGA 的能力。只要不要求同時(shí)實(shí)現(xiàn)存儲(chǔ)在每個(gè)修訂版本位置上的功能,用戶就能夠在同一個(gè) FPGA 上實(shí)現(xiàn) 4 種完全不同的設(shè)計(jì),從而有效地對(duì) FPGA 資源進(jìn)行分時(shí)操作。
此外,多重啟動(dòng)還能讓用戶利用 Platform Flash PROM 的優(yōu)勢(shì):
集成式 iMPACT 編程支持。在系統(tǒng)可編程能力 (In-System Programmability) 可以在開發(fā)和驗(yàn)證期間輕松修改設(shè)計(jì)。
更快速的配置。Platform Flash PROM 在快速配置方面進(jìn)行了優(yōu)化,可使用 x8 接口和 30ns 的配置時(shí)鐘周期。
所需的接口線路數(shù)量減少,降低了板成本。由于只需使用數(shù)據(jù)線,因此與并行的 NOR
flash 存儲(chǔ)器相比,板上布線的信號(hào)數(shù)量被降至最低。主串行模式下的配置能夠節(jié)省更多的引腳,僅需 4 個(gè)引腳就能配置 FPGA。
單一供應(yīng)商支持??蛻艨梢岳?Xilinx Platform Flash 和 Xilinx FPGA 獲得單一供應(yīng)商解決方案。
了解 Platform Flash PROM 優(yōu)勢(shì)方面的更多信息,請(qǐng)?jiān)L問:
http://www.xilinx.com/cn/products/silicon_solutions/proms/pfp/index.htm
結(jié)論
Xilinx Platform Flash XCFxxP PROM 使用戶在其設(shè)計(jì)中能夠?qū)崿F(xiàn)多重啟動(dòng)功能。實(shí)現(xiàn)多重啟動(dòng)功能最基本的條件就是 Platform Flash PROM 的設(shè)計(jì)修訂能力,它允許將多個(gè) FPGA 配置存放到單個(gè) PROM (Xilinx FPGA 系列所有產(chǎn)品均支持)。Platform Flash PROM 的設(shè)計(jì)修訂能力與動(dòng)態(tài)重配置功能結(jié)合,就產(chǎn)生了功能強(qiáng)大的多重啟動(dòng)。
利用 Platform Flash PROM 易于實(shí)現(xiàn)多重啟動(dòng)解決方案,可降低板成本,獲得iMPACT 編程支持,并且允許對(duì) FPGA 進(jìn)行快速配置。
如欲了解更多賽靈思技術(shù)文檔,請(qǐng)?jiān)L問http://china.xilinx.com/china/documentation/
評(píng)論