劉彩虹,陳秀萍
摘 要:可編程邏輯器件的出現(xiàn),使得傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法發(fā)生了根本的改變,所以有必要介紹一下基于可編程邏輯器件的數(shù)字電路設(shè)計(jì)方法。以計(jì)數(shù)器的實(shí)現(xiàn)方法作為實(shí)例,介紹了采用原理圖和硬件描述語(yǔ)言?xún)煞N方法作為輸入,實(shí)現(xiàn)計(jì)數(shù)器的方法,并描述了編譯仿真的方法,給出了對(duì)應(yīng)的仿真結(jié)果。采用熟悉的器件為例,使基于可編程邏輯器件的數(shù)字電路設(shè)計(jì)方法更容易理解掌握。
關(guān)鍵詞:可編程器件;計(jì)數(shù)器;數(shù)字電路;VHDL
中圖分類(lèi)號(hào):TN47文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2009)19-189-02
Design of Digital Circuit Based on Programmable Logic Devices
LIU Caihong,CHEN Xiuping
(Northwest Minorities University,Lanzhou,730030,China)
Abstract:The traditional design method of digital systems has fundamentally changed because of the emergence of programmable logic devices,it is necessary to introduce the design of digital circuit based on the programmable logic device.The realization methods of counter as examples,described two ways to achieve counter by schematic and hardware description language as input methods.The method of compiled simulation was described,and given the simulation results.The design of digital circuit based on the programmable logic device easier to understand and grasp by the use of familiar device.
Keywords:programmable logic devices;counter;digital circuit;VHDL
0 引 言
可編程邏輯器件PLD(Programmable Logic Device)是一種數(shù)字電路,它可以由用戶(hù)來(lái)進(jìn)行編程和進(jìn)行配置,利用它可以解決不同的邏輯設(shè)計(jì)問(wèn)題。PLD由基本邏輯門(mén)電路、觸發(fā)器以及內(nèi)部連接電路構(gòu)成,利用軟件和硬件(編程器)可以對(duì)其進(jìn)行編程,從而實(shí)現(xiàn)特定的邏輯功能??删幊踢壿嬈骷?0世紀(jì)70年代初期以來(lái)經(jīng)歷了從PROM,PLA,PAL,GAL到CPLD和FPGA的發(fā)展過(guò)程,在結(jié)構(gòu)、工藝、集成度、功能、速度和靈活性方面都有很大的改進(jìn)和提高[1]。
隨著數(shù)字集成電路的不斷更新和換代,特別是可編程邏輯器件的出現(xiàn),使得傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法發(fā)生了根本的改變[2]??删幊踢壿嬈骷撵`活性使得硬件系統(tǒng)設(shè)計(jì)師在實(shí)驗(yàn)室里用一臺(tái)計(jì)算機(jī)、一套相應(yīng)的EDA軟件和可編程邏輯芯片就可以完成數(shù)字系統(tǒng)設(shè)計(jì)與生產(chǎn)[3]。
1 Max+plus Ⅱ簡(jiǎn)介
Max+plus Ⅱ是一種與結(jié)構(gòu)無(wú)關(guān)的全集成化設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能對(duì)Altera的各種CPLD系列方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Max+plus Ⅱ開(kāi)發(fā)系統(tǒng)具有強(qiáng)大的處理能力和高度的靈活性,其主要優(yōu)點(diǎn):與結(jié)構(gòu)無(wú)關(guān)、多平臺(tái)、豐富的設(shè)計(jì)庫(kù)、開(kāi)放的界面、全集成化、支持多種硬件描述語(yǔ)言(HDL)等。
數(shù)字系統(tǒng)的設(shè)計(jì)采用自頂向下、由粗到細(xì),逐步分解的設(shè)計(jì)方法,最頂層電路是指系統(tǒng)的整體要求,最下層是具體的邏輯電路的實(shí)現(xiàn)。自頂向下的設(shè)計(jì)方法將一個(gè)復(fù)雜的系統(tǒng)逐漸分解成若干功能模塊,從而進(jìn)行設(shè)計(jì)描述,并且應(yīng)用EDA 軟件平臺(tái)自動(dòng)完成各功能模塊的邏輯綜合與優(yōu)化,門(mén)級(jí)電路的布局,再下載到硬件中實(shí)現(xiàn)設(shè)計(jì)[4],具體設(shè)計(jì)過(guò)程如下。
1.1 設(shè)計(jì)輸入
Max+plus Ⅱ支持多種設(shè)計(jì)輸入方式,如原理圖輸入、波形輸入、文本輸入和它們的混合輸入。
1.2 設(shè)計(jì)處理
設(shè)計(jì)輸入完后,用Max+plus Ⅱ的編譯器編譯、查錯(cuò)、修改直到設(shè)計(jì)輸入正確,同時(shí)將對(duì)輸入文件進(jìn)行邏輯簡(jiǎn)化、優(yōu)化,最后生成一個(gè)編程文件,這是設(shè)計(jì)的核心環(huán)節(jié)。
1.3 設(shè)計(jì)檢查
Max+plus Ⅱ?yàn)樵O(shè)計(jì)者提供完善的檢查方法設(shè)計(jì)仿真和定時(shí)分析,其目的是檢驗(yàn)電路的邏輯功能是否正確,同時(shí)測(cè)試目標(biāo)器件在最差情況下的時(shí)延,這一查錯(cuò)過(guò)程對(duì)于檢驗(yàn)組合邏輯電路的競(jìng)爭(zhēng)冒險(xiǎn)和時(shí)序邏輯電路的時(shí)序、時(shí)延等至關(guān)重要。
1.4 器件編程
當(dāng)電路設(shè)計(jì)、校驗(yàn)之后,Max+plus Ⅱ的Programmer 將編譯器所生成的編譯文件下載到具體的CPLD器件中,即實(shí)現(xiàn)目標(biāo)器件的物理編程[5]。
2 以計(jì)數(shù)器為例介紹具體的設(shè)計(jì)方法
計(jì)數(shù)器是非常常用的時(shí)序邏輯電路。計(jì)數(shù)器類(lèi)型有多種,實(shí)現(xiàn)計(jì)數(shù)器的方法也有很多??梢再I(mǎi)到大部分類(lèi)型的中規(guī)模集成的計(jì)數(shù)器直接使用,也可以用觸發(fā)器搭建符合要求的計(jì)數(shù)器。但是采用以上方法實(shí)現(xiàn)的計(jì)數(shù)器靈活性不夠,不能隨時(shí)進(jìn)行修改,通用性差。這里介紹基于可編程邏輯器件的實(shí)現(xiàn)方法。
2.1 設(shè)計(jì)輸入
采用原理圖輸入的思維方式比較適合一直采用傳統(tǒng)設(shè)計(jì)方法人的使用。原理圖輸入如圖1所示。
圖1 原理輸入圖
采用硬件描述語(yǔ)言輸入的方法對(duì)于沒(méi)有傳統(tǒng)設(shè)計(jì)方法經(jīng)驗(yàn)的人更容易入門(mén),修改起來(lái)也更方便。給出了一個(gè)可逆計(jì)數(shù)器的實(shí)現(xiàn)實(shí)例[6],程序的核心部分如下[7]:
PROCESS (clk)
VARIABLE cnt:INTEGER RANGE 0 TO 255;
VARIABLE direction:INTEGER;
BEGIN
IF(updown=′1′)THEN
direction:=1;
ELSE
direction:=-1;
END IF;
IF(clk′EVENT AND clk=′1′)THEN
cnt:=cnt+direction;
END IF;
qd <= cnt;
end process;
2.2 設(shè)計(jì)處理
原理圖或程序完成之后,選擇好器件并進(jìn)行引腳定義,然后編譯優(yōu)化得到編程文件的界面如圖2所示[8]。
2.3 設(shè)計(jì)檢查
編譯結(jié)束后,建立波形文件進(jìn)行仿真,注意波形文件需要先保存,保存文件名和源文件一致才能進(jìn)行仿真[9]。結(jié)果如圖3所示。
圖2 編譯優(yōu)化得到編程文件的界面
圖3 仿真結(jié)果
仿真結(jié)果達(dá)到設(shè)計(jì)目的,符合設(shè)計(jì)要求。這時(shí)可以把編譯生成的*.pof文件下載到選定的器件使用。用以上方法實(shí)現(xiàn)的器件,修改起來(lái)非常方便,只需要修改程序重新編譯下載即可,任何類(lèi)型的計(jì)數(shù)器都可以在可編程邏輯器件實(shí)現(xiàn)。
3 結(jié) 語(yǔ)
隨著電子技術(shù)的高速發(fā)展,CPLD 和FPGA 器件在集成度、功能和性能(速度及可靠性)方面已經(jīng)能夠滿(mǎn)足大多數(shù)場(chǎng)合的使用要求。用CPLD,FPGA等大規(guī)??删幊踢壿嬈骷〈鷤鹘y(tǒng)的標(biāo)準(zhǔn)集成電路、接口電路和專(zhuān)用集成電路已成為技術(shù)發(fā)展的必然趨勢(shì)。
可編程邏輯器件是邏輯器件家族中發(fā)展最快的一類(lèi)器件,它出現(xiàn)使得產(chǎn)品開(kāi)發(fā)周期縮短、現(xiàn)場(chǎng)靈活性好、開(kāi)發(fā)風(fēng)險(xiǎn)變小,隨著工藝、技術(shù)及市場(chǎng)的不斷發(fā)展,PLD產(chǎn)品的價(jià)格將越來(lái)越便宜、集成度越來(lái)越高、速度越來(lái)越快,再加上其設(shè)計(jì)開(kāi)發(fā)采用符合國(guó)際標(biāo)準(zhǔn)的、功能強(qiáng)大的通用性EDA工具,可編程邏輯器件的應(yīng)用前景將愈來(lái)愈廣闊[10]。
參考文獻(xiàn)
[1]徐偉業(yè),江冰,虔湘賓.CPLD/FPGA的發(fā)展與應(yīng)用之比較[J].現(xiàn)代電子技術(shù),2007,30(2):4-7.
[2]鄭寶華.基于CPLD的大屏幕掃描電路設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008,31(24):17-19.
[3]趙延,葛利嘉,雙濤.基于FPGA的UART設(shè)計(jì)實(shí)現(xiàn)及其驗(yàn)證方法[J].現(xiàn)代電子技術(shù),2008,31(17):162-164.
[4]王淑文.基于CPLD的數(shù)字系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007,30(12):184-186.
[5]楊暉,張鳳言.大規(guī)模可編程邏輯器件與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2001.
[6]潘松.VHLD 實(shí)用教程[M].西安:西安電子科技大學(xué)出版社,2000.
[7]宋萬(wàn)杰.CPLD技術(shù)及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2000.
[8]林明權(quán).VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例[M].北京:電子工業(yè)出版社,2003.
[9]曾繁泰,陳美金.VHDL程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2000.
[10]田開(kāi)坤,徐海霞.基于CPLD的單片機(jī)接口設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008,31(2):34-36.