基于單片機的復雜可編程邏輯器件快速配置方法(全面)_第1頁
基于單片機的復雜可編程邏輯器件快速配置方法(全面)_第2頁
基于單片機的復雜可編程邏輯器件快速配置方法(全面)_第3頁
基于單片機的復雜可編程邏輯器件快速配置方法(全面)_第4頁
基于單片機的復雜可編程邏輯器件快速配置方法(全面)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于單片機的復雜可編程邏輯器件快速配置方法摘要:介紹基于SRAM的可重配置CPLD的原理,通過對多種串行配置的比較,提出了由單片機和FLASH存儲器組成的串行配置方式,并從系統(tǒng)復雜度、可靠性和經(jīng)濟性等方面進行了比較和分析。 關鍵詞:復雜可編程邏輯器件靜態(tài)隨機存儲器被動串行基于SRAM(靜態(tài)隨機存儲器)的可重配置PLD(可編程邏輯器件)的出現(xiàn),為系統(tǒng)設計者動態(tài)改變運行電路中PLD的邏輯功能創(chuàng)造了條件。PLD使用SRAM單元來保存配置數(shù)據(jù)。這些配置數(shù)據(jù)決定了PLD內部的互連關系和邏輯功能,改變這些數(shù)據(jù),也就改變了器件的邏輯功能。由于SRAM的數(shù)據(jù)是易失的,因此這些數(shù)據(jù)必須保存在PLD器件以外的EP

2、ROM、EEPROM或FLASHROM等非易失存儲器內,以便使系統(tǒng)在適當?shù)臅r候將其下載到PLD的SRAM單元中,從而實現(xiàn)在電路可重配置ICR(In-CircuitReconfigurability)。本文介紹筆者設計的PLDICR控制電路,它不但線路結構簡潔、開發(fā)容易、體積小、成本低,并且在圖2介紹的ICR控制電路中,其存儲PLD配置數(shù)據(jù)的FLASH存儲器采用并行總線,交換速度較快。然而PLD配置數(shù)據(jù)較大,通常都在數(shù)十千字節(jié)以上。如何提高圖2介紹的ICR控制電路的配置速度,使系統(tǒng)上電后的最短的時間內完成配置而進入正常工作狀態(tài),軟件設計上的一個重點。1基于SRAM的可重配置CPLD的結構與原理早

3、期的可編程邏輯器件大多采用紫外線可擦除只讀存儲器(EPROM)和電可擦除只讀存儲器(EEPROM)方式。如GAL系列、EPF7064、EPF7128等。由于其結構簡單、規(guī)模小,只能完成簡單數(shù)字邏輯功能。此后,出現(xiàn)了一類結構上稍復雜的基于SRAM存儲器的可編程芯片,即復雜可編程邏輯器件(CPLD),它能完成各種數(shù)字邏輯功能。采用這些結構的可編程邏輯器件有ALTERA公司的FLEX、ACEX、APEX系列,XILINX公司的Spartan、Virtex系列。多年來,ALTERA公司一直致力于CPLD的開發(fā)。近幾年,該公司又推出了很有競爭力的CPLD器件,即靈活的邏輯單元陣列的FLEX(Flexib

4、leLogicElementMatrix)系列產品。相對于其它一些廠家的FPGA產品來說,ALTERA公司的FLEX系列產品有其獨特之處。這主要表現(xiàn)在高密度、在線配置功能、高速度和連續(xù)式布線結構等方面。查找表LUT(Look-Up-Table)是基于SRAM的可重配置PLD的一個重要組成部分,LUT本質上就是一個RAM。目前CPLD中多使用4輸入的LUT,所以每一個LUT可以看成個有4位地址線的161bit的RAM。當用戶通過GDF原理圖或VHDL語言描述了一個邏輯電路后,CPLD開發(fā)軟件會自動計算邏輯電路的所有可能結果,并把結果事先存入查找表。這樣,當多信信號進行邏輯運算時就等于輸入一個地址

