基于SoPC目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建及應(yīng)用
目標(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ì)話框中其他頁面的選項(xiàng),與目標(biāo)板Flash編程設(shè)計(jì)描述沒有必要的關(guān)系。詳細(xì)內(nèi)容請(qǐng)參見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開發(fā)套件安裝目錄的ipnios2_ip文件夾中,或者設(shè)置SoPC Builder的搜索路徑,配置Component/Kit Library SearchPath,增加用戶設(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ì)。
本文引用地址:http://2s4d.com/article/188781.htm
4 目標(biāo)板Flash編程設(shè)計(jì)的應(yīng)用
以一個(gè)最小SoPC系統(tǒng)流水燈為例,說明目標(biāo)板Flash編程設(shè)計(jì)在實(shí)際Flash編程中的應(yīng)用。
4.1 NiosII CPU生成
在Altera 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,故需通過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è)簡單的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文件寫入Flash(EPCS或CFI Flash)存儲(chǔ)器中。將*.elf文件寫入Flash的過程時(shí),如果工程沒有編譯連接,會(huì)自動(dòng)進(jìn)行工程的編譯連接。對(duì)于*.elf文件的編程,F(xiàn)lash Programmer窗口中并沒有存儲(chǔ)器和偏移地址的設(shè)置,存儲(chǔ)器和偏移地址由是SOPC Builder中Reset Address指向的存儲(chǔ)器和設(shè)置的偏移地址決定。如果將ResetAddress指向CFI F1ash.偏移地址從0x0HD開始,那么FlashProgrammer就會(huì)從CFI Flash的基地址+0x00開始燒寫數(shù)據(jù);如果將Reset Address指向epcs_controller,偏移地址從Ox00開始,那么Flash Programmer就會(huì)從EPCS的基地址+配置數(shù)據(jù)空間+Ox00開始燒寫數(shù)據(jù)。
如果選中Program FPGA configuration data into hardware-image region of flash memory,可將FPGA配置數(shù)據(jù)寫入Flash(EPCS或CFI Flash)。選擇作為硬件系統(tǒng)的FPGA配置文件*.sof,指定配置文件的硬件配置映像名及存儲(chǔ)的偏移地址。如果在制作目標(biāo)板Flash編程設(shè)計(jì)時(shí),指定可將配置文件編程到CFIFlash,并指定多個(gè)偏移地址,此項(xiàng)就可選擇編程地址,從而將配置文件編程到用戶指定的存儲(chǔ)器地址空間。對(duì)于將配置文件編程到EPCS,偏移地址只能從Ox00開始。如果選擇Program file into a flash memory選項(xiàng),能將指定的二進(jìn)制文件寫入指定的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)成功,說明目標(biāo)板Flash編程設(shè)計(jì)創(chuàng)建成功。
5 結(jié)語
實(shí)現(xiàn)SoPC目標(biāo)板Flash編程設(shè)計(jì)的創(chuàng)建,并通過一個(gè)最小SoPC系統(tǒng)說明目標(biāo)板Flash編程設(shè)計(jì)在Flash編程中的應(yīng)用及Flash編程的方法。通過實(shí)驗(yàn)驗(yàn)證了目標(biāo)板Flash編程設(shè)計(jì)創(chuàng)建方法的正確性,并能對(duì)Flash編程。
評(píng)論