當(dāng)前位置:首頁(yè) > 模擬 > 模擬
[導(dǎo)讀]隨著EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù)的發(fā)展和可編程邏輯器件性能的不斷提高,基于FPGA的可編程片上系統(tǒng)技術(shù)為系統(tǒng)設(shè)計(jì)提供了一種簡(jiǎn)單、靈活、高效的途徑?;贜iosII的可編程片上系統(tǒng)(SoPC)設(shè)計(jì)中,幾乎所有的應(yīng)用設(shè)計(jì)都需要使用Flash存儲(chǔ)器,而Flash的編程必需相應(yīng)的目標(biāo)板Flash編程設(shè)計(jì)支持。結(jié)合實(shí)際應(yīng)用詳細(xì)論述了目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建及應(yīng)用。

1 引言
   
隨著集成電路工藝技術(shù)的不斷發(fā)展和集成度的提高,嵌入式系統(tǒng)由板級(jí)向芯片級(jí)過(guò)渡,形成一種新的設(shè)計(jì)方法一片上系統(tǒng)(System on Chip,簡(jiǎn)稱(chēng)SoC)。SoC從整個(gè)系統(tǒng)的角度出發(fā),把處理機(jī)制、模型算法、芯片結(jié)構(gòu)、各層次電路,直至器件的實(shí)際電路緊密連接起來(lái),在單個(gè)(少數(shù)幾個(gè))芯片上實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。同時(shí)隨著現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)技術(shù)的日益成熟,將PLD與嵌入式處理器IP軟核相結(jié)合,形成基于可編程片上系統(tǒng)(System on Programmable Chip,簡(jiǎn)稱(chēng) SOPC)的SoC解決方案,使得更加靈活的SOPC成為現(xiàn)代嵌入式系統(tǒng)設(shè)計(jì)的發(fā)展趨勢(shì)。SoPC是Altera公司提出的一種靈活、高效的SoC解決方案。它將處理器、存儲(chǔ)器、I/O口、LVDS、CDR等系統(tǒng)設(shè)計(jì)需要的功能模塊集成到一個(gè)可編程器件上,構(gòu)成一種特殊的可編程片上嵌入式系統(tǒng)。一方面,它是可編程片上系統(tǒng),即由單個(gè)芯片完成整個(gè)系統(tǒng)的主要功能,并具備軟硬件系統(tǒng)可編程的能力;另一方面,它內(nèi)嵌處理器IP核,具有靈活的設(shè)計(jì)方式,用戶(hù)可根據(jù)需要隨意配置、構(gòu)建、裁剪處理器IP核。目前最具有代表性的IP軟核嵌入式處理器是Altera的NiosII軟核。NiosII嵌入式CPU是一種專(zhuān)門(mén)為SoPC設(shè)計(jì)應(yīng)用而優(yōu)化的CPU軟核。
    在基于NiosII的SoPC嵌入式系統(tǒng)中,幾乎所有的應(yīng)用設(shè)計(jì)都需要使用Flash來(lái)保存在NiosII中運(yùn)行的程序代碼、非易失性數(shù)據(jù)和FPGA的配置數(shù)據(jù)。因此Flash編程便成為在調(diào)試完SoPC系統(tǒng)后的重要工作。要對(duì)Flash編程,首先要保證在SoPC Builder中Target選項(xiàng)區(qū)域的Board下拉列表框中選擇用戶(hù)使用的目標(biāo)板F1ash編程設(shè)計(jì)。基于實(shí)際設(shè)計(jì)需求,詳細(xì)介紹SoPC目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建,并以一個(gè)最小SoPC系統(tǒng)為例,說(shuō)明目標(biāo)板Flash編程設(shè)計(jì)的應(yīng)用及Flash編程。

2 Flash Programmer簡(jiǎn)介
    NiosII IDE提供了Flash Programmer工具來(lái)對(duì)目標(biāo)板上遵循通用Flash接口(Common Flash Interface,簡(jiǎn)稱(chēng)CFI),規(guī)范的Flash及EPCS配置器件進(jìn)行編程。IDE的FlashProgrammer通過(guò)使用Altera的下載電纜能夠方便地對(duì)目標(biāo)板上連接在FPGA上的Flash及串行配置器件EPCS進(jìn)行編程。
2.1 Flash Programmer編程工作過(guò)程
    NiosII的IDE Flash Programmer采用兩步驟將數(shù)據(jù)寫(xiě)入Flash中。第一步,用一個(gè)Altera提供的特殊Flash編程設(shè)計(jì)(Flash Programmer Design)對(duì)FPGA進(jìn)行配置;第二步,IDEFlash Programmer將要編程到Flash中的文件內(nèi)容傳送到在FPGA上運(yùn)行的Flash編程設(shè)計(jì),然后Flash編程設(shè)計(jì)將接收到的數(shù)據(jù)編寫(xiě)到Flash中。其編程工作過(guò)程如圖1所示。

