《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于單片機(jī)的復(fù)雜可編程邏輯器件快速配置方法

基于單片機(jī)的復(fù)雜可編程邏輯器件快速配置方法

2008-11-17
作者:劉曉明 王 軍 謝明欽

  摘? 要: 介紹基于SRAM的可重配置" title="可重配置">可重配置CPLD的原理,通過對(duì)多種串行配置的比較,提出了由單片機(jī)和FLASH存儲(chǔ)器組成的串行配置方式" title="配置方式">配置方式,并從系統(tǒng)復(fù)雜度、可靠性和經(jīng)濟(jì)性等方面進(jìn)行了比較和分析。?

??? 關(guān)鍵詞: 復(fù)雜可編程邏輯器件" title="可編程邏輯器件">可編程邏輯器件? 靜態(tài)隨機(jī)存儲(chǔ)器? 被動(dòng)串行" title="被動(dòng)串行">被動(dòng)串行?

?

  基于SRAM(靜態(tài)隨機(jī)存儲(chǔ)器)的可重配置PLD(可編程邏輯器件)的出現(xiàn),為系統(tǒng)設(shè)計(jì)者動(dòng)態(tài)改變運(yùn)行電路中PLD的邏輯功能創(chuàng)造了條件。PLD使用SRAM單元來保存配置數(shù)據(jù)。這些配置數(shù)據(jù)決定了PLD內(nèi)部的互連關(guān)系和邏輯功能,改變這些數(shù)據(jù),也就改變了器件的邏輯功能。由于SRAM的數(shù)據(jù)是易失的,因此這些數(shù)據(jù)必須保存在PLD器件以外的EPROM、EEPROM或FLASH ROM等非易失存儲(chǔ)器內(nèi),以便使系統(tǒng)在適當(dāng)?shù)臅r(shí)候?qū)⑵湎螺d到PLD的SRAM單元中,從而實(shí)現(xiàn)在電路可重配置ICR(In-Circuit Reconfigurability)。?

  本文介紹筆者設(shè)計(jì)的PLD ICR控制電路,它不但線路結(jié)構(gòu)簡(jiǎn)潔、開發(fā)容易、體積小、成本低,并且在圖2介紹的ICR控制電路中,其存儲(chǔ)PLD配置數(shù)據(jù)的FLASH存儲(chǔ)器采用并行總線,交換速度較快。然而PLD配置數(shù)據(jù)較大,通常都在數(shù)十千字節(jié)以上。如何提高圖2介紹的ICR控制電路的配置速度,使系統(tǒng)上電" title="上電">上電后在最短的時(shí)間內(nèi)完成配置而進(jìn)入正常工作狀態(tài),是軟件設(shè)計(jì)上的一個(gè)重點(diǎn)。?

1 基于SRAM的可重配置CPLD的結(jié)構(gòu)與原理?

  早期的可編程邏輯器件大多采用紫外線可擦除只讀存儲(chǔ)器(EPROM)和電可擦除只讀存儲(chǔ)器(EEPROM)方式,如GAL系列、EPF7064、EPF7128等。由于其結(jié)構(gòu)簡(jiǎn)單、規(guī)模小,只能完成簡(jiǎn)單的數(shù)字邏輯功能。此后,出現(xiàn)了一類結(jié)構(gòu)上稍復(fù)雜的基于SRAM存儲(chǔ)器的可編程芯片,即復(fù)雜可編程邏輯器件(CPLD),它能完成各種數(shù)字邏輯功能。?

  采用這種結(jié)構(gòu)的可編程邏輯器件有ALTERA公司的FLEX、ACEX、APEX系列,XILINX公司的Spartan、Virtex系列。多年來,ALTERA公司一直致力于CPLD的開發(fā)。近幾年,該公司又推出了很有競(jìng)爭(zhēng)力的CPLD器件,即靈活的邏輯單元陣列FLEX(Flexible Logic Element Matrix)系列產(chǎn)品。相對(duì)于其它一些廠家的FPGA產(chǎn)品來說,ALTERA公司的FLEX系列產(chǎn)品有其獨(dú)特之處。這主要表現(xiàn)在高密度、在線配置功能、高速度和連續(xù)式布線結(jié)構(gòu)等方面。?

  查找表LUT(Look-Up-Table)是基于SRAM的可重配置PLD的一個(gè)重要組成部分,LUT本質(zhì)上就是一個(gè)RAM。目前CPLD中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16×1bit的RAM。當(dāng)用戶通過GDF原理圖或VHDL語言描述了一個(gè)邏輯電路后,CPLD開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能結(jié)果,并把結(jié)果事先存入查找表。這樣,當(dāng)多個(gè)信號(hào)進(jìn)行邏輯運(yùn)算時(shí)就等于輸入一個(gè)地址進(jìn)行查表,找出地址所對(duì)應(yīng)的內(nèi)容,然后將其輸出即可。?

