<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 利用Altera增強型配置片實(shí)現FPGA動(dòng)態(tài)配置

利用Altera增強型配置片實(shí)現FPGA動(dòng)態(tài)配置

——
作者:黃蕊 時(shí)間:2007-04-19 來(lái)源:國外電子元器件 收藏

1. 引言

在當今復雜數字電路設計中,大多采用以"嵌入式微控制器+"為核心的體系結構此體系結構中效率和靈活性的差異影響了產(chǎn)品的開(kāi)周期和產(chǎn)品升級的易施性。傳統的方案(例如調試階段的專(zhuān)用下載電纜方式。成品階段的專(zhuān)用片方式)在成本、效率、靈活性方面都存在著(zhù)明顯不足。針對這樣的實(shí)際問(wèn)題,基于嵌入式微控制器與FPGA廣泛共存于復雜數字系統的背景,借鑒軟件無(wú)線(xiàn)電"一機多能"的思想,提出了一種對現有傳統FPGA配置方案硬件電路稍做調整并增加部分軟件功能。即可實(shí)現FPGA動(dòng)態(tài)配置的方案。本文將在介紹公司Stratix系列FPGA配置模式、FPGA配置流程、增強型配置片內部工作原理的基礎上給出利用EPCI6實(shí)現FPGA動(dòng)態(tài)配置的方案。并給出軟硬件接口電路。

2 FPGA配置方式

常用FPGA配置方式

可編程器件的配置方式分為主動(dòng)配置和被動(dòng)配置兩類(lèi)。主動(dòng)配置由可編程器件引導配置過(guò)程,被動(dòng)配置則由外部處理器控制配置過(guò)程。 根據配置數據線(xiàn)數,器件配置可分為并行配置和串行配置兩類(lèi)。串行配置以Bit(比特)為單位將配置數據載人可編程器件:而并行配置一般以Byte(

字節)為單位向可編程器件載入配置數據。被動(dòng)配置根據配置數據與時(shí)鐘的關(guān)系可分為同步和異步兩種方式。

表1列舉了公司常用FPGA(Stratix、Cyclone、APEXⅡ、APEX20K、Mercury、ACE XK、FLEXlOK和FLEX6000)的配置方式。

3 FPGA配置流程

FPGA的配置數據存儲在內部SRAM單元中。由于SRAM掉電后配置數據會(huì )丟失,因此每次上電時(shí)必須重新將配置數據寫(xiě)入SRAM中。這個(gè)過(guò)程稱(chēng)為FPGA的配置。FPGA配置過(guò)程如圖1所示。表2為Stratix配置引腳定義。

FPGA配置流程

Stratix配置引腳定義

(1) 上電

上電過(guò)程中FPGA內部狀態(tài)機被復位,nSTA-TUS和CONF_DONE引腳由FPGA置為低電平,所有I/O引腳為三態(tài)且FPGA內部配置寄存器被清空。

(2) 復位

當nCONFIG或nSTATUS引腳為低電平時(shí),FPGA進(jìn)入復位狀態(tài)。在此狀態(tài)下,FPGA采樣MSEL引腳的電平值,以確定采用的配置方式。同時(shí)nSTATUS和CONF_DONE引腳被拉低,所有I/O引腳三態(tài)并且FPGA內部配置寄存器被清空。

(3) 配置

當nCONFIG為高電平,nSTATUS被FPGA釋放并由外部上拉電阻拉為高電平后進(jìn)入配置狀態(tài)。此狀態(tài)下配置數據在DCLK時(shí)鐘的上升沿載入FP-GA。若正確接收所有配置數據(CRC校驗無(wú)誤)。FPGA釋放CONF_DONE引腳且當其被外部上拉電阻拉高后進(jìn)入初始化狀態(tài)。

(4) 初始化

此狀態(tài)下FPGA內部邏輯和寄存器被初始化:使能I/0緩沖,釋放INIT_DONE引腳(可選)。

(5) 用戶(hù)模式

在此狀態(tài)下FPGA開(kāi)始執行用戶(hù)程序。

4增強型配置片工作原理

