江蘇商貿(mào)職業(yè)學(xué)院 蔡廣飛
目前,電子設(shè)計(jì)自動(dòng)化技術(shù)(EDA)已經(jīng)廣泛應(yīng)用于電路設(shè)計(jì)領(lǐng)域。本文介紹了使用VHDL語(yǔ)言設(shè)計(jì)74LSl60計(jì)數(shù)器,結(jié)合波形仿真工具,驗(yàn)證設(shè)計(jì)是否正確。
電子技術(shù)的發(fā)展給人們生活帶來(lái)巨大的改變,各類電子產(chǎn)品層出不窮。近年來(lái),電子系統(tǒng)的設(shè)計(jì)方法也發(fā)生革命性的轉(zhuǎn)變。早期的數(shù)字電路設(shè)計(jì),主要針對(duì)電路板進(jìn)行,設(shè)計(jì)過(guò)程中,把一些具備指定的集成電路按要求擺放在電路板上,最后,通過(guò)設(shè)計(jì)電路板,完成電路功能的設(shè)計(jì)。20世紀(jì)90年代以后,基于EDA技術(shù)的電子系統(tǒng)設(shè)計(jì)已經(jīng)成為主流[1]。
EDA,電子設(shè)計(jì)自動(dòng)化的簡(jiǎn)稱。以計(jì)算機(jī)為主要的設(shè)計(jì)工具,結(jié)合由多學(xué)科多領(lǐng)域的最新科技成果得到的各類軟件,可以幫助工程師們完成電路的相關(guān)設(shè)計(jì)。利用硬件描述語(yǔ)言進(jìn)行電路與系統(tǒng)的設(shè)計(jì)是當(dāng)前EDA技術(shù)的一個(gè)重要特征[2]。由于較強(qiáng)的電路仿真能力,相較于傳統(tǒng)的設(shè)計(jì)方法,它更加適合大型、復(fù)雜的電子系統(tǒng)設(shè)計(jì),它還是進(jìn)行邏輯綜合優(yōu)化的重要工具,具有如下突出優(yōu)點(diǎn):(1)語(yǔ)言的公開(kāi)利用性:硬件描述語(yǔ)言可在不同的開(kāi)發(fā)平臺(tái)上進(jìn)行使用,設(shè)計(jì)者只需遵循語(yǔ)言的使用規(guī)則,即可完成設(shè)計(jì)任務(wù);(2)電路設(shè)計(jì)與生產(chǎn)工藝無(wú)關(guān)性:設(shè)計(jì)者不需要考慮器件的工藝結(jié)構(gòu),能夠方便地從邏輯行為級(jí)別進(jìn)行描述和設(shè)計(jì)電路系統(tǒng);(3)描述能力強(qiáng);(4)便于組織大規(guī)模系統(tǒng)的設(shè)計(jì)。
超高速集成電路描述語(yǔ)言VHDL是由美國(guó)國(guó)防部開(kāi)發(fā),后被IEEE(Institute of Electrical and Electronics Engineers,電氣與電子工程師協(xié)會(huì))確定為標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,經(jīng)過(guò)1984年的修訂,新增部分命令與屬性,增強(qiáng)描述能力。VHDL語(yǔ)言能在電路設(shè)計(jì)時(shí),對(duì)其進(jìn)行仿真、模擬,便于發(fā)現(xiàn)設(shè)計(jì)存在的不足,有效地減少了可能發(fā)生的錯(cuò)誤,降低實(shí)際的開(kāi)發(fā)成本。
VHDL語(yǔ)言是一種行為描述語(yǔ)言,其編程結(jié)構(gòu)和C語(yǔ)言相似。同時(shí),程序本身也讓設(shè)計(jì)師門易于接受。VHDL語(yǔ)言使用周期長(zhǎng),與器件工藝無(wú)關(guān),不會(huì)因?yàn)楣に嚰夹g(shù)的發(fā)展,導(dǎo)致程序失效。當(dāng)電路的工藝改變時(shí),只需在程序中對(duì)相應(yīng)的屬性參數(shù)作出修改即可。
它可以完成多層次的設(shè)計(jì)描述功能,VHDL程序既可以設(shè)計(jì)系統(tǒng)級(jí)電路,也可以完成對(duì)門級(jí)電路的設(shè)計(jì)與描述。具體的描述方式可分四種:(1)行為描述;(2)寄存器傳輸描述;(3)結(jié)構(gòu)描述;(4)采用三者混合的混合級(jí)描述。需要說(shuō)明的是,VHDL語(yǔ)言在原有的數(shù)據(jù)類型基礎(chǔ)上,支持用戶自定義的數(shù)據(jù)類型,使硬件開(kāi)發(fā)者有著較大的自由空間,便于創(chuàng)建高層次的系統(tǒng)模型。
近年來(lái),F(xiàn)PGA和ASIC的設(shè)計(jì)在規(guī)模和復(fù)雜度方面不斷取得進(jìn)展,它們的設(shè)計(jì)也離不開(kāi)EDA軟件的幫助,在眾多設(shè)計(jì)工具中,MAX plusII是常用的開(kāi)發(fā)工具之一,它是由Altera公司開(kāi)發(fā)的一個(gè)電路系統(tǒng)開(kāi)發(fā)工具,采用了先進(jìn)的工藝和全新的邏輯結(jié)構(gòu),支持多種設(shè)計(jì)輸入方式,包含原理圖輸入、文本輸入等,它會(huì)把設(shè)計(jì)內(nèi)容轉(zhuǎn)換成最終結(jié)構(gòu)所需的格式,支持波形仿真,設(shè)計(jì)簡(jiǎn)單高效。因?yàn)橛嘘P(guān)結(jié)構(gòu)的相關(guān)知識(shí)已經(jīng)裝入MAX plusII開(kāi)發(fā)工具,目前能夠支持業(yè)界多家EDA公司提供的工具接口。因此,設(shè)計(jì)者不需手工優(yōu)化自己的設(shè)計(jì),實(shí)現(xiàn)非??焖俚碾娐废到y(tǒng)設(shè)計(jì)。
本設(shè)計(jì)采用MAX plusII開(kāi)發(fā)工具,利用波形仿真功能,驗(yàn)證設(shè)計(jì)電路的功能是否準(zhǔn)確,過(guò)程簡(jiǎn)單易懂,形式生動(dòng)有趣,結(jié)果直觀明了。
能累計(jì)輸入時(shí)鐘脈沖個(gè)數(shù)的邏輯電路稱為計(jì)數(shù)器,它也是數(shù)字電子系統(tǒng)中的基本邏輯器件,除了具有計(jì)數(shù)功能外,還可用于定時(shí)、分頻、產(chǎn)生節(jié)拍脈沖序列及進(jìn)行數(shù)字運(yùn)算等[3]。同時(shí),它還是一種時(shí)序邏輯電路,由各類門電路和觸發(fā)器構(gòu)成。
計(jì)數(shù)器的種類很多,根據(jù)不同的分類依據(jù),存在多種多樣的分類方法。按照觸發(fā)器翻轉(zhuǎn)的時(shí)序不同,可分為同步計(jì)數(shù)器和異步計(jì)數(shù)器,若系統(tǒng)中所有的觸發(fā)器共用一個(gè)時(shí)鐘信號(hào),則稱為同步計(jì)數(shù)器,反之,稱為異步計(jì)數(shù)器;按照計(jì)數(shù)功能的不同,可分為加法計(jì)數(shù)器和減法計(jì)數(shù)器,加法計(jì)數(shù)器每來(lái)一個(gè)脈沖計(jì)數(shù)值加1;減法計(jì)數(shù)器每來(lái)一個(gè)脈沖計(jì)數(shù)值減l;按照計(jì)數(shù)類別的不同,可分為二進(jìn)制計(jì)數(shù)器、十進(jìn)制計(jì)數(shù)器、N進(jìn)制計(jì)數(shù)器,例如,輸出二進(jìn)制代碼來(lái)表示所累計(jì)脈沖個(gè)數(shù)的計(jì)數(shù)器稱為二進(jìn)制計(jì)數(shù)器。
同步計(jì)數(shù)器中的全部觸發(fā)器的時(shí)鐘信號(hào)來(lái)自同一個(gè)脈沖,各個(gè)觸發(fā)器的翻轉(zhuǎn)和時(shí)鐘脈沖同步,具有工作速度快,工作頻率高的優(yōu)點(diǎn)[4]。異步計(jì)數(shù)器的電路結(jié)構(gòu)雖然簡(jiǎn)單,但由于它的進(jìn)位或借位信號(hào)是逐級(jí)傳遞的,因而工作的速度收到限制,電路的級(jí)數(shù)越多,工作的延時(shí)越長(zhǎng),甚至?xí)斐上到y(tǒng)的邏輯錯(cuò)誤,因此,同步計(jì)數(shù)器在高速數(shù)字系統(tǒng)中受到設(shè)計(jì)師們的青睞。
74LS160是一個(gè)十進(jìn)制計(jì)數(shù)器,內(nèi)部由JK觸發(fā)器和邏輯門電路構(gòu)成[5],它具有清零端CLR和置數(shù)端LD,計(jì)數(shù)控制信號(hào)p和t,可以實(shí)現(xiàn)清零、置數(shù)、保持和計(jì)數(shù)的功能。
74LS160的功能如表1所示,在實(shí)際工作中,若清零端有效,則電路輸出0;若置位端有效,則電路輸出與輸入保持一致,完成置數(shù)功能,若清零端和置數(shù)端無(wú)效,p和t有一個(gè)為低電平時(shí),計(jì)數(shù)器輸出保持不變,執(zhí)行保持功能;當(dāng)計(jì)數(shù)控制信號(hào)p和t且清零端與置數(shù)端無(wú)效時(shí),電路執(zhí)行計(jì)數(shù)功能,當(dāng)檢測(cè)到到第十個(gè)脈沖時(shí),計(jì)數(shù)器輸出端顯示為0,并給出相關(guān)信號(hào),完成一個(gè)循環(huán)[6]。
表1 74LSl60功能表Tab.1 Function table of 74LSl60
基于對(duì)功能表的分析,利用VHDL程序設(shè)計(jì)計(jì)數(shù)器電路。如圖1所示,程序的實(shí)體名為Dianlu,實(shí)體中包含一個(gè)結(jié)構(gòu)體Behavior,結(jié)合74LSl60的功能表,程序列出了4位的置數(shù)端Data,4位的輸出端Count,此外,程序列出了相關(guān)功能的控制信號(hào)。
圖1 74LSl60計(jì)數(shù)器的VHDL程序Fig.1 VHDL program for 74LSl60 counter
如圖2所示,當(dāng)復(fù)位信號(hào)有效時(shí),電路輸出為0;當(dāng)復(fù)位信號(hào)無(wú)效時(shí),電路執(zhí)行其他的功能。
圖2 清零功能波形圖Fig.2 Waveform of zeroclearing function
如圖3所示,Data值為“1100”,在復(fù)位信號(hào)無(wú)效,置位信號(hào)有效的條件下,輸出為“1100”,完成置位功能。
圖3 置位功能波形圖Fig.3 Waveform diagram of setting function
如圖4所示,改變控制信號(hào)t的取值,當(dāng)p和t不全為高電平時(shí),電路輸出保持不變。
圖4 計(jì)數(shù)保持功能波形圖Fig.4 Waveform of counting hold function
如圖5所示,電路的復(fù)位端、置位端無(wú)效,且p和t均為高電平時(shí),電路在上升沿的觸發(fā)下,電路執(zhí)行計(jì)數(shù)功能,每完成一個(gè)循環(huán),TC端口給出一個(gè)相應(yīng)的提示信號(hào)。
圖5 計(jì)數(shù)功能波形圖Fig.5 Waveform diagram of counting function
從驗(yàn)證結(jié)果中還可看出,電路的輸出存在一定的延時(shí),這是不可避免的。設(shè)計(jì)者可以通過(guò)不斷的優(yōu)化,降低延時(shí)對(duì)電路的影響。
本文利用MAX plusII開(kāi)發(fā)工具,設(shè)計(jì)了74LSl60 計(jì)數(shù)器電路,并進(jìn)行波形仿真,對(duì)其相關(guān)功能進(jìn)行逐一驗(yàn)證,結(jié)果表明達(dá)到設(shè)計(jì)要求。
引用
[1]顧斌,趙明忠,姜志鵬,等.數(shù)字電路EDA設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2004.
[2]魏欣,顧斌,姜志鵬.數(shù)字電路EDA設(shè)計(jì)(第三版)[M].西安:西安電子科技大學(xué)出版社,2016.
[3]黃建華.汽車電工電子技術(shù)[M].西安:西安電子科技大學(xué)出版社,2006.
[4]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2013.
[5]胡錦.數(shù)字電路與邏輯設(shè)計(jì)[M].北京:高等教育出版社,2011.
[6]喬琳君.基于74LS160的 N進(jìn)制計(jì)數(shù)器仿真設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013(12):191-193.
數(shù)字技術(shù)與應(yīng)用2022年12期