2 可編程邏輯器件的配置原理?

  首先在開發(fā)軟件MAX+PLUSⅡ的ASSIGN菜單下選擇將要采用的基于SRAM的器件名稱。經(jīng)過編譯、優(yōu)化、邏輯綜合、仿真等步驟達(dá)到設(shè)計(jì)要求后,軟件會(huì)自動(dòng)產(chǎn)生一個(gè)編程文件(擴(kuò)展名為.SOF文件)。對(duì)于基于SRAM工藝的可編程邏輯器件(如ALTERA的所有FLEX、ACEX、APEX系列,XILINX的Sparten、Vertex系列),由于SRAM存儲(chǔ)器的特點(diǎn),掉電后數(shù)據(jù)會(huì)消失,因此在調(diào)試期間可以采用并口ByteblasteMV下載電纜多次重復(fù)配置PLD器件。當(dāng)電路設(shè)計(jì)成功,調(diào)試完成后,需要將配置數(shù)據(jù)燒寫固化在一個(gè)由ALTERA生產(chǎn)的專用EEPROM(如EPC1441)中。上電時(shí),由這片配置EEPROM先對(duì)PLD加載數(shù)據(jù),幾十毫秒后,PLD即可正常工作。?

  CPLD器件的工作狀態(tài)分為三種:首先是上電配置狀態(tài)(Configuration Mode),將編程數(shù)據(jù)裝入CPLD器件的過程,也可稱之為構(gòu)造;然后是初始化狀態(tài)(Initialization Mode),在配置完成后,CPLD器件復(fù)位內(nèi)部各類寄存器,讓I/O引腳為邏輯器件正常工作做準(zhǔn)備;最后是用戶狀態(tài)(User Mode),指電路中CPLD器件正常工作時(shí)的狀態(tài)。?

  ALTERA公司具有ICR功能的PLD器件有FLEX8000、FLEX10K、APEX和ACEX系列,它們的配置方式可分為PS、PPS和JTAG(Joint Test Action Group)等方式。PS方式因PLD與配置電路的互連最簡(jiǎn)單,對(duì)配置時(shí)鐘的最小頻率沒有限制而應(yīng)用最廣泛,因此在ICR控制電路中通常采用PS配置方式來實(shí)現(xiàn)ICR功能。?

  被動(dòng)串行(PS)配置方式:在該配置方式下,由ByteblasteMV下載電纜產(chǎn)生一個(gè)由低到高的跳變送到nCONFIG引腳復(fù)位PLD,然后將配置數(shù)據(jù)送到DATA0引腳,直到CONF_DONE引腳變?yōu)楦唠娖健D1是PS配置方式的時(shí)序圖。CONF_DONE變成高電平后,DCLK必須多余十個(gè)周期來初始化該器件。器件的初始化由下載電纜自動(dòng)執(zhí)行。在PS方式中沒有握手信號(hào),所以配置時(shí)鐘的工作頻率必須低于10MHz。在多器件PS配置方式中,第一片PLD的nCEO引腳級(jí)聯(lián)到下一片PLD的nCE引腳。在配置完第一個(gè)器件后,nCEO輸出為低,使第二個(gè)PLD器件的nCE有效,開始對(duì)第二塊器件進(jìn)行配置。?

?

?

3 用WINBOND78E58單片機(jī)配置可編程邏輯器件?

  用單片機(jī)配置可編程邏輯器件與上述PS配置方式原理一致,只需模擬PS配置方式中DATA0、DCLK、nCONFIG、CONF_DONE、nSTATUS引腳的配置時(shí)序,將配置數(shù)據(jù)串行移入PLD。配置引腳的功能如表1所示。?

?

?

