利用Altera增強(qiáng)型配置片實(shí)現(xiàn)FPGA動(dòng)態(tài)配置
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1. 引言
在當(dāng)今復(fù)雜數(shù)字電路設(shè)計(jì)中,大多采用以"嵌入式微控制器+fpga"為核心的體系結(jié)構(gòu)此體系結(jié)構(gòu)中fpga配置效率和靈活性的差異影響了產(chǎn)品的開(kāi)周期和產(chǎn)品升級(jí)的易施性。傳統(tǒng)的fpga配置方案(例如調(diào)試階段的專(zhuān)用下載電纜方式。成品階段的專(zhuān)用配置片方式)在成本、效率、靈活性方面都存在著明顯不足。針對(duì)這樣的實(shí)際問(wèn)題,基于嵌入式微控制器與fpga廣泛共存于復(fù)雜數(shù)字系統(tǒng)的背景,借鑒軟件無(wú)線(xiàn)電"一機(jī)多能"的思想,提出了一種對(duì)現(xiàn)有傳統(tǒng)fpga配置方案硬件電路稍做調(diào)整并增加部分軟件功能。即可實(shí)現(xiàn)fpga動(dòng)態(tài)配置的方案。本文將在介紹altera公司stratix系列fpga配置模式、fpga配置流程、增強(qiáng)型配置片內(nèi)部工作原理的基礎(chǔ)上給出利用epci6實(shí)現(xiàn)fpga動(dòng)態(tài)配置的方案。并給出軟硬件接口電路。2 fpga配置方式可編程器件的配置方式分為主動(dòng)配置和被動(dòng)配置兩類(lèi)。主動(dòng)配置由可編程器件引導(dǎo)配置過(guò)程,被動(dòng)配置則由外部處理器控制配置過(guò)程。 根據(jù)配置數(shù)據(jù)線(xiàn)數(shù),器件配置可分為并行配置和串行配置兩類(lèi)。串行配置以bit(比特)為單位將配置數(shù)據(jù)載人可編程器件:而并行配置一般以byte(字節(jié))為單位向可編程器件載入配置數(shù)據(jù)。被動(dòng)配置根據(jù)配置數(shù)據(jù)與時(shí)鐘的關(guān)系可分為同步和異步兩種方式。
表1列舉了altera公司常用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ù)寫(xiě)入sram中。這個(gè)過(guò)程稱(chēng)為fpga的配置。fpga配置過(guò)程如圖1所示。表2為stratix配置引腳定義。
(1) 上電
上電過(guò)程中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í),fpga進(jìn)入復(fù)位狀態(tài)。在此狀態(tài)下,fpga采樣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)無(wú)誤)。fpga釋放conf_done引腳且當(dāng)其被外部上拉電阻拉高后進(jìn)入初始化狀態(tài)。(4) 初始化此狀態(tài)下fpga內(nèi)部邏輯和寄存器被初始化:使能i/0緩沖,釋放init_done引腳(可選)。(5) 用戶(hù)模式在此狀態(tài)下fpga開(kāi)始執(zhí)行用戶(hù)程序。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í)間長(zhǎng)短。此引腳為低電平時(shí)復(fù)位時(shí)間為100 ms,反之為2 ms。(2) 內(nèi)部振蕩器(iosc)內(nèi)部振蕩器有四種模式(四個(gè)不同頻率),可通過(guò)編譯fpga代碼在ouatrusⅱ軟件中選擇。
(3) 時(shí)鐘分頻單元(cdu)時(shí)鐘分頻單元對(duì)內(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)。