江蘇商貿職業(yè)學院 蔡廣飛
目前,電子設計自動化技術(EDA)已經(jīng)廣泛應用于電路設計領域。本文介紹了使用VHDL語言設計74LSl60計數(shù)器,結合波形仿真工具,驗證設計是否正確。
電子技術的發(fā)展給人們生活帶來巨大的改變,各類電子產(chǎn)品層出不窮。近年來,電子系統(tǒng)的設計方法也發(fā)生革命性的轉變。早期的數(shù)字電路設計,主要針對電路板進行,設計過程中,把一些具備指定的集成電路按要求擺放在電路板上,最后,通過設計電路板,完成電路功能的設計。20世紀90年代以后,基于EDA技術的電子系統(tǒng)設計已經(jīng)成為主流[1]。
EDA,電子設計自動化的簡稱。以計算機為主要的設計工具,結合由多學科多領域的最新科技成果得到的各類軟件,可以幫助工程師們完成電路的相關設計。利用硬件描述語言進行電路與系統(tǒng)的設計是當前EDA技術的一個重要特征[2]。由于較強的電路仿真能力,相較于傳統(tǒng)的設計方法,它更加適合大型、復雜的電子系統(tǒng)設計,它還是進行邏輯綜合優(yōu)化的重要工具,具有如下突出優(yōu)點:(1)語言的公開利用性:硬件描述語言可在不同的開發(fā)平臺上進行使用,設計者只需遵循語言的使用規(guī)則,即可完成設計任務;(2)電路設計與生產(chǎn)工藝無關性:設計者不需要考慮器件的工藝結構,能夠方便地從邏輯行為級別進行描述和設計電路系統(tǒng);(3)描述能力強;(4)便于組織大規(guī)模系統(tǒng)的設計。
超高速集成電路描述語言VHDL是由美國國防部開發(fā),后被IEEE(Institute of Electrical and Electronics Engineers,電氣與電子工程師協(xié)會)確定為標準化的硬件描述語言,經(jīng)過1984年的修訂,新增部分命令與屬性,增強描述能力。VHDL語言能在電路設計時,對其進行仿真、模擬,便于發(fā)現(xiàn)設計存在的不足,有效地減少了可能發(fā)生的錯誤,降低實際的開發(fā)成本。
VHDL語言是一種行為描述語言,其編程結構和C語言相似。同時,程序本身也讓設計師門易于接受。VHDL語言使用周期長,與器件工藝無關,不會因為工藝技術的發(fā)展,導致程序失效。當電路的工藝改變時,只需在程序中對相應的屬性參數(shù)作出修改即可。
它可以完成多層次的設計描述功能,VHDL程序既可以設計系統(tǒng)級電路,也可以完成對門級電路的設計與描述。具體的描述方式可分四種:(1)行為描述;(2)寄存器傳輸描述;(3)結構描述;(4)采用三者混合的混合級描述。需要說明的是,VHDL語言在原有的數(shù)據(jù)類型基礎上,支持用戶自定義的數(shù)據(jù)類型,使硬件開發(fā)者有著較大的自由空間,便于創(chuàng)建高層次的系統(tǒng)模型。
近年來,F(xiàn)PGA和ASIC的設計在規(guī)模和復雜度方面不斷取得進展,它們的設計也離不開EDA軟件的幫助,在眾多設計工具中,MAX plusII是常用的開發(fā)工具之一,它是由Altera公司開發(fā)的一個電路系統(tǒng)開發(fā)工具,采用了先進的工藝和全新的邏輯結構,支持多種設計輸入方式,包含原理圖輸入、文本輸入等,它會把設計內容轉換成最終結構所需的格式,支持波形仿真,設計簡單高效。因為有關結構的相關知識已經(jīng)裝入MAX plusII開發(fā)工具,目前能夠支持業(yè)界多家EDA公司提供的工具接口。因此,設計者不需手工優(yōu)化自己的設計,實現(xiàn)非常快速的電路系統(tǒng)設計。
本設計采用MAX plusII開發(fā)工具,利用波形仿真功能,驗證設計電路的功能是否準確,過程簡單易懂,形式生動有趣,結果直觀明了。
能累計輸入時鐘脈沖個數(shù)的邏輯電路稱為計數(shù)器,它也是數(shù)字電子系統(tǒng)中的基本邏輯器件,除了具有計數(shù)功能外,還可用于定時、分頻、產(chǎn)生節(jié)拍脈沖序列及進行數(shù)字運算等[3]。同時,它還是一種時序邏輯電路,由各類門電路和觸發(fā)器構成。
計數(shù)器的種類很多,根據(jù)不同的分類依據(jù),存在多種多樣的分類方法。按照觸發(fā)器翻轉的時序不同,可分為同步計數(shù)器和異步計數(shù)器,若系統(tǒng)中所有的觸發(fā)器共用一個時鐘信號,則稱為同步計數(shù)器,反之,稱為異步計數(shù)器;按照計數(shù)功能的不同,可分為加法計數(shù)器和減法計數(shù)器,加法計數(shù)器每來一個脈沖計數(shù)值加1;減法計數(shù)器每來一個脈沖計數(shù)值減l;按照計數(shù)類別的不同,可分為二進制計數(shù)器、十進制計數(shù)器、N進制計數(shù)器,例如,輸出二進制代碼來表示所累計脈沖個數(shù)的計數(shù)器稱為二進制計數(shù)器。
同步計數(shù)器中的全部觸發(fā)器的時鐘信號來自同一個脈沖,各個觸發(fā)器的翻轉和時鐘脈沖同步,具有工作速度快,工作頻率高的優(yōu)點[4]。異步計數(shù)器的電路結構雖然簡單,但由于它的進位或借位信號是逐級傳遞的,因而工作的速度收到限制,電路的級數(shù)越多,工作的延時越長,甚至會造成系統(tǒng)的邏輯錯誤,因此,同步計數(shù)器在高速數(shù)字系統(tǒng)中受到設計師們的青睞。
74LS160是一個十進制計數(shù)器,內部由JK觸發(fā)器和邏輯門電路構成[5],它具有清零端CLR和置數(shù)端LD,計數(shù)控制信號p和t,可以實現(xiàn)清零、置數(shù)、保持和計數(shù)的功能。
74LS160的功能如表1所示,在實際工作中,若清零端有效,則電路輸出0;若置位端有效,則電路輸出與輸入保持一致,完成置數(shù)功能,若清零端和置數(shù)端無效,p和t有一個為低電平時,計數(shù)器輸出保持不變,執(zhí)行保持功能;當計數(shù)控制信號p和t且清零端與置數(shù)端無效時,電路執(zhí)行計數(shù)功能,當檢測到到第十個脈沖時,計數(shù)器輸出端顯示為0,并給出相關信號,完成一個循環(huán)[6]。