3.1 硬件設(shè)計(jì)?

  用單片機(jī)配置PLD,可以使用普通輸入輸出口或串行口。使用普通I/O口(如P1口),向PLD發(fā)送1Bit數(shù)據(jù)至少需要4個(gè)指令周期。一個(gè)指令給DATA0賦值,兩個(gè)指令產(chǎn)生DCLK時(shí)鐘,一個(gè)指令移位取數(shù)據(jù)。如果晶振為fosc,一個(gè)指令周期為12/fosc,因此它的下載速率為fosc/48。然而如果采用串行口方式0,其下載速率提高為fosc/12。考慮到PLD配置文件數(shù)據(jù)比較大,通常都在數(shù)十千字節(jié)以上(其配置文件大小如表2),為了加快配置速度,并適合各種不同規(guī)模的PLD,采用了WINBOND78E58單片機(jī)。該單片機(jī)外接晶振最大頻率為40MHz,它在串行口方式0下波特率可設(shè)置為fosc/4。另外通過設(shè)置特殊功能寄存器CKCON的MD0、MD1、MD2三位,可以將MOVX、MOVC等指令周期縮短至2個(gè)機(jī)器周期。與普通單片機(jī)相比,可使配置時(shí)間大為縮短。WINBOND78E58單片機(jī)內(nèi)部擁有32KB FLASH ROM。由配置文件數(shù)據(jù)表2可知,只需一片單片機(jī)就可以對(duì)EPF10K20系列以下的PLD進(jìn)行配置了。本系統(tǒng)中使用了一片APEX20K300E,因此在硬件電路設(shè)計(jì)中,擴(kuò)展了一片WINBOND29C040 FLASH存儲(chǔ)器(容量為512KB),其電路如圖2。DATA0與RXD、DCLK與TXD、nCONF與P15、CONFIG_DONE與P16、nSTATUS與P17分別相連。?

?

?

?

3.2 軟件設(shè)計(jì)?

  在軟件編程時(shí),使用了串行口移位寄存器輸入輸出方式。本系統(tǒng)只需用到輸出方式,串行數(shù)據(jù)通過RXD引腳輸出,而在TXD引腳輸出移位時(shí)鐘。當(dāng)一字節(jié)數(shù)據(jù)寫入串行數(shù)據(jù)緩沖器SBUF時(shí),就開始發(fā)送。在此期間,發(fā)送控制器送出移位信號(hào),使發(fā)送移位寄存器的內(nèi)容右移一位,直至最高位(D7位)數(shù)字移出后,停止發(fā)送數(shù)據(jù)和移位時(shí)鐘脈沖。RXD、TXD時(shí)序如圖3。由圖3可知,它可以用來模擬配置時(shí)序。發(fā)送完一字節(jié)數(shù)據(jù)后,硬件置發(fā)送標(biāo)志位TI為1,向CPU申請(qǐng)中斷。若CPU響應(yīng)中斷,則從0023H單元開始執(zhí)行串行口中斷服務(wù)程序。?

?

?

  為了提高配置速度,單片機(jī)程序用匯編語言編寫。單片機(jī)上電后使nCONFIG腳由低到高復(fù)位待配置PLD;當(dāng)判斷到nSTATUS為高后,開始從外部FLASH存儲(chǔ)器取數(shù)據(jù)串行移位。配置過程中,查詢CONF_DONE。一旦為高,配置完成,但還要送40個(gè)DCLK脈沖,PLD才能進(jìn)入用戶工作狀態(tài)。?

  用戶設(shè)計(jì)的PLD程序經(jīng)MAXPLUSⅡ或QUARTUS編譯后將產(chǎn)生后綴名為.sof的SRAM目標(biāo)文件。該文件含有除配置數(shù)據(jù)以外的控制字符,不能直接寫入到PLD中去,需要利用軟件的編程文件轉(zhuǎn)換功能將該文件轉(zhuǎn)換成.rbf(Raw Binary File)十六進(jìn)制文件。把.rbf文件燒寫到存儲(chǔ)器中,單片機(jī)通過MOVX指令讀入后,串行移位到PLD。?

??? 部分asm語言源程序如下:?

??? NCONFIG???????????? BIT ??? P1.5?

??? CONFDONE??????????? BIT P1.6?

??? NSTATUS???????????? BIT P1.7?

??? ORG 000h?

??? ……?

??? CLR SM0?

??? CLR SM1 ?????? ;SM0,SM1為0,串口工作于方式0?

??? CLR SM2 ?????? ;串口波特率為fosc/4?

??? CLR REN?

??? ANL 8EH,#0f8h?????????? ;地址8EH是CKCON單元,MD0、MD1、MD2清0?

??? CLR EA?

WJRESTART:CLR NCONFIG?

??? SETB NCONFIG??? ? ????? ;上升沿復(fù)位PLD?

WAIT: JNB NSTATUS,WAIT? ;NSTATUS為高,可進(jìn)行配置?

??????????????????????????????? ??

WJPEIZHI:MOV P1,COUNTER3?

??? MOV DPH,COUNTER2?

??? MOV DPL,COUNTER1??????? ;配置數(shù)據(jù)大,需3個(gè)單元作地址記數(shù)?