Ahera公司增強型配置片支持在一塊配置片上進(jìn)行多塊高密度PLD(Programmable Logic De-vice)配置。配置片主要由兩大核心模塊構成一控制器和Flash存儲器。存儲空間除用于存儲配置數據外,未使用的部分可用于微處理器或PLD的外部存儲器。下面將分別闡述增強型配置片的核心模塊。

4.1增強型配置片控制單元

控制單元由以下子模塊構成:

(1) 上電復位電路(POR)

在電源電壓未達到需要的穩定電壓時(shí)此模塊將使配置片處于復位狀態(tài)。有兩種上電復位時(shí)間可選,100 mS,和2 mS,。配置片PORSEL引腳決定復位時(shí)間長(cháng)短。此引腳為低電平時(shí)復位時(shí)間為100 ms,反之為2 ms。

(2) 內部振蕩器(IOSC)

內部振蕩器有四種模式(四個(gè)不同頻率),可通過(guò)編譯FPGA代碼在OuatrusⅡ軟件中選擇。
      
(3) 時(shí)鐘分頻單元(CDU)

時(shí)鐘分頻單元內部結構

時(shí)鐘分頻單元對內部振蕩器產(chǎn)生的時(shí)鐘或外部輸入時(shí)鐘進(jìn)行分頻,得到配置片內部系統時(shí)鐘SYSCLK和外部數據輸出時(shí)鐘DCLK。其內部有兩個(gè)分頻器,一個(gè)分頻器的分頻系數為N,產(chǎn)生DCLK信號;另一個(gè)分頻器的分頻系數為M,產(chǎn)生SYSCLK信號。其內部結構如圖2所示。

上電后配置片默認采用內部振蕩器中A模式,振蕩頻率為8 MHzo其中,一個(gè)分頻器分頻系數為1。另一個(gè)分頻器分頻系數為2。

(4)壓縮引擎(PCU)

增強型配置片支持數據壓縮。數據壓縮由QuatrusⅡ軟件實(shí)現,解壓由壓縮引擎實(shí)現。壓縮后的數據存儲在內部Flash中。配置過(guò)程中壓縮引擎解壓從Flash讀出的數據。這一特性極大地增強了配置片的有效使用空間。以EPCI6為例,通過(guò)數據壓縮可存儲30 Mbit數據。

(5) PLD配置單元

PLD配置單元負責傳輸解壓后的數據到PLD。它支持四種并行配置模式,即可將解壓數據按1比特、2比特、4比特或8比特輸出。根據預先配置的配置模式,PLD配置單元將數據移位輸出到有效數據引腳上。無(wú)用的數據引腳輸出低電平。

(6) JTAG接口單元(JIU)

由于本文未采用JTAG實(shí)現FPGA動(dòng)態(tài)配置,故此單元不做詳細介紹。

4.2 Flash存儲器

不同配置片內部Flash容量不同。EPCI6有16Mbit容量,而EPC8、EPC4分別只有8 Mbit、4 Mbit,。Flash存儲器分成三個(gè)塊存儲區,分別為啟動(dòng)塊、參數塊和配置數據塊存儲區。每個(gè)塊存儲區都有自己獨立的保護機制并能單獨進(jìn)行擦除。下面將分別闡述各個(gè)塊的功能。

(1) 啟動(dòng)塊

以EPC16為例,啟動(dòng)塊大小為16 KB,可用它替代微處理器專(zhuān)用PROM,也可用于存儲其他系統的數據。啟動(dòng)塊的保護機制由配置片RP引腳、WR引腳和塊鎖存位共同確定。

(2)參數塊

參數塊用來(lái)存儲少量而需頻繁更新的參數。EPCI6有6個(gè)參數塊,每塊為8 KB。參數塊的保護機制是由配置

片RP引腳和塊鎖存位共同確定。

(3) 配置數據塊

EPC片內Flash上除啟動(dòng)塊和參數塊之外的空間均為配置塊存儲區??捎糜诖鎯ε渲脭祿妥鳛橛脩?hù)的存儲空間。EPC16有31塊64 KB的配置塊。和參數塊一樣,配置塊的保護機制也由配置片RP引腳和塊鎖存位共同確定。

4.2.1 Flash內存映射

