<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          1. 引言

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

          2 FPGA配置方式

          常用FPGA配置方式

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

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

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

          3 FPGA配置流程

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

          FPGA配置流程

          Stratix配置引腳定義

          (1) 上電

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

          (2) 復(fù)位

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

          (3) 配置

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

          (4) 初始化

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

          (5) 用戶模式

          在此狀態(tài)下FPGA開始執(zhí)行用戶程序。

          4增強(qiáng)型配置片工作原理

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

          4.1增強(qiáng)型配置片控制單元

          控制單元由以下子模塊構(gòu)成:

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

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

          (2) 內(nèi)部振蕩器(IOSC)

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

          時(shí)鐘分頻單元內(nèi)部結(jié)構(gòu)

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

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

          (4)壓縮引擎(PCU)

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

          (5) PLD配置單元

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

          (6) JTAG接口單元(JIU)

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

          4.2 Flash存儲(chǔ)器

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

          (1) 啟動(dòng)塊

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

          (2)參數(shù)塊

          參數(shù)塊用來存儲(chǔ)少量而需頻繁更新的參數(shù)。EPCI6有6個(gè)參數(shù)塊,每塊為8 KB。參數(shù)塊的保護(hù)機(jī)制是由配置

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

          (3) 配置數(shù)據(jù)塊

          EPC片內(nèi)Flash上除啟動(dòng)塊和參數(shù)塊之外的空間均為配置塊存儲(chǔ)區(qū)??捎糜诖鎯?chǔ)配置數(shù)據(jù)和作為用戶的存儲(chǔ)空間。EPC16有31塊64 KB的配置塊。和參數(shù)塊一樣,配置塊的保護(hù)機(jī)制也由配置片RP引腳和塊鎖存位共同確定。

          4.2.1 Flash內(nèi)存映射

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

          4.2.2頁模式選擇

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

          EPC16內(nèi)部Flash的存儲(chǔ)空間映射

          4.2.3配置片工作模式

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

          (1) 正常模式

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

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

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

          (2) 編程模式

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

          5接口電路設(shè)計(jì)與實(shí)現(xiàn)

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

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

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

          具體過程為:

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

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();