0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Flash外部配置器件在SOPC中的應(yīng)用

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-03 15:55 ? 次閱讀

作者:沈滿德 張敏張法全 陳良益

1 Flash在SOPC中的作用

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

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

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

NiosII的開發(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器件中的任意偏移地址進行任意內(nèi)容的編程。Flash Programmer工具對Flash編程分為2個步驟:

①根據(jù)目標板編程描述對FPGA進行配置;

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

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

目標板編程描述實際就是一個由SOPC Builder系統(tǒng)生成的最小FPGA設(shè)計,其作用是對FPGA進行適當配置以實現(xiàn)對Flash的編程。不同的電路板(目標板)往往使用不同的Flash器件,并且Flash與FPGA的引腳連接以及FPGA的型號也不相同,因此每個目標板編程描述都是與具體的目標板相關(guān)聯(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對模板進行編輯,從而形成完整的目標板編程描述。

每個目標板編程描述應(yīng)包含下列元件:NiosII 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)建目標板編程描述的步驟:

①啟動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);

③啟動QuartusII軟件并打開剛才創(chuàng)建的目標板編程描述工程flash_programer.qPf;

④在QuartusII軟件中選擇Assignments→Device打開setting對話框,選取FPGA型號,本例為EP1C6Q240C8;

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

⑥選擇System Generation選項卡,關(guān)閉Simulation選項,然后單擊Generate按鈕;

⑦當生成完成后,退出SOPC Builder,并返回到QuartuslI;

⑧在QuartuslI中更新原理圖,然后添加、鏈接并命名引腳;

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

⑩編譯并保存工程。

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

創(chuàng)建好的目標板編程描述在任何設(shè)計的SOPC Builder中都能使用。如果想讓該目標板編程描述在其他PC機上使用,將整個設(shè)計文件夾拷貝到NiosII安裝路徑\altera\kits\nios2\components目錄下即可。 function ImgZoom(Id)//重新設(shè)置圖片大小 防止撐破表格 { var w = $(Id).width; var m = 650; if(w

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所示。

wKgaomTLXVmAQNJiAABuUkGKqwA408.jpg

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

①創(chuàng)建項目,構(gòu)建SOPC硬件系統(tǒng)。

②啟動NiosII,建立SOPC系統(tǒng)的軟件然后進行編譯、鏈接。

③在NiosII中選中要進行編程的工程,然后選擇Tools→Flash Programmer,打開Flash Programmer窗口。

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

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

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

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

結(jié) 語

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600453
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    49937

    瀏覽量

    419591
  • sopc
    +關(guān)注

    關(guān)注

    2

    文章

    247

    瀏覽量

    61878
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1608

    瀏覽量

    147562
