前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的vhdl語言主題范文,僅供參考,歡迎閱讀并收藏。
【關(guān)鍵詞】vhdl語言 電子設(shè)計(jì) 自動(dòng)化應(yīng)用
中圖分類號(hào):F407文獻(xiàn)標(biāo)識(shí)碼: A
一、前言
近些年,隨著電子技術(shù)及計(jì)算機(jī)技術(shù)的不斷發(fā)展,使用原來的方法進(jìn)行系統(tǒng)及芯片的設(shè)計(jì)已經(jīng)不能滿足要求了,需要具有更高效率的設(shè)計(jì)方法,運(yùn)用VHDL語言進(jìn)行電子設(shè)計(jì)就是在這種情況下開發(fā)的,而且被越來越廣泛地應(yīng)用到電子設(shè)計(jì)自動(dòng)化中,顯著地提高了開發(fā)效率及產(chǎn)品的可靠性。
二、電子設(shè)計(jì)自動(dòng)化和VHDL語言概述
1、電子設(shè)計(jì)自動(dòng)化概述。電子設(shè)計(jì)自動(dòng)化又稱為EDA技術(shù),它是在上世紀(jì)70年代的集成電路技術(shù)茂盛發(fā)展下誕生的,與集成電路的復(fù)雜度是緊密相關(guān)的。在第一代電子設(shè)計(jì)自動(dòng)化EDA中,其主要功能是進(jìn)行圖形編輯交互及設(shè)計(jì)規(guī)則檢查,所要解決的問題是進(jìn)行PCB布局布線或者晶體管級(jí)版圖的設(shè)計(jì);第二代電子自動(dòng)化設(shè)計(jì)EDA系統(tǒng),主要包括邏輯圖的設(shè)計(jì)輸入、邏輯綜合、芯片布圖、模擬驗(yàn)證及印刷電路的版布圖等,隨著集成電路尺寸越來越小、規(guī)模越來越大、速度及頻率越來越高、設(shè)計(jì)越來越復(fù)雜,HDL的設(shè)計(jì)方案應(yīng)運(yùn)而生,隨后具有描述語言的VHDL被提出來了。
2、VHDL語言概述。VHDL語言是指超高速集成電路的硬件描述語言,它是一種很快的電路設(shè)計(jì)工具,其功能主要包括電路合成、電路描述及電路仿真等電路設(shè)計(jì)工作。VHDL語言是由抽象及具體硬件級(jí)別進(jìn)行描述的工業(yè)標(biāo)準(zhǔn)語言,它已經(jīng)成為了一種通用硬件設(shè)計(jì)的交換媒介,很多工程軟件供應(yīng)商已經(jīng)把VHDL語言當(dāng)做了EDA或CAD軟件的輸入/輸出標(biāo)準(zhǔn),很多EDA廠商還提供了VHDL語言編譯器,同時(shí)在方針工工具、布圖工具及綜合工具中對(duì)VHDL語言提供了支持。
三、VHDL語言的特點(diǎn)
1、VHDL語言具有較強(qiáng)的描述功能,能夠?qū)χС窒到y(tǒng)的行為級(jí)、門級(jí)及寄存器傳輸級(jí)這三個(gè)層次進(jìn)行設(shè)計(jì),和其它硬件描述語言相比,VHDL語言的行為描述能力更強(qiáng),這種較強(qiáng)的行為描述力能夠有效地避開具體器件結(jié)構(gòu)。對(duì)大規(guī)模的電子系統(tǒng)的邏輯行為進(jìn)行描述與設(shè)計(jì),VHDL語言已經(jīng)成為高層次設(shè)計(jì)中的核心,也是它成為了電子設(shè)計(jì)系統(tǒng)領(lǐng)域最好的硬件語言描述。
2、VHDL語言能夠支持大規(guī)模的設(shè)計(jì)分解,及已有設(shè)計(jì)再利用,大規(guī)模的設(shè)計(jì)不可能有一個(gè)人獨(dú)立地完成,需要多個(gè)項(xiàng)目共同的組成,VHDL語言中的設(shè)計(jì)實(shí)體概念、設(shè)計(jì)庫(kù)概念、程序包概念為設(shè)計(jì)的分解及再利用提供了有力的支持。
3、VHDL語言具有較為豐富的模擬庫(kù)函數(shù)及仿真語句。這使它能夠在任何設(shè)計(jì)系統(tǒng)中,很早地就能對(duì)設(shè)計(jì)系統(tǒng)功能中的可行性進(jìn)行查驗(yàn),并隨時(shí)可以對(duì)設(shè)計(jì)進(jìn)行模擬仿真,將設(shè)計(jì)中的邏輯錯(cuò)誤消除在組裝前,由于大規(guī)模集成電路及應(yīng)用多層的印刷技術(shù)器件組裝完畢之后。很難進(jìn)行修改,這就使得邏輯模擬變得不可缺少,運(yùn)用邏輯模擬還能夠減少成本縮短調(diào)試及設(shè)計(jì)周期。對(duì)于中小規(guī)模的集成電路,僅運(yùn)用模擬就能夠獲得成功數(shù)字系統(tǒng)設(shè)計(jì);而大規(guī)模集成電路,則需要運(yùn)用邏輯模擬進(jìn)行邏輯網(wǎng)絡(luò)設(shè)計(jì)的檢查與分析。邏輯模擬系統(tǒng)對(duì)于集成電路來說,是不可缺少的重要手段。
4、VHDL語言本身生命周期就較長(zhǎng),在VHDL語言設(shè)計(jì)中,并不包含和工藝相關(guān)的信息,其設(shè)計(jì)和最終工藝實(shí)現(xiàn)是無關(guān)的,能夠使設(shè)計(jì)通過門級(jí)仿真之后,在用合適的工具映射到不同的工藝當(dāng)中,當(dāng)工藝進(jìn)行更新時(shí),就不需要進(jìn)行原設(shè)計(jì)的修改了,僅改變映射工具就可以了,對(duì)于已經(jīng)完成的設(shè)計(jì),尤其是和工藝技術(shù)相關(guān)的參數(shù)可以運(yùn)用VHDL語言所提供的類屬進(jìn)行描述,或者進(jìn)行子程序功能的調(diào)用,可以在源程序不改變的情況下,僅修改類屬的函數(shù)及參量就可以了,這樣就可以改變電子設(shè)計(jì)的規(guī)模及結(jié)構(gòu)了。當(dāng)然在VHDL語言也有些不足之處,像沒有WAIT語句、不能處理動(dòng)態(tài)結(jié)構(gòu)、不能等待時(shí)序等,但它整體還是有很多優(yōu)點(diǎn)的,并為硬件設(shè)計(jì)帶來了很大地方便,被很多用戶所接受,也得到了很多廠商的有力支持。
四、電子設(shè)計(jì)自動(dòng)化應(yīng)用VHDL語言的開發(fā)流程
VHDL語言的開發(fā)流程主要為文本編輯、功能仿真、邏輯綜合、布局布線、時(shí)序仿真及編程下載。其中文本編輯器能夠進(jìn)行VHDL語言環(huán)境的編輯,其文件保存為,功能仿真是指將文件調(diào)入VHDL的仿真軟件中,并進(jìn)行功能的仿真,對(duì)其邏輯功能進(jìn)行檢查以驗(yàn)證是否正確,也稱為前仿真,對(duì)于那些相對(duì)簡(jiǎn)單的電子設(shè)計(jì)可以忽略這一步,在布線完成之后直接進(jìn)行時(shí)序仿真:邏輯綜合是指將文件進(jìn)行邏輯綜合并在設(shè)定的約束條件下進(jìn)行綜合。就是把語言綜合成布爾表達(dá)式及信號(hào)連接關(guān)系,綜合之后會(huì)生成,電子設(shè)計(jì)自動(dòng)化的工業(yè)標(biāo)準(zhǔn)文件:布局布線則是將文件調(diào)到PLD廠家所提供的軟件之中進(jìn)行布局布線,這樣就可以把已設(shè)計(jì)好的邏輯安放到PLD 內(nèi)了;時(shí)序仿真是指利用布局布線時(shí)所獲得的精確參數(shù)進(jìn)行后仿真的驗(yàn)證:編程下載所指當(dāng)確認(rèn)方針沒有錯(cuò)誤后,就將文件儲(chǔ)存到目標(biāo)芯片中。
五、VHDL語言在電子設(shè)計(jì)自動(dòng)化應(yīng)用中的作用
VHDL語言在電子設(shè)計(jì)自動(dòng)化中的應(yīng)用,能夠有效地打破傳統(tǒng)硬件電路的設(shè)計(jì)界限,借助硬件的描述語言設(shè)計(jì)出與相關(guān)要求相符合的硬件系統(tǒng),運(yùn)用VHDL語言對(duì)電子設(shè)計(jì)自動(dòng)化的應(yīng)用,與C語言的語法類型是相似的,具有很好的可讀性,掌握起來也較為簡(jiǎn)單,運(yùn)用VHDL語言進(jìn)行硬件電路的設(shè)計(jì)打破了原有地先畫出電路的原理圖,再進(jìn)行元器件及實(shí)際電路定式的搭建,可以靈活地御用VHDL語言描述的硬件電路功能進(jìn)行信號(hào)的連接和定時(shí)關(guān)系,在總體行為的設(shè)計(jì)一直到最終邏輯形成網(wǎng)絡(luò)表的文件,對(duì)于每一步都要進(jìn)行仿真的檢查,在仿真結(jié)果分析中,能夠發(fā)現(xiàn)電子自動(dòng)化系統(tǒng)的設(shè)計(jì)中所存存在的問題,這樣更有利于電子設(shè)計(jì)自動(dòng)化應(yīng)用的完整,并且其設(shè)計(jì)效率更高,時(shí)間周期更短,VHDL語言已經(jīng)被廣泛地應(yīng)用在電子設(shè)計(jì)自動(dòng)化中了。
六、VHDL 語言在電子設(shè)計(jì)自動(dòng)化應(yīng)用中所要注意的問題
1、文件名和實(shí)體名要相同,其后綴均為.Vhd,程序的存儲(chǔ)路徑不能有漢字出現(xiàn),變量要放在結(jié)構(gòu)體之中,變量并不是全局量,僅能在進(jìn)程語句及子程序中進(jìn)行使用。
2、關(guān)于順序語句和并行語句問題,要把并行語句直接放人結(jié)構(gòu)體里就可以了,而順序語句就要放在process里了,雖然process自身是并行語句,但它的內(nèi)部確是順序語句。
3、在條件語句中,條件的覆蓋是不完整的,綜合器會(huì)把多余的鎖存器引入進(jìn)來,一定要對(duì)條件所覆蓋的范圍進(jìn)行考慮,通常的處理方法是加上else語句進(jìn)行條件補(bǔ)全,頂層的文件在進(jìn)行存盤時(shí),其文件名是不能和底層的文件名相同的。
七、結(jié)束語
隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,電子產(chǎn)品也在迅速發(fā)展著,電子設(shè)計(jì)自動(dòng)化技術(shù)改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法及實(shí)現(xiàn)手段,而VHDL國(guó)際標(biāo)準(zhǔn)語言與電子設(shè)計(jì)自動(dòng)化技術(shù)工具的結(jié)合,能夠有效地降低設(shè)計(jì)的風(fēng)險(xiǎn),縮短設(shè)計(jì)的時(shí)間周期,提高設(shè)計(jì)效率,隨著VHDL語言在電子設(shè)計(jì)自動(dòng)化的應(yīng)用越來越廣泛,并將會(huì)給硬件的設(shè)計(jì)領(lǐng)域帶來很大的變革。
參考文獻(xiàn):
[1]王鎖萍.電子設(shè)計(jì)自動(dòng)化教程[M].成都:電子科技大學(xué)出版社,2000
[2]丁明威.李引新.黃培中.VHDL與電子自動(dòng)化[J].計(jì)算機(jī)應(yīng)用與研究,1999,13(1):24-25
[3]平.張振榮.VHDL編程與仿真[M].北京:人民郵電出版社,2000
[4]萬軍華.劉瑞通.基于VHDL的多功能數(shù)字鬧鐘設(shè)計(jì)[J].湖南理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2011(01)
關(guān)鍵詞:VHDL;MAX+PLUSⅡ;仿真;數(shù)字電路
中圖分類號(hào):TP331文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)21-30573-02
Application of VHDL in Digital Circuit Teaching
WU Xi-qin
(School of Computer and Information,Hefei University of Technology,Hefei 230009,China)
Abstract:VHDL,as a new type of hardware description language,is used to describe ,stimulate and automatically design digital system.Nowdays, it becomes a key technology in electronic design automatic(EDA).The method and process using VHDL to design digital system is presented through an example of modulo-16 counter .The anticipative target is achieved through stimulation.The result shows that VHDL is strong in hardware description and flexible in design method.It could reduce the design difficulty of digital system and improve efficiency.
Key words:VHDL;MAX+PLUSⅡ;stimulation;digital circuit
1 引言
隨著電子技術(shù)的發(fā)展,數(shù)字系統(tǒng)的設(shè)計(jì)正朝著高速度、大容量、小體積的方向發(fā)展,用傳統(tǒng)的自底而上的設(shè)計(jì)方法已不能滿足要求,迫切需要提高設(shè)計(jì)效率。VHDL語言是一種對(duì)數(shù)字電路和數(shù)字系統(tǒng)進(jìn)行性能描述和模擬的語言,是美國(guó)國(guó)防部在20世紀(jì)70年展的電路設(shè)計(jì)工具,并于1987年成為IEEE的一種標(biāo)準(zhǔn)語言。VHDL是一種面向設(shè)計(jì)的多領(lǐng)域、多層次IEEE標(biāo)準(zhǔn)硬件描述語言,是目前十分流行的硬件描述工具,并且被大多數(shù)EDA工具支持。
2 VHDL優(yōu)點(diǎn)
1)功能強(qiáng)大,描述力強(qiáng)。可用于門級(jí)、電路級(jí)甚至系統(tǒng)級(jí)的描述、仿真和設(shè)計(jì)。
2)可移植性好。對(duì)于設(shè)計(jì)和仿真工具采用相同的描述,對(duì)于不同的平臺(tái)也采用相同的描述。
3)研制周期短,成本低。這主要是由于VHDL支持大規(guī)模設(shè)計(jì)的分解和對(duì)已有設(shè)計(jì)的利用,因此加快了設(shè)計(jì)流程。
4)可以延長(zhǎng)設(shè)計(jì)的生命周期。因?yàn)閂HDL的硬件描述與工藝技術(shù)無關(guān),不會(huì)因工藝變化而使描述過時(shí)。
5)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。
3 VHDL的設(shè)計(jì)流程
VHDL在設(shè)計(jì)過程中,采用自頂向下的方法,首先從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行功能方框圖的劃分,然后對(duì)各模塊進(jìn)行設(shè)計(jì)并仿真,再進(jìn)一步綜合進(jìn)行門級(jí)仿真,如果沒有錯(cuò)誤即可下載,最后實(shí)現(xiàn)電路,用VHDL設(shè)計(jì)數(shù)字系統(tǒng)的流程如下:
輸入源程序編譯源程序仿真綜合門級(jí)仿真物理設(shè)計(jì)時(shí)序仿真
VHDL語言已日益成為一種通用的硬件描述語言,計(jì)算機(jī)輔助工程軟件的供應(yīng)商已把VHDL作為其CAD或EDA軟件輸入與輸出的標(biāo)準(zhǔn),其中ALTEKA公司提供了一套十分有特色的綜合工具M(jìn)AX+PLUSⅡ,它提供了全面的邏輯設(shè)計(jì)能力,從編輯、綜合、布線到仿真、下載一氣呵成,十分方便。
4 VHDL設(shè)計(jì)實(shí)例及仿真結(jié)果
4.1 設(shè)計(jì)方案
計(jì)數(shù)器根據(jù)時(shí)鐘信號(hào)的作用分為同步計(jì)數(shù)器和異步計(jì)數(shù)器。同步計(jì)數(shù)器是指構(gòu)成計(jì)數(shù)器的各觸發(fā)器狀態(tài)在同一時(shí)鐘信號(hào)的控制下同時(shí)發(fā)生變化。下面設(shè)計(jì)一個(gè)具有異步清零功能的四位二進(jìn)制同步可逆計(jì)數(shù)器。該計(jì)數(shù)器有一個(gè)上升沿有效的時(shí)鐘輸入端CLK;一個(gè)異步清零端CR(CR低有效);一個(gè)計(jì)數(shù)方向控制器UPDOWN(UPDOWN=1時(shí),進(jìn)行加法運(yùn)算;UPDOWN=0時(shí),進(jìn)行減法運(yùn)算);一個(gè)四位數(shù)據(jù)輸出端COUNT;一個(gè)進(jìn)位輸出端CO。
4.2VHDL語言設(shè)計(jì)的源程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITY cnt4b IS
PORT(CLK:IN STD_LOGIC;
CR:IN STD_LOGIC;
UPDOWN:IN STD_LOGIC;
CO: OUT STD_LOGIC;
COUNT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END cnt4b;
ARCHITECTURE behave OF cnt4b IS
SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
CQI
PROCESS(CLK,CR)
BEGIN
IF (CR='0')THENCQI
ELSIF (CLK'EVENT AND CLK = '1')THEN
IF (UPDOWN='1')THEN
IF (CQI>"1111")THENCQI
ELSE
CQI
END IF;
IF (CQI="1111") THEN
CO
ELSE
CO
END IF;
ELSE
IF (CQI
CQI
ELSE
CQI
END IF;
IF (CQI="0000") THEN CO
ELSECO
END IF;
END IF;
END IF;
COUNT
END PROCESS;
END behave;
在程序輸入完成后,經(jīng)MAX+PLUSⅡ中的Compiler編譯通過后,可用Stimulator進(jìn)行仿真。
4.3 仿真結(jié)果
仿真結(jié)果說明:1)CR為0使計(jì)數(shù)從0開始;
2)UPDOWN為0時(shí),在每個(gè)時(shí)鐘上升沿使計(jì)數(shù)器減1;
3)UPDOWN為1時(shí),在每個(gè)時(shí)鐘上升沿使計(jì)數(shù)器加1;(下轉(zhuǎn)第576頁(yè))
(上接第574頁(yè))
4)CO滯后于COUNT一個(gè)時(shí)鐘。
5 結(jié)束語
VHDL語言具有與硬件無關(guān)和與設(shè)計(jì)平臺(tái)無關(guān)的特性,并具有很強(qiáng)的電路描述和建模能力。目前,VHDL已成為電子設(shè)計(jì)自動(dòng)化領(lǐng)域進(jìn)行自上向下設(shè)計(jì)的應(yīng)用方向,是專用數(shù)字集成電路設(shè)計(jì)描述的有力工具,同時(shí)也是邏輯綜合和優(yōu)化的重要基礎(chǔ),作為一種重要的高層設(shè)計(jì)技術(shù),VHDL已成為當(dāng)代電子設(shè)計(jì)者們必須掌握的重要工具。
參考文獻(xiàn):
(西安郵電大學(xué)電子工程學(xué)院,陜西西安710121)
摘要:為了高效地利用Verilog HDL語言中always行為建模語句設(shè)計(jì)集成電路,采用比較和舉例論證的方法,總結(jié)出always語句中事件控制敏感信號(hào)對(duì)設(shè)計(jì)仿真的影響。always語句中敏感信號(hào)分為時(shí)鐘邊沿信號(hào)和電平信號(hào),對(duì)于敏感信號(hào)為時(shí)鐘邊沿信號(hào),仿真結(jié)果直觀簡(jiǎn)單;但是對(duì)于敏感信號(hào)為電平信號(hào),敏感信號(hào)必須是所有的輸入和判斷語句的信號(hào),否則仿真結(jié)果不確定。
關(guān)鍵詞 :Verilog HDL;always語句;敏感信號(hào);時(shí)鐘邊沿信號(hào);時(shí)鐘電平信號(hào)
中圖分類號(hào):TN911.6?34;TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004?373X(2015)15?0032?03
收稿日期:2015?02?26
基金項(xiàng)目:陜西省教育廳專項(xiàng)科研基金(2013JK0626);西安郵電大學(xué)青年教師科研基金資助項(xiàng)目(101?1215;101?0473)
0 引言
硬件描述語言(Hardware Description Language,HDL)是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言。Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀(jì)80年代中期開發(fā)出來的,兩種HDL 均為IEEE 標(biāo)準(zhǔn)。但是Veriolg 語言的很多規(guī)定與C語言相似,代碼簡(jiǎn)單,有大量支持仿真的語句與可綜合語句,對(duì)于初學(xué)者設(shè)計(jì)簡(jiǎn)單的數(shù)字系統(tǒng),更容易學(xué)習(xí)和掌握[1]。所以,Verilog HDL語言在大規(guī)模集成電路和現(xiàn)場(chǎng)可編程門陣列設(shè)計(jì)中得到了廣泛的應(yīng)用[2?4]。
在集成電路設(shè)計(jì)中,Verilog語言中的always語句經(jīng)常用來描述時(shí)序邏輯電路和組合電路。always語句是一種結(jié)構(gòu)化的過程語句,是行為級(jí)建模的基本語句,它的語句格式為:always@(敏感事件列表),敏感事件可以是時(shí)鐘邊沿信號(hào)也可以是電平信號(hào),分別對(duì)應(yīng)時(shí)序邏輯電路和組合邏輯電路[5]。敏感事件列表中可以包含多個(gè)敏感事件,只要所列舉的任意一種情況發(fā)生,都將激活事件控制,各個(gè)敏感事件之間是“或”的關(guān)系;但不可以同時(shí)包括電平敏感事件和邊沿敏感事件,也不可以同時(shí)包括同一個(gè)信號(hào)的上升沿和下降沿,這兩個(gè)事件可以合并為一個(gè)電平敏感事件。而且,按照語法要求,在always塊中只能給寄存器變量賦值。
在實(shí)際應(yīng)用中,敏感信號(hào)為時(shí)鐘邊沿信號(hào),仿真綜合結(jié)果一般正確。但是當(dāng)敏感信號(hào)為電平信號(hào)時(shí),情況就會(huì)變得復(fù)雜,仿真綜合結(jié)果會(huì)變得不確定。文獻(xiàn)[6]對(duì)always敏感信號(hào)與仿真結(jié)果的這種不確定性問題也進(jìn)行了肯定,但是并沒有進(jìn)一步的分析。本文對(duì)always語句中的事件控制敏感信號(hào)出現(xiàn)的各種情況進(jìn)行對(duì)比探討,發(fā)掘always語句中敏感信號(hào)分別為時(shí)鐘邊沿信號(hào)和電平信號(hào)的差異,并通過仿真圖形去驗(yàn)證。
1 敏感信號(hào)為時(shí)鐘邊沿信號(hào)
Always語句中的敏感信號(hào)如果為時(shí)鐘邊沿敏感事件,一般用來表示時(shí)序邏輯電路,時(shí)序邏輯電路在邏輯功能上的特點(diǎn)是任意時(shí)刻的輸出不僅取決于當(dāng)時(shí)的輸入信號(hào),而且還取決于電路原來的狀態(tài),或者說,還與之前的輸入有關(guān)。從電路行為上講,不管輸入如何變化,僅當(dāng)時(shí)鐘的沿(上升沿或下降沿)到達(dá)時(shí),才有可能使輸出發(fā)生變化[7]。這里以經(jīng)常用到的D觸發(fā)器為例,其仿真圖如圖1所示。
上面所述的D 觸發(fā)器,賦值語句為q<=a|b,等式右端為wire型變量。再舉個(gè)多敏感信號(hào)的時(shí)序邏輯電路的例子,比如帶有清零端的16 分頻,其仿真圖如圖2所示。
只要在always塊的敏感信號(hào)表中定義有效的時(shí)鐘沿,敏感詞的作用立竿見影,然后使用過程賦值語句對(duì)信號(hào)賦值,就可以實(shí)現(xiàn)時(shí)序邏輯電路。
2 敏感信號(hào)為電平信號(hào)
always語句中的敏感信號(hào)如果為電平敏感事件,一般用來表示組合邏輯電路,組合邏輯電路的特點(diǎn)是輸出信號(hào)只是當(dāng)前時(shí)刻輸入信號(hào)的函數(shù),與其他時(shí)刻的輸入狀態(tài)無關(guān),無存儲(chǔ)電路。從電路行為上看,其特征就是輸出信號(hào)的變化僅僅與輸入信號(hào)的電平有關(guān),不涉及對(duì)信號(hào)跳變沿的處理[8]。always電平敏感信號(hào)列表,必須將所有的輸入信號(hào)和條件判斷信號(hào)都列在信號(hào)列表中。有時(shí)不完整的信號(hào)列表會(huì)造成不同的仿真和綜合結(jié)果,因此需要保證敏感信號(hào)的完備性。在實(shí)際的PLD 器件開發(fā)中,EDA 工具都會(huì)默認(rèn)將所有的輸入信號(hào)和條件判斷語句作為觸發(fā)信號(hào),增減敏感信號(hào)列表中的信號(hào)不會(huì)對(duì)最終的執(zhí)行結(jié)果產(chǎn)生影響,因此如果期望在設(shè)計(jì)中通過修改敏感信號(hào)來得到不同的邏輯,是不能實(shí)現(xiàn)的,這也是經(jīng)常犯錯(cuò)的地方,這是因?yàn)榉抡嫫髟诠ぷ鲿r(shí)不會(huì)自動(dòng)補(bǔ)充敏感信號(hào)表。如果缺少信號(hào),則無法觸發(fā)和該信號(hào)相關(guān)的仿真進(jìn)程,也就得不到正確的仿真結(jié)果。這里以一個(gè)2?4譯碼器為例,其仿真圖如圖3所示。
如果想用一個(gè)敏感信號(hào)來控制邏輯變化,比如當(dāng)enable信號(hào)的電平發(fā)生變化時(shí),再去譯碼,程序如下,仿真圖如圖4所示。
由圖4 可以看出,這并不是所需的結(jié)果,這就是前面所說的,系統(tǒng)自動(dòng)將所有的輸入作為了敏感信號(hào)。
因此,在應(yīng)用always塊語句表述組合邏輯電路時(shí),一定要注意敏感信號(hào)的完整性,要求觸發(fā)為所有內(nèi)部用到的信號(hào),可以用always@(*),此時(shí),綜合工具和仿真工具會(huì)自動(dòng)將所有的敏感信號(hào)自動(dòng)加入敏感信號(hào)列表。
前面已經(jīng)提到過always敏感信號(hào)不可以同時(shí)包括同一個(gè)信號(hào)的上升沿和下降沿,這兩個(gè)事件可以合并為一個(gè)電平敏感事件。在設(shè)計(jì)中,一些初學(xué)的設(shè)計(jì)者經(jīng)常在時(shí)鐘的上升沿和下降沿都進(jìn)行計(jì)數(shù)器加1,以為這樣能實(shí)現(xiàn)倍頻,仿真結(jié)果如圖5所示。
從圖5中可以發(fā)現(xiàn)并沒有出現(xiàn)想要的結(jié)果,而是呈現(xiàn)出了高阻態(tài)。將直接加1運(yùn)算改為直接的賦值語句,程序如下,仿真結(jié)果如圖6所示。
從圖6中可以看出,cnt8這個(gè)變量存儲(chǔ)的是最后一次賦值,這時(shí)當(dāng)always敏感信號(hào)為電平信號(hào),系統(tǒng)默認(rèn)為組合邏輯電路,雖然將信號(hào)定義為reg 型,但只是為了滿足always 模塊中的信號(hào)必須定義為reg 型的語法要求,最終的實(shí)現(xiàn)結(jié)果中并沒有寄存器,在圖5中出現(xiàn)高阻態(tài),因?yàn)閏nt8=cnt8+1是計(jì)數(shù)器,是時(shí)序邏輯電路。
3 結(jié)論
本文對(duì)Verilog語言中always塊語句中的敏感信號(hào)進(jìn)行了對(duì)比探討,得到如下結(jié)論:
(1)如果敏感信號(hào)是時(shí)鐘邊沿觸發(fā)信號(hào),表示的是時(shí)序邏輯電路,而且在描述時(shí)序電路的always 塊中的reg型信號(hào)都會(huì)被綜合成寄存器,而且時(shí)序邏輯的敏感信號(hào)列表只需要加入所用的時(shí)鐘觸發(fā)沿即可。
(2)如果敏感信號(hào)是電平觸發(fā)信號(hào),表示的是組合邏輯電路,這里一定要注意敏感信號(hào)的完整性,即所有的輸入和判斷語句的信號(hào)都要加為敏感信號(hào),否則,得不到想要的設(shè)計(jì)結(jié)果。
(3)在組合邏輯電路描述中,將信號(hào)定義為reg型,只是為了滿足always模塊中的信號(hào)必須定義為reg 型的語法要求,最終實(shí)現(xiàn)結(jié)果中并沒有寄存器。
參考文獻(xiàn)
[1] PALNITTKAR S.Verilog HDL 數(shù)字設(shè)計(jì)與綜合[M].夏宇聞,胡燕祥,刁嵐松,譯.2版.北京:電子工業(yè)出版社,2009.
[2] 孫繼榮,李志蜀,王莉,等.程序切片技術(shù)在軟件測(cè)試中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2007,24(5):210?213.
[3] 寧佐林,邱智亮.PCI橋接IP Core 的Verilog HDL 實(shí)現(xiàn)[J].電子科技,2006,19(4):43?46.
[4] 趙東,耿衛(wèi)東,吳春亞,等.用FPGA 實(shí)現(xiàn)OLED 灰度級(jí)顯示[J].光電子? 激光,2002,13(6):554?558.
[5] 羅杰.Verilog HDL與數(shù)字ASIC設(shè)計(jì)基礎(chǔ)[M].武漢:華中科技大學(xué)出版社,2008.
[6] PADMANABHAN T R,SUNDARI B B T. Design through Verilog HDL [M]. New York:John Wiley & Sons,2013.
[7] CILETTI M D. Advanced digital design with the Verilog HDL [M]. 2nd ed. Beijing:Electronic Industry Press,2010.
【Keywords】metaphor,cognitive phenomenon,building metaphor
1. Research method
1. 1 Data collection
In this thesis a method of corpus qualitative analysis will be adopted. Cambridge Advanced Learner's Dictionary; Oxford Advanced Learner’ English-Chinese Dictionary of Current English; International dictionary of English, concrete programs and measures to be taken are as follows: (1) Professional tools to identify the basic terms and concepts on “building” in English and Chinese. (2) Basic terms and concepts on “building” in English as keywords of the corpus above, and retrieving the expression corpus relating to these terms and concepts. (3) Selecting the corpus collected to find out metaphorical expressions on “building” in English. There are many approaches to metaphor: philosophical approach, pragmatic approach, cognitive approach, etc. In this paper, the author mainly applies cognitive approaches to study the process of understanding metaphors.
1.2 Data analysis
There are many metaphorical expressions about building metaphor “Life is building, theories are buildings, relationships are buildings,” to get a clear analysis about them, the author chooses some typical building metaphors that people are familiar with, by summarizing these metaphorical expressions, identifying the conceptual metaphors which were hidden behind them, and comparing and studying these conceptual metaphors. In next section, the author will analyze these metaphorical expressions.
2. Building Metaphor
2. 1 Life is a building
Life is a building. We depend on hard-work and sweat, as a brick and watts, to build. When we were still children, we have to foster ideals and firm objectives. Russian writer Lev Tolstoy once said: “ideal is beacon. Without ideals, there is no firm direction; there is lack of direction, there is no life.” In fact, it is the same with construction. Before we can have the basic architectural model, we need to have the fundamental form of it. A great building derives from its design, only then there is a comprehensive envisage and plan, and development of the drawings. Later we can begin the construction.
2. 2 Theories are buildings
Theories are buildings. the metaphor is possible for us to use expressions (construct, foundation) from one domain (Building) to talk about corresponding concepts in the metaphorically defined domain (Theories). What foundation, for example, means in the metaphorically defined domain (Theory) will depend on the details of how the metaphorically concept “Theories are buildings” is used to structure the concept “Theory”.
Fig. Hypothesized correspondences between attributes of the concepts ‘‘theory’’ and
‘‘building’’.
As critical thinkers, however, we should be equipped with the necessary intellectual skills to test the strength of a theory to see where it collapses. Critical thinking helps us build a complex case, especially in those situations where more than one answer is plausible. Theory comes from practice, the practice also has great guide. Looking back the formation of building, the architectural design creation, a structure ergonomically environment and so on. The number of expressions “theories are building” is used in English and Chinese.
2. 3 Friendships are buildings
In our life common bridge is to need a wide range of materials for the construction, then the bridge of friendship between people? In fact, it is also the same as other bridges, as required “building materials.” These materials (common goal, in line with the character and also listen to the talk) are indispensable, With the lack of them, this bridge is not very strong.
2. 4 Society is a building
Social groups are buildings. People are based on the common material production activities, in accordance with a code of conduct with each other and form an organic whole. Constitute the basic elements of the society are the natural environment, population and culture. Through the relations of production derived all kinds of social relations, formed a community and conduct activities under the control of a certain code in order to continue normal operations and development in the community.
First, establish a harmonious concept. Thinking decides actions, concepts guide the development. To build a harmonious society, we must establish the start of harmonious concept. Our party has put forward the concept of scientific development and built strategic thinking of a harmonious socialist society, it is the succession, enrichment and development of scientific socialism theory, it is also deepen understanding of the Communist ruling Party law, socialist construction law, and the development law of human society, we must firmly establish the concept of development, a harmonious concept.
Adhere to the people-centered. The masses of the people are the fundamental force of building a socialist harmonious society, and are the true owner of a harmonious society. The essence of social development is human development. Study the progress of human society, we use productivity to measure the level of development, but also to evaluate by the degree of realization of the masses interests of the people, the two are unified.
Adhere to coordinated. Building a socialist harmonious society is a complex project, involving economic, political, cultural and social construction, in which all aspects of the party and the country are involved. This requires us to coordinate urban and rural development, regional development, economic and social development, the harmonious development of man and nature, and for domestic development and opening to the outside world, in order to adapt the mutual development of all aspects, coordinate between the various development sectors.
3. Discussion of the Results
As we know metaphor is a means of conceptualizing the foundation, framework, pillar, door, window of building understanding the life, theory, social groups, relationships, through which we can comprehend abstract concepts and perform abstract reasoning. Construction is an universal phenomena, “society, theory, civilization…” would experience such as construction, lay foundation, make a framework, train the talents, build relationship, open the door and window, since the construction is so pervasive and universal that we can easily gather the metaphors for the construction in English.
4. Conclusion
This paper presents a study of construction metaphors in English within a cognitive linguistic framework. Through the qualitative analysis, we have obtained such findings as First, “l(fā)ife, theory, friendships, social group” as basic abstract concepts which are important to our thinking and actions, are conceptualized through the metaphorical mapping from construct ontological and relatively concrete and highly-structured concepts. For example, “Life is building, theory is building, relationships are building, social groups are building.” These construction metaphors partially structure the concepts “l(fā)ife, theory, relationships, social group”, enrich our understanding “l(fā)ife, theory, relationships, social group” and consequently influence our reasoning and actions towards these concepts. This illustrates that our abstract experiences and reasoning are at least partially metaphorical.
參考文獻(xiàn):
[1] K.vecses, Zoltan. Metaphor: A Practical Introduction[M]. New York: Oxford University Press, 2002.
[2]Lakoff, G & Johnson, M. Metaphors We Live By[M]. Chicago: The University of Chicago Press, 1980.
[3]Lakoff, George. & K?vecses, Zoltán. The Cognitive Model of Anger Inherent in American English[M]. In Dorothy Holland and Naomi Quinn (eds.), 1987. 195---221.
[4]Lakoff, George. Women, Fire, and Dangerous Things[M]. Chicago: University of Chicago Press, 1987.
[5]藍(lán)純.《從認(rèn)知角度看漢語和英語的空間隱喻》[M]。北京: 外語教學(xué)與研究出版社,2003.
《VHDL語言程序設(shè)計(jì)》作為一門數(shù)字電路硬件描述語言課程,VHDL語言雖然與計(jì)算機(jī)程序設(shè)計(jì)語言有相似之處,但是從嚴(yán)格意義上講,VHDL程序不能稱為“程序”,而應(yīng)稱為“代碼”,其語句的運(yùn)行也不能稱為“執(zhí)行”,而應(yīng)稱為“實(shí)現(xiàn)”,因此VHDL語言程序設(shè)計(jì)具有不同計(jì)算機(jī)編程語言的編程方法與技巧。數(shù)字電路既有簡(jiǎn)單的組合電路,也有復(fù)雜的片上系統(tǒng),復(fù)雜的數(shù)字電路由簡(jiǎn)單基本電路組成。基本電路主要包括:多路選擇電路、加法器(減法器)、D觸發(fā)器、比較器、計(jì)數(shù)器、移位寄存器、三態(tài)門電路等。教學(xué)中采用實(shí)例安排組織教學(xué),由簡(jiǎn)單到復(fù)雜,并綜合考慮VHDL語法規(guī)則,對(duì)實(shí)例作恰當(dāng)?shù)厝∩岷徒虒W(xué)順序調(diào)整。課程教學(xué)分為三部分:簡(jiǎn)單實(shí)例講解、VHDL語法規(guī)則歸納與補(bǔ)充、復(fù)雜實(shí)例講解。1)簡(jiǎn)單實(shí)例講解:簡(jiǎn)單實(shí)例是數(shù)字系統(tǒng)設(shè)計(jì)的基本電路實(shí)例,通過典型實(shí)例的講解,使學(xué)生掌握VHDL語言規(guī)則和基本電路的設(shè)計(jì)。具體的講解過程如下:a.二選一多路選擇器通過該實(shí)例講解簡(jiǎn)單組合電路的設(shè)計(jì)方法,同時(shí)講解VHDL程序的基本結(jié)構(gòu),順序語句(IF語句、賦值語句)、并行語句(進(jìn)程語句、賦值語句),以及BIT數(shù)據(jù)類型、邏輯操作符等VHDL語法規(guī)則;b.D觸發(fā)器通過該實(shí)例講解時(shí)序電路的基本設(shè)計(jì)方法,同時(shí)講解的VHDL語法規(guī)則中的標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型、標(biāo)準(zhǔn)庫(kù)(程序包)、上升沿檢測(cè)表達(dá)式等VHDL語法規(guī)則;c.全加器通過該實(shí)例講解加法器(減法器)的基本設(shè)計(jì)方法,同時(shí)講解CASE語句、例化語句、矢量數(shù)據(jù)類型等VHDL語法規(guī)則;d.計(jì)數(shù)器通過該實(shí)例講解不同計(jì)數(shù)器的設(shè)計(jì)方法,同時(shí)介紹常用數(shù)據(jù)類型、重載運(yùn)算符等VHDL語法規(guī)則;e.移位寄存器通過該實(shí)例講解移位寄存器的設(shè)計(jì)方法,同時(shí)講解VHDL的功能仿真、時(shí)序仿真;f.復(fù)雜多路選擇器分析復(fù)雜多路選擇器實(shí)例,講解信號(hào)與變量的區(qū)別;g.三態(tài)門電路通過該實(shí)例講解三態(tài)門電路的設(shè)計(jì)方法,以滿足現(xiàn)實(shí)數(shù)字電路系統(tǒng)中數(shù)據(jù)總線設(shè)計(jì)的需要。2)VHDL語法規(guī)則總結(jié)和補(bǔ)充簡(jiǎn)單實(shí)例講解中的實(shí)例不可能覆蓋所有的VHDL語法規(guī)則,因此在實(shí)例講解后,需要對(duì)VHDL語法規(guī)則總結(jié)和補(bǔ)充。在具體教學(xué)實(shí)施中,可以采用提問法對(duì)所學(xué)的VHDL語法規(guī)則歸納總結(jié),同時(shí)補(bǔ)充遺漏的VHDL語法規(guī)則。3)16位CPU復(fù)雜實(shí)例講解復(fù)雜實(shí)例能夠深化和提升學(xué)生所學(xué)的知識(shí),培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力。以16CPU設(shè)計(jì)為基礎(chǔ),講解復(fù)雜數(shù)字電路的設(shè)計(jì),同時(shí)講解設(shè)計(jì)中所涉及的新知識(shí),主要包括原理圖設(shè)計(jì)方法、宏模塊的調(diào)用、狀態(tài)機(jī)設(shè)計(jì)。
(二)實(shí)例教學(xué)法實(shí)施的注意事項(xiàng)
在實(shí)例教學(xué)實(shí)施中,要注重學(xué)生的主體性,提出問題,解決問題,對(duì)所講的實(shí)例做到深層次分析,舉一反三,注重程序設(shè)計(jì)的靈活掌握。實(shí)例的講解和VHDL語法規(guī)則的講解是同步的過程,沒有嚴(yán)格前后之分,語法規(guī)則的講解融合在實(shí)例講解中。
(三)實(shí)例教學(xué)法的教學(xué)效果
近四年來,本人一直負(fù)責(zé)該課程的教學(xué)工作,其中最近兩年采用了實(shí)例教學(xué)法安排教學(xué),實(shí)踐表明實(shí)例教學(xué)法的應(yīng)用有效提高了教學(xué)效果。根據(jù)學(xué)校的網(wǎng)上統(tǒng)計(jì)教學(xué)評(píng)價(jià),近兩年的學(xué)生教學(xué)評(píng)價(jià)效果由良好達(dá)到了優(yōu)秀的水平;根據(jù)本文作者的課后不記名統(tǒng)計(jì),非常滿意和滿意率由80上升到93%。本文來自于《學(xué)術(shù)論壇》雜志。學(xué)術(shù)論壇雜志簡(jiǎn)介詳見
(四)結(jié)束語
關(guān)鍵詞:數(shù)字邏輯;實(shí)驗(yàn)教學(xué);實(shí)驗(yàn)課題設(shè)計(jì);教學(xué)改革;VHDL
自20世紀(jì)90年代以來,隨著電子科學(xué)技術(shù)的進(jìn)步,大規(guī)模集成電路PLD芯片逐漸取代了數(shù)字系統(tǒng)中傳統(tǒng)的分離元件和小規(guī)模集成電路。同時(shí),數(shù)字系統(tǒng)和計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)方法向“硬件設(shè)計(jì)軟件化”轉(zhuǎn)變。用硬件設(shè)計(jì)語言設(shè)計(jì)數(shù)字系統(tǒng)和計(jì)算機(jī)系統(tǒng)的技術(shù)日益成熟且越來越廣泛地得到應(yīng)用。雖然,高校數(shù)字邏輯課程的教學(xué)內(nèi)容也有一些相應(yīng)的調(diào)整,但是實(shí)驗(yàn)教學(xué)的改革往往明顯落后。
數(shù)字邏輯是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)重要的基礎(chǔ)課之一,也是學(xué)生感覺學(xué)習(xí)比較困難的課程之一。我校計(jì)算機(jī)專業(yè)的數(shù)字邏輯課程的實(shí)驗(yàn)教學(xué)過去一直是在實(shí)驗(yàn)箱上插接集成電路芯片和連接線的方式,實(shí)驗(yàn)內(nèi)容以驗(yàn)證性實(shí)驗(yàn)為主,實(shí)驗(yàn)效果很不理想,實(shí)驗(yàn)教學(xué)與理論教學(xué)的銜接不好,沒有真正起到“通過實(shí)驗(yàn)加深對(duì)理論知識(shí)的理解”和“理論與實(shí)際相結(jié)合”的作用。學(xué)生雖然在課堂上學(xué)習(xí)了VHDL編程并做了一些習(xí)題,但是并不知道究竟什么樣的程序才是正確的,而要想知道VHDL程序是否正確的唯一方法是編譯和仿真。為了提高數(shù)字邏輯課程的教學(xué)效果,并且與新增加的VHDL語言教學(xué)內(nèi)容相呼應(yīng),筆者進(jìn)行了數(shù)字邏輯課程的實(shí)驗(yàn)教學(xué)改革探索。通過“做中學(xué)”[1],使學(xué)生真正掌握用VHDL進(jìn)行邏輯設(shè)計(jì)的方法。放棄在實(shí)驗(yàn)箱上插接集成電路芯片和連接線的方式,改變?yōu)樵赒uartus軟件平臺(tái)上用VHDL語言編程和仿真實(shí)驗(yàn)。從以驗(yàn)證性實(shí)驗(yàn)為主轉(zhuǎn)變?yōu)橐栽O(shè)計(jì)性實(shí)驗(yàn)為主,不僅使學(xué)生學(xué)到了最新的技術(shù),而且為后繼課程計(jì)算機(jī)組成原理的進(jìn)一步教學(xué)改革奠定了基礎(chǔ)。
1實(shí)驗(yàn)課題的設(shè)計(jì)
根據(jù)教學(xué)計(jì)劃,本課程的實(shí)驗(yàn)為12學(xué)時(shí),安排6個(gè)實(shí)驗(yàn)。除第1個(gè)實(shí)驗(yàn)是熟悉Quartus系統(tǒng)的使用外,其余5個(gè)實(shí)驗(yàn)都是設(shè)計(jì)性實(shí)驗(yàn)。
1.1設(shè)計(jì)思想
實(shí)驗(yàn)課題的設(shè)計(jì)是開展設(shè)計(jì)性實(shí)驗(yàn)教學(xué)必須妥善處理的關(guān)鍵問題之一。實(shí)驗(yàn)課題應(yīng)該有合適的難度,使得大部分學(xué)生在現(xiàn)有基礎(chǔ)上通過自己的分析和努力能夠做出設(shè)計(jì)(不一定是完全正確的設(shè)計(jì))。實(shí)驗(yàn)課題應(yīng)該在本課程教學(xué)的重要知識(shí)點(diǎn)范圍內(nèi),通過實(shí)驗(yàn)可以使學(xué)生更好地掌握相關(guān)知識(shí)點(diǎn),實(shí)現(xiàn)理論教學(xué)與實(shí)驗(yàn)教學(xué)相輔相成。實(shí)驗(yàn)課題應(yīng)該在書本或網(wǎng)絡(luò)等其他信息源上沒有現(xiàn)成的解答,學(xué)生必須自己進(jìn)行分析設(shè)計(jì)才能得到解答。
在高度網(wǎng)絡(luò)化和信息化的今天,各種教材、參考書和網(wǎng)絡(luò)上已經(jīng)有很多的VHDL語言程序的實(shí)例,為了保證學(xué)生是真正做設(shè)計(jì),筆者在設(shè)計(jì)實(shí)驗(yàn)課題時(shí)也廣泛查找了資料。有幾個(gè)設(shè)想的課題就因?yàn)榘l(fā)現(xiàn)有相同的VHDL語言程序?qū)嵗嬖诙环穸āW詈蟠_定的5個(gè)實(shí)驗(yàn)課題,到目前為止還沒有發(fā)現(xiàn)有相同的VHDL語言程序?qū)嵗_@5個(gè)實(shí)驗(yàn)課題包括2個(gè)組合邏輯設(shè)計(jì)實(shí)驗(yàn)課題和3個(gè)時(shí)序邏輯設(shè)計(jì)實(shí)驗(yàn)課題。實(shí)驗(yàn)課題的難度和復(fù)雜程度是逐漸增加的。除了基本實(shí)驗(yàn)外,還為少數(shù)學(xué)有余力的學(xué)生設(shè)計(jì)了選做題目。
1.2實(shí)驗(yàn)課題
1) 實(shí)驗(yàn)課題一。
設(shè)計(jì)一個(gè)代碼轉(zhuǎn)換邏輯電路。把7位的ASCII碼轉(zhuǎn)換成7段字符顯示代碼。能顯示數(shù)字0~9,字母A、b、C、d、E、F、H、L、o、P、U、Γ和一些符號(hào)(-、_、=、┫、┣、、)等。用VHDL語言編程并仿真。
2) 實(shí)驗(yàn)課題二。
設(shè)計(jì)一個(gè)多功能的運(yùn)算器,有控制信號(hào)M、S2、S1、S0。當(dāng)M=1,在S2、S1、S0的控制下能完成兩個(gè)1位二進(jìn)制數(shù)A、B的以下算術(shù)運(yùn)算:A加B,A加1,A加B和低位來的進(jìn)位,B加1,A加 ,A加0,A加A,A加 加1。當(dāng)M=0,作邏輯運(yùn)算。在S2、S1、S0的控制下能完成兩個(gè)1位二進(jìn)制數(shù)A、B的以下邏輯運(yùn)算:A+B,A•B, , , , , , ,等。用VHDL語言編程并仿真。
3) 實(shí)驗(yàn)課題三。
設(shè)計(jì)一個(gè)自動(dòng)售飲料機(jī)的控制邏輯電路。該機(jī)器有一個(gè)投幣口,每次只能投入1枚1元或5角的硬幣。當(dāng)投入了1元5角的硬幣,機(jī)器自動(dòng)給出1杯飲料。當(dāng)投入了2元的硬幣,機(jī)器在自動(dòng)給出1杯飲料時(shí),還找回1枚5角的硬幣。
確定輸入/輸出變量、電路的狀態(tài)并化簡(jiǎn),做出狀態(tài)轉(zhuǎn)換圖、狀態(tài)轉(zhuǎn)換表。在完成以上邏輯設(shè)計(jì)后,用VHDL語言編程并仿真。
4) 實(shí)驗(yàn)課題四。
用74HC163設(shè)計(jì)一個(gè)十九進(jìn)制計(jì)數(shù)器。用VHDL層次結(jié)構(gòu)設(shè)計(jì)方法設(shè)計(jì)程序并仿真,底層器件是74HC163。
完成以上題目后,還可以選做題:用74HC163設(shè)計(jì)一個(gè)余3碼計(jì)數(shù)器。用VHDL層次結(jié)構(gòu)設(shè)計(jì)方法設(shè)計(jì)程序并仿真,底層器件是74HC163。
5) 實(shí)驗(yàn)課題五。
實(shí)驗(yàn)課題五有兩個(gè)題目,學(xué)生可以任選一個(gè)。
題目一:設(shè)計(jì)一個(gè)可控計(jì)數(shù)器,當(dāng)控制信號(hào)S=0時(shí),是五進(jìn)制計(jì)數(shù)器,當(dāng)控制信號(hào)S=1時(shí),是十五進(jìn)制計(jì)數(shù)器。設(shè)計(jì)出邏輯圖。分別用兩種不同的方法設(shè)計(jì)(行為描述,結(jié)構(gòu)描述),用VHDL語言編程并仿真。
題目二:設(shè)計(jì)一個(gè)數(shù)字鐘電路,要求能用7段數(shù)碼管顯示從0時(shí)0分0秒到23時(shí)59分59秒之間的所有時(shí)間。做出邏輯圖。用VHDL語言編程并仿真。
2教學(xué)效果分析
實(shí)驗(yàn)課題一的目的是強(qiáng)化譯碼器、7段字符顯示代碼和ASCII碼等知識(shí)點(diǎn)。學(xué)生可以參考書上的BCD碼-7段字符顯示譯碼器的VHDL程序做這個(gè)設(shè)計(jì),但是要實(shí)現(xiàn)那些特殊符號(hào)的顯示還是需要?jiǎng)幽X筋的。實(shí)驗(yàn)結(jié)果顯示,學(xué)生基本上都能做出數(shù)字和字母的顯示代碼設(shè)計(jì),但是極少有能做出那些特殊符號(hào)的顯示代碼設(shè)計(jì)的。
實(shí)驗(yàn)課題二的目的是強(qiáng)化加法器、全加器、算術(shù)運(yùn)算、進(jìn)位和邏輯運(yùn)算等知識(shí)點(diǎn),并且考慮到與后繼課程計(jì)算機(jī)組成原理的ALU等知識(shí)點(diǎn)教學(xué)的銜接。學(xué)生做設(shè)計(jì)時(shí)可以參考1位全加器的VHDL程序。很多學(xué)生在做實(shí)驗(yàn)之前認(rèn)為這個(gè)題目很簡(jiǎn)單,只要用VHDL語言的算術(shù)運(yùn)算符就可以了。開始做實(shí)驗(yàn)才發(fā)現(xiàn)根本不是那樣,必須先推導(dǎo)出每個(gè)運(yùn)算功能的邏輯表達(dá)式才能編程,而相當(dāng)多的學(xué)生忘記了算術(shù)運(yùn)算還有進(jìn)位的邏輯表達(dá)式。這個(gè)實(shí)驗(yàn)確實(shí)達(dá)到了強(qiáng)化上述知識(shí)點(diǎn)的目的。
實(shí)驗(yàn)課題三的目的是強(qiáng)化狀態(tài)機(jī)和Mealy型時(shí)序邏輯電路設(shè)計(jì)等知識(shí)點(diǎn)。學(xué)生做設(shè)計(jì)時(shí)可以參考狀態(tài)機(jī)的VHDL程序。經(jīng)過這個(gè)實(shí)驗(yàn),大部分學(xué)生真正懂得了什么是狀態(tài)機(jī),時(shí)序邏輯電路是在時(shí)鐘信號(hào)的作用下發(fā)生狀態(tài)轉(zhuǎn)變的,另外還有怎樣確定有哪些狀態(tài)和做狀態(tài)化簡(jiǎn)。
實(shí)驗(yàn)課題四的目的是強(qiáng)化計(jì)數(shù)器、用集成計(jì)數(shù)器實(shí)現(xiàn)任意進(jìn)制計(jì)數(shù)器和Moore型時(shí)序邏輯電路設(shè)計(jì)等知識(shí)點(diǎn),也是學(xué)生第一次用VHDL結(jié)構(gòu)描述的方法做設(shè)計(jì)。學(xué)生做設(shè)計(jì)時(shí)可以利用書上的74HC163的VHDL程序例子。通過這個(gè)實(shí)驗(yàn)學(xué)生進(jìn)一步理解了觸發(fā)器和計(jì)數(shù)器,掌握了用集成計(jì)數(shù)器實(shí)現(xiàn)任意進(jìn)制計(jì)數(shù)器的方法和用VHDL結(jié)構(gòu)描述做邏輯電路設(shè)計(jì)的基本方法。選做題是為少數(shù)學(xué)習(xí)好、能力強(qiáng)的學(xué)生準(zhǔn)備的,使這部分學(xué)生有機(jī)會(huì)得到更多的訓(xùn)練和提高。選做題還可以使學(xué)生掌握余3碼的概念,確實(shí)也有很少的幾個(gè)學(xué)生完成了選做題。
實(shí)驗(yàn)課題二和實(shí)驗(yàn)課題三都是用行為描述的方法進(jìn)行邏輯電路設(shè)計(jì),比較容易掌握,實(shí)驗(yàn)成功率較高,而實(shí)驗(yàn)課題四要求用結(jié)構(gòu)描述的方法做邏輯電路設(shè)計(jì)。在實(shí)驗(yàn)中間發(fā)現(xiàn),相當(dāng)多學(xué)生并沒有理解結(jié)構(gòu)描述的概念,也不知道應(yīng)該怎樣做。因此,實(shí)驗(yàn)課題五繼續(xù)強(qiáng)化用結(jié)構(gòu)描述的方法做邏輯電路設(shè)計(jì)。
實(shí)驗(yàn)課題五題目中的第一個(gè),目的是鞏固用集成計(jì)數(shù)器實(shí)現(xiàn)任意進(jìn)制計(jì)數(shù)器和Mealy型時(shí)序邏輯電路設(shè)計(jì)等知識(shí)點(diǎn)。同時(shí),也使學(xué)生進(jìn)一步掌握用行為描述和結(jié)構(gòu)描述進(jìn)行設(shè)計(jì)的方法。雖然這個(gè)題目相對(duì)第二個(gè)題目要簡(jiǎn)單一些,但是由于要求分別用行為描述和結(jié)構(gòu)描述兩種方法進(jìn)行設(shè)計(jì),所以總的工作量比實(shí)驗(yàn)課題四要多。這兩個(gè)題目中的第2個(gè)不僅難度更大、更復(fù)雜,而且其設(shè)計(jì)還要考慮如何仿真的問題,是一個(gè)有挑戰(zhàn)性的題目。然而,選擇這個(gè)題目的學(xué)生卻出乎意料得多,而且有若干種不同的設(shè)計(jì)思想,既有用結(jié)構(gòu)描述的也有用行為描述的。雖然在2個(gè)小時(shí)的時(shí)間內(nèi),幾乎沒有學(xué)生完全正確地完成這個(gè)高難度實(shí)驗(yàn)的設(shè)計(jì)和仿真,但是有個(gè)別學(xué)生在以后的幾個(gè)星期里仍然繼續(xù)探討并最終正確地完成了這個(gè)實(shí)驗(yàn)。像數(shù)字鐘這樣的復(fù)雜實(shí)驗(yàn),在過去想要用中小規(guī)模集成電路在實(shí)驗(yàn)箱上插接連線的方式完成是不可想象的,但是現(xiàn)在用Quartus系統(tǒng)上設(shè)計(jì)和仿真的方式卻是可以完成的。
設(shè)計(jì)性實(shí)驗(yàn)比驗(yàn)證性實(shí)驗(yàn)的難度有明顯提高,學(xué)生也要花更多的時(shí)間做預(yù)習(xí)、設(shè)計(jì)和寫實(shí)驗(yàn)報(bào)告。在學(xué)習(xí)數(shù)字邏輯之前的各課程(物理、電路、模擬電子)實(shí)驗(yàn)都是驗(yàn)證性實(shí)驗(yàn),大部分學(xué)生已經(jīng)養(yǎng)成不做實(shí)驗(yàn)預(yù)習(xí)的習(xí)慣。在做第一個(gè)實(shí)驗(yàn)(熟悉Quartus系統(tǒng))時(shí)就發(fā)現(xiàn)很多學(xué)生基本上是進(jìn)了實(shí)驗(yàn)室才開始看實(shí)驗(yàn)指導(dǎo)。結(jié)果是兩個(gè)小時(shí)過去了,一部分學(xué)生并沒有掌握VHDL程序調(diào)試和仿真的基本方法,個(gè)別學(xué)生輸入的源程序甚至連編譯都沒有通過。針對(duì)這個(gè)問題,我們采取了要求學(xué)生提前做實(shí)驗(yàn)預(yù)習(xí),寫出實(shí)驗(yàn)設(shè)計(jì)和程序才允許進(jìn)實(shí)驗(yàn)室做實(shí)驗(yàn)的措施,并且在逐位點(diǎn)名時(shí)逐個(gè)檢查實(shí)驗(yàn)預(yù)習(xí)。實(shí)驗(yàn)教學(xué)改革也在一定程度上調(diào)動(dòng)了學(xué)生的積極性。
3結(jié)語
用VHDL語言設(shè)計(jì)組合邏輯電路和時(shí)序邏輯電路的方法與傳統(tǒng)的用邏輯代數(shù)和邏輯圖設(shè)計(jì)的方法有很大不同,特別是行為描述的方法很容易掌握。用軟件工具對(duì)所做設(shè)計(jì)進(jìn)行仿真以檢驗(yàn)設(shè)計(jì)的正確性比在面包板上插接、連線、調(diào)試要方便容易,避免了接觸不良造成的故障和連線錯(cuò)誤損壞器件等問題,實(shí)驗(yàn)成功率高、消耗低。學(xué)生不僅要做邏輯設(shè)計(jì),還要做仿真輸入波形設(shè)計(jì)。仿真輸出波形直觀地表現(xiàn)了邏輯功能的正確與否。部分學(xué)生自己有計(jì)算機(jī),可以提前做出設(shè)計(jì)并編程,在進(jìn)入實(shí)驗(yàn)室后能夠在比較短的時(shí)間里完成實(shí)驗(yàn);也有一些學(xué)生由于設(shè)計(jì)錯(cuò)誤,在實(shí)驗(yàn)室沒有完成實(shí)驗(yàn),是回去以后繼續(xù)用自己的計(jì)算機(jī)改正程序、完成仿真的。
從實(shí)際教學(xué)效果看,上述實(shí)驗(yàn)課題的設(shè)計(jì)是成功的。大部分學(xué)生通過設(shè)計(jì)和實(shí)驗(yàn)都有不同程度的提高,基本上理解了有關(guān)的知識(shí)點(diǎn),掌握了VHDL程序設(shè)計(jì)、調(diào)試和仿真方法。從后來的調(diào)查問卷的結(jié)果看,大部分學(xué)生認(rèn)為數(shù)字邏輯實(shí)驗(yàn)“不是很難”(4個(gè)選項(xiàng)分別是太難、不是很難、很簡(jiǎn)單、不能理解),只有少數(shù)學(xué)生不喜歡這種設(shè)計(jì)性實(shí)驗(yàn)。
數(shù)字邏輯課程的實(shí)驗(yàn)教學(xué)改革探索取得了初步成功,今后還將繼續(xù)改進(jìn),也希望與其他學(xué)校的教師交流教學(xué)改革的經(jīng)驗(yàn)和教訓(xùn),共同提高。
參考文獻(xiàn):
[1] 黎忠文,向兆山.“做中學(xué)”模式在計(jì)算機(jī)教學(xué)中的探索[J]. 計(jì)算機(jī)教育,2006(10):30-32.
Exploration of Experiment Teaching of Digital Logic
SHENG Jian-lun
(School of Computer, Qingdao Technological University, Qingdao 266033, China)
引言
VHDL是一種硬件描述語言,于1983年被IEEE制定為國(guó)際標(biāo)準(zhǔn)IEEE1076。近年來國(guó)內(nèi)引進(jìn)和出版了不少教材,使其在國(guó)內(nèi)得到迅速推廣。由于VHDL最初目的是為了實(shí)現(xiàn)硬件的建模而被提出的,所以其措施能力超越了數(shù)字邏輯集成電路的范圍。而現(xiàn)有的EDA工具基本上只能支持VHDL的子集,特別是針對(duì)FPGA/CPLD器件進(jìn)行的不同的綜合工具,其綜合子集并非統(tǒng)一,不少初學(xué)者很難掌握。即使是部分有經(jīng)驗(yàn)的設(shè)計(jì)者,對(duì)于通常高級(jí)語言中都會(huì)涉及的循環(huán)語句,在VHDL中往往也不能運(yùn)用自如,甚至無法表達(dá)此類邏輯,從而限制了VHDL的應(yīng)用水平。例如,VHDL的并行堆排序描述就是一個(gè)比較典型的例子。該實(shí)例十分類似通常數(shù)據(jù)結(jié)構(gòu)的描述,推廣前景誘人;但只能通過仿真,卻不能在目前任何一個(gè)EDA工具進(jìn)行綜合,導(dǎo)致無實(shí)用價(jià)值。
本文從高級(jí)語言涉及最多的Loop語句出發(fā),討論如何在VHDL中解決這類問題。
1 無法綜合的Loop動(dòng)態(tài)條件
VHDL中Loop表達(dá)式有三種體現(xiàn)形式:While……Loop、For……Loop和單獨(dú)的Loop語句。它還支持Next、Exit和標(biāo)號(hào),因此,循環(huán)語句的表達(dá)能力大于常規(guī)的C或PASCAL語言。程序1是利用For語句和While語句描述插入算法的部分代碼。
程序1 不可綜合的VHDL循環(huán)語句
……
for I in 2 to Length loop ---Length為一個(gè)變量
Temp:=MyList(I);
J:=I;
While(j>1)and MyList(j-1)<Temp loop
MyList(j):=MyList(j-1);
j:=j-1;
End loop;
MyList(j):=Temp;
End loop;
……
對(duì)于第一個(gè)For語句,EDA工具Synplify綜合時(shí)將會(huì)給出無邊界的范圍錯(cuò)誤提示。
@E:"H:.vhd"|for loops with unbound ranges should contain w wait statement
即使部分優(yōu)秀的綜合工具,例如ORCAD Express、Mentor Grpahs QuickHDL等能夠綜合第一個(gè)For語句,也無法支持第二個(gè)While條例表達(dá)式。ORCAD Express將給出表達(dá)式不可靜態(tài)計(jì)算的錯(cuò)誤提示。
..vhd(45):Error,expression does not evaluate to a constant.
由于程序1在C程序員看來是沒有問題的,因此,初學(xué)者往往不能解決好此類問題,從而使學(xué)習(xí)陷入困境,無法充分利用VHDL來表述邏輯。
2 直接代換法
對(duì)于第一類無邊界的范圍錯(cuò)誤問題,可以用循環(huán)的綜合機(jī)制轉(zhuǎn)化為相應(yīng)的語句。例如下面代碼:
for I in 0 to 1 loop
Out_Bus(i)<=In_Bus(i);
End loop;
其對(duì)應(yīng)綜合后的電路見圖1。
相應(yīng)的,也可以用下列語句直接代入代換:
Out_Bus(0)<=In_Bus(0);
Out_Bus(1)<=In_Bus(1);
程序1可以采用下列VHDL代碼表示:
K:=2;
Temp:=MyList(2);
If(MyList(1)<Temp then
MyList(2):=MyList(1);
J:=1;
End if;
MyList(J):=Temp;
J:=3;
Temp:=MyList(3);
If(MyList(2)<Temp then
MyList(3):=MyList(2);
J:=2;
End if;
If(MyList(1)<Temp then
MyList(2):=MyList(1);
J:=1;
End if;
MyList(J):=Temp;
……
然而,這種使用方法要求設(shè)計(jì)者清楚循環(huán)條件一定會(huì)執(zhí)行的次數(shù),否則將無法實(shí)施。當(dāng)循環(huán)次數(shù)比較大時(shí),代碼編寫工作量將十分龐大,因此可以采用第二種方法——邊界擴(kuò)充法。
3 邊界擴(kuò)充法
邊界擴(kuò)充法是指在邊界未定時(shí),可以將邊界定為最大可能的范圍,即用靜態(tài)表達(dá)來替代。例如程序1的代碼可以改寫為:
constant MAX:integer=100; --MAX必須大于MyLen所有可能的取值
……
Out_loop:for I in 2 to MAX loop
Exit out_loop when I>MyLen; --MyLen為變量
Temp:=MyList(I);
countj:=I;
inter_loop:for j in I downto 2 loop
countj:=j;
exit inter_loop when MyList(j-1)<Temp; --退出循環(huán)
MyList(j):=MyList(j-1);
End loop;
MyList(countj):=Temp;
End loop;
盡管這種方法可以處理未知邊界和未定表達(dá)式的情況,但十分消耗空間,特別是當(dāng)MyLen相對(duì)MAX比較小的時(shí)候,代價(jià)非常大。此時(shí),可以利用時(shí)間換空間的方法進(jìn)行轉(zhuǎn)換。
圖1 For語句的綜合示例
4 計(jì)數(shù)器法
計(jì)數(shù)器法是指引入時(shí)鐘和計(jì)數(shù)器,用計(jì)數(shù)器對(duì)邊界條件進(jìn)行控制,也可以將動(dòng)態(tài)表達(dá)式直接代入轉(zhuǎn)化相應(yīng)的靜態(tài)表達(dá)式。例如,上述代碼的For條件可以用下列代碼替換:
if(Reset='1')then
I:=2;
Elsif clk='1'and clk'event then
Temp:=MyList(I);
J:=2;
While(j>1)and MyList(j-1)<Temp loop
MyList(j):=MyList(j-1);
j:=j-1;
End loop;
MyList(j):=Temp;
I:=(I+1);
If(I=MyLen+1)then I:=2;end if;
End if;
相比原來的代碼,引入了1個(gè)時(shí)鐘和1個(gè)復(fù)位。但綜合開銷最大的循環(huán)語句卻被取代了,因此,綜合產(chǎn)生門的數(shù)目將大幅度下降,但處理時(shí)間將相應(yīng)延長(zhǎng)到原來循環(huán)條件范圍。
本刊網(wǎng)絡(luò)補(bǔ)充版(dpj.com.cn)中發(fā)表了四個(gè)源代碼,分別為不可綜合例子、直接代換法、邊界擴(kuò)充法和計(jì)算器法,內(nèi)部都有相應(yīng)注釋。其中計(jì)數(shù)器法改進(jìn)為雙計(jì)數(shù)器方法。
[關(guān)鍵詞] EDA技術(shù) 空調(diào)控制系統(tǒng) VHDL語言 仿真
引言
空調(diào)控制系統(tǒng)是智能建筑樓宇自動(dòng)控制的一個(gè)重要組成部分。系統(tǒng)占據(jù)整個(gè)樓宇自動(dòng)化系統(tǒng)的30%以上的監(jiān)控點(diǎn),而且空調(diào)的能耗也占整個(gè)建筑物能耗的50%以上。因此,空調(diào)控制系統(tǒng)的設(shè)計(jì)是整個(gè)樓宇自控系統(tǒng)設(shè)計(jì)的重點(diǎn)之一,也是節(jié)電節(jié)能的重點(diǎn),特別對(duì)于大型建筑而言,更是如此。本文設(shè)計(jì)一種新型空調(diào)控制器,并采用了電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù),用目前廣泛應(yīng)用的VHDL硬件電路描述語言,在Altera公司的MAX+PLUSⅡ集成開發(fā)環(huán)境下進(jìn)行綜合、仿真,并下載到可編程邏輯器件中,以實(shí)現(xiàn)控制功能。
一、空調(diào)控制系統(tǒng)結(jié)構(gòu)
空調(diào)控制系統(tǒng)結(jié)構(gòu)如圖1所示,首先由傳感器檢測(cè)室內(nèi)溫度,并將采集來的數(shù)據(jù)傳輸?shù)娇刂葡到y(tǒng)的預(yù)處理單元,在預(yù)處理單元將采集來的溫度信號(hào)與設(shè)定值相比較,來判斷當(dāng)前的狀態(tài)(太熱、太冷或適中),然后將處理結(jié)果傳輸?shù)娇刂茊卧詈笥蓤?zhí)行機(jī)構(gòu)接受控制單元輸出的控制信號(hào),控制室內(nèi)空調(diào)。
二、控制單元的EDA實(shí)現(xiàn)
1.控制單元的芯片功能
控制芯片如圖2,有三個(gè)輸入端時(shí)鐘端clk,temp_high和temp_low,兩個(gè)輸出端heat和cool,高電平有效。如果室內(nèi)溫度正常, temp_high和temp_low均為‘0’,則輸出端heat和cool均為‘0’。如果室內(nèi)溫度過高,temp_high為‘1’,temp_low為‘0’,則heat和cool分別為‘1’和‘0’,空調(diào)制冷。如果室內(nèi)溫度過低,temp_high為‘0’,temp_low為‘1’,則heat和cool分別為‘0’和‘1’,空調(diào)制熱。
2.控制單元芯片的VHDL代碼
VHDL(Very-High-Speed integrated Circuit Hardware Description Language)是IEEE工業(yè)標(biāo)準(zhǔn)硬件描述語言,是隨著可編程邏輯器件(PLD)的發(fā)展而發(fā)展起來的。這種用語言描述硬件電路的方式,容易修改和保存,且具有很強(qiáng)的行為描述能力,所以在電路設(shè)計(jì)中得到了廣泛應(yīng)用。以下是描述控制單元VHDL代碼.
library ieee;
use ieee.std_logic_1164.all;
entity air_conditioner is
port (clk:in std_logic;--時(shí)鐘輸入信號(hào)
temp_low:in std_logic; --過冷傳感器輸入信號(hào)
temp_high:in std_logic;--過熱傳感器輸入信號(hào)
heat:out std_logic;--制熱輸出信號(hào)
cool:out std_logic); --制冷輸出信號(hào)
end air_conditioner;
architecture style_b of air_conditioner is
type state_type is (just_right,too_cold,too_hot);
attribute sequential_encoding :string;--定義state_type的屬性sequential_encoding
attribute sequential_encoding of state_type:type is"00 01 10";
signal stvar:state_type;
attribute state_vector:string; --定義stvar的屬性state_vector
attribute state_vector of style_b:architecture is "stvar";
begin
controller1:process
--clk是該進(jìn)程的敏感信號(hào),當(dāng)clk變?yōu)椤?’時(shí),激活進(jìn)程
Begin
--等待clk變?yōu)椤?’
wait until clk=’1’;
--根據(jù)temp_low和temp_high的值決定stvar的值
if (temp_low=‘1’) then stvar
elsif (temp_high=‘1’) then stvar
else stvar
end if;
--根據(jù)stvar的值決定heat和cool的值,從而控制空調(diào)制冷、制熱或保持不變
case stvar is
when just_right=>heat
when too_cold=>heat
when too_hot=>heat
end case;
end process controller1;
end style_b;
3.控制單元芯片的功能仿真
控制單元芯片系統(tǒng)采用ALTERA公司的EPF8282ALC84-2芯片,所有程序在MAX+PLUSⅡ中開發(fā)。設(shè)計(jì)輸入完成后,進(jìn)行整體的編譯和邏輯仿真,然后進(jìn)行轉(zhuǎn)換、布局、布線,延時(shí)仿真生成配置文件,最后下載至FPGA器件,完成結(jié)構(gòu)功能配置,實(shí)現(xiàn)其硬件功能。控制芯片的系統(tǒng)邏輯功能仿真波形如圖3所示。各信號(hào)的邏輯功能和時(shí)序配置完全達(dá)到設(shè)計(jì)要求。
三、結(jié)束語
本文設(shè)計(jì)的空調(diào)控制系統(tǒng),可以根據(jù)室溫的變化控制空調(diào)制冷或制熱,起到調(diào)節(jié)室內(nèi)溫度的作用,特別是大大降低了空調(diào)的能耗。本系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定、實(shí)現(xiàn)方便,成本低的優(yōu)點(diǎn),因此極具市場(chǎng)競(jìng)爭(zhēng)力。
參考文獻(xiàn):
[1]侯伯亨:VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1999
關(guān)鍵詞:EDA;計(jì)算機(jī)組成實(shí)驗(yàn)課程;實(shí)驗(yàn)教學(xué);創(chuàng)新
實(shí)驗(yàn)教學(xué)是將學(xué)生的書本知識(shí)轉(zhuǎn)化為動(dòng)手能力,深入理解理論知識(shí)的必不可少的一環(huán)。實(shí)驗(yàn)教學(xué)對(duì)于培養(yǎng)創(chuàng)新性人才,激發(fā)學(xué)生學(xué)習(xí)的熱情和創(chuàng)新能力有著極為重要的作用。特別在知識(shí)日新月異的時(shí)代,創(chuàng)新性人才的培養(yǎng)勢(shì)在必行[1-2]。
計(jì)算機(jī)組成原理是電子信息類各專業(yè)的專業(yè)基礎(chǔ)課,重點(diǎn)在于講授計(jì)算機(jī)的各部件的組成原理及部件之間有何種數(shù)據(jù)流和控制流以協(xié)調(diào)工作,建立整機(jī)的概念。計(jì)算機(jī)組成實(shí)驗(yàn)課程是配合這門課程學(xué)習(xí)的一門單列實(shí)驗(yàn)課,計(jì)算機(jī)組成實(shí)驗(yàn)是我校的四川省精品課程――計(jì)算機(jī)組成原理系列課程體系的一個(gè)重要組成部分。如何很好地組織計(jì)算機(jī)組成實(shí)驗(yàn),從實(shí)驗(yàn)的內(nèi)容、方式、激發(fā)學(xué)生的熱情上,教學(xué)工作者都進(jìn)行了大量的探討[3-4]。
隨著電子技術(shù)的不斷發(fā)展,計(jì)算機(jī)組成實(shí)驗(yàn)平臺(tái)從以軟件平臺(tái)的仿真為主,逐步向以硬件平臺(tái)為主、軟件仿真為輔的方向轉(zhuǎn)變。在實(shí)驗(yàn)中,可以選擇不同廠家生產(chǎn)的專用的實(shí)驗(yàn)器件進(jìn)行,也可以基于EDA方式進(jìn)行[5-7]。EDA(electronic design automatic)是現(xiàn)代電子設(shè)計(jì)的核心,它以計(jì)算機(jī)為基礎(chǔ),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語言HDL(hardware description language)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)進(jìn)行編譯、優(yōu)化、邏輯綜合、結(jié)構(gòu)綜合[7],在調(diào)試編譯正確后,再配置引腳下載到實(shí)驗(yàn)電路板上。基于EDA的計(jì)算機(jī)組成實(shí)驗(yàn)不僅可以更好地進(jìn)行計(jì)算機(jī)硬件系統(tǒng)的邏輯設(shè)計(jì),同時(shí)可以提高硬件設(shè)計(jì)水平及硬件實(shí)現(xiàn)效率,使學(xué)生學(xué)習(xí)到EDA的開發(fā)軟件和開發(fā)語言,更好地適應(yīng)電子設(shè)計(jì)的新技術(shù),同時(shí)為將來就業(yè)奠定基礎(chǔ)。在下載到實(shí)驗(yàn)板之前整個(gè)設(shè)計(jì)是在EDA工具軟件環(huán)境中進(jìn)行,學(xué)生可以進(jìn)行反復(fù)的調(diào)試,不必?fù)?dān)心硬件的損壞,并且在EDA環(huán)境中進(jìn)行硬件設(shè)計(jì),如同在使用真實(shí)的器件做實(shí)驗(yàn),可以調(diào)用不同的器件。實(shí)驗(yàn)的題目從簡(jiǎn)單的驗(yàn)證型為主轉(zhuǎn)化為綜合型和設(shè)計(jì)型為主的題目。基于EDA的計(jì)算機(jī)組成實(shí)驗(yàn)的一個(gè)重要環(huán)節(jié)是編程語言的學(xué)習(xí)和EDA工具軟件的使用,而這些軟件和編程語言,大多數(shù)的學(xué)生在學(xué)習(xí)本門課程時(shí)還沒有學(xué)習(xí)過,如何在較短的時(shí)間內(nèi)迅速入門,本且為后續(xù)的進(jìn)一步學(xué)習(xí)奠定基礎(chǔ),是教學(xué)中的難點(diǎn)。另外,不同的學(xué)生會(huì)對(duì)不同的EDA語言感興趣,允許學(xué)生選擇不同設(shè)計(jì)語言,并講清不同設(shè)計(jì)語言的區(qū)別和聯(lián)系,有助于學(xué)生從整體上更好的掌握設(shè)計(jì)的方式和方法。
1教學(xué)指導(dǎo)思想
由于EDA環(huán)境提供的設(shè)計(jì)具有便捷性,所以我們?cè)谟?jì)算機(jī)組成實(shí)驗(yàn)課程教學(xué)中有以下的教學(xué)指導(dǎo)思想:由淺入深,意在提高學(xué)生的積極性和主動(dòng)性,排除畏難情緒;鼓勵(lì)創(chuàng)新,鼓勵(lì)學(xué)生以不同的方案解決問題,不拘泥于老師介紹的方式方法;設(shè)計(jì)不同難易程度的題目,給能力強(qiáng)的同學(xué)以較好的延伸空間;開發(fā)語言的介紹不拘泥于本門課程,將關(guān)鍵點(diǎn)講到位,以便促進(jìn)學(xué)習(xí)在完成該課程學(xué)習(xí)后進(jìn)一步的學(xué)習(xí),開發(fā)語言的使用允許學(xué)生在Verilog HDL、VHDL兩種語言中任選一種,并講清其區(qū)別和聯(lián)系。
2EDA教學(xué)方式和方法
2.1開發(fā)環(huán)境和語言的選擇
我們選擇開發(fā)環(huán)境的是Altera公司的QUARTUS II軟件,Altera公司提供有Web EDITION版本,可免費(fèi)試用,并且學(xué)生可以從Altera公司的網(wǎng)站上下載license文件,這樣學(xué)生在離開實(shí)驗(yàn)后可以在寢室里調(diào)試程序,更好地學(xué)習(xí)EDA軟件。QUARTUS II支持三種硬件描述語言:AHDL、Verilog HDL、VHDL。其中,AHDL是Altera公司開發(fā)的硬件描述語言,僅在Altera公司的開發(fā)系統(tǒng)上支持,移植性不好。而Verilog HDL和VHDL都是IEEE的標(biāo)準(zhǔn),那么這兩種語言有何差異呢?在這兩種語言中Verilog HDL是在C語言的基礎(chǔ)上發(fā)展起來的,比較容易學(xué)習(xí),但它更適合于元件級(jí)的描述,可以看作是電子元件和Verilog HDL語言的一一對(duì)應(yīng)。而VHDL的抽象層次更高,它用實(shí)體和行為描述來抽象一個(gè)具體的邏輯電路,具有面向?qū)ο蟮奶卣鳌HDL可以使我們將重點(diǎn)放在系統(tǒng)內(nèi)部邏輯的實(shí)現(xiàn)上,而不是放在實(shí)現(xiàn)的細(xì)節(jié)上,其內(nèi)部的實(shí)現(xiàn)交給EDA工具去完成。因此,在這門課程的學(xué)習(xí)中允許同學(xué)按照偏好選擇使用VHDL語言或Verilog HDL,并鼓勵(lì)他們分析兩者的異同。當(dāng)然,對(duì)于復(fù)雜系統(tǒng)的設(shè)計(jì)需要兩種語言一起來完成任務(wù)。實(shí)驗(yàn)電路板可以選擇Altera公司的DE2開發(fā)板或杭州康芯公司的計(jì)算機(jī)組成實(shí)驗(yàn)板等。
2.2教學(xué)內(nèi)容和教學(xué)方式的設(shè)計(jì)
基于EDA的計(jì)算機(jī)組成實(shí)驗(yàn)課程,非計(jì)算機(jī)專業(yè)一般設(shè)置的課時(shí)為32學(xué)時(shí),其中包括實(shí)驗(yàn)學(xué)時(shí)。教師需要在有限的課時(shí)中講授以下內(nèi)容:VHDL語言;QUARTUS II軟件的使用;DE2開發(fā)板的使用;計(jì)算機(jī)組成實(shí)驗(yàn)內(nèi)容涉及的原理;實(shí)驗(yàn)過程的演示。對(duì)于大多數(shù)同學(xué)而言,都是第一次接觸EDA的概念,并要求在較短學(xué)習(xí)VHDL語言及其開發(fā)環(huán)境,如果按部就班的學(xué)習(xí),勢(shì)必有一定的難度,而且會(huì)在一定程度上挫傷學(xué)習(xí)的積極性。相反,如何能夠較快地掌握該語言的特點(diǎn),則能激發(fā)學(xué)生的學(xué)習(xí)熱情。根據(jù)學(xué)生都至少學(xué)習(xí)過一門編程語言,我們進(jìn)行了如下的教學(xué)設(shè)計(jì)。
1) 以實(shí)例為向?qū)Вv解重點(diǎn)的語法要素。
VHDL語言一門硬件描述語言,它不同于一般的軟件語言,它比較規(guī)整,具有面向?qū)ο蟮哪承┨卣鳌K讶魏芜壿媽?duì)象作為實(shí)體進(jìn)行描述,該實(shí)體包含輸入、輸出接口和行為邏輯的描述。如果系統(tǒng)地學(xué)習(xí)該語言需要較多的時(shí)間,而在計(jì)算機(jī)組成實(shí)驗(yàn)這門課程中,我們僅僅將其作為進(jìn)行實(shí)驗(yàn)的一個(gè)平臺(tái),目的是快速切入,因此在講解過程中采用了以同學(xué)們較為熟悉、簡(jiǎn)單地實(shí)例為向?qū)АVv解在描述某一邏輯器件的過程中介紹出現(xiàn)的語法現(xiàn)象,并進(jìn)行解釋。例如:我們?cè)谥v述VHDL語言時(shí),采用了D觸發(fā)器這個(gè)例子。D觸發(fā)器的代碼如下:
LIBRARY IEEE; ――定義庫(kù)
USE IEEE.STD_LOGIC_1164.ALL; ――定義包
ENTITY ddf IS
PORT(D,CLK: IN STD_LOGIC;
Q: OUT STD_LOGIC);
END ENTITY ddf; ――定義實(shí)體和輸入輸出接口
ARCHITECTURE behave OF ddf IS ――定義結(jié)構(gòu)體
SIGNAL sig_save: STD_LOGIC; ――定義信號(hào)量類型內(nèi)部變量
BEGIN
PROCESS(CLK) ――定義過程
BEGIN
IF CLK'EVENT AND CLK='1' THEN ――上升沿工作
Sig_save
END IF;
Q
END PROCESS;
END ARCHITECTURE behave;
對(duì)于D觸發(fā)器,大部分同學(xué)都比較熟悉,我們以此為出發(fā)點(diǎn)講述VHDL語言。通過該例子,我們講述以下的重要語法現(xiàn)象:庫(kù)、使用庫(kù)、實(shí)體、輸入輸出接口定義、數(shù)據(jù)類型(包括如何定義向量數(shù)據(jù)類型)、結(jié)構(gòu)、過程、敏感、上升沿的定義和使用、信號(hào)和變量、信號(hào)和變量的賦值,順序語句與并行語句的講解。并且,我們介紹了D觸發(fā)器實(shí)現(xiàn)的不同方式,以促進(jìn)學(xué)生進(jìn)一步理解VHDL語言。在講述完這樣一個(gè)例子以后,我們要求學(xué)生完成一個(gè)簡(jiǎn)單的題目,2-4譯碼器的設(shè)計(jì)。因?yàn)樵谶M(jìn)行存儲(chǔ)器的擴(kuò)充實(shí)驗(yàn)當(dāng)中要用到譯碼器,現(xiàn)在設(shè)計(jì)一方面熟悉語言的使用方式,另一方面方便以后調(diào)用進(jìn)行層次化的設(shè)計(jì)。
2) 因材施教,鼓勵(lì)創(chuàng)新。
對(duì)于我們的實(shí)驗(yàn)題目,一方面我們?cè)O(shè)置了必修題目和選修題目,以體現(xiàn)因材施教的目的,從演示型題目到設(shè)計(jì)型,綜合型的題目。另一方面,對(duì)于設(shè)計(jì)的題目,講解多種設(shè)計(jì)方案,不限定在指定的設(shè)計(jì)方法,鼓勵(lì)學(xué)生開動(dòng)腦筋,積極動(dòng)手動(dòng)腦。
3) 從淺入手,循序漸進(jìn)。
毋庸諱言,有一部分同學(xué)對(duì)于編程有一定的畏懼感和挫敗感,如何鼓勵(lì)學(xué)生,調(diào)動(dòng)學(xué)習(xí)的興趣,加強(qiáng)其信心是我們實(shí)驗(yàn)題目設(shè)計(jì)中所要重點(diǎn)考慮的問題。我們對(duì)于實(shí)驗(yàn)題目的設(shè)計(jì)采用了由淺入深的順序。從簡(jiǎn)單的一位加法器開始,給學(xué)生以成功感,以促使其主動(dòng)的鉆研下去。
4) 事前預(yù)習(xí)。
在每次實(shí)驗(yàn)之前,我們都要求學(xué)生預(yù)習(xí)實(shí)驗(yàn)題目,預(yù)先設(shè)計(jì)方案和代碼,做好充分準(zhǔn)備。然后再實(shí)驗(yàn)室中調(diào)試和驗(yàn)證。在實(shí)驗(yàn)過程中,我們會(huì)給出特定的要求,以測(cè)試同學(xué)的設(shè)計(jì)能力。
2.3教學(xué)重點(diǎn)內(nèi)容
通過這門課程的學(xué)習(xí),我們希望學(xué)生不僅僅加深對(duì)于計(jì)算機(jī)組成原理的學(xué)習(xí),同時(shí)學(xué)習(xí)到EDA工具、語言和方法,為進(jìn)一步學(xué)習(xí)奠定基礎(chǔ),并有助于學(xué)生將來的就業(yè)。所以,在實(shí)驗(yàn)課程中,我們循序漸進(jìn)地安排了以下的方法和概念的學(xué)習(xí)和使用,以在最短的時(shí)間中最大化的掌握VHDL語言的精華。
1) 層次化設(shè)計(jì)方法。
對(duì)于復(fù)雜問題的設(shè)計(jì)方式有:自頂向下和自底向上兩種設(shè)計(jì)方式。不論哪種設(shè)計(jì)方法都必須使用層次化的設(shè)計(jì)的概念和方法。層次化設(shè)計(jì)的實(shí)現(xiàn)有兩種方式:原理圖的方式、元件例化方式。在該課程的介紹中,我們首先介紹QUARTUS II軟件的使用,同時(shí)介紹原理圖的繪制和基于原理圖方式的層次化設(shè)計(jì)方式。然后以實(shí)例為向?qū)Ы榻BVHDL語言,進(jìn)一步介紹元件例化。
2) 狀態(tài)機(jī)。
狀態(tài)機(jī)是數(shù)字設(shè)計(jì)中重要的概念,是高效實(shí)現(xiàn)數(shù)字邏輯控制的重要途徑。有一些問題的解決可以用狀態(tài)機(jī)實(shí)現(xiàn)也可以用其它方式實(shí)現(xiàn),但狀態(tài)機(jī)能夠更快捷、方便、概念清晰,有一些問題的解決則只能使用狀態(tài)機(jī)。我們?cè)谶M(jìn)行時(shí)序發(fā)生器和運(yùn)算器等簡(jiǎn)單題目設(shè)計(jì)時(shí),介紹狀態(tài)機(jī)的概念和典型構(gòu)架,要求學(xué)生學(xué)習(xí)和使用。當(dāng)然這些題目的實(shí)現(xiàn)也可以不用狀態(tài)機(jī)實(shí)現(xiàn),但是為了學(xué)生今后進(jìn)一步學(xué)習(xí),我們力求講透狀態(tài)機(jī)的概念和設(shè)計(jì)方法。同時(shí)也能為最后的綜合性題目CPU的設(shè)計(jì)奠定基礎(chǔ)。
3結(jié)語
通過計(jì)算機(jī)組成實(shí)驗(yàn)課程的學(xué)習(xí),學(xué)生加強(qiáng)了對(duì)于計(jì)算機(jī)組成的理解,增強(qiáng)了動(dòng)手能力和自學(xué)能力。特別是在設(shè)計(jì)同一個(gè)題目時(shí)出現(xiàn)多種方案,超出了教師講解的可選范圍。學(xué)習(xí)能力一般的同學(xué),感覺自己也能完成給定的設(shè)計(jì)任務(wù),增強(qiáng)了信心。能力較強(qiáng)的同學(xué),一方面對(duì)于自己的設(shè)計(jì)不斷精益求精,并對(duì)于EDA的設(shè)計(jì)、DE2開發(fā)板充滿了興趣,愿意進(jìn)行進(jìn)一步的深入學(xué)習(xí)。
參考文獻(xiàn):
[1] 蔡炳新,蔡熾,曾鴿鳴,等. 改革實(shí)驗(yàn)教育教學(xué)培養(yǎng)創(chuàng)新型人才[J]. 實(shí)驗(yàn)室研究與探索,2009,28(1):17-19.
[2] 付必謙,于志紅,李春林. 開放實(shí)驗(yàn),促進(jìn)學(xué)生自主研究[J]. 實(shí)驗(yàn)技術(shù)與管理,2005,22(9):11-14.
[3] 楊學(xué)穎,蘇光奎. 計(jì)算機(jī)硬件課程教學(xué)問題初探[J]. 河南教育學(xué)院學(xué)報(bào):自然科學(xué)版,2006,15(1):86-88.
[4] 趙碩,楊欣宇. 計(jì)算機(jī)組成原理課程的設(shè)計(jì)性實(shí)驗(yàn)[J]. 高師理科學(xué)刊,2005,25(2):77-78.
[5] 白中英,張杰,靳秀國(guó),等. TEC-5數(shù)字邏輯與計(jì)算機(jī)組成的實(shí)驗(yàn)系統(tǒng)[J]. 實(shí)驗(yàn)技術(shù)與管理,2007,24(11):49-51.
[6] 薛宏熙,胡秀珠.計(jì)算機(jī)組成與設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007.
[7] 劉錦萍,潘云燕,譚召軍. 利用MAX+PLUSII軟件仿真計(jì)算機(jī)組成原理實(shí)驗(yàn)[J]. 嘉興學(xué)院學(xué)報(bào),2004,16(6):28-29.
Teaching of Computer Organization Experiment Based on EDA
CHEN Hongmei, MA Yongqiang, HE Rong
(School of Information Science & Technology, Southwest Jiaotong University, Chengdu 610031, China)