??? MOVX A,@DPTR?

??? MOV SBUF,A????????????? ;串行移位?

??? NOP ?

??? NOP ?? ??;采用填充2個(gè)空指令,正好使一個(gè)字節(jié)發(fā)送完成,可發(fā)送下一字節(jié)?

??? INC COUNTER1??????????? ;地址加?

??? MOV A,COUNTER1?

??? JB CONFDONE,WJEND1?

??? CJNE A,#0,WJPEIZHI?

??? INC COUNTER2?

??? MOV A,COUNTER2?

??? CJNE A,#0,WJPEIZHI?

??? INC COUNTER3?

??? LJMP WJPEIZHI?

WJEND1:MOV R0,#60?

WJEND:MOV A,#55H?

??? ……?

????MOV SBUF,A? ;由此產(chǎn)生40個(gè)?DCLK時(shí)鐘?

??? DJNZ R0,WJEND?

??? HERE:?? LJMP HERE??? ;配置完成,進(jìn)入用戶工作模式?

??? 使用OTP(One Time Programming)器件配置CPLD具有一定的冒險(xiǎn)性,一次簡(jiǎn)單的代碼更換就可能意味著更換OTP器件,并重新開始所有的程序。被動(dòng)串行微處理器(Passive Serial With Processor)配置方式以EEPROM為基礎(chǔ),允許對(duì)這些存儲(chǔ)器進(jìn)行多次編程,所有其它芯片都無需從已裝配的印制電路板上拆卸下來。高速讀寫周期的FLASH存儲(chǔ)器能確保1萬次編程,而且能對(duì)任何以SRAM為基礎(chǔ)的PLD下載。該方式除了在加電期間能承載配置數(shù)據(jù)外,還有許多方便之處。例如,用戶可以將多個(gè)配置文件.rbf分區(qū)編程到外部存儲(chǔ)器的未用區(qū)段,通過單片機(jī)讀取不同存儲(chǔ)區(qū)可以將可編程邏輯器件在線配置成多種不同的工作模式。?

參考文獻(xiàn)?

1 宋萬杰,羅 豐,吳順君.CPLD技術(shù)及其應(yīng)用. 西安:西安電子科技大學(xué)出版社,2000?

2 候伯亨,顧 新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì).西安:西安電子科技大學(xué)出版社,1999?

3 蔡美琴,張為民,沈新群,張榮娟. MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用.北京:高等教育出版社,1992?

