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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Flash外部配置器件在SOPC中的應用

          Flash外部配置器件在SOPC中的應用

          作者:沈滿德 張敏 張法全 陳良益 時間:2008-07-02 來源:單片機與嵌入式系統(tǒng)應用 收藏

            1 中的作用

          本文引用地址:http://www.ex-cimer.com/article/85162.htm

            中的作用主要表現(xiàn)在兩方面:一方面,可用來保存的配置文件,從而可以省去EPCS芯片或解決EPCS芯片容量不夠的問題。當系統(tǒng)上電后,從Flash中讀取配置文件,對進行配置。另一方面,可用Flash來保存用戶程序。對于較為復雜的系統(tǒng),用戶程序一般較大,用EPCS來存儲是不現(xiàn)實的。系統(tǒng)完成配置后,將Flash中的用戶程序轉移到外接或片內配置生成的中,然后系統(tǒng)開始運行。

            2 Flash編程的實現(xiàn)

            本文以某項目的具體電路為例,闡述在SOPC系統(tǒng)中如何利用Flash來保存用戶程序。為Altera公司的Cyclone EP1C6,F(xiàn)lash為AMD公司的AM29LV160D,外接為Samsung公司的K4S643232H,串行配置器件為EPCS1。開發(fā)工具采用Altera公司提供的QuartusII和NioslI軟件。

            的開發(fā)環(huán)境中提供了Flash Programmer工具,對目標板上遵守CFI(Common Flash Interface)規(guī)范的Flash進行編程。CFI是一種Flash接口規(guī)范,只要Flash符合該規(guī)范,通過專門的命令就能獲得其詳細的參數(shù),并根據(jù)這些參數(shù)訪問Flash。利用Altera公司的下載電纜,F(xiàn)lash Programmer工具可以對Flash器件中的任意偏移地址進行任意內容的編程。Flash Programmer工具對Flash編程分為2個步驟:

           ?、俑鶕?jù)目標板編程描述對FPGA進行配置;

           ?、贔lash Programmer工具將要編程到Flash的文件內容傳送到FPGA的數(shù)據(jù)緩沖區(qū),然后FPGA將收到的數(shù)據(jù)寫入Flash中。

            2.1 目標板編程描述的創(chuàng)建

            目標板編程描述實際就是一個由SOPC Builder系統(tǒng)生成的最小FPGA設計,其作用是對FPGA進行適當配置以實現(xiàn)對Flash的編程。不同的電路板(目標板)往往使用不同的Flash器件,并且Flash與FPGA的引腳連接以及FPGA的型號也不相同,因此每個目標板編程描述都是與具體的目標板相關聯(lián)的,不能用于其他目標板。目標板提供了Flash Programmer工具對Flash進行編程的全部信息,包括Flash的容量、Flash的引腳連接等。

            一個目標板編程描述包含以下信息:每個接到FPGA上Flash器件的參考元件標號;Flash器件在目標板編程描述中的基地址;用于配置FPGA的SOF文件。

            目標板編程描述的創(chuàng)建分2步:

            ①在Nios SDK Shell中使用mk_target_board命令創(chuàng)建一個工程模板;

            ②使用SoPC Builder對模板進行編輯,從而形成完整的目標板編程描述。

            每個目標板編程描述應包含下列元件: CPU;JTAG_UART接口;本目標板中采用串行配置器件EPCS存儲FPGA的配置文件,因此需要Active Serial MemoryInterface(ASMI);Tri-State Bridge(三態(tài)橋);CFI接口的Flash;System ID Peripheral;用于存放程序以及作為數(shù)據(jù)緩沖的On-chip memory。

            下面以本目標板為例,介紹創(chuàng)建目標板編程描述的步驟:

           ?、賳?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/NiosII">NiosII SDK shell;

           ?、谶\行mk_target_board命令,創(chuàng)建一個目標板Flash編程描述模板(參數(shù)name=flash_board,family=cyclone,clock=80,index=1,epcs=U5,buffer_size=2 048,class=flash_programer);

           ?、蹎観uartusII軟件并打開剛才創(chuàng)建的目標板編程描述工程flash_programer.qPf;

           ?、茉赒uartusII軟件中選擇Assignments→Device打開setting對話框,選取FPGA型號,本例為EP1C6Q240C8;

           ?、輪覵OPC Builder,在Target選項區(qū)的Board下拉列表框中選擇Unspecified Board,Clock欄的時鐘頻率取50 MHz,在模板的基礎上添加三態(tài)橋Avalon Tri-State Bridge和CFI接口的Flash(Flash的參考標號為U5,地址為20位,數(shù)據(jù)為16位);

           ?、捱x擇System Generation選項卡,關閉Simulation選項,然后單擊Generate按鈕;

           ?、弋斏赏瓿珊螅顺鯯OPC Builder,并返回到QuartuslI;

           ?、嘣赒uartuslI中更新原理圖,然后添加、鏈接并命名引腳;

            ⑨進行引腳分配,確保與FPGA各引腳的連接一致;

           ?、饩幾g并保存工程。

            編譯成功后,目標板編程描述即成功創(chuàng)建。打開SOPC Builder即可在Target選項區(qū)的Board下拉列表框中找到該目標板編程描述,本例為flash_board。(該目標板編程描述的頂層圖略——編者注)

            創(chuàng)建好的目標板編程描述在任何設計的SOPC Builder中都能使用。如果想讓該目標板編程描述在其他PC機上使用,將整個設計文件夾拷貝到NiosII安裝路徑<安裝盤>\altera\kits\nios2\components目錄下即可。

            2.2 使用Flash Programmer工具編程Flash

            目標板編程描述創(chuàng)建后會在SOPC Builder中的Target選項區(qū)的Board下拉列表框中顯示出來。本例中所創(chuàng)建的目標板編程描述為flash_board。目標板編程描述創(chuàng)建后就可以在目標板上進行用戶SOPC系統(tǒng)的開發(fā)了,并能將用戶程序編程到Flash存儲器件中。采用EPCS器件存儲配置文件、Flash器件存儲用戶程序的SOPC系統(tǒng)的開發(fā)流程如圖1所示。

            用Flash Programmer工具對Flash編程的步驟如下:

           ?、賱?chuàng)建項目,構建SOPC硬件系統(tǒng)。

           ?、趩覰iosII,建立SOPC系統(tǒng)的軟件然后進行編譯、鏈接。

           ?、墼贜iosII中選中要進行編程的工程,然后選擇Tools→Flash Programmer,打開Flash Programmer窗口。

           ?、茉贛ain選項中,選中Program software project in-to flash memory project,表示要將工程的flash_progra-mer.elf文件寫入Flash。對flash_programer.elf文件的編程,在Flash Programmer窗口中并沒有存儲器和偏移地址的設置。存儲器和偏移地址由SOPC Builder中的Reset Address指向的存儲器和設置的偏移地址決定。如果將Reset Address指向Flash、偏移地址從0x00開始,那么Flash Programmer就會從Flash的“基地址+0x00”開始燒寫數(shù)據(jù)。如果將Reset Address指向EPCS Controller、偏移地址從0x00開始,那么Flash Programmer就會從EPCS的“基地址+配置數(shù)據(jù)空間+0x00”開始燒寫數(shù)據(jù)。

           ?、葸x擇Target Connection選項卡,在JTAG cable和JTAG device欄中選中當前所用的下載電纜和JTAG器件。

            ⑥單擊Apply按鈕,然后單擊Program Flash按鈕,開始對指定的Flash存儲器編程。

            當完成Flash編程后,由于當前的EPCS中的配置文件是目標板編程描述的配置文件,所以寫入Flash的用戶程序并不會馬上運行。用戶需要給系統(tǒng)重新上電,使FPGA使用EPCS中的配置文件重新配置FPGA,此時用戶程序就能正常運行。

            結 語

            本文針對SOPC系統(tǒng)開發(fā)所面臨的問題,提出采用外接Flash存儲器件是最直接、最有效的解決方法。將FPGA的配置文件存入EPCS、用戶程序存人Flash器件,SOPC系統(tǒng)上電后首先進行配置,然后將Flash中的用戶程序載入系統(tǒng)RAM,這樣不僅解決了存儲容量的問題,也解決了Flash存取速度較慢的問題。本文對外接Flash的SOPC系統(tǒng)開發(fā)有一定的參考價值。



          關鍵詞: FPGA SOPC Flash RAM NiosII

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();