嵌入式技術(shù)遠(yuǎn)程培訓(xùn)_FPGA器件在嵌入式系統(tǒng)中的配置方式的探討,
摘要:通過(guò)說(shuō)明fpga的各種配置方式及各種配置文件的使用,重點(diǎn)探討了在嵌入式系統(tǒng)中使用fpga的軟硬件設(shè)計(jì)。使用微處理器在線配置fpga時(shí),需要將存儲(chǔ)在flash中的配置文件,通過(guò)微處理器的i/o口存儲(chǔ)到fpga的數(shù)據(jù)存儲(chǔ)器(sram)。文中詳述了如何利用fpga的被動(dòng)串行方式(ps)配置方式,和根據(jù)配置時(shí)序?qū)崿F(xiàn)嵌入式系統(tǒng)中fpga的配置電路和相應(yīng)的應(yīng)用軟件的過(guò)程。
關(guān)鍵詞:嵌入式系統(tǒng),fpga,微處理器配置
引言 在當(dāng)今商業(yè)競(jìng)爭(zhēng)日益加強(qiáng)的環(huán)境中,產(chǎn)品是否便于現(xiàn)場(chǎng)升級(jí)和是否便于靈活運(yùn)用,成為商家迅速占領(lǐng)市場(chǎng)的關(guān)鍵因素。在這種背景下,alter公司開(kāi)發(fā)的基于sram lut結(jié)構(gòu)的fpga器件得到了廣泛應(yīng)用。
現(xiàn)場(chǎng)可編程門陣列fpga(field programmable gate array)是一種高密度可編程邏輯器件,其邏輯功能是通過(guò)把設(shè)計(jì)生成的數(shù)據(jù)文件配置進(jìn)芯片內(nèi)部的靜態(tài)配置數(shù)據(jù)存儲(chǔ)器(sram)來(lái)實(shí)現(xiàn)的,具有可重復(fù)編程性,可以靈活實(shí)現(xiàn)各種邏輯功能。由于sram的易失性,每次系統(tǒng)上電時(shí)必須重新配置數(shù)據(jù),即icr(in-circuit reconfigurability)。只有在數(shù)據(jù)配置正確的情況下,系統(tǒng)才能正常工作。因此需要外接rom保存其配置數(shù)據(jù)。fpga的配置是有時(shí)序要求的,如果fpga本身不能控制配置時(shí)序,就需要外部配置器件來(lái)進(jìn)行時(shí)序控制。以altera公司的fpga為例,因其本身不能控制時(shí)序,就有專用的epc系列配置器件供其使用。在嵌入式系統(tǒng)中,因?yàn)楹形⑻幚砥?可以使用微處理器產(chǎn)生配置時(shí)序,將保存在系統(tǒng)rom中的配置數(shù)據(jù)存儲(chǔ)到fpga中。所以沒(méi)有必要使用專用的epc系列配置器件來(lái)配置fpga。這樣不僅節(jié)約了成本,還有效地縮小了系統(tǒng)體積。本文重點(diǎn)討論在嵌入式系統(tǒng)中fpga的配置方案。2. fpga器件的配置方式 altera公司生產(chǎn)的具有icr功能的fpga器件有flex6000、flex10k、apex和acex等系列,它們可以用以下方式進(jìn)行配置:1. 使用專用epc配置器件,如epc16、epc8、epc2、epc1;2. 被動(dòng)串行方式(ps),使用微處理器的串行接口;3. 被動(dòng)并行同步方式(pps),使用微處理器的并行同步接口;4. 被動(dòng)并行異步方式(ppa),使用微處理器的并行異步接口;5. 邊界掃描方式(jtag),使用jtag下載電纜。下面詳細(xì)分析上述五種配置方式。 使用epc配置器件時(shí),首先將配置文件從計(jì)算機(jī)下載到epc配置器件中去,然后由epc配置器件控制配置時(shí)序?qū)pga進(jìn)行配置。epc配置器件有一次可編程和可擦寫編程型兩種:一次可編程型芯片只能寫入一次,不適于開(kāi)發(fā)階段反復(fù)調(diào)試、修改及產(chǎn)品的方便升級(jí);可擦除編程型價(jià)格昂貴,且容量有限,對(duì)于容量較大的可編程邏輯器件,需要多片配置芯片組成菊花鏈進(jìn)行配置,增加了系統(tǒng)設(shè)計(jì)的難度! ∈褂胮s、pps、ppa方式配置時(shí),配置文件事先是以二進(jìn)制形式保存在系統(tǒng)rom中,然后通過(guò)微處理器將配置數(shù)據(jù)送進(jìn)fpga中。ps是通過(guò)串行方式送到fpga中,pps是以并行方式送給fpga。fpga在其內(nèi)部將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),該數(shù)據(jù)轉(zhuǎn)換時(shí)需要外部配置時(shí)鐘的驅(qū)動(dòng)。比較ps和pps,所用的配置時(shí)間幾乎相同,而ps的接口方式比較簡(jiǎn)單,所以嵌入式系統(tǒng)中通常選擇ps方式配置fpga。使用ppa方式配置數(shù)據(jù)時(shí),微處理器將配置數(shù)據(jù)以并行方式送給fpag,然后在fpga內(nèi)部進(jìn)行數(shù)據(jù)串行化處理。與pps不一樣的地方是串行化處理時(shí)不需要配置外部時(shí)鐘的驅(qū)動(dòng),但接口更復(fù)雜,工程中很少使用。 邊界掃描方式需要連接計(jì)算機(jī),無(wú)法在現(xiàn)場(chǎng)使用,嵌入式系統(tǒng)中很少采用這種方式! ⊥ㄟ^(guò)上述的分析,在嵌入式系統(tǒng)中要使用fpga時(shí),可以采用專用epc配置器件、ps、pps、ppa,但是ps、pps、ppa比專用epc配置更具成本和體積優(yōu)勢(shì)。在ps、pps、ppa中,ps又是最優(yōu)的通信方式。所以在嵌入式系統(tǒng)中,通常選擇ps被動(dòng)串行方式來(lái)配置fpga。3. 嵌入式系統(tǒng)中fpga的配置電路設(shè)計(jì)3.1. ps方式配置時(shí)序 在嵌入式系統(tǒng)中,微處理器可以產(chǎn)生配置時(shí)序,能夠和fpga直接通信,將rom中的配置文件傳輸?shù)絝pga的sram中去。通常使用ps被動(dòng)串行方式進(jìn)行配置fpga,下面就通信中使用到的五根信號(hào)線的配置時(shí)序進(jìn)行說(shuō)明! ∥甯盘(hào)線分別為nconfig、nstatus、conf_done、dclk、data,連接微處理器的五個(gè)i/o口和對(duì)應(yīng)的fpga的引腳。 … 圖1 ps方式配置信號(hào)時(shí)序圖 微處理器上的五個(gè)i/o端口連接上述五個(gè)信號(hào)線。其中連接nconfig、dclk、data端口設(shè)置成輸出態(tài),nstatus、conf_done端口設(shè)置成輸入態(tài)。當(dāng)微處理器開(kāi)始與fpga通信時(shí),微處理器首先在nconfig上送出一個(gè)大于8μm的負(fù)脈沖,并且檢測(cè)nstatus上的信號(hào)。當(dāng)fpga接收到nconfig上的下降沿時(shí),迅速將nstatus和conf_done拉低,并且保持低電平信號(hào)一直到nconfig抬 |