用CPLD和Flash實現FPGA配置
摘要:FPGA可以通過串行接口進行配置。本文對傳統的配置方法進行了研究,并從更新配置文件的方法入手,提出了利用處理機通過網絡更新的方法,給出了一個用CPLD和Flash對FPGA進行配置的應用實例。
關鍵詞:現場可編程門陣列復雜可編程邏輯器件電子設計自動化VHDL語言
電子設計自動化EDA(Electronic Design Automation)是指以計算機為工作平臺,以EDA軟件為開發環境,以硬件描述語言為設計語言,以可編程邏輯器件PLD為實驗載體(包括CPLD、FPGA、EPLD等),以集成電路芯片為目標器件的電子產品自動化設計過程。該過程目前已廣泛應用于電子電路與系統的設計和產品的開發中.逐漸取代了傳統的手工硬件電路設計方式。設計的系統具有體積小、重量輕、功耗小、速度快、價格低、可靠性高、設計周期短等優點。一個功能完備的EDA設計軟件加上一片普通功能的可編程邏輯芯片就可以構成以前需幾百個集成電路才能構成的電子系統。
目前常用的可編程邏輯器件有CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)和FPGA(Field Programmable Gate Array,現場可編程門陣列)。常用的EDA軟件包括VHDL、Verilog HDL、ABEL等硬件描述語言。其中,VHDL作為IEEE的工業標準硬件描述語言,受到眾多EDA工具廠家的支持,在電子工程領域,已成為事實上的通用硬件描述語言。
Xilinx公司和Ahera公司的FPGA可編程部分的物理實現方式為RAM。它最大的優點是可以多次重復編翟,缺點是易失性。因此每次上電后,處理機都需要將用戶設計的FPGA配置文件從外部存儲器中下載到FPGA中。從外部存儲器將FPGA配置文件下載更新的方式有以下三種:
(1)JTAG口下載方式
將配置文件放到一臺主機中,主機通過專用線與單板上的JTAG口硬件相連接。在這種方式下每次下載都需要硬件操作,因此只適用于開發、調試階段,設備在現場工作時就不能再使用這種方式。
(2)片外串行PROM下載方式
在每片FPGA周圍放置一片或幾片(由FPGA容量決定)串行PROM,在系統上電時,自動將FPGA配置文件從PROM下載到FPGA中。此方式也是Xilinx、A1tera等公司重點介紹的方式,適用于比較穩定的系統。但隨著FPGA芯片密度的增加,串行PROM已不能適應大容量、高密度的FPGA的配置。而大容量的并行PROM所要求的尋址方式又不能直接與FPGA接口。當系統中的FPGA配置文件需要升級更新時,必須將機箱打開,通過JTAG口首先將.PROM中的配置文件更新,然后再重新啟動系統,將更新后的配置文件從PROM下載到FPGA中,這樣才能完成一次FPGA配置文件的更新。
以上兩種方案都存在必須進行硬件操作(將機箱打開,使用主機通過JTAG口)的缺點,在主機上必須安裝專業軟件才能完成FPGA配置文件的更新。
(3)處理機控制Flash下載方式
本文根據Xilinx、Altra公司手冊及以前的工作經驗,提出和完成了一種新的FPGA配置文件下載更新的方式。這種方式適用于支持網絡通信的系統中。在每次系統啟動時。由處理機從Flash中讀出FPGA配置文件,再下載到FPGA中。即當需要升級更新FPGA配置文件時,通過網絡將配置文件發送給處理機,由處理機更新系統中的Flash。當Flash內容更新后,再由處理機控制將配置文件自動下載到FPGA中。這樣在不需要任何硬件動作和專業軟件的情況下,只需要進行常規軟件操作就可以更新FPGA的配置文件。但由于Flash是并行數據線,需要通過一片CPLD將從Flash中讀來的數據轉換成串行數據輸出到FPGA。
1 FPGA下載配置模式
FPGA配置文件的下載模式有五種:主串模式(masterserial)、從串模式(slave serial)、主并模式(master selectMAP)、從并模式(slave selectMAP)及JTAG模式。其中,JTAG模式在開發調試階段使用。為了便于開發設計階段的調試,本核心路由器設計將JTAG口直接做在信號處理板上。
評論