收藏 人收藏

    評論

    相關(guān)推薦

    采用外接Flash存儲器件SOPC系統(tǒng)開發(fā)的實現(xiàn)

    1 FlashSOPC的作用 FlashSOPC
    發(fā)表于 07-01 09:07 ?875次閱讀
    采用外接<b class='flag-5'>Flash</b>存儲<b class='flag-5'>器件</b>對<b class='flag-5'>SOPC</b>系統(tǒng)開發(fā)的實現(xiàn)

    CPLD控制讀取外部配置flash的問題

    本人新手,設(shè)計一個cpld的控制電路,需要從flash讀取數(shù)據(jù)傳送給其他模塊。由于數(shù)據(jù)量比較大,cpld內(nèi)部的flash容量不夠,需要在外部
    發(fā)表于 07-31 11:23

    【AC620 FPGA試用體驗】SOPC開發(fā)

    的基于Nios II的SOPC系統(tǒng)是一個軟硬件復(fù)合的系統(tǒng)。開發(fā)時,可分為硬件和軟件兩個部分,但在實際設(shè)計過程,有時候所需要的功能既可以用軟件也可以用硬件來實現(xiàn)。具體采用什么方式,要根據(jù)系統(tǒng)設(shè)計要求來權(quán)衡
    發(fā)表于 08-26 12:48

    基于μClinux的SoPC應(yīng)用系統(tǒng)設(shè)計

    。 1 基于SoPC的嵌入式硬件平臺構(gòu)建 不同于基于處理器或控制器及SoC的嵌入式系統(tǒng),基于SoPC的嵌入式系統(tǒng)具有可配置的特點,不會包括任何專用外設(shè),而是可根據(jù)需要靈活地一片F(xiàn)P
    發(fā)表于 12-04 10:44

    SoPC目標板Flash編程設(shè)計的創(chuàng)建及應(yīng)用介紹

    使用Flash來保存在NiosII運行的程序代碼、非易失性數(shù)據(jù)和FPGA的配置數(shù)據(jù)。因此Flash編程便成為調(diào)試完
    發(fā)表于 07-29 06:58

    Flash外部配置器件SOPC中有哪些應(yīng)用?

    FlashSOPC的作用主要表現(xiàn)在兩方面:一方面,可用Flash來保存FPGA的配置文件,從
    發(fā)表于 08-14 06:46

    并行NOR FlashSOPC開發(fā)的4種不同應(yīng)用,不看肯定后悔

    (簡稱“1600E”)為背景,結(jié)合項目開發(fā)經(jīng)驗和參閱相關(guān)文獻的基礎(chǔ)上,介紹了并行NOR FlashSOPC開發(fā)的4種不同應(yīng)用。
    發(fā)表于 04-13 06:02

    并行NOR FlashSOPC開發(fā)中有哪些應(yīng)用?

    并行NOR FlashSOPC開發(fā)中有哪幾種應(yīng)用?
    發(fā)表于 04-27 06:58

    如何使用Flash Programmer工具編程Flash?

    FlashSOPC的作用是什么SOPC系統(tǒng)
    發(fā)表于 04-30 06:57

    怎么實現(xiàn)SoPC目標板Flash編程設(shè)計的創(chuàng)建?

    怎么實現(xiàn)SoPC目標板Flash編程設(shè)計的創(chuàng)建?目標板Flash編程設(shè)計實際Flash編程
    發(fā)表于 04-30 07:06

    并行NOR FlashSOPC開發(fā)的應(yīng)用

    摘要 討論Intel StrataFlash 3V Memory系列的JS28F128J3D75并行NOR Flash基于Xilinx MicroBlaze的SOPC開發(fā)的4種不同
    發(fā)表于 03-29 15:09 ?1836次閱讀
    并行NOR <b class='flag-5'>Flash</b><b class='flag-5'>在</b><b class='flag-5'>SOPC</b>開發(fā)<b class='flag-5'>中</b>的應(yīng)用

    局部動態(tài)重構(gòu)SOPC的應(yīng)用

    提出一種Xilinx平臺上基于模塊的局部重構(gòu)設(shè)計方法,并將其應(yīng)用在片上可編程系統(tǒng)SOPC現(xiàn)有Xilinx軟硬件平臺上,以XC2VP40內(nèi)嵌的PowerPC處理器內(nèi)核為基礎(chǔ),通過
    發(fā)表于 05-13 18:55 ?22次下載
    局部動態(tài)重構(gòu)<b class='flag-5'>在</b><b class='flag-5'>SOPC</b><b class='flag-5'>中</b>的應(yīng)用

    LPC2200_flash內(nèi)部Flash外部Flash分散加載

    LPC2200_flash內(nèi)部Flash外部Flash分散加載示例。
    發(fā)表于 05-20 16:08 ?16次下載

    FPGA芯片配置分類及配置方式

    廣義的來說,F(xiàn)PGA的配置包括直接使用下載電纜對FPGA器件進行編程、對外部EEPROM和FLASH進行編程、使用MPU對FPGA器件進行編
    的頭像 發(fā)表于 09-06 09:41 ?6553次閱讀

    TMS320C672x器件配置外部中斷

    電子發(fā)燒友網(wǎng)站提供《TMS320C672x器件配置外部中斷.pdf》資料免費下載
    發(fā)表于 10-15 09:58 ?0次下載
    <b class='flag-5'>在</b>TMS320C672x<b class='flag-5'>器件</b>上<b class='flag-5'>配置</b><b class='flag-5'>外部</b>中斷