2.2 Flash編程設(shè)計(jì)
    Flash編程設(shè)計(jì)實(shí)際就是一個(gè)由SoPC Builder系統(tǒng)生成的最小FPGA設(shè)計(jì)。Flash編程設(shè)計(jì)是IDE Flash Programmer的關(guān)鍵組成部分。不同的目標(biāo)板往往使用不同的Flash器件,并且Flash與FPGA的引腳連接以及FPGA的型號(hào)也不相同。因此,每個(gè)Flash編程設(shè)計(jì)都是與具體的目標(biāo)板相聯(lián)系的,不能用于其他的目標(biāo)板。如果使用自己的目標(biāo)板,那么設(shè)計(jì)者必須創(chuàng)建該目標(biāo)板的Flash編程設(shè)計(jì)。Altem公司的Nios開(kāi)發(fā)板都提供了相應(yīng)的Flash編程設(shè)計(jì),可以在NiosII開(kāi)發(fā)套件安裝目錄的、ipnios2_ip文件夾中找到。
2.3 Flash編程設(shè)計(jì)信息
    目標(biāo)板Flash編程設(shè)計(jì)描述了系統(tǒng)與目標(biāo)板之間的關(guān)系。目標(biāo)板Flash編程設(shè)計(jì)對(duì)Flash編程必不可少,它提供了Flash Programmer對(duì)Flash編程所需的全部信息。一個(gè)目標(biāo)板Flash編程設(shè)計(jì)是一組SOPC Builder文件,其中必須指明FPGA與Flash的連接關(guān)系。一個(gè)目標(biāo)板Flash編程設(shè)計(jì)包含下列信息:①每一個(gè)連接到電路板FPGA上的F1ash的參考元件標(biāo)號(hào),如U7,U7Flash,U3EPCS等;②Flash器件在F1ash編程設(shè)計(jì)中的基地址;③用于配置目標(biāo)板上FPGA的Flash編程設(shè)計(jì)的SOF文件。
    參考元件標(biāo)號(hào)用于區(qū)分設(shè)計(jì)中不同的Flash器件。目標(biāo)板上的Flash器件在設(shè)計(jì)時(shí)的命名和基地址可能不同,但參考元件標(biāo)號(hào)總是相同的。

3 目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建
   
