左智成
(中原文化藝術(shù)學(xué)院,鄭州450002)
數(shù)字系統(tǒng)的硬件設(shè)計(jì)目前有兩種方法,即傳統(tǒng)系統(tǒng)硬件設(shè)計(jì)和現(xiàn)代系統(tǒng)軟件設(shè)計(jì).電子工程師因其使用設(shè)計(jì)方法的不同,被劃分為硬件工程師和軟件工程師.他們專心于自己的設(shè)計(jì)事業(yè),很少從事跨界工作,尤其軟件從業(yè)人員更是如此.隨著微電子技術(shù)的迅猛發(fā)展,特別是計(jì)算機(jī)技術(shù)的日新月異和硬件描述語言(Hardware Description Language,HDL)的開發(fā)和使用,這種傳統(tǒng)的、難以逾越的溝界被打破,電子工程師無論是硬件設(shè)計(jì)人員還是軟件從業(yè)者都已經(jīng)開始使用HDL語言設(shè)計(jì)趨于合理、符合生產(chǎn)要求的數(shù)字設(shè)備.而且,使用HDL語言設(shè)計(jì)數(shù)字系統(tǒng)與傳統(tǒng)方法設(shè)計(jì)相比,優(yōu)勢(shì)極為突出,可降低設(shè)計(jì)難度,在設(shè)計(jì)的每一步都可進(jìn)行仿真,能及早發(fā)現(xiàn)問題,縮短開發(fā)周期,且文件資料歸檔方便,可節(jié)省大量的人力物力資源,它是硬件設(shè)計(jì)領(lǐng)域的一次變革,對(duì)系統(tǒng)硬件的設(shè)計(jì)將產(chǎn)生巨大的影響[1].
在未開發(fā)計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)的年代,電子工程師均采用傳統(tǒng)的設(shè)計(jì)方法設(shè)計(jì)數(shù)字系統(tǒng)[2].這種數(shù)字系統(tǒng)的設(shè)計(jì)方法是在“人工”的基礎(chǔ)上形成的,具有以下幾個(gè)主要特征:
自底向上的硬件電路設(shè)計(jì)方法的主要步驟是:當(dāng)給定生成目標(biāo)后,設(shè)計(jì)真值表,使用卡諾圖或邏輯代數(shù)化簡成最簡表達(dá)式,然后采用“搭積木”的方法選擇功能固定的標(biāo)準(zhǔn)芯片實(shí)現(xiàn)生成,最后調(diào)試和驗(yàn)證并修改相關(guān)設(shè)計(jì).上述設(shè)計(jì)方法也稱自下向上的設(shè)計(jì)方法,它充分體現(xiàn)在各功能模塊的電路設(shè)計(jì)中,其設(shè)計(jì)流程如圖1所示.
在傳統(tǒng)的硬件電路設(shè)計(jì)方法中,設(shè)計(jì)者總是根據(jù)系統(tǒng)的實(shí)際需要,力求選擇市場上能買到的邏輯元器件來搭建所要求的邏輯電路,從而實(shí)現(xiàn)系統(tǒng)的硬件設(shè)計(jì).對(duì)于由微處理器及相應(yīng)硬件組成的系統(tǒng)中,部分系統(tǒng)的硬件功能可以用軟件來實(shí)現(xiàn),這在某種程度上簡化了系統(tǒng)硬件電路的設(shè)計(jì),但是這種選擇通用元器件構(gòu)成數(shù)字系統(tǒng)的模式并未改變.
圖1 傳統(tǒng)設(shè)計(jì)流程
仿真和調(diào)試在傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法中,通常是在完成系統(tǒng)硬件搭建以后才能進(jìn)行,這是因?yàn)檫M(jìn)行仿真和調(diào)試的工具一般為系統(tǒng)仿真器、邏輯分析儀和示波器等.它們只有在數(shù)字系統(tǒng)硬件構(gòu)成后才能使用.因此,在設(shè)計(jì)過程中潛伏存在的問題只能在后期被發(fā)現(xiàn),這就對(duì)系統(tǒng)設(shè)計(jì)人員提出了更高的要求,一旦出現(xiàn)失誤,系統(tǒng)設(shè)計(jì)將存在較大缺陷,那么極有可能推倒進(jìn)行重新設(shè)計(jì),使得設(shè)計(jì)周期大為延長[3].
在使用傳統(tǒng)的硬件設(shè)計(jì)方法進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)并調(diào)試完結(jié)后,得到的硬件設(shè)計(jì)文件主要是由若干張電路原理圖集合形成的文件.在這些集合文件中詳細(xì)說明了各邏輯部件的名稱及相互間信號(hào)的依賴關(guān)系,是用戶今后使用和維護(hù)系統(tǒng)的依據(jù).對(duì)于較為簡單的小系統(tǒng),這種電路原理圖只要幾張、幾十張至幾百張即可,但如果系統(tǒng)龐大,硬件結(jié)構(gòu)相對(duì)復(fù)雜,那么這種原理圖文件可能有幾千張、幾萬張乃至幾十萬張,這就給原理圖文件的歸檔、閱讀、修改和使用帶來了極大的困難,對(duì)系統(tǒng)的使用和維護(hù)帶來了極大的不便.
隨著微電子技術(shù)的迅猛發(fā)展,大規(guī)模、超大規(guī)模專用集成電路(ASIC、Application Specific Integrated Circuit)的研制和使用,各ASIC制造廠商為了提高研、發(fā)、產(chǎn)效益,縮減研發(fā)周期及增強(qiáng)研發(fā)成果的繼承性,均開發(fā)了適于各自目的的系統(tǒng)設(shè)計(jì)軟件,即HDL語言.現(xiàn)時(shí)使用最廣泛的是美國國防部研發(fā)的VHDL(Very High Speed Integrated Circuit,HDL)和Verilog公司的Verilog硬件描述語言[4].利用HDL語言設(shè)計(jì)數(shù)字系統(tǒng)有以下幾個(gè)特征:
自頂向下的模塊化設(shè)計(jì)方法,就是從系統(tǒng)的總體功能要求出發(fā),先進(jìn)行整體規(guī)劃,然后確定設(shè)計(jì)方案,自頂向下逐步將設(shè)計(jì)指標(biāo)分解到各模塊,再進(jìn)行模塊和細(xì)節(jié)設(shè)計(jì),最后實(shí)現(xiàn)數(shù)字系統(tǒng)的總體設(shè)計(jì).這種設(shè)計(jì)方法將數(shù)字系統(tǒng)的設(shè)計(jì)自頂向下分成三步進(jìn)行.
第一步是行為描述(頂部描述).它是對(duì)整個(gè)數(shù)字系統(tǒng)頂部功能的描述,建立系統(tǒng)的數(shù)學(xué)模型.通過對(duì)系統(tǒng)頂部功能的數(shù)學(xué)模型描述、仿真來發(fā)現(xiàn)設(shè)計(jì)中早期存在的功能不完善、行為描述不準(zhǔn)確的問題.這一階段主要考慮數(shù)字系統(tǒng)的整體結(jié)構(gòu)及工作過程是否達(dá)到系統(tǒng)總體功能的預(yù)設(shè)要求,不考慮行為描述實(shí)際的操作和算法實(shí)現(xiàn).下面以六進(jìn)制計(jì)數(shù)器為例說明以行為方式描述的工作特性.
以上VHDL語言程序勾畫出了六進(jìn)制計(jì)數(shù)器的輸入、輸出引腳和內(nèi)部計(jì)數(shù)過程的計(jì)數(shù)狀態(tài)變化時(shí)序及關(guān)系.這實(shí)際上是計(jì)數(shù)器工作狀態(tài)的描述.當(dāng)該程序仿真通過以后,說明六進(jìn)制計(jì)數(shù)器模型是正確的.
第二步是寄存器傳輸(Register Transfer Level,RTL)描述,也稱數(shù)據(jù)流描述.第一步頂部描述建立系統(tǒng)結(jié)構(gòu)的數(shù)學(xué)模型因其程序抽象度高,難以直接映射到數(shù)字系統(tǒng)內(nèi)部的具體邏輯部件結(jié)構(gòu),不便用硬件來實(shí)現(xiàn).因此必須將數(shù)字模型方式描述的VHDL程序轉(zhuǎn)化為數(shù)據(jù)流方式描述的VHDL程序.只有這樣,才能求得系統(tǒng)的邏輯表達(dá)式,再進(jìn)行下一步的綜合.下面仍以六進(jìn)制計(jì)數(shù)器為例,說明行為方式描述轉(zhuǎn)化為RTL方式描述.
圖2 自頂向下設(shè)計(jì)流程
在以上的RTL描述方式中,JK觸發(fā)器、D觸發(fā)器、與門和或非門都可以在庫WORK.NEW.ALL中直接調(diào)用,且構(gòu)造體直接描述了它們之間的連接關(guān)系.與行為方式描述相比,RTL描述更接近于實(shí)際電路的描述.
在數(shù)據(jù)流描述的源程序編寫完成后,用仿真軟件對(duì)該方式描述的源程序進(jìn)行仿真.若仿真結(jié)果正確,就可進(jìn)行第三步的邏輯綜合.
第三步邏輯綜合.邏輯綜合的目的是用邏輯綜合工具將數(shù)據(jù)流描述的程序轉(zhuǎn)換成門級(jí)網(wǎng)絡(luò)表,即用基本邏輯部件表示的文件.若需要,可進(jìn)一步將邏輯綜合的結(jié)果以邏輯原理圖方式輸出.這個(gè)邏輯原理圖就相當(dāng)于用傳統(tǒng)方法設(shè)計(jì)的硬件電路,根據(jù)系統(tǒng)功能體系要求畫出系統(tǒng)的全部邏輯電路原理圖.以門級(jí)網(wǎng)絡(luò)表為基礎(chǔ),對(duì)邏輯綜合結(jié)果再次在門級(jí)電路上進(jìn)行仿真,測(cè)試信號(hào)依存關(guān)系和定時(shí)關(guān)系.若都正常,那么數(shù)字系統(tǒng)的硬件設(shè)計(jì)就此成功完結(jié).若這三步的某一步發(fā)現(xiàn)問題則都可隨時(shí)返回上一步,查看源程序,尋找和修改出現(xiàn)相應(yīng)錯(cuò)誤的模塊、進(jìn)程或結(jié)構(gòu),然后繼續(xù)下一步.
邏輯綜合結(jié)束后,在最終完成硬件設(shè)計(jì)時(shí),有兩種選擇:第一種是采用自動(dòng)布線程序?qū)⑦壿嬀C合的結(jié)果轉(zhuǎn)換成相應(yīng)的ASIC芯片的制造工藝,做出ASIC芯片;第二種是將結(jié)果轉(zhuǎn)化成CPLD(復(fù)雜可編程邏輯器件)或FPGA(現(xiàn)場可編程門陣列)的編碼點(diǎn),而后寫入對(duì)應(yīng)芯片,完成數(shù)字系統(tǒng)設(shè)計(jì).整個(gè)設(shè)計(jì)過程如圖2所示.
如前所述,眾多ASIC芯片制造商提供的軟件均可支持或兼容HDL語言,所以,電子工程師在設(shè)計(jì)數(shù)字系統(tǒng)的硬件電路時(shí),可根據(jù)硬件系統(tǒng)的需求,自行設(shè)計(jì)ASIC芯片或可編程邏輯器件.這終將會(huì)使數(shù)字系統(tǒng)的硬件電路趨于合理,體積大為縮小,走向微型化.
從自頂向下的三步設(shè)計(jì)過程可以看出,仿真始終貫穿在系統(tǒng)硬件設(shè)計(jì)的各環(huán)節(jié)之中,即行為(頂部數(shù)學(xué)模型)仿真、數(shù)據(jù)流(RTL)仿真和門級(jí)(門電路原理)仿真.這就使在系統(tǒng)設(shè)計(jì)各個(gè)階段存在的潛伏問題能被及時(shí)發(fā)現(xiàn)和更正.較之傳統(tǒng)自底向上設(shè)計(jì)的后期仿真,自頂向下的三步設(shè)計(jì)最大限度地縮減了系統(tǒng)的設(shè)計(jì)周期,節(jié)省了大量的人力、物力資源.
在傳統(tǒng)硬件電路的設(shè)計(jì)方法中,電子工程師必須在設(shè)計(jì)前求得電路的邏輯表達(dá)式或真值表(或狀態(tài)表),這是相當(dāng)繁雜和困難的過程,尤其是在硬件系統(tǒng)較為復(fù)雜時(shí)更是如此.而用現(xiàn)代軟件的設(shè)計(jì)方法設(shè)計(jì)硬件電路時(shí),設(shè)計(jì)者無需得到邏輯表達(dá)式或真值表.例如六進(jìn)制計(jì)數(shù)器,只要知道六進(jìn)制計(jì)數(shù)器的6個(gè)計(jì)數(shù)狀態(tài)就行了,而無需寫出相關(guān)電路的邏輯表達(dá)式.這使硬件電路的設(shè)計(jì)愈來愈便利,難度也大為降低,縮短了硬件系統(tǒng)的設(shè)計(jì)周期,提高了設(shè)計(jì)效率.據(jù)有關(guān)資料統(tǒng)計(jì),就此一項(xiàng)可使系統(tǒng)的設(shè)計(jì)周期縮短大約1/3 ~1/2[5].
如1.4所述,在傳統(tǒng)硬件電路的設(shè)計(jì)中,電路原理圖是最后得到的主要文件,而利用現(xiàn)代軟件設(shè)計(jì)硬件電路時(shí),得到的設(shè)計(jì)文件是HDL編寫的源程序,需要時(shí)就可轉(zhuǎn)換成電路原理圖.用源程序作歸檔文件有以下優(yōu)點(diǎn):(1)資料量小,便于紙質(zhì)保存.(2)繼承性好.在設(shè)計(jì)任何硬件電路時(shí),可利用現(xiàn)有文件中的進(jìn)程和過程等程序.(3)可閱讀性強(qiáng).閱讀理解源程序要比理解電路原理圖容易一些.在源程序中能容易找出某部分電路的邏輯關(guān)系和工作原理.
數(shù)字系統(tǒng)硬件設(shè)計(jì)的兩種方法目前在實(shí)際工作中都有使用.傳統(tǒng)的硬件電路設(shè)計(jì)方法已經(jīng)沿襲使用了幾十年,是廣大電子設(shè)計(jì)者所熟悉和掌握的一種方法.但是,隨著計(jì)算機(jī)技術(shù)日新月異、微電子技術(shù)的迅速發(fā)展,傳統(tǒng)的設(shè)計(jì)方法已無法跟進(jìn)現(xiàn)代技術(shù)的發(fā)展.一種嶄新、采用現(xiàn)代軟件語言設(shè)計(jì)的硬件電路方法正在蓬勃發(fā)展,它的出現(xiàn)使硬件電路設(shè)計(jì)的難度大為降低,設(shè)計(jì)周期大為縮短,節(jié)省了大量的人力物力,對(duì)硬件電路的設(shè)計(jì)產(chǎn)生了革命性的變化.
[1]侯伯亨,劉凱,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)[M].第3版.西安:西安電子科技大學(xué)出版社,2009.
[2]文漢云,劉鵬,胡杰.數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012.
[3]譚會(huì)生,昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2009.
[4]王金明.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].第4版.北京:電子工業(yè)出版社,2011.
[5]朱志平.基于VHDL的交通管理器設(shè)計(jì)[J].渭南師范學(xué)院學(xué)報(bào),2012,27(6):24-28.