EPCI6的內存映射分為兩部分:配置控制器存儲空間和用戶(hù)存儲空間。配置摔制器存儲空間由控制器功能選擇比特和8頁(yè)配置數據組成。其起始地址是08000h (在64 KB的啟動(dòng)塊/參數塊后)。08000h~0801Fh地址范圍是保留的控制器功能選擇比特空間。圖3是EPCI6內部Flash的存儲空間映射。

4.2.2頁(yè)模式選擇

頁(yè)模式選擇功能使配置片最多可存儲8頁(yè)不同的PLD配置數據,并由用戶(hù)選擇頁(yè)號配置不同的PLD。頁(yè)模式選擇需要由軟件和硬件配合實(shí)現。硬件上通過(guò)設定配置片PGM[2:0]引腳(PGM[2]是最高位)電平?jīng)Q定頁(yè)號。同時(shí)在用QuatrusⅡ編譯程序時(shí)修改編譯文件的屬性為所選擇頁(yè)號。第0頁(yè)是默認的配置頁(yè)。

EPC16內部Flash的存儲空間映射

4.2.3配置片工作模式

配置片有兩種工作模式:正常模式和編程模式。

(1) 正常模式

正常模式是使用配置片內Flash中的壓縮數據實(shí)現PLD配置。整個(gè)過(guò)程包括從Flash讀出數據、數據解壓和傳輸數據到PLD。

上電時(shí),上電復位電路(POR)產(chǎn)生所有復位信號。該電路用10 MHz內部默認時(shí)鐘復位配置片內控制單元。在開(kāi)始配置前,配置片采樣PGM[2:0]引腳上的電平值以確定從Flash的配置塊內讀取配置數據的頁(yè)號??刂茊卧鶕﨔lash中的選擇比特值重新配置系統內部時(shí)鐘。此后開(kāi)始從配置塊內讀出壓縮數據。當配置片的OE引腳變?yōu)楦唠娖綍r(shí),壓縮引擎(PCU)輸出DCLK時(shí)鐘,開(kāi)始傳輸配置數據到PLD。

當所選配置塊內的最后一個(gè)比特從Flash讀出后,配置片內部頁(yè)計數器溢出,壓縮引擎停止讀Flash數據。若PLD正確接收所有配置數據(PLD拉高nCONF_DONE引腳),nCS引腳將被拉高,說(shuō)明一次成功配置過(guò)程結束。若未正確接收數據(PLD拉低nCONF_DONE引腳),上電復位電路拉低OE引腳并重新配置。配置結束,壓縮引擎(PCU)停止輸出DCLK時(shí)鐘。

(2) 編程模式

當用JTAG通過(guò)配置片內JTAG接口單元進(jìn)行配置PLD時(shí),配置片處于編程模式。由于本文采用正常模式,故不詳細闡述。

5接口電路設計與實(shí)現

圖4、圖5所示分別為筆者參與的某項目中與動(dòng)態(tài)配置相關(guān)部分的框圖和電路圖。

動(dòng)態(tài)配置框圖

如圖4所示,為避免對傳統配置電路做較大改動(dòng)。本動(dòng)態(tài)配置方案未采用由:DSP直接動(dòng)態(tài)配置FPGA的方式,而是將配置時(shí)序由配置片承擔。在FPGA處于用戶(hù)模式時(shí)。若配置片nCONFIG引腳為低電平,將會(huì )觸發(fā)FPGA重新進(jìn)行一次配置。從而實(shí)現動(dòng)態(tài)配置。

具體過(guò)程為:

(1)在FPGA處于用戶(hù)模式時(shí),配置片內Flash處于可讀寫(xiě)狀態(tài)。DSP將需要更新的代碼在此模式下寫(xiě)入Flash相應的配置數據塊內。

(2)在FPGA內設置一個(gè)1比特位寬配置寄存器。DSP寫(xiě)入配置命令,當其值為1時(shí)。EPC_jTAG_nlNIT(FPGA的一個(gè)I/0)引腳配置O。由于此引腳連接FPGA的nCONFIG引腳,故FPGA將由用戶(hù)模式進(jìn)人復位狀態(tài),nSTATUS引腳輸出低電平從而使配置片復位。復位結束后將開(kāi)始啟動(dòng)一次新的配置。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>