5、進行查表,找出地址所對應的內容,然后將其輸出即可。2可編程邏輯器件的配置原理首先在開發(fā)軟件MAX+PLUSII的ASSIGN菜單下選擇將要采用的基于SRAM的器件名稱。經(jīng)過編譯、優(yōu)化、邏輯綜合、仿真等步驟達到設計要求后,軟件會自動產生一個編程文件(擴展名為.SOF文件)。對于基于SRAM工藝的可編程邏輯器件(如ALTERA的所有FLEX、ACEX、APEX系列,XILINX的Sparten、Vertex系列),由于SRAM存儲器的特點,掉電后數(shù)據(jù)會消失,因此在調試期間可以采用并口ByteblasteMV下載電纜多次重復配置PLD器件。當電路設計成功,調試完成后,需要將配置數(shù)據(jù)燒寫固化在一個由A

6、LTERA生產的專用EEPROM(如EPC1441)中。上電時,由這片配置EEPROM先對PLD加載數(shù)據(jù),幾十毫秒后,PLD即可正常工作。CPLD器件的工作狀態(tài)分為三種:首先是上電配置狀態(tài)(ConfigurationMode),將編程的數(shù)據(jù)裝入CPLD器件的過程,也可稱之為構造;然后是初始化狀態(tài)(InitializationMode),在配置完成后,CPLD器件復位內部各類寄存器,讓I/O引腳為邏輯器件正常工作做準備;最后是用戶狀態(tài)(UserMode),指電路中CPLD器件正常工作時的狀態(tài)。ALTERA公司具有ICR功能的PLD器件有FLEX8000、FLEX10K、APEX和ACEX系列,它

7、們的配置方式可分為PS、PPS和JTAG(JointTestActionGroup)等方式。PS方式因PLD與配置電路的互連最簡單,對配置時鐘的最小頻率沒有限制而應用最廣泛,因此在ICR控制電路中通常采用PS配置方式來實現(xiàn)ICR功能。被動串行(PS)配置方式:在該配置方式下,由ByteblasteMV下載電纜產生一個由低到高的跳變送到nCONFIG引腳腳復位PLD,然后將配置數(shù)據(jù)送到DATA0引腳,直到CONF_DONE引腳變?yōu)楦唠娖健D1是PS配置方式的時序圖。CONF_DONE變成高電平后,DCLK必須多余十個周期來初始化該器件。器件的初始化由下載電纜自動執(zhí)行。在PS方式中沒有握手信號,所

8、以配置時鐘的工作頻率必須低于10MHz。在多器件PS配置方式中,第一片PLD的nCEO引腳級聯(lián)到下一片PLD的nCE引腳。在配置完第一個器件后,nCEO輸出為低,使第二個PLD器件的nCE有效,開始對第二塊器件進行配置。3用WINBOND78E58單片機配置可編程邏輯器件用單片機配置可編程邏輯器件與上述PS配置方式原理一致,只需模擬PS配置方式中DATA0、DCLK、nCONFIG、CONF_DONE、nSTATUS引腳的配置時序,將配置數(shù)據(jù)串行移入PLD。配置引腳的功能如表1所示。3.1硬件設計用單片機配置PLD,可以使用普通輸入輸出口或單行口。使用普通I/O口(如P1口),向PLD發(fā)送1B

9、it數(shù)據(jù)至少需要4個指令周期。一個指令給DATA0賦值,兩個指令產生DCLK時鐘,一個指令移位取數(shù)據(jù)。如果晶振為fosc,一個指令周期為12/fosc,因此它的下載速率為fosc/48。然而如果采用串行口方式0,其下載速率提高為fosc/12??紤]到PLD配置文件數(shù)據(jù)比較大,通常都在數(shù)十千字節(jié)以上(其配置文件大小如表2),為了加快配置速度,并適合各種不同規(guī)模的PLD,采用了WINBOND78E58單片機。該單片機外接晶振最大頻率為40MHz,它在串行口方式0下波特率可設置為fosc/4。另外通過設置特殊功能寄存器CKCON的MD0、MD1、MD2三位,可以將MOVX、MOVC等指令周期縮短至2

