欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種FPGA配置方法及在線升級方法與流程

文檔序號:11729124閱讀:609來源:國知局
一種FPGA配置方法及在線升級方法與流程
本發(fā)明涉及計算機領(lǐng)域,具體涉及一種fpga配置及在線升級方法。
背景技術(shù)
:目前很多產(chǎn)品都廣泛用了fpga,雖然品種不同,但編程方式幾乎都一樣:利用專用的eprom對fpga進行配置。專用的eprom價格不便宜,且大不跟上都是一次性opt方式編程。一旦更改fpga設(shè)計,代價不小。技術(shù)實現(xiàn)要素:為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下:第一方面,本發(fā)明提供一種采用無源串行方式對fpga進行配置的方法,包括以下步驟:ss1:設(shè)置nconfig="0"、dclk="0",保持2μs以上;ss2:檢測nstatus,如果為"0",表明fpga已響應(yīng)配置要求,可開始進行配置,否則報錯;ss3:設(shè)置nconfig="1",并等待5μs;ss4:在data0上放置數(shù)據(jù),設(shè)置dclk="1",延時;ss5:設(shè)置dclk="0",并檢測nstatus,若為"0",則報錯并重新開始;ss6:準備下一位數(shù)據(jù),并重復(fù)執(zhí)行步驟ss4、ss5,直到所有數(shù)據(jù)送出為止;ss7:檢測conf_done是否變成"1",若是,表明fpga的配置已完成,如果所有數(shù)據(jù)送出后,conf_done不為"1",必須從ss1開始重新配置;ss8:配置完成后,再送出10個周期的dclk,以使fpga完成初始化。進一步的,nconfig="0"后1μs內(nèi)nstatus將為"0"。進一步的,fpga為altera的fpga。進一步的,使用mpc860作cpu,bootrom采用sst39vf040,fpga型號ep1k30。進一步的,步驟ss8中fpga完成初始化所需要的10個周期的dclk是針對acex1k和flex10ke的,如果是apex20k,則需要40個周期。進一步的,在配置過程中,如果檢測到nstatus為"0",表明fpga配置有錯誤,則應(yīng)回到步驟ss1重新開始。第二方面,本發(fā)明提供一種對fpga的在線升級的方法,步驟包括:ss1:使用編譯和連接工具,將fpga的第一個版本與cpu的工作程序連接在一起,分別占用地址為0x70000-0x7ffff和0x00000-0x6ffff的存儲空間;;ss2:單板啟動時,cpu自動將0x70000-0x7ffff的數(shù)據(jù)下載到fpga中,完成fpga配置;ss3:當(dāng)fpga需升級時,將新的rbf配置文件放在后臺計算機中;ss4:cpu把bootrom的0x70000-0x7ffff空間當(dāng)作普通數(shù)據(jù)存儲區(qū),通過后臺將新的rbf配置文件放在0x70000-0x7ffff中;ss5:cpu調(diào)用bootrom中的fpga配置子程序,對fpga重新下載數(shù)據(jù),完成fpga升級。進一步的,使用mpc860作cpu,bootrom采用sst39vf040,fpga型號ep1k30,在mcp860的pb口選5根線與ep1k30連接成ps配置方式,data0也由mpc860輸出。進一步的,存放fpga配置數(shù)據(jù)的區(qū)域必須是cpu可重寫的。進一步的,如果某些單板bootrom的寫功能必須禁止,此時fpga配置數(shù)據(jù)可放在其它存儲器中,如存放應(yīng)用程序的flash中,升級fpga配置數(shù)據(jù)可以和升級應(yīng)用程序一并完成。與configurationeprom方式相比本,本發(fā)明的方案有降低硬件成本、可多次編程、實現(xiàn)真正"現(xiàn)場可編程"、減少生產(chǎn)工序等優(yōu)點。附圖說明圖1示出configurationeprom方式對fpga進行配置的時序圖。圖2示出本發(fā)明ps配置單片fpga的硬件連接圖圖3示出本發(fā)明ps配置多片fpga的硬件連接圖。圖4示出本發(fā)明采用ps方式對fpga進行配置的時序圖。圖5示出本發(fā)明采用ps方式對fpga進行配置操作流程框圖。圖6示出本發(fā)明對fpga的在線升級的系統(tǒng)結(jié)構(gòu)框圖圖7示出本發(fā)明對fpga的在線升級的系統(tǒng)電路原理圖。具體實施方式以下結(jié)合說明書附圖及具體實施例進一步說明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的發(fā)明構(gòu)思在于利用板上現(xiàn)有cpu子系統(tǒng)中空閑的rom空間存放fpga的配置數(shù)據(jù),并由cpu模擬專用eprom對fpga進行配置,以降低硬件成本并實現(xiàn)fpga的在線升級。ram-basedfpga由于sram工藝的特點,掉電后數(shù)據(jù)會消失。因此,每次系統(tǒng)上電后,均需對fpga進行配置。對于altera的fpga,配置方法可分為:專用的eprom(configurationeprom)、ps(passiveserial無源串行)、pps(passiveparallelsynchronous無源同步并行)、ppa(passiveparallelasynchronous無源異步并行)、jtag(不是所有器件都支持)。圖1為configurationeprom方式對fpga進行配置的時序圖。本發(fā)明采用ps方式對fpga進行配置,主要是基于如下幾個方面的考慮:1.ps方式連線最簡單;2.與configurationeprom方式可以兼容(msel0、1設(shè)置不變);3.與并行配置相比,誤操作的幾率小,可靠性高。圖2-3本發(fā)明采用ps方式對fpga進行配置的系統(tǒng)結(jié)構(gòu)圖。圖2示出ps配置單片fpga的硬件連接,圖3示出ps配置多片fpga的硬件連接。圖4為本發(fā)明采用ps方式對fpga進行配置的時序圖。圖5為本發(fā)明采用ps方式對fpga進行配置操作流程框圖。如圖3所示,示出采用ps方式對fpga進行配置的方法流程,cpu按該方法步驟操作i/o口線,即可完成對fpga的配置,方法步驟如下:ss1:nconfig="0"、dclk="0",保持2μs以上。ss2:檢測nstatus,如果為"0",表明fpga已響應(yīng)配置要求,可開始進行配置。否則報錯。正常情況下,nconfig="0"后1μs內(nèi)nstatus將為"0"。ss3:nconfig="1",并等待5μs。ss4:data0上放置數(shù)據(jù)(lsbfirst),dclk="1",延時。ss5:dclk="0",并檢測nstatus,若為"0",則報錯并重新開始。ss6:準備下一位數(shù)據(jù),并重復(fù)執(zhí)行步驟ss4、ss5,直到所有數(shù)據(jù)送出為止。ss7:此時conf_done應(yīng)變成"1",表明fpga的配置已完成。如果所有數(shù)據(jù)送出后,conf_done不為"1",必須從ss1開始重新配置。ss8:配置完成后,再送出10個周期的dclk,以使fpga完成初始化。根據(jù)本發(fā)明的一實施例,fpga為altera的fpga。根據(jù)本發(fā)明的一實施例,步驟ss8中fpga完成初始化所需要的10個周期的dclk是針對acex1k和flex10ke的,如果是apex20k,則需要40個周期。根據(jù)本發(fā)明的一實施例,在配置過程中,如果檢測到nstatus為"0",表明fpga配置有錯誤,則應(yīng)回到步驟ss1重新開始。圖6-7為本發(fā)明對fpga的在線升級的系統(tǒng)結(jié)構(gòu)框圖及電路原理圖。如圖6所示,示出對fpga在線升級的系統(tǒng)。根據(jù)本發(fā)明的一實施例,使用mpc860作cpu,bootrom采用sst39vf040,一片fpga型號ep1k30qc208-3。我們在mcp860的pb口選5根線與ep1k30連接成ps配置方式,data0也由mpc860輸出,信號定義見下表:mpc860引腳i/o信號名稱ep1k30引腳pb24odata0156pb25instatus52pb26onconfig105pb27iconf_done2pb28odclk155ep1k30所需要的配置數(shù)據(jù)為58kb(準確的長度參見生成的rbf文件),由于bootrom比較空,我們將配置數(shù)據(jù)安排在bootrom的0x70000~0x7ffff區(qū)間內(nèi)。第一次的配置數(shù)據(jù)可利用編程器將rbf文件當(dāng)作二進制文件寫到bootrom的起始地址為0x70000的區(qū)域,也可以通過860仿真器把數(shù)據(jù)寫到指定位置。根據(jù)本發(fā)明的一實施例,存放fpga配置數(shù)據(jù)的區(qū)域必須是cpu可重寫的。根據(jù)本發(fā)明的一實施例,如某些單板bootrom的寫功能必須禁止,此時fpga配置數(shù)據(jù)可放在其它存儲器中,如存放應(yīng)用程序的flash中,升級fpga配置數(shù)據(jù)可以和升級應(yīng)用程序一并完成。對fpga的在線升級的方法包括以下步驟:ss1:使用編譯和連接工具,將fpga的第一個版本與mpc860的工作程序連接在一起,分別占用地址為0x70000-0x7ffff和0x00000-0x6ffff的存儲空間。ss2:單板啟動時,mpc860自動將0x70000-0x7ffff的數(shù)據(jù)下載到fpga中,完成fpga配置。ss3:當(dāng)fpga需升級時,將新的rbf配置文件放在后臺計算機中。ss4:mpc860把bootrom的0x70000-0x7ffff空間當(dāng)作普通數(shù)據(jù)存儲區(qū),通過后臺將新的rbf配置文件放在0x70000-0x7ffff中。ss5:mpc860調(diào)用bootrom中的fpga配置子程序,對fpga重新下載數(shù)據(jù),完成fpga升級。以mpc860為例,可以將轉(zhuǎn)換完成的rbf文件作為二進制文件,直接寫到mpc860系統(tǒng)的某一rom/flash區(qū)域。由于這段數(shù)據(jù)的起始地址和長度都是已知的,相應(yīng)的軟件編寫是很方便的。本發(fā)明的cpu源程序如下:voidinitport(void){//初始化pb口相應(yīng)位://pb24-輸出,pb25-輸入,pb26-輸出,pb27-輸入,pb28-輸出immr->pip_pbpar=0x00000000;immr->pip_pbdir=0xfffff5af;immr->pip_pbodr=0x00000000;immr->pip_pbdat=0xffffff57;}ubytefpga_download(void){//fpga配置ubyte*bootaddr;uwordcountnum=0x0;ubytefpgabuffer,i;//獲得boot區(qū)首地址bootaddr=(ubyte*)(immr->memc_or0&immr->memc_br0&0xffff8000);set_nconfig(0);//nconfig="0",使fpga進入配置狀態(tài)set_dclk(0);delay5us();if(read_nstatus()==1){//檢測nstatus,如果為"0",表明fpga已響應(yīng)配置要求,可開始進行配置。否則報錯err_led(1);return0;}set_nconfig(1);delay5us();//開始輸出配置數(shù)據(jù):while(countnum<=0x0e74e){fpgabuffer=*(bootaddr+0x70000+countnum);for(i=0;i<8;i++){//dclk="0"時,在data0上放置數(shù)據(jù)(lsbfirst)set_data0(fpgabuffer&0x01);set_dclk(1);//dclk->"1",使fpga讀入數(shù)據(jù)fpgabuffer>>=1;//準備下一位數(shù)據(jù)if(read_nstatus()==0){//檢測nstatus,如果為"0",表明fpga配置出錯err_led(1);return0;}set_dclk(0);}countnum++;}//fpga初始化://acex1k和flex10ke需要10個周期,apex20k需要40個周期for(i=0;i<10;i++){set_dclk(1);delay100us();set_dclk(0);delay100us();}set_data0(0);if(read_nconf_done()==0){//檢測nconf_done,如果為"0",表明fpga配置未成功err_led(1);return0;}return1;//成功返回}//data0輸出voidset_data0(ubytesetting){//pb24if(setting)immr->pip_pbdat|=0x00000080;elseimmr->pio_pbdat&=0xffffff7f;}//讀nstatus狀態(tài)ubyteread_nstatus(void){//pb25if(immr->pio_pbdat&0x00000040)return1;elsereturn0;}//設(shè)置nconfig電平voidset_nconfig(ubytesetting){//pb26if(setting)immr->pip_pbdat|=0x00000020;elseimmr->pio_pbdat&=0xffffffdf;}//讀nconf_done狀態(tài)ubyteread_nconf_done(void){//pb27if(immr->pio_pbdat&0x00000010)return1;elsereturn0;}//輸出dclkvoidset_dclk(ubytesetting){//pb28if(setting)immr->pio_pbdat|=0x00000008;elseimmr->pio_pbdat&=0xfffffff7;}//結(jié)束本發(fā)明嚴格按照fpga的ps配置流程進行,并在配置過程中始終監(jiān)測工作狀態(tài),在完善的軟件配合下,可糾正如上電次序?qū)е屡渲貌徽5儒e誤。因此,采用此方法對fpga進行配置,性能將優(yōu)于configurationeprom方式。與configurationeprom方式相比本設(shè)計有如下優(yōu)點:1.降低硬件成本:省去了fpga專用eprom的成本,而幾乎不增加其他成本。以altera的10k系列為例,板上至少要配一片以上的epc1,每片epc1的價格要幾十元,容量1m位。提供1mb的存儲空間,對于大部分單板來說(如860系統(tǒng)的單板),是不需要增加硬件的。即使增加1mb存儲空間,通用存儲器也會比fpga專用eprom便宜。2.可多次編程:fpga專用eprom幾乎都是otp,一旦更換fpga版本,舊版本的并不便宜的eprom只能丟棄。如果使用本設(shè)計對fpga配置,選用可擦除的通用存儲器保存fpga的編程數(shù)據(jù),更換fpga版本,無須付出任何硬件代價。這也是降低硬件成本的一個方面。3.實現(xiàn)真正"現(xiàn)場可編程":fpga的特點就是"現(xiàn)場可編程",只有使用cpu對fpga編程才能體現(xiàn)這一特點。如果設(shè)計周全的話,單板上的fpga可以做到在線升級。4.減少生產(chǎn)工序:省去了對"fpga專用eprom"燒結(jié)的工序,對提高生產(chǎn)率,降低生產(chǎn)成本等均有好處。對于雙面再流焊的單板,更可省去手工補焊dip器件的工序。盡管在裝置的上下文中已描述了一些方面,但明顯的是這些方面也表示對應(yīng)方法的描述,其中塊或設(shè)備與方法步驟或方法步驟的特征相對應(yīng)。類似地,在方法步驟的上下文中所描述的各方面也表示對應(yīng)的塊或項目或者對應(yīng)裝置的特征的描述。可以通過(或使用)如微處理器、可編程計算機、或電子電路之類的硬件裝置來執(zhí)行方法步驟中的一些或所有??梢酝ㄟ^此類裝置來執(zhí)行最重要的方法步驟中的某一個或多個。所述實現(xiàn)可以采用硬件或采用軟件或可以使用例如軟盤、dvd、藍光、cd、rom、prom、eprom、eeprom、或閃存之類的具有被存儲在其上的電子可讀控制信號的數(shù)字存儲介質(zhì)來執(zhí)行,所述電子可讀控制信號與可編程計算機系統(tǒng)配合(或能夠與其配合)以使得執(zhí)行相應(yīng)的方法??梢蕴峁┚哂须娮涌勺x控制信號的數(shù)據(jù)載體,所述電子可讀控制信號能夠與可編程計算機系統(tǒng)配合以使得執(zhí)行本文所描述的方法。所述實現(xiàn)還可以采用具有程序代碼的計算機程序產(chǎn)品的形式,當(dāng)計算機程序產(chǎn)品在計算機上運行時,程序代碼進行操作以執(zhí)行該方法??梢栽跈C器可讀載體上存儲程序代碼。以上所描述的僅是說明性,并且要理解的是,本文所描述的布置和細節(jié)的修改和變化對于本領(lǐng)域技術(shù)人員而言將是明顯的。因此,意在僅由所附權(quán)利要求的范圍而不是由通過以上描述和解釋的方式所呈現(xiàn)的特定細節(jié)來限制。當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
建阳市| 丹阳市| 襄垣县| 历史| 论坛| 长沙县| 双柏县| 商南县| 堆龙德庆县| 岐山县| 东乡族自治县| 科技| 饶平县| 广宗县| 永定县| 宜宾市| 平山县| 阿拉尔市| 金塔县| 莒南县| 顺平县| 绵竹市| 宜丰县| 枣强县| 临武县| 武清区| 江门市| 沧州市| 陕西省| 台北市| 奎屯市| 潜江市| 彭泽县| 灌阳县| 怀仁县| 新巴尔虎右旗| 合山市| 平江县| 鹿邑县| 石柱| 威海市|