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