<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>

新聞中心

FPGA配置模式

作者: 時(shí)間:2011-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

有多種:并行主為一片加一片EPROM的方式;主從可以支持一片PROM編程多片;串行模式可以采用串行PROM編程FPGA;外設模式可以將FPGA作為微處理器的外設,由微處理器對其編程。

本文引用地址:http://dyxdggzs.com/article/150223.htm

  如何實(shí)現快速的時(shí)序收斂、降低功耗和成本、優(yōu)化時(shí)鐘管理并降低FPGA與PCB并行設計的復雜性等問(wèn)題,一直是采用FPGA的系統設計工程師需要考慮的關(guān)鍵問(wèn)題。如今,隨著(zhù)FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,系統設計工程師在從這些優(yōu)異性能獲益的同時(shí),不得不面對由于FPGA前所未有的性能和能力水平而帶來(lái)的新的設計挑戰。

  在很多項目設計中采用Altera 公司基于SRAM架構Cyclone系列器件。Cyclone器件與其他FPGA器件一樣是基于門(mén)陣列方式為用戶(hù)提供可編程資源的,其內部邏輯結構的形成是由數據決定的。這些數據可通過(guò)多種模式加載到FPGA內部的SRAM中,由于SRAM的易失性,每次上電時(shí),都必須對FPGA進(jìn)行重新配置。

  1 Cyclone FPGA 配置模式

  Cyclone系列FPGA器件配置方案主要有三種,包括使用低成本配置芯片的主動(dòng)串行(AS)配置、被動(dòng)串行(PS)配置以及基于JTAG配置,實(shí)際應用時(shí)可以使用其中的一種方案配置Cyclone系列FPGA器件,來(lái)實(shí)現用戶(hù)編程所要實(shí)現的功能。

  Cyclone系列FPGA器件是用SRAM單元配置數據的。由于SRAM掉電后容易丟失數據,配置數據必須即時(shí)地下載到上電的Cyclone器件中。不同的配置模式可采用不同的專(zhuān)用配置芯片或數據源

  這三種配置模式是由Cyclone器件的模式選擇引腳 MSEL1和 MSEL0的高低電平來(lái)決定的,如果你的實(shí)際應用只要求單一的配置模式,可以把模式選擇引腳連接到VCC端或接地端在切換引腳的過(guò)程中,器件的運行狀態(tài)不會(huì )被影響。不管怎樣,在重新配置之前,必須保障模式選擇引腳的電平是有效的。

  2 配置芯片的主動(dòng)串行(AS)配置

  在A(yíng)S配置模式中,利用了新型低成本器件(如EPCS1、EPCS4),這種專(zhuān)用配置芯片是帶有永久性存儲器和四個(gè)引腳簡(jiǎn)單接口的串行配置器件,由于它的成本較低,可以解決配置器件成本高的問(wèn)題。串行配置芯片提供一個(gè)串行接口去存取數據。在配置期間,Cyclone FPGA通過(guò)串行接口讀取數據,如果有需要的話(huà),對數據進(jìn)行解壓以及配置FPGA的SRAM單元。此模式是由FPGA去控制配置接口的,這種方案稱(chēng)為主動(dòng)串行配置,簡(jiǎn)稱(chēng)AS配置。采用AS模式配置一個(gè)Cyclone FPGA器件的原理圖

  專(zhuān)用串行配置芯片可選用EPCS1或EPCS4,其中EPCS1的存儲空間是1Mbits, EPCS4存儲空間是4Mbits ,設計者可根據配置文件的大小進(jìn)行選擇。主動(dòng)串行配置芯片的主要配置引腳

  DCLK,串行時(shí)鐘輸入端,來(lái)自Cyclone FPGA器件,提供串行接口時(shí)鐘;DATA,串行數據輸出端,在DCLK下降沿讀出數據;ASDI,控制信號輸入端,在DCLK上升沿鎖存數據;nCS,使能輸入端,低電平有效。

  在系統上電期間,兩芯片進(jìn)入到上電復位階段。當一旦進(jìn)入上電復位,nSTATUS端為低電平,正在復位;同時(shí)CONF_DONE端為低電平,芯片還沒(méi)有被配置。復位后,延遲100ms,FPGA釋放nSTATUS端,由于上拉電阻的作用,該端變?yōu)楦唠娖?,此時(shí)進(jìn)入到配置狀態(tài)。一旦退出復位,所有用戶(hù)I/O端進(jìn)入三態(tài)狀態(tài)。時(shí)鐘信號DCLK是由FPGA內部產(chǎn)生的,用來(lái)控制整個(gè)配置循環(huán)以及為配置芯片串口電路提供時(shí)鐘,時(shí)鐘信號的頻率范圍在14MHZ至20MHZ之間。當DCLK下降沿到來(lái)時(shí),使FPGA輸出控制信號以及使配置芯片輸出配置數據;當DCLK上升沿到來(lái)時(shí),使FPGA鎖存配置數據以及使配置芯片鎖存控制信號。在所有配置數據被接收后,FPGA釋放CONF_DONE端,通過(guò)10K的上拉電阻置為高電平,開(kāi)始進(jìn)入初始化階段。Cyclone FPGA器件需要136個(gè)時(shí)鐘周期嚴格地進(jìn)行初始化。然后開(kāi)始進(jìn)入用戶(hù)狀態(tài),這時(shí)INIT_DONE引腳跳變到高電平。

  3 基于單片機的被動(dòng)串行(PS)配置

  采用微處理器的Cyclone FPGA被動(dòng)串行配置方案的簡(jiǎn)化電路圖。單片機配置過(guò)程很簡(jiǎn)單,單片機只需用5個(gè)I/O口與FPGA相連這5根信號線(xiàn)分別是:DATA0、DCLK、nCONFIG、nSTATUS和CONF_DONE。

  具體配置過(guò)程如下:①nCONFIG=0 、DCLK=0,保持2us以上;②檢測nSTATUS,若為0表明FPGA已響應配置要求,可開(kāi)始進(jìn)行配置,否則報錯。正常情況下,nCONFIG=0后1us內nSTATUS將為0;③nCONFIG=0,并等待5us;④DATA0上放置數據,DCLK=1,延時(shí);⑤DCLK=0,檢測nSTATUS,若為0,則報錯并重新開(kāi)始;⑥準備下一位數據,并重復執行(4)、(5),直到所有數據送出為止;⑦此時(shí)CONF_DONE應變?yōu)?,表明FPGA的配置已完成。若所有數據送出后,CONF_DONE不為1,必須重新配置;⑧配置完成后,則送出若干個(gè)周期的DCLK,以使FPGA完成初始化。

  值得注意的是,用MAX+PlusⅡ或QuartusⅡ生成的SOF或POF文件不能直接用于單片機配置FPGA,需要進(jìn)行數據轉換才能得到可用的配置數據。在MAX+PlusⅡ或QuartusⅡ中,都有數據轉換選項,將.SOF文件轉換為.rbf文件,然后再將.rbf文件直接寫(xiě)入單片機系統的某一ROM或Flash區域,這段數據的起始地址和長(cháng)度都是已知的,按以上過(guò)程編寫(xiě)相應軟件即可。

  4 配置數據壓縮方法

  Cyclone器件是一種支持解壓配置數據的FPGA器件,允許存儲在配置芯片或其他存儲器的配置數據是經(jīng)壓縮處理的數據,在配置期間,這此壓縮數據發(fā)送到Cyclone器件中即時(shí)被解壓并對SRAM單元進(jìn)行編程。AS配置模式和PS配置模式都可支持壓縮方式,但基于JTAG配置模式卻不支持壓縮方式。初步數據表明壓縮可減少35至60的配置數據位流,可減少數據的存儲空間和傳輸速度以及配置設備的成本。

  QuartusⅡ能生成帶壓縮的配置文件,可減少配置芯片和flash閃存空間及位流的傳送時(shí)間。下面以QuartusⅡ5.1版為例介紹兩種壓縮配置文件的操作方法。

  4.1 方法一:設計程序編寫(xiě)前在項目程序設置中激活壓縮。

  首先在A(yíng)ssignments菜單下點(diǎn)擊Device項,彈出Settings窗口, 然后在Family選項中選擇Cyclone器件,點(diǎn)擊下面的DevicePin Options彈出窗口,再選擇Configuration窗口點(diǎn)擊Generate Compressed bitstreams選項,最后按確定鍵結束設置。

  4.2 方法二:設計程序編寫(xiě)后從Convert Programming Files窗口創(chuàng )建程序文件激活壓縮。

  首先下拉File 菜單,點(diǎn)擊Convert Programming Files 彈出窗口,選擇文件類(lèi)型Programming File type(POF,SRAM HEXOUT,RBF,orTTF),然后為POF output files,選擇配置器件,再選擇Add File 添加一個(gè)Cyclone SOF 文件,選擇文件名加入到SOF Data 區,單擊Properties選項,再確定,最后按Generate鍵生成。

  5 結束語(yǔ)

  串行配置方法的硬件電路簡(jiǎn)單、配置過(guò)程軟件實(shí)現比較容易、工程應用方便。Cyclone 系列的FPGA器件邏輯資源、芯片速度等技術(shù)參數能夠達到項目要求,性?xún)r(jià)比高,而且還有一定的擴充性。此種FPGA 的配置實(shí)現方法也適用于和其它CPU結合,應用于其它場(chǎng)合,只要嚴格按照軟硬件的配置要求即可,因此在實(shí)際應用中具有參考價(jià)值。如今,CPLD/FPGA 已經(jīng)成為數字系統開(kāi)發(fā)的平臺,并且以后將朝著(zhù)高集成度、大容量、低成本、低電壓、低功耗、資源多樣化、適用于片上系統(SOC)、深亞微米工藝、各種軟硬IP 庫、動(dòng)態(tài)可重構技術(shù)實(shí)用化等方面不斷完善和提高。



關(guān)鍵詞: 模式 配置 FPGA

評論


相關(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>