前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的vhdl語言主題范文,僅供參考,歡迎閱讀并收藏。
中圖分類號:F407文獻標識碼: A
一、前言
近些年,隨著電子技術及計算機技術的不斷發(fā)展,使用原來的方法進行系統(tǒng)及芯片的設計已經不能滿足要求了,需要具有更高效率的設計方法,運用VHDL語言進行電子設計就是在這種情況下開發(fā)的,而且被越來越廣泛地應用到電子設計自動化中,顯著地提高了開發(fā)效率及產品的可靠性。
二、電子設計自動化和VHDL語言概述
1、電子設計自動化概述。電子設計自動化又稱為EDA技術,它是在上世紀70年代的集成電路技術茂盛發(fā)展下誕生的,與集成電路的復雜度是緊密相關的。在第一代電子設計自動化EDA中,其主要功能是進行圖形編輯交互及設計規(guī)則檢查,所要解決的問題是進行PCB布局布線或者晶體管級版圖的設計;第二代電子自動化設計EDA系統(tǒng),主要包括邏輯圖的設計輸入、邏輯綜合、芯片布圖、模擬驗證及印刷電路的版布圖等,隨著集成電路尺寸越來越小、規(guī)模越來越大、速度及頻率越來越高、設計越來越復雜,HDL的設計方案應運而生,隨后具有描述語言的VHDL被提出來了。
2、VHDL語言概述。VHDL語言是指超高速集成電路的硬件描述語言,它是一種很快的電路設計工具,其功能主要包括電路合成、電路描述及電路仿真等電路設計工作。VHDL語言是由抽象及具體硬件級別進行描述的工業(yè)標準語言,它已經成為了一種通用硬件設計的交換媒介,很多工程軟件供應商已經把VHDL語言當做了EDA或CAD軟件的輸入/輸出標準,很多EDA廠商還提供了VHDL語言編譯器,同時在方針工工具、布圖工具及綜合工具中對VHDL語言提供了支持。
三、VHDL語言的特點
1、VHDL語言具有較強的描述功能,能夠對支持系統(tǒng)的行為級、門級及寄存器傳輸級這三個層次進行設計,和其它硬件描述語言相比,VHDL語言的行為描述能力更強,這種較強的行為描述力能夠有效地避開具體器件結構。對大規(guī)模的電子系統(tǒng)的邏輯行為進行描述與設計,VHDL語言已經成為高層次設計中的核心,也是它成為了電子設計系統(tǒng)領域最好的硬件語言描述。
2、VHDL語言能夠支持大規(guī)模的設計分解,及已有設計再利用,大規(guī)模的設計不可能有一個人獨立地完成,需要多個項目共同的組成,VHDL語言中的設計實體概念、設計庫概念、程序包概念為設計的分解及再利用提供了有力的支持。
3、VHDL語言具有較為豐富的模擬庫函數及仿真語句。這使它能夠在任何設計系統(tǒng)中,很早地就能對設計系統(tǒng)功能中的可行性進行查驗,并隨時可以對設計進行模擬仿真,將設計中的邏輯錯誤消除在組裝前,由于大規(guī)模集成電路及應用多層的印刷技術器件組裝完畢之后。很難進行修改,這就使得邏輯模擬變得不可缺少,運用邏輯模擬還能夠減少成本縮短調試及設計周期。對于中小規(guī)模的集成電路,僅運用模擬就能夠獲得成功數字系統(tǒng)設計;而大規(guī)模集成電路,則需要運用邏輯模擬進行邏輯網絡設計的檢查與分析。邏輯模擬系統(tǒng)對于集成電路來說,是不可缺少的重要手段。
4、VHDL語言本身生命周期就較長,在VHDL語言設計中,并不包含和工藝相關的信息,其設計和最終工藝實現是無關的,能夠使設計通過門級仿真之后,在用合適的工具映射到不同的工藝當中,當工藝進行更新時,就不需要進行原設計的修改了,僅改變映射工具就可以了,對于已經完成的設計,尤其是和工藝技術相關的參數可以運用VHDL語言所提供的類屬進行描述,或者進行子程序功能的調用,可以在源程序不改變的情況下,僅修改類屬的函數及參量就可以了,這樣就可以改變電子設計的規(guī)模及結構了。當然在VHDL語言也有些不足之處,像沒有WAIT語句、不能處理動態(tài)結構、不能等待時序等,但它整體還是有很多優(yōu)點的,并為硬件設計帶來了很大地方便,被很多用戶所接受,也得到了很多廠商的有力支持。
四、電子設計自動化應用VHDL語言的開發(fā)流程
VHDL語言的開發(fā)流程主要為文本編輯、功能仿真、邏輯綜合、布局布線、時序仿真及編程下載。其中文本編輯器能夠進行VHDL語言環(huán)境的編輯,其文件保存為,功能仿真是指將文件調入VHDL的仿真軟件中,并進行功能的仿真,對其邏輯功能進行檢查以驗證是否正確,也稱為前仿真,對于那些相對簡單的電子設計可以忽略這一步,在布線完成之后直接進行時序仿真:邏輯綜合是指將文件進行邏輯綜合并在設定的約束條件下進行綜合。就是把語言綜合成布爾表達式及信號連接關系,綜合之后會生成,電子設計自動化的工業(yè)標準文件:布局布線則是將文件調到PLD廠家所提供的軟件之中進行布局布線,這樣就可以把已設計好的邏輯安放到PLD 內了;時序仿真是指利用布局布線時所獲得的精確參數進行后仿真的驗證:編程下載所指當確認方針沒有錯誤后,就將文件儲存到目標芯片中。
五、VHDL語言在電子設計自動化應用中的作用
VHDL語言在電子設計自動化中的應用,能夠有效地打破傳統(tǒng)硬件電路的設計界限,借助硬件的描述語言設計出與相關要求相符合的硬件系統(tǒng),運用VHDL語言對電子設計自動化的應用,與C語言的語法類型是相似的,具有很好的可讀性,掌握起來也較為簡單,運用VHDL語言進行硬件電路的設計打破了原有地先畫出電路的原理圖,再進行元器件及實際電路定式的搭建,可以靈活地御用VHDL語言描述的硬件電路功能進行信號的連接和定時關系,在總體行為的設計一直到最終邏輯形成網絡表的文件,對于每一步都要進行仿真的檢查,在仿真結果分析中,能夠發(fā)現電子自動化系統(tǒng)的設計中所存存在的問題,這樣更有利于電子設計自動化應用的完整,并且其設計效率更高,時間周期更短,VHDL語言已經被廣泛地應用在電子設計自動化中了。
六、VHDL 語言在電子設計自動化應用中所要注意的問題
1、文件名和實體名要相同,其后綴均為.Vhd,程序的存儲路徑不能有漢字出現,變量要放在結構體之中,變量并不是全局量,僅能在進程語句及子程序中進行使用。
2、關于順序語句和并行語句問題,要把并行語句直接放人結構體里就可以了,而順序語句就要放在process里了,雖然process自身是并行語句,但它的內部確是順序語句。
3、在條件語句中,條件的覆蓋是不完整的,綜合器會把多余的鎖存器引入進來,一定要對條件所覆蓋的范圍進行考慮,通常的處理方法是加上else語句進行條件補全,頂層的文件在進行存盤時,其文件名是不能和底層的文件名相同的。
七、結束語
隨著電子技術和計算機技術的不斷發(fā)展,電子產品也在迅速發(fā)展著,電子設計自動化技術改變了傳統(tǒng)的數字系統(tǒng)設計方法及實現手段,而VHDL國際標準語言與電子設計自動化技術工具的結合,能夠有效地降低設計的風險,縮短設計的時間周期,提高設計效率,隨著VHDL語言在電子設計自動化的應用越來越廣泛,并將會給硬件的設計領域帶來很大的變革。
參考文獻:
[1]王鎖萍.電子設計自動化教程[M].成都:電子科技大學出版社,2000
[2]丁明威.李引新.黃培中.VHDL與電子自動化[J].計算機應用與研究,1999,13(1):24-25
[3]平.張振榮.VHDL編程與仿真[M].北京:人民郵電出版社,2000
[4]萬軍華.劉瑞通.基于VHDL的多功能數字鬧鐘設計[J].湖南理工學院學報(自然科學版),2011(01)
關鍵詞:VHDL;MAX+PLUSⅡ;仿真;數字電路
中圖分類號:TP331文獻標識碼:A文章編號: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 引言
隨著電子技術的發(fā)展,數字系統(tǒng)的設計正朝著高速度、大容量、小體積的方向發(fā)展,用傳統(tǒng)的自底而上的設計方法已不能滿足要求,迫切需要提高設計效率。VHDL語言是一種對數字電路和數字系統(tǒng)進行性能描述和模擬的語言,是美國國防部在20世紀70年展的電路設計工具,并于1987年成為IEEE的一種標準語言。VHDL是一種面向設計的多領域、多層次IEEE標準硬件描述語言,是目前十分流行的硬件描述工具,并且被大多數EDA工具支持。
2 VHDL優(yōu)點
1)功能強大,描述力強??捎糜陂T級、電路級甚至系統(tǒng)級的描述、仿真和設計。
2)可移植性好。對于設計和仿真工具采用相同的描述,對于不同的平臺也采用相同的描述。
3)研制周期短,成本低。這主要是由于VHDL支持大規(guī)模設計的分解和對已有設計的利用,因此加快了設計流程。
4)可以延長設計的生命周期。因為VHDL的硬件描述與工藝技術無關,不會因工藝變化而使描述過時。
5)VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管理最終設計實現的目標器件是什么,而進行獨立的設計。
3 VHDL的設計流程
VHDL在設計過程中,采用自頂向下的方法,首先從系統(tǒng)設計入手,在頂層進行功能方框圖的劃分,然后對各模塊進行設計并仿真,再進一步綜合進行門級仿真,如果沒有錯誤即可下載,最后實現電路,用VHDL設計數字系統(tǒng)的流程如下:
輸入源程序編譯源程序仿真綜合門級仿真物理設計時序仿真
VHDL語言已日益成為一種通用的硬件描述語言,計算機輔助工程軟件的供應商已把VHDL作為其CAD或EDA軟件輸入與輸出的標準,其中ALTEKA公司提供了一套十分有特色的綜合工具MAX+PLUSⅡ,它提供了全面的邏輯設計能力,從編輯、綜合、布線到仿真、下載一氣呵成,十分方便。
4 VHDL設計實例及仿真結果
4.1 設計方案
計數器根據時鐘信號的作用分為同步計數器和異步計數器。同步計數器是指構成計數器的各觸發(fā)器狀態(tài)在同一時鐘信號的控制下同時發(fā)生變化。下面設計一個具有異步清零功能的四位二進制同步可逆計數器。該計數器有一個上升沿有效的時鐘輸入端CLK;一個異步清零端CR(CR低有效);一個計數方向控制器UPDOWN(UPDOWN=1時,進行加法運算;UPDOWN=0時,進行減法運算);一個四位數據輸出端COUNT;一個進位輸出端CO。
4.2VHDL語言設計的源程序如下:
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;
在程序輸入完成后,經MAX+PLUSⅡ中的Compiler編譯通過后,可用Stimulator進行仿真。
4.3 仿真結果
仿真結果說明:1)CR為0使計數從0開始;
2)UPDOWN為0時,在每個時鐘上升沿使計數器減1;
3)UPDOWN為1時,在每個時鐘上升沿使計數器加1;(下轉第576頁)
(上接第574頁)
4)CO滯后于COUNT一個時鐘。
5 結束語
VHDL語言具有與硬件無關和與設計平臺無關的特性,并具有很強的電路描述和建模能力。目前,VHDL已成為電子設計自動化領域進行自上向下設計的應用方向,是專用數字集成電路設計描述的有力工具,同時也是邏輯綜合和優(yōu)化的重要基礎,作為一種重要的高層設計技術,VHDL已成為當代電子設計者們必須掌握的重要工具。
參考文獻:
(西安郵電大學電子工程學院,陜西西安710121)
摘要:為了高效地利用Verilog HDL語言中always行為建模語句設計集成電路,采用比較和舉例論證的方法,總結出always語句中事件控制敏感信號對設計仿真的影響。always語句中敏感信號分為時鐘邊沿信號和電平信號,對于敏感信號為時鐘邊沿信號,仿真結果直觀簡單;但是對于敏感信號為電平信號,敏感信號必須是所有的輸入和判斷語句的信號,否則仿真結果不確定。
關鍵詞 :Verilog HDL;always語句;敏感信號;時鐘邊沿信號;時鐘電平信號
中圖分類號:TN911.6?34;TP312 文獻標識碼:A 文章編號:1004?373X(2015)15?0032?03
收稿日期:2015?02?26
基金項目:陜西省教育廳專項科研基金(2013JK0626);西安郵電大學青年教師科研基金資助項目(101?1215;101?0473)
0 引言
硬件描述語言(Hardware Description Language,HDL)是一種用形式化方法來描述數字電路和系統(tǒng)的語言。Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀80年代中期開發(fā)出來的,兩種HDL 均為IEEE 標準。但是Veriolg 語言的很多規(guī)定與C語言相似,代碼簡單,有大量支持仿真的語句與可綜合語句,對于初學者設計簡單的數字系統(tǒng),更容易學習和掌握[1]。所以,Verilog HDL語言在大規(guī)模集成電路和現場可編程門陣列設計中得到了廣泛的應用[2?4]。
在集成電路設計中,Verilog語言中的always語句經常用來描述時序邏輯電路和組合電路。always語句是一種結構化的過程語句,是行為級建模的基本語句,它的語句格式為:always@(敏感事件列表),敏感事件可以是時鐘邊沿信號也可以是電平信號,分別對應時序邏輯電路和組合邏輯電路[5]。敏感事件列表中可以包含多個敏感事件,只要所列舉的任意一種情況發(fā)生,都將激活事件控制,各個敏感事件之間是“或”的關系;但不可以同時包括電平敏感事件和邊沿敏感事件,也不可以同時包括同一個信號的上升沿和下降沿,這兩個事件可以合并為一個電平敏感事件。而且,按照語法要求,在always塊中只能給寄存器變量賦值。
在實際應用中,敏感信號為時鐘邊沿信號,仿真綜合結果一般正確。但是當敏感信號為電平信號時,情況就會變得復雜,仿真綜合結果會變得不確定。文獻[6]對always敏感信號與仿真結果的這種不確定性問題也進行了肯定,但是并沒有進一步的分析。本文對always語句中的事件控制敏感信號出現的各種情況進行對比探討,發(fā)掘always語句中敏感信號分別為時鐘邊沿信號和電平信號的差異,并通過仿真圖形去驗證。
1 敏感信號為時鐘邊沿信號
Always語句中的敏感信號如果為時鐘邊沿敏感事件,一般用來表示時序邏輯電路,時序邏輯電路在邏輯功能上的特點是任意時刻的輸出不僅取決于當時的輸入信號,而且還取決于電路原來的狀態(tài),或者說,還與之前的輸入有關。從電路行為上講,不管輸入如何變化,僅當時鐘的沿(上升沿或下降沿)到達時,才有可能使輸出發(fā)生變化[7]。這里以經常用到的D觸發(fā)器為例,其仿真圖如圖1所示。
上面所述的D 觸發(fā)器,賦值語句為q<=a|b,等式右端為wire型變量。再舉個多敏感信號的時序邏輯電路的例子,比如帶有清零端的16 分頻,其仿真圖如圖2所示。
只要在always塊的敏感信號表中定義有效的時鐘沿,敏感詞的作用立竿見影,然后使用過程賦值語句對信號賦值,就可以實現時序邏輯電路。
2 敏感信號為電平信號
always語句中的敏感信號如果為電平敏感事件,一般用來表示組合邏輯電路,組合邏輯電路的特點是輸出信號只是當前時刻輸入信號的函數,與其他時刻的輸入狀態(tài)無關,無存儲電路。從電路行為上看,其特征就是輸出信號的變化僅僅與輸入信號的電平有關,不涉及對信號跳變沿的處理[8]。always電平敏感信號列表,必須將所有的輸入信號和條件判斷信號都列在信號列表中。有時不完整的信號列表會造成不同的仿真和綜合結果,因此需要保證敏感信號的完備性。在實際的PLD 器件開發(fā)中,EDA 工具都會默認將所有的輸入信號和條件判斷語句作為觸發(fā)信號,增減敏感信號列表中的信號不會對最終的執(zhí)行結果產生影響,因此如果期望在設計中通過修改敏感信號來得到不同的邏輯,是不能實現的,這也是經常犯錯的地方,這是因為仿真器在工作時不會自動補充敏感信號表。如果缺少信號,則無法觸發(fā)和該信號相關的仿真進程,也就得不到正確的仿真結果。這里以一個2?4譯碼器為例,其仿真圖如圖3所示。
如果想用一個敏感信號來控制邏輯變化,比如當enable信號的電平發(fā)生變化時,再去譯碼,程序如下,仿真圖如圖4所示。
由圖4 可以看出,這并不是所需的結果,這就是前面所說的,系統(tǒng)自動將所有的輸入作為了敏感信號。
因此,在應用always塊語句表述組合邏輯電路時,一定要注意敏感信號的完整性,要求觸發(fā)為所有內部用到的信號,可以用always@(*),此時,綜合工具和仿真工具會自動將所有的敏感信號自動加入敏感信號列表。
前面已經提到過always敏感信號不可以同時包括同一個信號的上升沿和下降沿,這兩個事件可以合并為一個電平敏感事件。在設計中,一些初學的設計者經常在時鐘的上升沿和下降沿都進行計數器加1,以為這樣能實現倍頻,仿真結果如圖5所示。
從圖5中可以發(fā)現并沒有出現想要的結果,而是呈現出了高阻態(tài)。將直接加1運算改為直接的賦值語句,程序如下,仿真結果如圖6所示。
從圖6中可以看出,cnt8這個變量存儲的是最后一次賦值,這時當always敏感信號為電平信號,系統(tǒng)默認為組合邏輯電路,雖然將信號定義為reg 型,但只是為了滿足always 模塊中的信號必須定義為reg 型的語法要求,最終的實現結果中并沒有寄存器,在圖5中出現高阻態(tài),因為cnt8=cnt8+1是計數器,是時序邏輯電路。
3 結論
本文對Verilog語言中always塊語句中的敏感信號進行了對比探討,得到如下結論:
(1)如果敏感信號是時鐘邊沿觸發(fā)信號,表示的是時序邏輯電路,而且在描述時序電路的always 塊中的reg型信號都會被綜合成寄存器,而且時序邏輯的敏感信號列表只需要加入所用的時鐘觸發(fā)沿即可。
(2)如果敏感信號是電平觸發(fā)信號,表示的是組合邏輯電路,這里一定要注意敏感信號的完整性,即所有的輸入和判斷語句的信號都要加為敏感信號,否則,得不到想要的設計結果。
(3)在組合邏輯電路描述中,將信號定義為reg型,只是為了滿足always模塊中的信號必須定義為reg 型的語法要求,最終實現結果中并沒有寄存器。
參考文獻
[1] PALNITTKAR S.Verilog HDL 數字設計與綜合[M].夏宇聞,胡燕祥,刁嵐松,譯.2版.北京:電子工業(yè)出版社,2009.
[2] 孫繼榮,李志蜀,王莉,等.程序切片技術在軟件測試中的應用[J].計算機應用研究,2007,24(5):210?213.
[3] 寧佐林,邱智亮.PCI橋接IP Core 的Verilog HDL 實現[J].電子科技,2006,19(4):43?46.
[4] 趙東,耿衛(wèi)東,吳春亞,等.用FPGA 實現OLED 灰度級顯示[J].光電子? 激光,2002,13(6):554?558.
[5] 羅杰.Verilog HDL與數字ASIC設計基礎[M].武漢:華中科技大學出版社,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.
參考文獻:
[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]藍純.《從認知角度看漢語和英語的空間隱喻》[M]。北京: 外語教學與研究出版社,2003.
《VHDL語言程序設計》作為一門數字電路硬件描述語言課程,VHDL語言雖然與計算機程序設計語言有相似之處,但是從嚴格意義上講,VHDL程序不能稱為“程序”,而應稱為“代碼”,其語句的運行也不能稱為“執(zhí)行”,而應稱為“實現”,因此VHDL語言程序設計具有不同計算機編程語言的編程方法與技巧。數字電路既有簡單的組合電路,也有復雜的片上系統(tǒng),復雜的數字電路由簡單基本電路組成。基本電路主要包括:多路選擇電路、加法器(減法器)、D觸發(fā)器、比較器、計數器、移位寄存器、三態(tài)門電路等。教學中采用實例安排組織教學,由簡單到復雜,并綜合考慮VHDL語法規(guī)則,對實例作恰當地取舍和教學順序調整。課程教學分為三部分:簡單實例講解、VHDL語法規(guī)則歸納與補充、復雜實例講解。1)簡單實例講解:簡單實例是數字系統(tǒng)設計的基本電路實例,通過典型實例的講解,使學生掌握VHDL語言規(guī)則和基本電路的設計。具體的講解過程如下:a.二選一多路選擇器通過該實例講解簡單組合電路的設計方法,同時講解VHDL程序的基本結構,順序語句(IF語句、賦值語句)、并行語句(進程語句、賦值語句),以及BIT數據類型、邏輯操作符等VHDL語法規(guī)則;b.D觸發(fā)器通過該實例講解時序電路的基本設計方法,同時講解的VHDL語法規(guī)則中的標準邏輯位數據類型、標準庫(程序包)、上升沿檢測表達式等VHDL語法規(guī)則;c.全加器通過該實例講解加法器(減法器)的基本設計方法,同時講解CASE語句、例化語句、矢量數據類型等VHDL語法規(guī)則;d.計數器通過該實例講解不同計數器的設計方法,同時介紹常用數據類型、重載運算符等VHDL語法規(guī)則;e.移位寄存器通過該實例講解移位寄存器的設計方法,同時講解VHDL的功能仿真、時序仿真;f.復雜多路選擇器分析復雜多路選擇器實例,講解信號與變量的區(qū)別;g.三態(tài)門電路通過該實例講解三態(tài)門電路的設計方法,以滿足現實數字電路系統(tǒng)中數據總線設計的需要。2)VHDL語法規(guī)則總結和補充簡單實例講解中的實例不可能覆蓋所有的VHDL語法規(guī)則,因此在實例講解后,需要對VHDL語法規(guī)則總結和補充。在具體教學實施中,可以采用提問法對所學的VHDL語法規(guī)則歸納總結,同時補充遺漏的VHDL語法規(guī)則。3)16位CPU復雜實例講解復雜實例能夠深化和提升學生所學的知識,培養(yǎng)綜合運用所學知識解決實際問題的能力。以16CPU設計為基礎,講解復雜數字電路的設計,同時講解設計中所涉及的新知識,主要包括原理圖設計方法、宏模塊的調用、狀態(tài)機設計。
(二)實例教學法實施的注意事項
在實例教學實施中,要注重學生的主體性,提出問題,解決問題,對所講的實例做到深層次分析,舉一反三,注重程序設計的靈活掌握。實例的講解和VHDL語法規(guī)則的講解是同步的過程,沒有嚴格前后之分,語法規(guī)則的講解融合在實例講解中。
(三)實例教學法的教學效果
近四年來,本人一直負責該課程的教學工作,其中最近兩年采用了實例教學法安排教學,實踐表明實例教學法的應用有效提高了教學效果。根據學校的網上統(tǒng)計教學評價,近兩年的學生教學評價效果由良好達到了優(yōu)秀的水平;根據本文作者的課后不記名統(tǒng)計,非常滿意和滿意率由80上升到93%。本文來自于《學術論壇》雜志。學術論壇雜志簡介詳見
(四)結束語
關鍵詞:數字邏輯;實驗教學;實驗課題設計;教學改革;VHDL
自20世紀90年代以來,隨著電子科學技術的進步,大規(guī)模集成電路PLD芯片逐漸取代了數字系統(tǒng)中傳統(tǒng)的分離元件和小規(guī)模集成電路。同時,數字系統(tǒng)和計算機系統(tǒng)的設計方法向“硬件設計軟件化”轉變。用硬件設計語言設計數字系統(tǒng)和計算機系統(tǒng)的技術日益成熟且越來越廣泛地得到應用。雖然,高校數字邏輯課程的教學內容也有一些相應的調整,但是實驗教學的改革往往明顯落后。
數字邏輯是計算機科學與技術專業(yè)重要的基礎課之一,也是學生感覺學習比較困難的課程之一。我校計算機專業(yè)的數字邏輯課程的實驗教學過去一直是在實驗箱上插接集成電路芯片和連接線的方式,實驗內容以驗證性實驗為主,實驗效果很不理想,實驗教學與理論教學的銜接不好,沒有真正起到“通過實驗加深對理論知識的理解”和“理論與實際相結合”的作用。學生雖然在課堂上學習了VHDL編程并做了一些習題,但是并不知道究竟什么樣的程序才是正確的,而要想知道VHDL程序是否正確的唯一方法是編譯和仿真。為了提高數字邏輯課程的教學效果,并且與新增加的VHDL語言教學內容相呼應,筆者進行了數字邏輯課程的實驗教學改革探索。通過“做中學”[1],使學生真正掌握用VHDL進行邏輯設計的方法。放棄在實驗箱上插接集成電路芯片和連接線的方式,改變?yōu)樵赒uartus軟件平臺上用VHDL語言編程和仿真實驗。從以驗證性實驗為主轉變?yōu)橐栽O計性實驗為主,不僅使學生學到了最新的技術,而且為后繼課程計算機組成原理的進一步教學改革奠定了基礎。
1實驗課題的設計
根據教學計劃,本課程的實驗為12學時,安排6個實驗。除第1個實驗是熟悉Quartus系統(tǒng)的使用外,其余5個實驗都是設計性實驗。
1.1設計思想
實驗課題的設計是開展設計性實驗教學必須妥善處理的關鍵問題之一。實驗課題應該有合適的難度,使得大部分學生在現有基礎上通過自己的分析和努力能夠做出設計(不一定是完全正確的設計)。實驗課題應該在本課程教學的重要知識點范圍內,通過實驗可以使學生更好地掌握相關知識點,實現理論教學與實驗教學相輔相成。實驗課題應該在書本或網絡等其他信息源上沒有現成的解答,學生必須自己進行分析設計才能得到解答。
在高度網絡化和信息化的今天,各種教材、參考書和網絡上已經有很多的VHDL語言程序的實例,為了保證學生是真正做設計,筆者在設計實驗課題時也廣泛查找了資料。有幾個設想的課題就因為發(fā)現有相同的VHDL語言程序實例存在而被否定。最后確定的5個實驗課題,到目前為止還沒有發(fā)現有相同的VHDL語言程序實例。這5個實驗課題包括2個組合邏輯設計實驗課題和3個時序邏輯設計實驗課題。實驗課題的難度和復雜程度是逐漸增加的。除了基本實驗外,還為少數學有余力的學生設計了選做題目。
1.2實驗課題
1) 實驗課題一。
設計一個代碼轉換邏輯電路。把7位的ASCII碼轉換成7段字符顯示代碼。能顯示數字0~9,字母A、b、C、d、E、F、H、L、o、P、U、Γ和一些符號(-、_、=、┫、┣、、)等。用VHDL語言編程并仿真。
2) 實驗課題二。
設計一個多功能的運算器,有控制信號M、S2、S1、S0。當M=1,在S2、S1、S0的控制下能完成兩個1位二進制數A、B的以下算術運算:A加B,A加1,A加B和低位來的進位,B加1,A加 ,A加0,A加A,A加 加1。當M=0,作邏輯運算。在S2、S1、S0的控制下能完成兩個1位二進制數A、B的以下邏輯運算:A+B,A•B, , , , , , ,等。用VHDL語言編程并仿真。
3) 實驗課題三。
設計一個自動售飲料機的控制邏輯電路。該機器有一個投幣口,每次只能投入1枚1元或5角的硬幣。當投入了1元5角的硬幣,機器自動給出1杯飲料。當投入了2元的硬幣,機器在自動給出1杯飲料時,還找回1枚5角的硬幣。
確定輸入/輸出變量、電路的狀態(tài)并化簡,做出狀態(tài)轉換圖、狀態(tài)轉換表。在完成以上邏輯設計后,用VHDL語言編程并仿真。
4) 實驗課題四。
用74HC163設計一個十九進制計數器。用VHDL層次結構設計方法設計程序并仿真,底層器件是74HC163。
完成以上題目后,還可以選做題:用74HC163設計一個余3碼計數器。用VHDL層次結構設計方法設計程序并仿真,底層器件是74HC163。
5) 實驗課題五。
實驗課題五有兩個題目,學生可以任選一個。
題目一:設計一個可控計數器,當控制信號S=0時,是五進制計數器,當控制信號S=1時,是十五進制計數器。設計出邏輯圖。分別用兩種不同的方法設計(行為描述,結構描述),用VHDL語言編程并仿真。
題目二:設計一個數字鐘電路,要求能用7段數碼管顯示從0時0分0秒到23時59分59秒之間的所有時間。做出邏輯圖。用VHDL語言編程并仿真。
2教學效果分析
實驗課題一的目的是強化譯碼器、7段字符顯示代碼和ASCII碼等知識點。學生可以參考書上的BCD碼-7段字符顯示譯碼器的VHDL程序做這個設計,但是要實現那些特殊符號的顯示還是需要動腦筋的。實驗結果顯示,學生基本上都能做出數字和字母的顯示代碼設計,但是極少有能做出那些特殊符號的顯示代碼設計的。
實驗課題二的目的是強化加法器、全加器、算術運算、進位和邏輯運算等知識點,并且考慮到與后繼課程計算機組成原理的ALU等知識點教學的銜接。學生做設計時可以參考1位全加器的VHDL程序。很多學生在做實驗之前認為這個題目很簡單,只要用VHDL語言的算術運算符就可以了。開始做實驗才發(fā)現根本不是那樣,必須先推導出每個運算功能的邏輯表達式才能編程,而相當多的學生忘記了算術運算還有進位的邏輯表達式。這個實驗確實達到了強化上述知識點的目的。
實驗課題三的目的是強化狀態(tài)機和Mealy型時序邏輯電路設計等知識點。學生做設計時可以參考狀態(tài)機的VHDL程序。經過這個實驗,大部分學生真正懂得了什么是狀態(tài)機,時序邏輯電路是在時鐘信號的作用下發(fā)生狀態(tài)轉變的,另外還有怎樣確定有哪些狀態(tài)和做狀態(tài)化簡。
實驗課題四的目的是強化計數器、用集成計數器實現任意進制計數器和Moore型時序邏輯電路設計等知識點,也是學生第一次用VHDL結構描述的方法做設計。學生做設計時可以利用書上的74HC163的VHDL程序例子。通過這個實驗學生進一步理解了觸發(fā)器和計數器,掌握了用集成計數器實現任意進制計數器的方法和用VHDL結構描述做邏輯電路設計的基本方法。選做題是為少數學習好、能力強的學生準備的,使這部分學生有機會得到更多的訓練和提高。選做題還可以使學生掌握余3碼的概念,確實也有很少的幾個學生完成了選做題。
實驗課題二和實驗課題三都是用行為描述的方法進行邏輯電路設計,比較容易掌握,實驗成功率較高,而實驗課題四要求用結構描述的方法做邏輯電路設計。在實驗中間發(fā)現,相當多學生并沒有理解結構描述的概念,也不知道應該怎樣做。因此,實驗課題五繼續(xù)強化用結構描述的方法做邏輯電路設計。
實驗課題五題目中的第一個,目的是鞏固用集成計數器實現任意進制計數器和Mealy型時序邏輯電路設計等知識點。同時,也使學生進一步掌握用行為描述和結構描述進行設計的方法。雖然這個題目相對第二個題目要簡單一些,但是由于要求分別用行為描述和結構描述兩種方法進行設計,所以總的工作量比實驗課題四要多。這兩個題目中的第2個不僅難度更大、更復雜,而且其設計還要考慮如何仿真的問題,是一個有挑戰(zhàn)性的題目。然而,選擇這個題目的學生卻出乎意料得多,而且有若干種不同的設計思想,既有用結構描述的也有用行為描述的。雖然在2個小時的時間內,幾乎沒有學生完全正確地完成這個高難度實驗的設計和仿真,但是有個別學生在以后的幾個星期里仍然繼續(xù)探討并最終正確地完成了這個實驗。像數字鐘這樣的復雜實驗,在過去想要用中小規(guī)模集成電路在實驗箱上插接連線的方式完成是不可想象的,但是現在用Quartus系統(tǒng)上設計和仿真的方式卻是可以完成的。
設計性實驗比驗證性實驗的難度有明顯提高,學生也要花更多的時間做預習、設計和寫實驗報告。在學習數字邏輯之前的各課程(物理、電路、模擬電子)實驗都是驗證性實驗,大部分學生已經養(yǎng)成不做實驗預習的習慣。在做第一個實驗(熟悉Quartus系統(tǒng))時就發(fā)現很多學生基本上是進了實驗室才開始看實驗指導。結果是兩個小時過去了,一部分學生并沒有掌握VHDL程序調試和仿真的基本方法,個別學生輸入的源程序甚至連編譯都沒有通過。針對這個問題,我們采取了要求學生提前做實驗預習,寫出實驗設計和程序才允許進實驗室做實驗的措施,并且在逐位點名時逐個檢查實驗預習。實驗教學改革也在一定程度上調動了學生的積極性。
3結語
用VHDL語言設計組合邏輯電路和時序邏輯電路的方法與傳統(tǒng)的用邏輯代數和邏輯圖設計的方法有很大不同,特別是行為描述的方法很容易掌握。用軟件工具對所做設計進行仿真以檢驗設計的正確性比在面包板上插接、連線、調試要方便容易,避免了接觸不良造成的故障和連線錯誤損壞器件等問題,實驗成功率高、消耗低。學生不僅要做邏輯設計,還要做仿真輸入波形設計。仿真輸出波形直觀地表現了邏輯功能的正確與否。部分學生自己有計算機,可以提前做出設計并編程,在進入實驗室后能夠在比較短的時間里完成實驗;也有一些學生由于設計錯誤,在實驗室沒有完成實驗,是回去以后繼續(xù)用自己的計算機改正程序、完成仿真的。
從實際教學效果看,上述實驗課題的設計是成功的。大部分學生通過設計和實驗都有不同程度的提高,基本上理解了有關的知識點,掌握了VHDL程序設計、調試和仿真方法。從后來的調查問卷的結果看,大部分學生認為數字邏輯實驗“不是很難”(4個選項分別是太難、不是很難、很簡單、不能理解),只有少數學生不喜歡這種設計性實驗。
數字邏輯課程的實驗教學改革探索取得了初步成功,今后還將繼續(xù)改進,也希望與其他學校的教師交流教學改革的經驗和教訓,共同提高。
參考文獻:
[1] 黎忠文,向兆山.“做中學”模式在計算機教學中的探索[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制定為國際標準IEEE1076。近年來國內引進和出版了不少教材,使其在國內得到迅速推廣。由于VHDL最初目的是為了實現硬件的建模而被提出的,所以其措施能力超越了數字邏輯集成電路的范圍。而現有的EDA工具基本上只能支持VHDL的子集,特別是針對FPGA/CPLD器件進行的不同的綜合工具,其綜合子集并非統(tǒng)一,不少初學者很難掌握。即使是部分有經驗的設計者,對于通常高級語言中都會涉及的循環(huán)語句,在VHDL中往往也不能運用自如,甚至無法表達此類邏輯,從而限制了VHDL的應用水平。例如,VHDL的并行堆排序描述就是一個比較典型的例子。該實例十分類似通常數據結構的描述,推廣前景誘人;但只能通過仿真,卻不能在目前任何一個EDA工具進行綜合,導致無實用價值。
本文從高級語言涉及最多的Loop語句出發(fā),討論如何在VHDL中解決這類問題。
1 無法綜合的Loop動態(tài)條件
VHDL中Loop表達式有三種體現形式:While……Loop、For……Loop和單獨的Loop語句。它還支持Next、Exit和標號,因此,循環(huán)語句的表達能力大于常規(guī)的C或PASCAL語言。程序1是利用For語句和While語句描述插入算法的部分代碼。
程序1 不可綜合的VHDL循環(huán)語句
……
for I in 2 to Length loop ---Length為一個變量
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;
……
對于第一個For語句,EDA工具Synplify綜合時將會給出無邊界的范圍錯誤提示。
@E:"H:.vhd"|for loops with unbound ranges should contain w wait statement
即使部分優(yōu)秀的綜合工具,例如ORCAD Express、Mentor Grpahs QuickHDL等能夠綜合第一個For語句,也無法支持第二個While條例表達式。ORCAD Express將給出表達式不可靜態(tài)計算的錯誤提示。
..vhd(45):Error,expression does not evaluate to a constant.
由于程序1在C程序員看來是沒有問題的,因此,初學者往往不能解決好此類問題,從而使學習陷入困境,無法充分利用VHDL來表述邏輯。
2 直接代換法
對于第一類無邊界的范圍錯誤問題,可以用循環(huán)的綜合機制轉化為相應的語句。例如下面代碼:
for I in 0 to 1 loop
Out_Bus(i)<=In_Bus(i);
End loop;
其對應綜合后的電路見圖1。
相應的,也可以用下列語句直接代入代換:
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;
……
然而,這種使用方法要求設計者清楚循環(huán)條件一定會執(zhí)行的次數,否則將無法實施。當循環(huán)次數比較大時,代碼編寫工作量將十分龐大,因此可以采用第二種方法——邊界擴充法。
3 邊界擴充法
邊界擴充法是指在邊界未定時,可以將邊界定為最大可能的范圍,即用靜態(tài)表達來替代。例如程序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;
盡管這種方法可以處理未知邊界和未定表達式的情況,但十分消耗空間,特別是當MyLen相對MAX比較小的時候,代價非常大。此時,可以利用時間換空間的方法進行轉換。
圖1 For語句的綜合示例
4 計數器法
計數器法是指引入時鐘和計數器,用計數器對邊界條件進行控制,也可以將動態(tài)表達式直接代入轉化相應的靜態(tài)表達式。例如,上述代碼的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個時鐘和1個復位。但綜合開銷最大的循環(huán)語句卻被取代了,因此,綜合產生門的數目將大幅度下降,但處理時間將相應延長到原來循環(huán)條件范圍。
本刊網絡補充版(dpj.com.cn)中發(fā)表了四個源代碼,分別為不可綜合例子、直接代換法、邊界擴充法和計算器法,內部都有相應注釋。其中計數器法改進為雙計數器方法。
[關鍵詞] EDA技術 空調控制系統(tǒng) VHDL語言 仿真
引言
空調控制系統(tǒng)是智能建筑樓宇自動控制的一個重要組成部分。系統(tǒng)占據整個樓宇自動化系統(tǒng)的30%以上的監(jiān)控點,而且空調的能耗也占整個建筑物能耗的50%以上。因此,空調控制系統(tǒng)的設計是整個樓宇自控系統(tǒng)設計的重點之一,也是節(jié)電節(jié)能的重點,特別對于大型建筑而言,更是如此。本文設計一種新型空調控制器,并采用了電子設計自動化(EDA)技術,用目前廣泛應用的VHDL硬件電路描述語言,在Altera公司的MAX+PLUSⅡ集成開發(fā)環(huán)境下進行綜合、仿真,并下載到可編程邏輯器件中,以實現控制功能。
一、空調控制系統(tǒng)結構
空調控制系統(tǒng)結構如圖1所示,首先由傳感器檢測室內溫度,并將采集來的數據傳輸到控制系統(tǒng)的預處理單元,在預處理單元將采集來的溫度信號與設定值相比較,來判斷當前的狀態(tài)(太熱、太冷或適中),然后將處理結果傳輸到控制單元,最后由執(zhí)行機構接受控制單元輸出的控制信號,控制室內空調。
二、控制單元的EDA實現
1.控制單元的芯片功能
控制芯片如圖2,有三個輸入端時鐘端clk,temp_high和temp_low,兩個輸出端heat和cool,高電平有效。如果室內溫度正常, temp_high和temp_low均為‘0’,則輸出端heat和cool均為‘0’。如果室內溫度過高,temp_high為‘1’,temp_low為‘0’,則heat和cool分別為‘1’和‘0’,空調制冷。如果室內溫度過低,temp_high為‘0’,temp_low為‘1’,則heat和cool分別為‘0’和‘1’,空調制熱。
2.控制單元芯片的VHDL代碼
VHDL(Very-High-Speed integrated Circuit Hardware Description Language)是IEEE工業(yè)標準硬件描述語言,是隨著可編程邏輯器件(PLD)的發(fā)展而發(fā)展起來的。這種用語言描述硬件電路的方式,容易修改和保存,且具有很強的行為描述能力,所以在電路設計中得到了廣泛應用。以下是描述控制單元VHDL代碼.
library ieee;
use ieee.std_logic_1164.all;
entity air_conditioner is
port (clk:in std_logic;--時鐘輸入信號
temp_low:in std_logic; --過冷傳感器輸入信號
temp_high:in std_logic;--過熱傳感器輸入信號
heat:out std_logic;--制熱輸出信號
cool:out std_logic); --制冷輸出信號
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是該進程的敏感信號,當clk變?yōu)椤?’時,激活進程
Begin
--等待clk變?yōu)椤?’
wait until clk=’1’;
--根據temp_low和temp_high的值決定stvar的值
if (temp_low=‘1’) then stvar
elsif (temp_high=‘1’) then stvar
else stvar
end if;
--根據stvar的值決定heat和cool的值,從而控制空調制冷、制熱或保持不變
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ā)。設計輸入完成后,進行整體的編譯和邏輯仿真,然后進行轉換、布局、布線,延時仿真生成配置文件,最后下載至FPGA器件,完成結構功能配置,實現其硬件功能。控制芯片的系統(tǒng)邏輯功能仿真波形如圖3所示。各信號的邏輯功能和時序配置完全達到設計要求。
三、結束語
本文設計的空調控制系統(tǒng),可以根據室溫的變化控制空調制冷或制熱,起到調節(jié)室內溫度的作用,特別是大大降低了空調的能耗。本系統(tǒng)具有結構簡單、性能穩(wěn)定、實現方便,成本低的優(yōu)點,因此極具市場競爭力。
參考文獻:
[1]侯伯亨:VHDL硬件描述語言與數字邏輯電路設計[M].西安:西安電子科技大學出版社,1999
關鍵詞:EDA;計算機組成實驗課程;實驗教學;創(chuàng)新
實驗教學是將學生的書本知識轉化為動手能力,深入理解理論知識的必不可少的一環(huán)。實驗教學對于培養(yǎng)創(chuàng)新性人才,激發(fā)學生學習的熱情和創(chuàng)新能力有著極為重要的作用。特別在知識日新月異的時代,創(chuàng)新性人才的培養(yǎng)勢在必行[1-2]。
計算機組成原理是電子信息類各專業(yè)的專業(yè)基礎課,重點在于講授計算機的各部件的組成原理及部件之間有何種數據流和控制流以協調工作,建立整機的概念。計算機組成實驗課程是配合這門課程學習的一門單列實驗課,計算機組成實驗是我校的四川省精品課程――計算機組成原理系列課程體系的一個重要組成部分。如何很好地組織計算機組成實驗,從實驗的內容、方式、激發(fā)學生的熱情上,教學工作者都進行了大量的探討[3-4]。
隨著電子技術的不斷發(fā)展,計算機組成實驗平臺從以軟件平臺的仿真為主,逐步向以硬件平臺為主、軟件仿真為輔的方向轉變。在實驗中,可以選擇不同廠家生產的專用的實驗器件進行,也可以基于EDA方式進行[5-7]。EDA(electronic design automatic)是現代電子設計的核心,它以計算機為基礎,在EDA工具軟件平臺上,對以硬件描述語言HDL(hardware description language)為系統(tǒng)邏輯描述手段完成的設計文件,自動進行編譯、優(yōu)化、邏輯綜合、結構綜合[7],在調試編譯正確后,再配置引腳下載到實驗電路板上。基于EDA的計算機組成實驗不僅可以更好地進行計算機硬件系統(tǒng)的邏輯設計,同時可以提高硬件設計水平及硬件實現效率,使學生學習到EDA的開發(fā)軟件和開發(fā)語言,更好地適應電子設計的新技術,同時為將來就業(yè)奠定基礎。在下載到實驗板之前整個設計是在EDA工具軟件環(huán)境中進行,學生可以進行反復的調試,不必擔心硬件的損壞,并且在EDA環(huán)境中進行硬件設計,如同在使用真實的器件做實驗,可以調用不同的器件。實驗的題目從簡單的驗證型為主轉化為綜合型和設計型為主的題目。基于EDA的計算機組成實驗的一個重要環(huán)節(jié)是編程語言的學習和EDA工具軟件的使用,而這些軟件和編程語言,大多數的學生在學習本門課程時還沒有學習過,如何在較短的時間內迅速入門,本且為后續(xù)的進一步學習奠定基礎,是教學中的難點。另外,不同的學生會對不同的EDA語言感興趣,允許學生選擇不同設計語言,并講清不同設計語言的區(qū)別和聯系,有助于學生從整體上更好的掌握設計的方式和方法。
1教學指導思想
由于EDA環(huán)境提供的設計具有便捷性,所以我們在計算機組成實驗課程教學中有以下的教學指導思想:由淺入深,意在提高學生的積極性和主動性,排除畏難情緒;鼓勵創(chuàng)新,鼓勵學生以不同的方案解決問題,不拘泥于老師介紹的方式方法;設計不同難易程度的題目,給能力強的同學以較好的延伸空間;開發(fā)語言的介紹不拘泥于本門課程,將關鍵點講到位,以便促進學習在完成該課程學習后進一步的學習,開發(fā)語言的使用允許學生在Verilog HDL、VHDL兩種語言中任選一種,并講清其區(qū)別和聯系。
2EDA教學方式和方法
2.1開發(fā)環(huán)境和語言的選擇
我們選擇開發(fā)環(huán)境的是Altera公司的QUARTUS II軟件,Altera公司提供有Web EDITION版本,可免費試用,并且學生可以從Altera公司的網站上下載license文件,這樣學生在離開實驗后可以在寢室里調試程序,更好地學習EDA軟件。QUARTUS II支持三種硬件描述語言:AHDL、Verilog HDL、VHDL。其中,AHDL是Altera公司開發(fā)的硬件描述語言,僅在Altera公司的開發(fā)系統(tǒng)上支持,移植性不好。而Verilog HDL和VHDL都是IEEE的標準,那么這兩種語言有何差異呢?在這兩種語言中Verilog HDL是在C語言的基礎上發(fā)展起來的,比較容易學習,但它更適合于元件級的描述,可以看作是電子元件和Verilog HDL語言的一一對應。而VHDL的抽象層次更高,它用實體和行為描述來抽象一個具體的邏輯電路,具有面向對象的特征。VHDL可以使我們將重點放在系統(tǒng)內部邏輯的實現上,而不是放在實現的細節(jié)上,其內部的實現交給EDA工具去完成。因此,在這門課程的學習中允許同學按照偏好選擇使用VHDL語言或Verilog HDL,并鼓勵他們分析兩者的異同。當然,對于復雜系統(tǒng)的設計需要兩種語言一起來完成任務。實驗電路板可以選擇Altera公司的DE2開發(fā)板或杭州康芯公司的計算機組成實驗板等。
2.2教學內容和教學方式的設計
基于EDA的計算機組成實驗課程,非計算機專業(yè)一般設置的課時為32學時,其中包括實驗學時。教師需要在有限的課時中講授以下內容:VHDL語言;QUARTUS II軟件的使用;DE2開發(fā)板的使用;計算機組成實驗內容涉及的原理;實驗過程的演示。對于大多數同學而言,都是第一次接觸EDA的概念,并要求在較短學習VHDL語言及其開發(fā)環(huán)境,如果按部就班的學習,勢必有一定的難度,而且會在一定程度上挫傷學習的積極性。相反,如何能夠較快地掌握該語言的特點,則能激發(fā)學生的學習熱情。根據學生都至少學習過一門編程語言,我們進行了如下的教學設計。
1) 以實例為向導,講解重點的語法要素。
VHDL語言一門硬件描述語言,它不同于一般的軟件語言,它比較規(guī)整,具有面向對象的某些特征。它把任何邏輯對象作為實體進行描述,該實體包含輸入、輸出接口和行為邏輯的描述。如果系統(tǒng)地學習該語言需要較多的時間,而在計算機組成實驗這門課程中,我們僅僅將其作為進行實驗的一個平臺,目的是快速切入,因此在講解過程中采用了以同學們較為熟悉、簡單地實例為向導。講解在描述某一邏輯器件的過程中介紹出現的語法現象,并進行解釋。例如:我們在講述VHDL語言時,采用了D觸發(fā)器這個例子。D觸發(fā)器的代碼如下:
LIBRARY IEEE; ――定義庫
USE IEEE.STD_LOGIC_1164.ALL; ――定義包
ENTITY ddf IS
PORT(D,CLK: IN STD_LOGIC;
Q: OUT STD_LOGIC);
END ENTITY ddf; ――定義實體和輸入輸出接口
ARCHITECTURE behave OF ddf IS ――定義結構體
SIGNAL sig_save: STD_LOGIC; ――定義信號量類型內部變量
BEGIN
PROCESS(CLK) ――定義過程
BEGIN
IF CLK'EVENT AND CLK='1' THEN ――上升沿工作
Sig_save
END IF;
Q
END PROCESS;
END ARCHITECTURE behave;
對于D觸發(fā)器,大部分同學都比較熟悉,我們以此為出發(fā)點講述VHDL語言。通過該例子,我們講述以下的重要語法現象:庫、使用庫、實體、輸入輸出接口定義、數據類型(包括如何定義向量數據類型)、結構、過程、敏感、上升沿的定義和使用、信號和變量、信號和變量的賦值,順序語句與并行語句的講解。并且,我們介紹了D觸發(fā)器實現的不同方式,以促進學生進一步理解VHDL語言。在講述完這樣一個例子以后,我們要求學生完成一個簡單的題目,2-4譯碼器的設計。因為在進行存儲器的擴充實驗當中要用到譯碼器,現在設計一方面熟悉語言的使用方式,另一方面方便以后調用進行層次化的設計。
2) 因材施教,鼓勵創(chuàng)新。
對于我們的實驗題目,一方面我們設置了必修題目和選修題目,以體現因材施教的目的,從演示型題目到設計型,綜合型的題目。另一方面,對于設計的題目,講解多種設計方案,不限定在指定的設計方法,鼓勵學生開動腦筋,積極動手動腦。
3) 從淺入手,循序漸進。
毋庸諱言,有一部分同學對于編程有一定的畏懼感和挫敗感,如何鼓勵學生,調動學習的興趣,加強其信心是我們實驗題目設計中所要重點考慮的問題。我們對于實驗題目的設計采用了由淺入深的順序。從簡單的一位加法器開始,給學生以成功感,以促使其主動的鉆研下去。
4) 事前預習。
在每次實驗之前,我們都要求學生預習實驗題目,預先設計方案和代碼,做好充分準備。然后再實驗室中調試和驗證。在實驗過程中,我們會給出特定的要求,以測試同學的設計能力。
2.3教學重點內容
通過這門課程的學習,我們希望學生不僅僅加深對于計算機組成原理的學習,同時學習到EDA工具、語言和方法,為進一步學習奠定基礎,并有助于學生將來的就業(yè)。所以,在實驗課程中,我們循序漸進地安排了以下的方法和概念的學習和使用,以在最短的時間中最大化的掌握VHDL語言的精華。
1) 層次化設計方法。
對于復雜問題的設計方式有:自頂向下和自底向上兩種設計方式。不論哪種設計方法都必須使用層次化的設計的概念和方法。層次化設計的實現有兩種方式:原理圖的方式、元件例化方式。在該課程的介紹中,我們首先介紹QUARTUS II軟件的使用,同時介紹原理圖的繪制和基于原理圖方式的層次化設計方式。然后以實例為向導介紹VHDL語言,進一步介紹元件例化。
2) 狀態(tài)機。
狀態(tài)機是數字設計中重要的概念,是高效實現數字邏輯控制的重要途徑。有一些問題的解決可以用狀態(tài)機實現也可以用其它方式實現,但狀態(tài)機能夠更快捷、方便、概念清晰,有一些問題的解決則只能使用狀態(tài)機。我們在進行時序發(fā)生器和運算器等簡單題目設計時,介紹狀態(tài)機的概念和典型構架,要求學生學習和使用。當然這些題目的實現也可以不用狀態(tài)機實現,但是為了學生今后進一步學習,我們力求講透狀態(tài)機的概念和設計方法。同時也能為最后的綜合性題目CPU的設計奠定基礎。
3結語
通過計算機組成實驗課程的學習,學生加強了對于計算機組成的理解,增強了動手能力和自學能力。特別是在設計同一個題目時出現多種方案,超出了教師講解的可選范圍。學習能力一般的同學,感覺自己也能完成給定的設計任務,增強了信心。能力較強的同學,一方面對于自己的設計不斷精益求精,并對于EDA的設計、DE2開發(fā)板充滿了興趣,愿意進行進一步的深入學習。
參考文獻:
[1] 蔡炳新,蔡熾,曾鴿鳴,等. 改革實驗教育教學培養(yǎng)創(chuàng)新型人才[J]. 實驗室研究與探索,2009,28(1):17-19.
[2] 付必謙,于志紅,李春林. 開放實驗,促進學生自主研究[J]. 實驗技術與管理,2005,22(9):11-14.
[3] 楊學穎,蘇光奎. 計算機硬件課程教學問題初探[J]. 河南教育學院學報:自然科學版,2006,15(1):86-88.
[4] 趙碩,楊欣宇. 計算機組成原理課程的設計性實驗[J]. 高師理科學刊,2005,25(2):77-78.
[5] 白中英,張杰,靳秀國,等. TEC-5數字邏輯與計算機組成的實驗系統(tǒng)[J]. 實驗技術與管理,2007,24(11):49-51.
[6] 薛宏熙,胡秀珠.計算機組成與設計[M].北京:清華大學出版社,2007.
[7] 劉錦萍,潘云燕,譚召軍. 利用MAX+PLUSII軟件仿真計算機組成原理實驗[J]. 嘉興學院學報,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)