
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、fpga中spi復(fù)用配置的編程方法spi(serial peripheral interface,串行外圍設(shè)備接口)是一種高速、全雙工、同步的通信,在芯片的引腳上只占用4根線,不僅節(jié)省了芯片的引腳,同時(shí)在的布局上還節(jié)約空間。正是出于這種容易、易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議。1 spi配置介紹11 spantan-3e spi配置流程spi方式是通過(guò)符合spi接口時(shí)序的第三方spi flash對(duì)舉行加載。它適合作為fpga硬件結(jié)構(gòu)的bit文件保存介質(zhì),假如應(yīng)用軟件工程編譯后的代碼較小,保存在同一片spi flash中(即復(fù)用spi flash)無(wú)疑是可行的最便宜計(jì)劃。因?yàn)楸緵](méi)計(jì)
2、軟件工程規(guī)模較小,所以利用此復(fù)用spi flash方式對(duì)fpga舉行配置,既保存fpga配置的bit文件,也保存應(yīng)用軟件工程的bit文件。系統(tǒng)在上電或向prog_b引腳發(fā)出低脈沖后,fpga芯片經(jīng)過(guò)一個(gè)初始化序列清空內(nèi)部fpga配置存儲(chǔ)器。此序列開(kāi)頭時(shí),done和init_b引腳均轉(zhuǎn)為低。初始化完成后,init_b引腳轉(zhuǎn)為高,并采樣芯片的配置模式及變量挑選引腳。spi模式下,fpga對(duì)變量挑選(vs2:0)引腳采樣,以確定發(fā)出哪個(gè)spi指令序列。當(dāng)時(shí)始化之后發(fā)出init_b信號(hào)時(shí),模式引腳和變量挑選引腳都必需處在正確的規(guī)律級(jí),以確保正確采樣。在變量挑選引腳挑選spi指令集之后,fpga將cso
3、_b挑選信號(hào)置為低,并且開(kāi)頭通過(guò)fpga的cclk引腳對(duì)spi flash存儲(chǔ)器舉行時(shí)鐘控制。接著發(fā)出8位讀指令后跟24位起始地址0x000000和目標(biāo)指令集的適量虛擬字節(jié)。fpga從地址0開(kāi)頭讀取spi flash存儲(chǔ)器陣列,直到讀完所需的配置位數(shù)。假如從存儲(chǔ)器件讀取到有效比特流,則發(fā)done信號(hào),以指示fpga配置勝利。圖1為spi配置方式的時(shí)序。圖2是at45db161d spi flash的配置接口。這種配置方式只占用了fpga芯片的4個(gè)引腳,而且配置勝利之后,全部spi引腳都成為可用的用戶(hù)io引腳,這就節(jié)約了fpga的引腳資源。12 spi flash存儲(chǔ)器的復(fù)用復(fù)用spi flas
4、h是指既用它來(lái)保存硬件配置文件、bootloader引導(dǎo)程序還用來(lái)保存用戶(hù)應(yīng)用程序。在加載階段,fpga自動(dòng)從spi flash中讀取硬件配置bit文件及bootloader程序舉行配置到片內(nèi)bram中運(yùn)行。當(dāng)完成加載后,fpga內(nèi)部規(guī)律啟動(dòng),通過(guò)運(yùn)行的bootloader程序讀取spi flash中的用戶(hù)應(yīng)用程序,并寫(xiě)到外部sdram的相應(yīng)位置,最后bootloader程序切換命令指針到sdram指定位置,在外部的sdram中開(kāi)頭執(zhí)行應(yīng)用程序。圖3給出了本系統(tǒng)中復(fù)用spi flash系統(tǒng)結(jié)構(gòu)圖,用edk中的opb_sdram銜接外部sdram,用opb_spi銜接spi flash(at45
5、db161d),通過(guò)bootloader軟件程序?qū)崿F(xiàn)從spi flash中復(fù)制用戶(hù)應(yīng)用程序到sdram中,然后在sdram中運(yùn)行。但是,boot-loader在系統(tǒng)上電時(shí)會(huì)通過(guò)fp-ga芯片的配置引腳首先加載到bram中運(yùn)行,這樣就可以實(shí)現(xiàn)上電自動(dòng)加載啟動(dòng)程序。2 bootloader引導(dǎo)程序的設(shè)計(jì)在工程代碼編寫(xiě)之前要求對(duì)硬件器件有所了解,主要需要了解fpga所需要的配置文件空間,還有flash存儲(chǔ)結(jié)構(gòu)。例如:xc3s500e配置文件空間為2 270 208位,所以要按照它計(jì)算存儲(chǔ)應(yīng)用程序的基地址。at45db161d是串行接口的閃存芯片,它包含有17 301 504位,被組織為4 096頁(yè),
6、每頁(yè)512528字節(jié)。除了主存儲(chǔ)器,at45db161d還包括2個(gè)sram數(shù)據(jù)緩沖區(qū),每個(gè)緩沖區(qū)512528字節(jié)。在主存儲(chǔ)器正在編程時(shí),緩沖區(qū)是允許接收數(shù)據(jù)的,并且支持?jǐn)?shù)據(jù)流式寫(xiě)入。(此處為528字節(jié)頁(yè))at45db161d的存儲(chǔ)器陣列分為3個(gè)級(jí)別的粒度,分離為扇區(qū)、塊與頁(yè)。圖4對(duì)各個(gè)級(jí)別舉行了分析,具體解釋了每個(gè)扇區(qū)與塊的頁(yè)數(shù)。全部的編程操作都是針對(duì)頁(yè)的。擦除操作可以作用于芯片、扇區(qū)、塊或頁(yè)。最后利用定義的空函數(shù)int(*boot_app_jump) (void);”將地址指針指向內(nèi)存的應(yīng)用程序基地址,使其從今處開(kāi)頭運(yùn)行程序。將目的地址賦給跳轉(zhuǎn)函數(shù)boot_app_jump=(int(*)(
7、void)destination_ad-dr;運(yùn)行跳轉(zhuǎn)函數(shù),使其在該函數(shù)地址開(kāi)頭運(yùn)行程序boot_app_jump();3 spi flash軟件引導(dǎo)過(guò)程及spi flash編程本試驗(yàn)用法容易的應(yīng)用程序(打印hello_world),即工程“hello_world”。工程serial_flash_bootloader就是上面設(shè)計(jì)的引導(dǎo)程序。31 編譯用戶(hù)應(yīng)用程序的二進(jìn)制文件因?yàn)閼?yīng)用程序要在外部sdram中運(yùn)行,所以不需要初始化bram存儲(chǔ)器,5所示。為了指明程序的開(kāi)頭地址和應(yīng)用程序的可執(zhí)行文件的產(chǎn)生路徑,需要在編譯選項(xiàng)中設(shè)置。右鍵“應(yīng)用程序工程”,set compiler options在ou
8、tput elf file中挑選可執(zhí)行文件的產(chǎn)生路徑,如xc3s500ehello_worldhello_worldelf,在program start address中鍵入程序執(zhí)行的起始地址(這里是sdram的基地址:0x90000000)。接下來(lái)編譯應(yīng)用程序工程,編譯完成后就會(huì)在xc3s500ehello_world文件夾中產(chǎn)生hello_worldelf。為了后面向spi flash編程的需要,應(yīng)將elf改變成二進(jìn)制形式的文件。這就需要利用cygwin shell窗口指令來(lái)完成,這個(gè)腳本提供了一個(gè)容易的指令實(shí)現(xiàn)這個(gè)目的。利用mb-objcopy-o binaryoptionself fi
9、le inputbi-nary file to output指令就可以將elf改變成二進(jìn)制形式的文件(b文件)。例如:mb-objcopy-o binary hello worldhelloworldelfhello_worldhello_worldb用來(lái)在工程名目下hello_world文件夾創(chuàng)建工程的一個(gè)hello_worldb的二進(jìn)制文件。生成的文件hello_worldb大約2 kb左右。32 bootloader引導(dǎo)程序與硬件配置文件的生成serial_flash_bootloader要初始化到bram中(即在“工程”上右鍵bram initialization and unmark
10、 a11)。這樣做的意義是在編譯bootloader程序時(shí)就將它編譯后的執(zhí)行文件(elf文件)加入到硬件systembit中生成一個(gè)downloadbit。這個(gè)文件既包含了系統(tǒng)硬件配置信息,又包括了bootloader程序執(zhí)行文件。因?yàn)樵O(shè)置了初始化到bram中,所以在系統(tǒng)上電時(shí)才干使bootloader程序自動(dòng)加載到片內(nèi)bram中運(yùn)行,實(shí)現(xiàn)程序的引導(dǎo)功能。只要利用edk用軟件中download bitstram功能就可以實(shí)現(xiàn)上述功能。33 編寫(xiě)spi prom文件本部分提供為spi flash存儲(chǔ)器創(chuàng)建prom文件的指導(dǎo)原則。在將生成bitstrambit比特流轉(zhuǎn)換成spi格式prom文件之前
11、,設(shè)計(jì)人員必需確認(rèn)該比特流是用bitg-en-g startupclk:cclk選項(xiàng)生成的。此選項(xiàng)使啟動(dòng)挨次與spartan-3e內(nèi)部時(shí)鐘同步,從而確保fpga功能正常。將硬件配置和serial_flash_bootloader引導(dǎo)程序的bitstrembit轉(zhuǎn)換為mcs格式文件。將前面得到的應(yīng)用程序的二進(jìn)制文件(hello_worldb)轉(zhuǎn)換為mcs格式文件。將以上得到了2個(gè)mcs文件合成1個(gè)mcs文件。編程spi flash芯片。以上過(guò)程,除了以外,公司的impact編程軟件都可以實(shí)現(xiàn)。要由dos指令完成。所以下面都是以dos指令來(lái)完成編程的全過(guò)程。再用法dos指令完成格式化和編程之前,要
12、對(duì)down-loadbit、應(yīng)用程序、spipartnam和spi_offset參數(shù)舉行設(shè)置,以便xspi軟件程序能對(duì)用戶(hù)要求加以識(shí)別。如下:set bitstream=implementationdownloadbitset application="hello"_worldset spipartname="at45db161d"spi flash器件的名稱(chēng)set spi_offset=0x63000hello_world的應(yīng)用程序就會(huì)從flash中0x63000地址向上存放,引導(dǎo)程序也是從這里開(kāi)頭加載到sdram中的接下來(lái)就是執(zhí)行轉(zhuǎn)換的指令。第1步:
13、rem step 1convert downloadbit to mcsimpact convert_bits_to_mcscmd此指令將硬件配置和serial_flash_bootloader引導(dǎo)程序的bitstrembit轉(zhuǎn)換為mcs格式文件。第2步:rem step 2convert binary application tomcsxmcsutil-accept_notice-iapplicationb-oappli-cationmcs-29完成了應(yīng)用程序(hello_world)的二進(jìn)制文件(hello_worldb)轉(zhuǎn)換為mcs格式文件。第3步:rem step 3combine a
14、pplication mcs withbitstream mcsxmcsutil-accept_notice-i bitstreammcsapplica-tionmcs-o combinedmcs-16-segaddr 0x00spi_off-set-usedataaddr-padff這個(gè)指令將以上得到了的mcs文件合成一個(gè)mcs文件。第4步:rem step 4program the at45db161dxip-accept_notice-skip_syncword_check-mcs-spi_epv-icombinedmcs-o verifytxt-select_cable 1完成對(duì)spi flash芯片編程。此指令用法輪詢(xún)擦除spi內(nèi)容,然后對(duì)spi器件的內(nèi)容舉行編程和驗(yàn)證。任何驗(yàn)證不匹配項(xiàng)都記錄在resultout文件中。默認(rèn)狀況下,xspi認(rèn)定數(shù)據(jù)是hex格式。假如輸入文件是hex格式,則去除-mcs選項(xiàng)。xilinx軟件工具impact從spartan-3e比特流生成spi格式prom文件。spi存儲(chǔ)器件首先串行輸出數(shù)據(jù)的msb字節(jié),而xilinx prom則首先輸出數(shù)據(jù)的lsb。與標(biāo)準(zhǔn)xilinx prom文件相比,spi格式prom文件在每字節(jié)內(nèi)有位反轉(zhuǎn),因此,需要在promgen
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子巡更施工方案
- 礦物電纜施工方案
- 墻壁暗管延長(zhǎng)施工方案
- 電力館 施工方案
- 二零二五年度現(xiàn)代農(nóng)業(yè)土地承包租賃協(xié)議
- 二零二五年度企業(yè)集團(tuán)內(nèi)部公對(duì)公匯款合作協(xié)議
- 2025年度電影宣傳演員聘用合同
- 二零二五年度餐館服務(wù)員勞動(dòng)合同與勞動(dòng)權(quán)益維護(hù)協(xié)議
- 二零二五年度戶(hù)外帳篷露營(yíng)設(shè)施裝修承攬合同
- 2025年度蔬菜批發(fā)市場(chǎng)租賃及銷(xiāo)售合作合同模板
- 物業(yè)二次裝修管理培訓(xùn)課件
- 12534 安全風(fēng)險(xiǎn)控制與安全工具應(yīng)用
- 2016年七里塘電站1號(hào)機(jī)組C級(jí)檢修方案
- 公司股權(quán)激勵(lì)方案(絕對(duì)干貨)PPT幻燈片課件(46頁(yè)P(yáng)PT)
- T∕CGMA 033002-2020 壓縮空氣站節(jié)能設(shè)計(jì)指南
- (完整word版)SAS-Base認(rèn)證考試(70真題+答案詳解)
- 體育測(cè)量與評(píng)價(jià)_05身體素質(zhì)的測(cè)量與評(píng)價(jià)
- 東華協(xié)同辦公系統(tǒng)簡(jiǎn)介
- 詩(shī)詞接龍(飛花令)PPT
- 最新版結(jié)婚函調(diào)報(bào)告表.doc
- 肝癌的介入治療及護(hù)理ppt課件
評(píng)論
0/150
提交評(píng)論