天天被操天天被操综合网,亚洲黄色一区二区三区性色,国产成人精品日本亚洲11,欧美zozo另类特级,www.黄片视频在线播放,啪啪网站永久免费看,特别一级a免费大片视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>基于單片機(jī)的復(fù)雜可編程邏輯器件快速配置方法

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

時(shí)間:2023-02-20 23:46:37 電子通信論文 我要投稿

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

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

    關(guān)鍵詞:復(fù)雜可編程邏輯器件 靜態(tài)隨機(jī)存儲(chǔ)器 被動(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單元來(lái)保存配置數(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控制電路,它不但線(xiàn)路結(jié)構(gòu)簡(jiǎn)潔、開(kāi)發(fā)容易、體積小、成本低,并且在圖2介紹的ICR控制電路中,其存儲(chǔ)PLD配置數(shù)據(jù)的FLASH存儲(chǔ)器采用并行總線(xiàn),交換速度較快。然而PLD配置數(shù)據(jù)較大,通常都在數(shù)十千字節(jié)以上。如何提高圖2介紹的ICR控制電路的配置速度,使系統(tǒng)上電后的最短的時(shí)間內(nèi)完成配置而進(jìn)入正常工作狀態(tài),軟件設(shè)計(jì)上的一個(gè)重點(diǎn)。
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
1 基于SRAM的可重配置CPLD的結(jié)構(gòu)與原理

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

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

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

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

首先在開(kāi)發(fā)軟件MAX+PLUS II的ASSIGN菜單下選擇將要采用的基于SRAM的器件名稱(chēng)。經(jīng)過(guò)編譯、優(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ù)燒寫(xiě)固化在一個(gè)由ALTERA生產(chǎn)的專(zhuān)用EEPROM(如EPC1441)中。上電時(shí),由這片配置EEPROM先對(duì)PLD加載數(shù)據(jù),幾十毫秒后,PLD即可正常工作。

CPLD器件的工作狀態(tài)分為三種:首先是上電配置狀態(tài)(Configuration Mode),將編程的數(shù)據(jù)裝入CPLD器件的過(guò)程,也可稱(chēng)之為構(gòu)造;然后是初始化狀態(tài)(Initialization Mode),在配置完成后,CPLD器件復(fù)位內(nèi)部各類(lèi)寄存器,讓I/O引腳為邏輯器件正常工作做準(zhǔn)備;最后是用戶(hù)狀態(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í)鐘的最小頻率沒(méi)有限制而應(yīng)用最廣泛,因此在ICR控制電路中通常采用PS配置方式來(lái)實(shí)現(xiàn)ICR功能。

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

表1 配置引腳功能說(shuō)明

DATA0 輸出 配置數(shù)據(jù) DCLK 輸出 配置時(shí)鐘 nCONFIG 輸出 器件復(fù)位腳(該信號(hào)線(xiàn)的上升沿使配置開(kāi)始) CONF_DONE 輸入 狀態(tài)位(在配置完成后,該信號(hào)線(xiàn)為高) nSTATUS 輸入 狀態(tài)位(如果該信號(hào)線(xiàn)為低,表明在配置過(guò)程中出現(xiàn)錯(cuò)誤,需重新配置)

表2 各種CPLD配置文件大小

器  件 配置數(shù)據(jù)大。˙its) 配置文件大。↘bytes) APEX 0K1000E
APEX 20K600E
APEX 20K400E
APEX 20K300E
APEX 20K200E
APEX20K100
EPF10K100E
EPF10K70
EPF10K40
EPF10K30
EPF10K20
EPF10K10 8,938,000
5,564,000
3,878,000
2,733,000
1,950,000
985,000
1,336,000
892,000
498,000
376,000
231,000
118,000 1,029
680
474
333
238
121
164
109
61
46
29
15

注:配置文件大小由.rbf文件決定

該單片機(jī)外接晶振最大頻率為40MHz,它在串行口方式0下波特率可設(shè)置為fosc/4。另外通過(guò)設(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ù)通過(guò)RXD引腳輸出,而在TXD引腳輸出移位時(shí)鐘。當(dāng)一字節(jié)數(shù)據(jù)寫(xiě)入串行數(shù)據(jù)緩沖器SBUF時(shí),就開(kāi)始發(fā)送。在此期間,發(fā)送控制器送出移位信號(hào),使發(fā)送移位寄存器的內(nèi)容右移一位,直至最高位(D7位)數(shù)字移出后,停止發(fā)送數(shù)據(jù)和移位時(shí)鐘脈沖。RXD、TXD時(shí)序如圖3。由圖3可知,它可以用來(lái)模擬配置時(shí)序。發(fā)送完一字節(jié)數(shù)據(jù)后,硬件置發(fā)送標(biāo)志位TI為1,向CPU申請(qǐng)中斷。若CPU響應(yīng)中斷,則從0023H單元開(kāi)始執(zhí)行串行中斷服務(wù)程序。

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

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

    部分asm語(yǔ)言源程序如下:

NCONFIG BIT P1.5

CONFDONE BIT P.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,@DPTA

MOV SBUF,A ;串行移位

NOP

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

INC COUNTER1 ;地址加

MOV A,COUNTER1

JB CONFDONE,WJEND1

CJNE A,#0,WJPEIZHI

INC COUNTER2

NOV A,COUNTER2

CJNE A,#0,WJPEIZHI

INC COUNTER3

LJMP WJPEIZHI

WJEND1:MOV R0,#60

WJEND:WOV A,#55H

……

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

DJNZ R0,WJEND

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

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


【基于單片機(jī)的復(fù)雜可編程邏輯器件快速配置方法】相關(guān)文章:

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

基于ST72單片機(jī)的快速充電系統(tǒng)08-06

一種基于AVR單片機(jī)的工頻干擾濾除快速算法08-06

基于FPGA的快速傅立葉變換08-06

基于MSP430單片機(jī)高精度溫度測(cè)量的補(bǔ)償方法08-06

PLC可編程邏輯器件的選擇方法08-06

基于單片機(jī)的MicroDrive接口設(shè)計(jì)08-06

基于單片機(jī)的等效采樣示波器設(shè)計(jì)08-06

基于PIC單片機(jī)的熱能表研制08-06