沈祖斌 鄒光毅
(江漢大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,湖北 武漢430056)
目前國內(nèi)數(shù)字邏輯課程的教學(xué)內(nèi)容多是基于SSI、MSI等器件進(jìn)行分析和設(shè)計(jì),采用的是經(jīng)典的數(shù)字邏輯設(shè)計(jì)方法,即用真值表、卡諾圖、狀態(tài)轉(zhuǎn)換圖、狀態(tài)轉(zhuǎn)換表、狀態(tài)方程、時(shí)序圖、邏輯圖和邏輯函數(shù)表達(dá)式等方法,來分析和設(shè)計(jì)數(shù)字邏輯系統(tǒng)。顯然,對(duì)于較復(fù)雜的數(shù)字系統(tǒng),因其輸入變量數(shù)、輸出函數(shù)變量數(shù)和狀態(tài)數(shù)的急劇增加,再使用上述這種傳統(tǒng)方法進(jìn)行分析和設(shè)計(jì)難以適用,甚至根本無法進(jìn)行。數(shù)字邏輯課程的實(shí)驗(yàn)環(huán)節(jié)也是基于標(biāo)準(zhǔn)SSI,MSI芯片的所謂硬實(shí)驗(yàn)臺(tái)實(shí)驗(yàn)室(Hardware-based Laboratory),這種實(shí)現(xiàn)臺(tái)不易做成開放性,實(shí)驗(yàn)準(zhǔn)備,實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)課安排都不靈活,實(shí)驗(yàn)內(nèi)容和效果也受到所供SSI,MSI芯片的限制。如今,數(shù)字化的概念已深入到各個(gè)領(lǐng)域,幾乎絕大多數(shù)系統(tǒng)已不是簡(jiǎn)單幾個(gè)邏輯變量就能完全描述的。然而目前在專門講授數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)理論和方法的數(shù)字邏輯課程中,絕大多數(shù)高校仍然是沿用了幾十年不變的老方法,顯然已遠(yuǎn)遠(yuǎn)落后于時(shí)代的要求,必須加以改革創(chuàng)新。
VHDL的方法克服了傳統(tǒng)方法的弱點(diǎn),與傳統(tǒng)方法相比有幾處根本優(yōu)點(diǎn),設(shè)計(jì)者可以在VHDL描述模型建立之后馬上用仿真手段來驗(yàn)證系統(tǒng)功能是否滿足要求。這種方法還可以免去傳統(tǒng)方法的許多繁雜的試湊等耗時(shí)勞動(dòng)(設(shè)計(jì)瓶頸),因而減少設(shè)計(jì)時(shí)間,降低設(shè)計(jì)難度,避免了由于人工試湊設(shè)計(jì)常容易發(fā)生的錯(cuò)誤。利用各種EDA工具,可自動(dòng)的將一個(gè)可綜合的設(shè)計(jì)在給定的具體器件上進(jìn)行門級(jí)實(shí)現(xiàn)。而且,用這種方法系統(tǒng)整體指標(biāo)往往容易實(shí)現(xiàn),而傳統(tǒng)的方法則不然。這種方法其主要設(shè)計(jì)文件是用VHDL語言編寫的源程序,而不是電路原理圖,顯然傳統(tǒng)硬件電路設(shè)計(jì)最后形成的主要文件是電路原理圖,它與設(shè)計(jì)的器件和技術(shù)有關(guān),不易設(shè)計(jì)文檔的復(fù)用。用VHDL語言設(shè)計(jì)系統(tǒng)硬件電路,主要設(shè)計(jì)文件是用VHDL語言編寫的源程序,以此作為歸納文件有很多好處:首先,資料量小,便于保存;其次是可繼承性好,即設(shè)計(jì)其它硬件電路時(shí)可以調(diào)用文件中的某些庫、進(jìn)程和過程等描述某些局部硬件電路的程序;第三是閱讀方便,很容易在程序中看出某一硬件電路的工作原理和邏輯關(guān)系,而閱讀電路原理圖,推知其工作原理都需要較多的硬件知識(shí)和經(jīng)驗(yàn),而且看起來也不夠一目了然。VHDL還有一個(gè)重要的特點(diǎn)就是設(shè)計(jì)描述與器件無關(guān)(without referenec to specific hardware),顯然這是基于SSI、MSI等器件進(jìn)行分析和設(shè)計(jì)無法做到的,設(shè)計(jì)者能專注其設(shè)計(jì),而且在EDA綜合工具的配合下支持自頂向下的設(shè)計(jì)。
采用VHDL的方法,在實(shí)驗(yàn)環(huán)境上也把基于硬件的實(shí)驗(yàn)室改變成基于軟件的實(shí)驗(yàn)室(Software-based Laboratory)即軟實(shí)驗(yàn)臺(tái),直接在VHDL仿真器中驗(yàn)證實(shí)驗(yàn)結(jié)果的正確性,根本克服了硬實(shí)驗(yàn)臺(tái)的不足,易于實(shí)現(xiàn)實(shí)驗(yàn)的開放性和網(wǎng)絡(luò)教學(xué)模式。
VHDL的方法是順應(yīng)迅速發(fā)展的通訊技術(shù)、電子測(cè)量技術(shù)、自動(dòng)化控制等技術(shù)的需要而發(fā)展起來的,它使硬件軟件化變?yōu)楝F(xiàn)實(shí),使大規(guī)模和超大規(guī)模集成電路的設(shè)計(jì)向標(biāo)準(zhǔn)化、自動(dòng)化的方向邁進(jìn)了一大步。無疑,傳統(tǒng)的設(shè)計(jì)方法已經(jīng)遠(yuǎn)遠(yuǎn)落后,國內(nèi)電子行業(yè)已逐漸將VHDL硬件描述語言應(yīng)用于電子系統(tǒng)設(shè)計(jì)中。為了避免我們的教學(xué)內(nèi)容與電子技術(shù)發(fā)展脫節(jié),增強(qiáng)人才的競(jìng)爭(zhēng)能力,適應(yīng)市場(chǎng)需要,將VHDL硬件描述語言引入數(shù)字邏輯的教學(xué)和實(shí)驗(yàn)中,逐步對(duì)舊的教學(xué)模式和教學(xué)內(nèi)容加以改革,勢(shì)在必行,也是時(shí)代的要求和科技發(fā)展的必然結(jié)果。
VHDL語言是目前廣泛流行的硬件描述語言之一,它起源于美國國防部超高速集成電路計(jì)劃,計(jì)劃公布后受到業(yè)界的普遍歡迎。1987年12月被IEEE正式批準(zhǔn)為標(biāo)準(zhǔn)的硬件描述語言,并于1993年公布了修改后的IEEE最新標(biāo)準(zhǔn)。VHDL支持結(jié)構(gòu)化的開發(fā)設(shè)計(jì),因此一個(gè)大型的數(shù)字系統(tǒng)可以分成較小的子系統(tǒng),許多人可在不同的子系統(tǒng)中同時(shí)進(jìn)行開發(fā)工作。VHDL是通過元件例化語句來實(shí)現(xiàn)這一功能的。和其它高級(jí)語言一樣,VHDL是一種強(qiáng)類型語言,這使設(shè)計(jì)中的許多錯(cuò)誤易于發(fā)現(xiàn)。VHDL允許設(shè)計(jì)者在不同的抽象層次里對(duì)系統(tǒng)進(jìn)行行為描述及結(jié)構(gòu)描述。VHDL有三種主要的建模描述風(fēng)格:
算法描述(Algorithmic):即用順序語句來描述輸入輸出對(duì)應(yīng)關(guān)系的算法,這種描述方式最初往往與實(shí)現(xiàn)硬件無關(guān)。
數(shù)據(jù)流描述(Dataflow):即用一組并行語句來描述數(shù)據(jù)在寄存器之間流動(dòng)的建模方式。這種方式與實(shí)際硬件實(shí)際存在某種對(duì)應(yīng)關(guān)系。
結(jié)構(gòu)描述風(fēng)格 (Structural):這是一種與硬件結(jié)構(gòu)最近的描述方式,它通過文件的例化語句來實(shí)現(xiàn)。
下面用一個(gè)實(shí)例來說明采用VHDL語言設(shè)計(jì)一個(gè)四位可控的Johnson計(jì)數(shù)器,從中可以領(lǐng)略一下采用VHDL方法的風(fēng)格和特點(diǎn),此例所反映的設(shè)計(jì)過程也是筆者所指的軟實(shí)驗(yàn)臺(tái)所包含的具體內(nèi)容。設(shè)計(jì)模塊端口信號(hào)有:LEPT,左移控制;RIGHT,右移控制;STOP,停止計(jì)數(shù)控制;CLK,時(shí)鐘輸入端,Q3-Q0,計(jì)數(shù)器輸出端。設(shè)計(jì)采用VHDL輸入方式。該設(shè)計(jì)的VHDL代碼如下:
從上面的VHDL的設(shè)計(jì)代碼可見:VHDL的設(shè)計(jì)文檔由三大部分組成,即庫的聲明,端口說明和結(jié)構(gòu)體設(shè)計(jì)描述。其中端口說明清晰的反映了所設(shè)計(jì)器件的輸入輸出性質(zhì),在結(jié)構(gòu)體設(shè)計(jì)描述中也清楚的描述了器件所完成的邏輯功能。這是傳統(tǒng)的采用SSI,MSI等標(biāo)準(zhǔn)規(guī)格器件設(shè)計(jì)所沒有的優(yōu)點(diǎn)。
圖1 設(shè)計(jì)實(shí)例功能仿真圖
用VHDL仿真器驗(yàn)證設(shè)計(jì)的正確性。參見圖1:設(shè)計(jì)實(shí)例功能仿真圖。
隨著CMOS技術(shù)的日趨成熟和EDA技術(shù)的產(chǎn)生和逐步完善,給數(shù)字系統(tǒng)的分析和設(shè)計(jì)方法帶來巨大的變革,EDA業(yè)界出現(xiàn)了將整個(gè)系統(tǒng)集成一個(gè)片IC芯片上的系統(tǒng)芯片 (System on a Chip,簡(jiǎn)稱SOC)或稱片上系統(tǒng)的概念。系統(tǒng)芯片SOC與傳統(tǒng)集成電路IC芯片的設(shè)計(jì)思想是不同的,SOC是微電子設(shè)計(jì)領(lǐng)域的一場(chǎng)革命。它和集成電路的關(guān)系與當(dāng)時(shí)集成電路與分離元器件的關(guān)系類似,其對(duì)微電子技術(shù)的推動(dòng)作用不亞于自50年代末快速發(fā)展起來的集成電路技術(shù)。SOC是從整個(gè)系統(tǒng)的角度出發(fā),把處理機(jī)制、模型算法、芯片結(jié)構(gòu)、各層次電路直至器件的設(shè)計(jì)緊密結(jié)合起來,在單個(gè)(或少數(shù)幾個(gè))芯片上完成整個(gè)系統(tǒng)的功能。它的設(shè)計(jì)必須采用VHDL的方法才能實(shí)現(xiàn)。在數(shù)字邏輯課程教學(xué)和實(shí)驗(yàn)中,在向?qū)W生講授最基本的數(shù)字系統(tǒng)概念和方法時(shí)就引入VHDL的方法,其意義和目的也在于此。筆者并不贊成把數(shù)字邏輯和VHDL程序設(shè)計(jì)作為兩門課程分開來講授,盡管許多高校和教材都是這樣設(shè)計(jì)的。
[1]M.Morris Mano,etc.邏輯與計(jì)算機(jī)設(shè)計(jì)基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,2011.
[2]林明權(quán),等,編.VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例[M].北京:電子工業(yè)出版社,2003.
[3]Mark Zwolinski.Digital System Design with VHDL[M].USA:Pearson Education Limited,2000.
[4]歐陽星明,等,編.數(shù)字邏輯[M].武漢:華中科技大學(xué)出版社,2009.