4 APPLICATION NOTE 116 OF CONFIGURING APEX20K,FLEX10K&FLEX6000 DEVICES.12.1999,VER 1.02 FROM ALTERA WEB SITE
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品欧美日韩精品| 一区二区三区欧美日韩| 日韩亚洲视频| 亚洲全黄一级网站| 亚洲国产高清一区二区三区| 国产一区二区三区四区hd| 国产欧美一区二区精品仙草咪| 国产精品成人免费视频| 国产精品国产馆在线真实露脸| 欧美视频网站| 欧美午夜影院| 国产精品久久久久毛片软件 | 亚洲免费视频成人| 中文日韩在线视频| 一区二区三区精品国产| 一区二区三区日韩欧美精品| 一本色道88久久加勒比精品| 在线亚洲国产精品网站| 中文欧美字幕免费| 亚洲欧美日韩精品一区二区| 午夜精品av| 欧美在线一区二区三区| 久久国产黑丝| 毛片一区二区三区| 欧美成人精品影院| 欧美日韩高清一区| 欧美午夜精品久久久久久孕妇| 欧美婷婷久久| 国产精品一区二区男女羞羞无遮挡| 国产精品视频免费在线观看| 国产午夜精品一区二区三区欧美| 狠色狠色综合久久| 亚洲黄页视频免费观看| 99视频精品| 午夜一区二区三视频在线观看| 欧美一区中文字幕| 亚洲区在线播放| 99riav久久精品riav| 亚洲欧美不卡| 久久人人爽人人爽| 欧美激情按摩| 国产精品久久91| 国产一区二区精品| 亚洲二区视频在线| 在线视频日韩精品| 欧美一区二区日韩| 亚洲精品一区二区三区福利| 亚洲一级电影| 久久亚洲精品伦理| 欧美破处大片在线视频| 国产精品免费一区豆花| 狠狠干综合网| 妖精视频成人观看www| 午夜精品在线看| 日韩午夜av在线| 欧美专区在线播放| 欧美成人精品一区| 国产精品永久免费视频| 黄色日韩网站视频| 在线性视频日韩欧美| 久久9热精品视频| 一本一本a久久| 久久激情五月婷婷| 欧美日本网站| 黄色成人在线网址| 一区二区三区精品| 亚洲第一区在线| 亚洲一区二区在| 男男成人高潮片免费网站| 国产精品国产三级国产专播精品人 | 亚洲人成网站色ww在线| 欧美一区二区三区四区视频| 欧美大成色www永久网站婷| 国产日韩欧美三区| 亚洲精品社区| 亚洲第一精品电影| 欧美一二三区精品| 欧美日韩国产经典色站一区二区三区| 国产亚洲欧美aaaa| 亚洲午夜精品久久久久久浪潮| 91久久精品视频| 久久精品国产久精国产爱| 欧美午夜不卡在线观看免费| 尤物yw午夜国产精品视频| 午夜精品一区二区三区在线| 亚洲天天影视| 欧美精品九九| 在线免费精品视频| 欧美在线视频网站| 午夜久久久久久久久久一区二区| 欧美精品成人| 亚洲高清不卡在线| 欧美专区18| 久久激情网站| 国产欧美大片| 亚洲香蕉成视频在线观看| 一区二区三区四区五区视频| 欧美bbbxxxxx| 精品动漫3d一区二区三区免费| 亚洲在线一区二区| 亚洲欧美99| 国产精品国产三级国产aⅴ入口 | 国产精品视频网| 在线亚洲+欧美+日本专区| 在线亚洲美日韩| 欧美激情免费在线| 在线观看国产一区二区| 久久精品国产99国产精品澳门| 欧美一区二区啪啪| 国产精品视频网站| 亚洲永久免费精品| 亚洲综合色在线| 国产精品久久久久久久久久久久| 99在线精品视频| 国产精品99久久久久久有的能看| 欧美激情欧美狂野欧美精品| 在线精品国产欧美| 亚洲欧洲日本国产| 欧美高清影院| 亚洲精品国产精品国自产观看| 亚洲免费电影在线| 欧美精品成人一区二区在线观看| 亚洲黄色一区二区三区| 99精品福利视频| 欧美色视频一区| 亚洲天堂偷拍| 欧美在线播放视频| 国产视频欧美| 久久精品亚洲精品国产欧美kt∨| 老司机午夜精品视频在线观看| 在线视频国产日韩| 日韩亚洲不卡在线| 欧美日韩美女一区二区| 一本色道综合亚洲| 亚洲欧美久久久| 国产午夜精品一区二区三区视频 | 亚洲精品日日夜夜| 亚洲视频综合| 国产精品久久久久免费a∨| 亚洲影院在线| 久久精品日韩| 尤妮丝一区二区裸体视频| 亚洲免费观看高清完整版在线观看熊| 欧美精品一级| 亚洲视频一区二区| 久久国产66| 亚洲国产精品va在线看黑人| 一本色道**综合亚洲精品蜜桃冫| 欧美性猛交xxxx乱大交退制版| 亚洲一区二区三区777| 久久精品国产2020观看福利| 黄色精品一二区| 一本大道久久a久久综合婷婷| 国产精品青草久久| 亚洲大片av| 欧美日韩亚洲系列| 先锋影音国产一区| 欧美a级一区| 亚洲图片欧洲图片av| 久久久国产精品一区| 亚洲国产专区校园欧美| 亚洲伊人第一页| 国内精品美女av在线播放| 亚洲精品综合久久中文字幕| 欧美午夜精品伦理| 久久精品一区二区三区中文字幕| 欧美精品97| 欧美一区二区高清在线观看| 欧美国产日韩一区二区三区| 亚洲一区日韩在线| 欧美国产高清| 亚洲免费在线观看视频| 你懂的视频欧美| 亚洲与欧洲av电影| 欧美激情一区二区三区| 亚洲欧美国产一区二区三区| 久久综合久久久| 亚洲午夜视频| 欧美国产日本在线| 性做久久久久久| 欧美日本三区| 亚洲电影观看| 国产精品久久九九| 亚洲精品一区二区三区福利| 国产欧美一区二区精品婷婷| 日韩香蕉视频| 国内精品久久久久影院色| 亚洲在线免费观看| 91久久国产自产拍夜夜嗨| 欧美专区亚洲专区| 夜夜嗨av一区二区三区四季av| 久久女同互慰一区二区三区| 亚洲色图自拍| 欧美激情亚洲激情| 久久高清福利视频| 国产精品亚洲一区| 国产精品99久久99久久久二8| 在线观看视频一区二区欧美日韩| 亚洲综合色丁香婷婷六月图片| 亚洲黄色毛片|