集成電路的發(fā)展經(jīng)歷了從小規(guī)模、中規(guī)模,、大規(guī)模和超大規(guī)模集成的過(guò)程,,但隨著科學(xué)技術(shù)的發(fā)展,許多特定功能的專用集成電路(ASIC)應(yīng)用日益廣泛,,用戶迫切希望根據(jù)自身設(shè)計(jì)要求自行構(gòu)造邏輯功能的數(shù)字電路,。復(fù)雜可編程邏輯器件CPLD(Complex Programmable Logic Devices)順應(yīng)了這一新的需要,。它能將大量邏輯功能集成于1個(gè)芯片中,其規(guī)??蛇_(dá)幾十萬(wàn)或上百門以上,。用CPLD開發(fā)的數(shù)字系統(tǒng)個(gè)有容量大、速率快,、成本低的特點(diǎn),,且開發(fā)靈活、開發(fā)周期短,。
1 器件結(jié)構(gòu)和開發(fā)軟件
1.1FLEX10K簡(jiǎn)介
FLEX系列可編程邏輯器件是美國(guó)Altera公司主力推出的產(chǎn)品。FLEX10K是該系統(tǒng)器件中的典型代表,。與許多PLD器件一樣,,它有在線可配置(ISR)功能和高密度、高速度的優(yōu)點(diǎn),;作為工業(yè)界第1個(gè)嵌入式PLD,,它還采用重復(fù)可構(gòu)造的CMOSSRAM工藝,把連續(xù)的快速通道互連與獨(dú)特嵌入式陣列結(jié)構(gòu)相結(jié)合,,來(lái)完成普通門陣列的宏功能,。每個(gè)FLEX10K器件還1包括個(gè)嵌入式陣列和1個(gè)邏輯陣列,能讓設(shè)計(jì)人員輕松地開發(fā)集成存儲(chǔ)器,、數(shù)字信號(hào)處理器及特殊邏輯功能等強(qiáng)大的功能于一身的芯片,。圖1為其結(jié)構(gòu)圖。FLEX10K主要由邏輯陣列(logicarray),、嵌入式陣列(EAB)構(gòu)成,。其中,邏輯陣列是由多個(gè)邏輯陣列塊(LAB)組成的,,而每個(gè)邏輯陣列塊(LAB)又包含8個(gè)邏輯單元(logicelement),,在每行、列互連通道的兩端都有輸入/輸出單元(IOE),。
1.2 MAX+PLUSII開發(fā)軟件特點(diǎn)和設(shè)計(jì)流
用CPLD實(shí)現(xiàn)數(shù)字系統(tǒng)設(shè)計(jì)電路,,關(guān)鍵技術(shù)是必須有一個(gè)優(yōu)秀的開發(fā)軟件。Altera公司的開發(fā)軟件MAX+PLUS
II界面豐富,,使設(shè)計(jì)靈活,、方便、高效,。
?。?)開放的界面
MAX+PLUS II軟件可與其它工業(yè)標(biāo)準(zhǔn)設(shè)計(jì)輸入、綜合與校驗(yàn)工具相連接,。設(shè)計(jì)人員可以使用Altera或標(biāo)準(zhǔn)EDA設(shè)計(jì)輸入工具來(lái)建立邏輯設(shè)計(jì),,對(duì)器件設(shè)計(jì)進(jìn)行編譯,,并能使用Altera或其EDASF校驗(yàn)工具進(jìn)行器件仿真。
?。?)完全集成化的環(huán)境
它是一個(gè)完全集成化,、易學(xué)易用的可編程邏輯設(shè)計(jì)環(huán)境,設(shè)計(jì)輸入方式有圖形輸入,、文本輸入,、波形輸入、狀態(tài)機(jī)設(shè)計(jì)輸入,。其編譯及設(shè)計(jì)處理寫仿真,、定時(shí)分析、邏輯綜合與適配均為Windows圖形界面,。
?。?)支持各種硬件描述語(yǔ)言
支持各種HDL設(shè)計(jì)輸入選項(xiàng),包括VHDL,、VerilogHDL,、ABEL、AHDL等硬件描述語(yǔ)言,。
?。?)豐富的設(shè)計(jì)庫(kù)
提供豐富的庫(kù)單元設(shè)計(jì)調(diào)用,包括74系列的全部器件和多種特殊的邏輯宏功能,、新型的參數(shù)化兆功能,。對(duì)于復(fù)雜的大系統(tǒng),設(shè)計(jì)者需調(diào)用宏單元庫(kù),,并對(duì)其修改某些參數(shù),,而無(wú)需自己用基本邏輯單元來(lái)構(gòu)成某種功能,以大大減輕設(shè)計(jì)人員的工作量,,縮短設(shè)計(jì)周期,。
電路的設(shè)計(jì)流程如圖2所示。將所設(shè)計(jì)的電路用原理圖輸入和硬件描述語(yǔ)言輸入,,應(yīng)用EDA軟件平臺(tái)(MAX+PLUS II)編譯通過(guò)后,,再進(jìn)行邏輯功能仿零點(diǎn),生成目標(biāo)文件,,下載到FLEX10K芯片,,完成系統(tǒng)設(shè)計(jì)。
2 交通控制系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)介紹
圖3為一十字路口交通管理器,,控制甲,、乙2道的紅、黃、綠3色燈,。計(jì)數(shù)顯示部分為2個(gè)倒計(jì)時(shí)器,,顯示甲、乙車道允許通車時(shí)間,,指揮車輛和行人安全通行,。其R1、Y1,、G1為甲道紅,、黃、綠燈,;R2,、Y2、G2為乙道紅,、黃,、綠燈。
甲道通告時(shí)間為t3,,乙道通行時(shí)間為t2,黃燈亮(停車)時(shí)間為t1,,C1,、C2、C3為定時(shí)器工作使能信號(hào),,為1時(shí)定時(shí)器計(jì)數(shù),;W1、W2,、W3為定時(shí)器的指示信號(hào),,計(jì)數(shù)時(shí)信號(hào)為0,計(jì)數(shù)結(jié)束時(shí)信號(hào)為1,。
2.2 FLEX10K內(nèi)部邏輯功能設(shè)計(jì)
交通控制系統(tǒng)芯片內(nèi)部邏輯功能設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,,系統(tǒng)頂層電路如圖4所示。它分為5個(gè)次級(jí)模塊:控制器(traffic_control),、定時(shí)器1,、定時(shí)器2、定時(shí)器3,、(其定時(shí)時(shí)間為t3,、t2和t1)、計(jì)數(shù)顯示(含減法計(jì)數(shù)器和動(dòng)態(tài)掃描電路),。
頂層電路圖中減法計(jì)數(shù)器和動(dòng)態(tài)掃描電路用圖形輸入描述,,其它次級(jí)模塊控制器、定時(shí)器1、定時(shí)器2,、定時(shí)器3用VHDL硬件語(yǔ)言描述,。核心模塊控制器的VHDL源文件如下:
3 功能編譯、設(shè)計(jì)仿真與硬件下載
本系統(tǒng)采用Altera公司生產(chǎn)的FLEX10K系列的CPLD芯片,,應(yīng)用該公司的MAX+PLUS II開發(fā)軟件完成設(shè)計(jì)后,,需對(duì)各種源文件從低層到頂層逐個(gè)編譯,再進(jìn)行邏輯仿真,。選擇器件后,,打開檢查項(xiàng)目中所有設(shè)計(jì)文件,通過(guò)檢測(cè)發(fā)發(fā)現(xiàn)在編程器件中可能存在的可靠性不好的邏輯器件引腳分配,。
Altera公司推薦的編譯器可自動(dòng)為項(xiàng)目進(jìn)行引腳分配,,也可人工調(diào)整引腳。在編譯器窗口選擇Start按鈕,,將對(duì)所有設(shè)計(jì)的項(xiàng)目進(jìn)行處理,,出現(xiàn)錯(cuò)誤將給出具體錯(cuò)誤提示。為了保證設(shè)計(jì)的正確性,,在編譯通過(guò)后,,還需進(jìn)行邏輯仿真。仿真通過(guò)后再應(yīng)用MAX+PLUS II的編程器對(duì)所選可編程邏輯器件下載編程,,便完成了交通控制系統(tǒng)的ASIC芯片設(shè)計(jì)和硬件固化,。若在芯片外圍接入必要電源、脈沖信號(hào),、顯示器和指示燈,,便構(gòu)成了一個(gè)完整交通控制系統(tǒng)。它具有工作穩(wěn)定,、體積小,、在線修改方便等特點(diǎn)。