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