10、個機器周期。與普通單片機相比,可使配置時間大為縮短。WINBOND78E58單片機內部擁有32KBFLASHROM.由配置文件數(shù)據(jù)表2可知,只需一片單片機就可以對EPF10K2020以下的PLD進行配置了。本系統(tǒng)中使用了一片APEX202000E,因此在硬件電路設計中,擴展了一片WINBOND29C040FLASH存儲器(容量為512KB),其電路如圖2。DATA0與RXD、DCLK與TXD、nCONF與P15、CONFIG_DONE與P16、nSTATUS與P17分別相連。3.2軟件設計在軟件編程時,使用了串行口移位寄存器輸入輸出方式。本系統(tǒng)只需用到輸出方式,串行數(shù)據(jù)通過RXD引腳輸出,而在

11、TXD引腳輸出移位時鐘。當一字節(jié)數(shù)據(jù)寫入串行數(shù)據(jù)緩沖器SBUF時,就開始發(fā)送。在此期間,發(fā)送控制器送出移位信號,使發(fā)送移位寄存器的內容右移一位,直至最高位(D7位)數(shù)字移出后,停止發(fā)送數(shù)據(jù)和移位時鐘脈沖。RXD、TXD時序如圖3。由圖3可知,它可以用來模擬配置時序。發(fā)送完一字節(jié)數(shù)據(jù)后,硬件置發(fā)送標志位TI為1,向CPU申請中斷。若CPU響應中斷,則從0023H單元開始執(zhí)行串行中斷服務程序。為了提高配置速度,單片機程序用匯編語言編寫。單片機上電后使nCONFIG腳由低到高復位待配置PLD;當判斷到nSTATUS為高后,開始從外部FLASH存儲器取數(shù)據(jù)串行移位。配置過程中,查詢CONF_DONE。

12、一旦為高,配置完成,但還要送40個DCLK脈沖,PLD才能進入用戶工作狀態(tài)。用戶設計PLD程序經(jīng)MAXPLUSII或QUARTUS編譯后將產生后綴后為.sof的SRAM目標文件。該文件含有除配置數(shù)據(jù)以外的控制字符,不能直接寫入到PLD中去,需要利用軟件的編程文件轉換功能將文件轉換成.rbf(RawBinaryFile)十六進制文件。把.rbf文件燒寫到存儲器中,單片機通過MOVX指令讀入后,串行移位到PLD。部分asm語言源程序如下:NCONFIGBITP1.5CONFDONEBITP.6NSTATUSBITP1.7ORG000hCLRSM0CLRSM1;SM0,SM1為0,串口工作于方式0C

13、LRSM2;串口波特率為fosc/4CLRRENANL8EH,#0f8h;地址8EH是CKCON單元,MD0、MD1、MD2清0CLREAWJRESTART:CLRNCONFIGSETBNCONFIG;上升沿復位PLDWAIT:JNBNSTATUS,WAIT;NSTATUS為高,可進行配置WJPEIZHI:MOVP1,COUNTER3MOVDPH,COUNTER2MOVDPL,COUNTER1;配置數(shù)據(jù)大,需3個單元作地址記數(shù)MOVXA,DPTAMOVSBUF,A;串行移位NOPNOP;采用填充2個空指令,正好使一個字節(jié)發(fā)送完成,可發(fā)送下一個字節(jié)INCCOUNTER1;地址加MOVA,COUNTER1JBCONFDONE,WJEND1CJNEA,#0,WJPEIZHIINCCOUNTER2NOVA,COUNTER2CJNEA,#0,WJPEIZHIINCCOUNTER3LJMPWJPEIZHIWJEND1:MOVR0,#60WJEND:WOVA,#55HMOVSBUF,A;由此產生40個DCLK時鐘DJNZR0,WJENDWERE:LJMPHERE;配置完成,進入用戶工作模式使用OTP(OneTimeProgramming)器件配置CPLD具有一定的冒險性,一次簡單的代碼更換就可能意味著更換OTP器件,并重新開始所有的程序。被動串行微處理器(Passiv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論