用戶(hù)自制目標(biāo)板,而在Target選項(xiàng)區(qū)中的Board下拉列表框中沒(méi)有相應(yīng)的目標(biāo)板Flash編程設(shè)計(jì),用戶(hù)就必須自己創(chuàng)建目標(biāo)板Flash編程設(shè)計(jì)。
3.1目標(biāo)板Flash編程設(shè)計(jì)文件創(chuàng)建
    下面以QuaausII 7.0為例,詳細(xì)說(shuō)明目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建。目標(biāo)板Flash編程設(shè)計(jì)在SoPC Builder中實(shí)現(xiàn)。在QuaausII中新建一個(gè)工程,在[Tools]菜單中選擇[SoPC Builder],打開(kāi)Ahera SOPC Builder圖形編輯界面環(huán)境。在SoPC Builder圖形編輯界面中,在[File]菜單中選擇[New Board Description],打開(kāi)Board Description Editor對(duì)話(huà)框,在此對(duì)話(huà)框中選擇NetList頁(yè)面,在Device Familv欄中正確選擇目標(biāo)板的FPGA系列,這里以Cyclone II為例,如圖2所示。

    選擇Flash Memory頁(yè)面,單擊New Flash Memory按鈕添加目標(biāo)板的Flash器件,并輸入正確的連接到目標(biāo)板FPGA的參考元件標(biāo)號(hào)和Flash器件類(lèi)型。參考元件標(biāo)號(hào)可命名為用戶(hù)的任意字符串,如U7,EPCS,F(xiàn)lash等,但不能命名成U7(CFIFlash),U3(EPCS)等形式。再單擊此頁(yè)面的New HardwareImage按鈕,指定FPGA硬件配置程序的存儲(chǔ)位置,一般選擇EPCS器件。如果設(shè)置為Flash器件,需要有相應(yīng)的外部控制器、單片機(jī)或CPLD配合使用。設(shè)置如圖3所示。

    FPGA硬件配置可放在NOR Flash中,也可放在EPCS中。在Hardware Image Name欄下輸入硬件配置映像的名稱(chēng),如epcs,user,factory等。對(duì)于每一個(gè)Hardware Image Name,都要選擇一個(gè)用來(lái)存儲(chǔ)的Flash。如果用戶(hù)設(shè)計(jì)中,即采用EPCS,又采用NOR Flash對(duì)FPGA的配置數(shù)據(jù)進(jìn)行存儲(chǔ),則可在Hardware Image Name欄下輸入兩個(gè)硬件配置映像名,如user,factory,然后分別指定為前面的參考元件標(biāo)號(hào);對(duì)于offset欄的設(shè)置,如果對(duì)應(yīng)的Device欄為Flash器件,則可以指定硬件映像在Flash中的編程偏移地址;如果對(duì)應(yīng)的Device欄為EPCS器件,則不能在offset欄中指定偏移地址。最后選擇Files頁(yè)面,輸入Board Description Name,Version和System Template,單擊Finish按鈕完成目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建,如圖4所示。

    System Template欄可通過(guò)Brows按鈕選擇設(shè)置的系統(tǒng)模板*.ptf(或者直接輸入),也可不設(shè)置系統(tǒng)模板。如果設(shè)置系統(tǒng)模版,則系統(tǒng)模板需要存儲(chǔ)在目標(biāo)板Flash編程設(shè)計(jì)文件目錄下的system文件夾中。并且在構(gòu)建NiosII CPU時(shí),當(dāng)選擇帶系統(tǒng)模板的目標(biāo)板Flash編程設(shè)計(jì)時(shí),會(huì)自動(dòng)在SoPCBuilder圖形編輯界面添加系統(tǒng)模板帶的CPU組件。
    目標(biāo)板Flash編程設(shè)計(jì)成功創(chuàng)建后,在QuartusII工程目錄下會(huì)生成一個(gè)與Board Description Name相同的目錄。在此目錄下包含目標(biāo)板Flash編程設(shè)計(jì)的文件class.ptf。文件夾下還包含兩個(gè)子文件夾,一個(gè)是system,設(shè)計(jì)者指定的系統(tǒng)模版便存放在此;另一個(gè)是netlist,存儲(chǔ)設(shè)計(jì)者提供的PCB網(wǎng)表文件,格式為wirelist。如果設(shè)計(jì)者不需要這兩個(gè)文件,則為空文件夾。
    對(duì)于Board Description Editor對(duì)話(huà)框中其他頁(yè)面的選項(xiàng),與目標(biāo)板Flash編程設(shè)計(jì)描述沒(méi)有必要的關(guān)系。詳細(xì)內(nèi)容請(qǐng)參見(jiàn)Altera的數(shù)據(jù)手冊(cè)。
3.2 目標(biāo)板Flash編程設(shè)計(jì)設(shè)置
   
目標(biāo)板Flash編程設(shè)計(jì)成功創(chuàng)建后,為了在任何設(shè)計(jì)的SoPC Builder中都能使用,則可將生成的整個(gè)文件夾拷貝到NiosII開(kāi)發(fā)套件安裝目錄的ipnios2_ip文件夾中,或者設(shè)置SoPC Builder的搜索路徑,配置Component/Kit Library SearchPath,增加用戶(hù)設(shè)計(jì)的目標(biāo)板Flash編程設(shè)計(jì)目錄。然后關(guān)閉Ahera SoPC Builder重新啟動(dòng)SoPC Builder,就可以在SoPCBuilder圖形界面中的Target下拉列表框中找到創(chuàng)建的目標(biāo)板Flash編程設(shè)計(jì)。

4 目標(biāo)板Flash編程設(shè)計(jì)的應(yīng)用
    以一個(gè)最小SoPC系統(tǒng)流水燈為例,說(shuō)明目標(biāo)板Flash編程設(shè)計(jì)在實(shí)際Flash編程中的應(yīng)用。
4.1 NiosII CPU生成
   
在A(yíng)ltera SoPC Builder圖形界面中,首先在Target選項(xiàng)區(qū)中Board下拉列表框中選擇剛創(chuàng)建的目標(biāo)板Flash編程設(shè)計(jì),并指定NiosII系統(tǒng)的時(shí)鐘。然后添加系統(tǒng)所需的外設(shè)元件,設(shè)置各外設(shè)元件的參數(shù)。分配Base Address和IRQ。添加完組件后如圖5所示。

    添加完組件后,在Nios II More“cpu”Settings中設(shè)置復(fù)位地址和異常地址。如果Nios程序下載到Flash中,則復(fù)位地址設(shè)為ext_flash;如果下載到EPCS中,則復(fù)位地址設(shè)為epcs_controller。最后在System Generation中點(diǎn)擊Generation按鈕生成NiosII CPU。
4.2 構(gòu)建最小SOPC系統(tǒng)
   
