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