表1 74LSl60功能表Tab.1 Function table of 74LSl60
基于對功能表的分析,利用VHDL程序設計計數(shù)器電路。如圖1所示,程序的實體名為Dianlu,實體中包含一個結構體Behavior,結合74LSl60的功能表,程序列出了4位的置數(shù)端Data,4位的輸出端Count,此外,程序列出了相關功能的控制信號。

圖1 74LSl60計數(shù)器的VHDL程序Fig.1 VHDL program for 74LSl60 counter
如圖2所示,當復位信號有效時,電路輸出為0;當復位信號無效時,電路執(zhí)行其他的功能。

圖2 清零功能波形圖Fig.2 Waveform of zeroclearing function
如圖3所示,Data值為“1100”,在復位信號無效,置位信號有效的條件下,輸出為“1100”,完成置位功能。

圖3 置位功能波形圖Fig.3 Waveform diagram of setting function
如圖4所示,改變控制信號t的取值,當p和t不全為高電平時,電路輸出保持不變。

圖4 計數(shù)保持功能波形圖Fig.4 Waveform of counting hold function
如圖5所示,電路的復位端、置位端無效,且p和t均為高電平時,電路在上升沿的觸發(fā)下,電路執(zhí)行計數(shù)功能,每完成一個循環(huán),TC端口給出一個相應的提示信號。

圖5 計數(shù)功能波形圖Fig.5 Waveform diagram of counting function
從驗證結果中還可看出,電路的輸出存在一定的延時,這是不可避免的。設計者可以通過不斷的優(yōu)化,降低延時對電路的影響。
本文利用MAX plusII開發(fā)工具,設計了74LSl60 計數(shù)器電路,并進行波形仿真,對其相關功能進行逐一驗證,結果表明達到設計要求。
引用
[1]顧斌,趙明忠,姜志鵬,等.數(shù)字電路EDA設計[M].西安:西安電子科技大學出版社,2004.
[2]魏欣,顧斌,姜志鵬.數(shù)字電路EDA設計(第三版)[M].西安:西安電子科技大學出版社,2016.
[3]黃建華.汽車電工電子技術[M].西安:西安電子科技大學出版社,2006.
[4]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2013.
[5]胡錦.數(shù)字電路與邏輯設計[M].北京:高等教育出版社,2011.
[6]喬琳君.基于74LS160的 N進制計數(shù)器仿真設計[J].電子設計工程,2013(12):191-193.