在QuartusII中構(gòu)建最小SoPC系統(tǒng)。此SoPC系統(tǒng)由NiosII CPU模塊、PLL模塊和系統(tǒng)復(fù)位模塊組成。在系統(tǒng)的頂層模塊中分別添加SoPC Builder生成的NiosII CPU,PLL模塊及系統(tǒng)復(fù)位模塊構(gòu)成最小的SoPC系統(tǒng)。由于目標(biāo)板上時(shí)鐘是50 MHz,而構(gòu)建NiosII CPU時(shí)鐘設(shè)為80 MHz,故需通過(guò)Mega Wizard Plug-In Manager生成PLL模塊,將系統(tǒng)時(shí)鐘提高到80 MHz。添加完模塊后,再添加輸入/輸出端口,并連接引腳與端口,命名端口名(建議端口命名與實(shí)際電路中的網(wǎng)絡(luò)標(biāo)號(hào)相同)。然后分配引腳,并設(shè)置相關(guān)參數(shù)。編譯工程生成FPGA的配置文件*.sof,并利用QuartusII的Programmer下載到FPGA或EPCS中。
4.3 Nios程序生成及Flash編程
    啟動(dòng)NiosII IDE,建立和編譯一個(gè)簡(jiǎn)單的LED流水燈的Nios應(yīng)用程序。在Nios應(yīng)用程序調(diào)試正確后,單擊菜單[Tools]下的[Flash Programmer],彈出Flash Programmer編程界面。選中Flash Programmer,單擊New按鈕創(chuàng)建一個(gè)FlashProgrammer配置。在Flash Programmer界面中選擇Main選項(xiàng)卡,設(shè)置Flash Programmer相關(guān)參數(shù)。
    如果選中Program software project into flash memory project項(xiàng),表示將工程的*.elf文件寫(xiě)入Flash(EPCS或CFI Flash)存儲(chǔ)器中。將*.elf文件寫(xiě)入Flash的過(guò)程時(shí),如果工程沒(méi)有編譯連接,會(huì)自動(dòng)進(jìn)行工程的編譯連接。對(duì)于*.elf文件的編程,F(xiàn)lash Programmer窗口中并沒(méi)有存儲(chǔ)器和偏移地址的設(shè)置,存儲(chǔ)器和偏移地址由是SOPC Builder中Reset Address指向的存儲(chǔ)器和設(shè)置的偏移地址決定。如果將ResetAddress指向CFI F1ash.偏移地址從0x0HD開(kāi)始,那么FlashProgrammer就會(huì)從CFI Flash的基地址+0x00開(kāi)始燒寫(xiě)數(shù)據(jù);如果將Reset Address指向epcs_controller,偏移地址從Ox00開(kāi)始,那么Flash Programmer就會(huì)從EPCS的基地址+配置數(shù)據(jù)空間+Ox00開(kāi)始燒寫(xiě)數(shù)據(jù)。
    如果選中Program FPGA configuration data into hardware-image region of flash memory,可將FPGA配置數(shù)據(jù)寫(xiě)入Flash(EPCS或CFI Flash)。選擇作為硬件系統(tǒng)的FPGA配置文件*.sof,指定配置文件的硬件配置映像名及存儲(chǔ)的偏移地址。如果在制作目標(biāo)板Flash編程設(shè)計(jì)時(shí),指定可將配置文件編程到CFIFlash,并指定多個(gè)偏移地址,此項(xiàng)就可選擇編程地址,從而將配置文件編程到用戶(hù)指定的存儲(chǔ)器地址空間。對(duì)于將配置文件編程到EPCS,偏移地址只能從Ox00開(kāi)始。如果選擇Program file into a flash memory選項(xiàng),能將指定的二進(jìn)制文件寫(xiě)入指定的Flash(EPCS或CFI Flash)存儲(chǔ)地址空間。
    在Flash Programmer界面中選擇Target Connection選項(xiàng)卡,設(shè)置當(dāng)前所用的下載電纜及JTAG器件。然后單擊Program F1ash對(duì)Flash進(jìn)行編程(EPCS或CFIFlash)。如果看到圖6所示的提示消息,則Flash編程已經(jīng)成功,說(shuō)明目標(biāo)板Flash編程設(shè)計(jì)創(chuàng)建成功。

5 結(jié)語(yǔ)
    實(shí)現(xiàn)SoPC目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建,并通過(guò)一個(gè)最小SoPC系統(tǒng)說(shuō)明目標(biāo)板Flash編程設(shè)計(jì)在Flash編程中的應(yīng)用及Flash編程的方法。通過(guò)實(shí)驗(yàn)驗(yàn)證了目標(biāo)板Flash編程設(shè)計(jì)創(chuàng)建方法的正確性,并能對(duì)Flash編程。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