應(yīng)用CPLD實(shí)現(xiàn)交通控制系統(tǒng)芯片設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹可編程邏輯器件的結(jié)構(gòu)和開(kāi)發(fā)軟件MAX+PLUSII主要特點(diǎn),以交通控制系統(tǒng)電路芯片設(shè)計(jì)為例,敘述自頂向下的設(shè)計(jì)方法。
集成電路的發(fā)展經(jīng)歷了從小規(guī)模、中規(guī)模、大規(guī)模和超大規(guī)模集成的過(guò)程,但隨著科學(xué)技術(shù)的發(fā)展,許多特定功能的專(zhuān)用集成電路(ASIC)應(yīng)用日益廣泛,用戶(hù)迫切希望根據(jù)自身設(shè)計(jì)要求自行構(gòu)造邏輯功能的數(shù)字電路。復(fù)雜可編程邏輯器件CPLD(Complex
Programmable LOGIC Devices)順應(yīng)了這一新的需要。它能將大量邏輯功能集成于1個(gè)芯片中,其規(guī)模可達(dá)幾十萬(wàn)或上百門(mén)以上。用CPLD開(kāi)發(fā)的數(shù)字系統(tǒng)個(gè)有容量大、速率快、成本低的特點(diǎn),且開(kāi)發(fā)靈活、開(kāi)發(fā)周期短。
1 器件結(jié)構(gòu)和開(kāi)發(fā)軟件
1.1FLEX10K簡(jiǎn)介
FLEX系列可編程邏輯器件是美國(guó)Altera公司主力推出的產(chǎn)品。FLEX10K是該系統(tǒng)器件中的典型代表。與許多PLD器件一樣,它有在線(xiàn)可配置(ISR)功能和高密度、高速度的優(yōu)點(diǎn);作為工業(yè)界第1個(gè)嵌入式PLD,它還采用重復(fù)可構(gòu)造的CMOS
SRAM工藝,把連續(xù)的快速通道互連與獨(dú)特嵌入式陣列結(jié)構(gòu)相結(jié)合,來(lái)完成普通門(mén)陣列的宏功能。每個(gè)FLEX10K器件還1包括個(gè)嵌入式陣列和1個(gè)邏輯陣列,能讓設(shè)計(jì)人員輕松地開(kāi)發(fā)集成存儲(chǔ)器、數(shù)字信號(hào)處理器及特殊邏輯功能等強(qiáng)大的功能于一身的芯片。圖1為其結(jié)構(gòu)圖。FLEX10K主要由邏輯陣列(logic
array)、嵌入式陣列(EAB)構(gòu)成。其中,邏輯陣列是由多個(gè)邏輯陣列塊(LAB)組成的,而每個(gè)邏輯陣列塊(LAB)又包含8個(gè)邏輯單元(logic
element),在每行、列互連通道的兩端都有輸入/輸出單元(IOE)。
1.2 MAX+PLUSII開(kāi)發(fā)軟件特點(diǎn)和設(shè)計(jì)流
用CPLD實(shí)現(xiàn)數(shù)字系統(tǒng)設(shè)計(jì)電路,關(guān)鍵技術(shù)是必須有一個(gè)優(yōu)秀的開(kāi)發(fā)軟件。Altera公司的開(kāi)發(fā)軟件MAX+PLUS
II界面豐富,使設(shè)計(jì)靈活、方便、高效。
(1)開(kāi)放的界面
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)行器件仿真。
(2)完全集成化的環(huán)境
它是一個(gè)完全集成化、易學(xué)易用的可編程邏輯設(shè)計(jì)環(huán)境,設(shè)計(jì)輸入方式有圖形輸入、文本輸入、波形輸入、狀態(tài)機(jī)設(shè)計(jì)輸入。其編譯及設(shè)計(jì)處理寫(xiě)仿真、定時(shí)分析、邏輯綜合與適配均為Windows圖形界面。
(3)支持各種硬件描述語(yǔ)言
支持各種HDL設(shè)計(jì)輸入選項(xiàng),包括VHDL、VerilogHDL、ABEL、AHDL等硬件描述語(yǔ)言。
(4)豐富的設(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í)器,顯示甲、乙車(chē)道允許通車(chē)時(shí)間,指揮車(chē)輛和行人安全通行。其R1、Y1、G1為甲道紅、黃、綠燈;R2、Y2、G2為乙道紅、黃、綠燈。
甲道通告時(shí)間為t3,乙道通行時(shí)間為t2,黃燈亮(停車(chē))時(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源文件如下:
LIBRARY ieee;
use ieee.STd_logic_1164.dll;
entity traffic_control is
PORT(
clk :IN STD_LOGIC;
c1,c2,3 :OUT STD_LOGIC;
w1,w2,w3 :IN STD_LOGIC;
r1,r2 :OUT STD_LOGIC;
y1,y2 :OUT STD_LOGIC;
g1.g2 :OUT STD_LOGIC;
reset :IN STD_LOGIC);
END traffic_control;
ARHITECTURE a OF traffic_control IS
TYPE STATE_SPACE IS(S0,S1,S2,S3);
SIGNAL state:STATE_SPACE;
BEGIN
PROCESS(slk)
BEGIN
IF reset='1'THEN
State<=S0;
ELSIF(clk EVENT AND clk='1')THEN
CASE state IS
WHEN S0=>
IF w1='1'THEN
state
END IF;
WHEN S1=>
IF w2='1'THEN
state<=s2;
END IF;
WHEN S2=>
IF w3='1'THEN
State<=s3;
END IF;
WHEN S3=>
IF w2='1'THEN
state<=s0;
END IF;
END CASE;
END IF;
END PROCESS;
c1<='1'WHEN state=s0 ELSE'0'
c2<='1'WHEN state=S1 OR state=S3 ELSE '0'
c3<='1'WHEN state=s2 ELSE'0';
r1<='1'WHEN state=S1 OR state=S0 ELSE '0'
y1<='1'WHEN state=s3 ELSE'0';
g1<='1'WHEN state=s2 ELSE'0';
r2<='1'WHEN state=S2 OR state=S3 FLES'0';
y2<='1'WHEN state=S1 ELSE'0';
g2<='1'WHEN state=S0 ELSE'0';
END a;
3 功能編譯、設(shè)計(jì)仿真與硬件下載
本系統(tǒng)采用Altera公司生產(chǎn)的FLEX10K系列的CPLD芯片,應(yīng)用該公司的MAX+PLUS
II開(kāi)發(fā)軟件完成設(shè)計(jì)后,需對(duì)各種源文件從低層到頂層逐個(gè)編譯,再進(jìn)行邏輯仿真。選擇器件后,打開(kāi)檢查項(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)定、體積小、在線(xiàn)修改方便等特點(diǎn)。