江蘇商貿(mào)職業(yè)學(xué)院 焦鵬 鄧正萬
在介紹了序列信號發(fā)生器的基礎(chǔ)上,給出了利用VHDL 語言設(shè)計(jì)的具體方法。結(jié)合MAX+PLUS II 的波形仿真功能,驗(yàn)證設(shè)計(jì)的正確性。
數(shù)字信號采用二值信息“0”和“1”來表示兩個(gè)相對的狀態(tài),如脈沖的有、無或電平的高、低。例如:若用“1”表示高電平,則“0”可表示低電平;若用“0”表示有脈沖,則“1”可表示無脈沖。數(shù)字電路中,“0”和“1”僅表示兩種相對獨(dú)立的狀態(tài),沒有數(shù)值上的大小概念,在實(shí)際應(yīng)用中,兩個(gè)相對獨(dú)立的狀態(tài)可用電子器件的開關(guān)特性來實(shí)現(xiàn),就是利用二極管、三極管、場效應(yīng)管等元器件的開關(guān)特性,如完全導(dǎo)通表示一種狀態(tài),完全截止表示另一種狀態(tài)。因此,數(shù)字電路的傳輸與信號處理無論在電路結(jié)構(gòu)還是研究內(nèi)容、分析方法均與模擬電路不同。
序列信號發(fā)生器,能夠在時(shí)鐘信號作用下,產(chǎn)生具有周期性的二進(jìn)制信號,這類邏輯器件又稱序列發(fā)生器,它是一種常見的數(shù)字電路。根據(jù)結(jié)構(gòu)的不同,序列信號發(fā)生器可分為移位型序列信號發(fā)生器信號發(fā)生器和計(jì)數(shù)型序列信號發(fā)生器。前者是由若干移位寄存器和組合邏輯電路兩部分構(gòu)成,組合電路的輸出信號,可以作為寄存器的輸入信號;后者能夠產(chǎn)生不同的序列信號,它是一種具有多種測量功能、多種用途的電子計(jì)數(shù)器。
序列信號發(fā)生器的構(gòu)成方法有多種。其中,利用計(jì)數(shù)器和數(shù)據(jù)選擇器組合實(shí)現(xiàn)就是常用的一種做法。具備數(shù)據(jù)選擇功能的邏輯電路即數(shù)據(jù)選擇器,它的作用是,選擇相應(yīng)的信號,并把處在不同通道的數(shù)據(jù)傳送至公共數(shù)據(jù)通道,也稱多路選擇器或多路開關(guān)。例如,需要產(chǎn)生一組8 位的序列信號10110101,可使用八進(jìn)制計(jì)數(shù)器和八選一數(shù)據(jù)選器實(shí)現(xiàn)。帶反饋邏輯電路的移位寄存器也可以用于序列信號發(fā)生器的設(shè)計(jì),但是,設(shè)計(jì)中選用的移位寄存器位數(shù)與序列信號的位數(shù)密切相關(guān)。若仍然要求產(chǎn)生10110101 這樣一組8 位的序列信號,需要3 位移位寄存器和相關(guān)組合邏輯電路方可實(shí)現(xiàn)[1]。
EDA 技術(shù)指的是以計(jì)算機(jī)硬件和系統(tǒng)軟件為基本工作平臺,結(jié)合多個(gè)學(xué)科的最新成果,開發(fā)而成的通用支撐軟件,涉及了電子、數(shù)學(xué)、圖論等多個(gè)領(lǐng)域[2]。其功能復(fù)雜,實(shí)用性強(qiáng),代表了當(dāng)今電子系統(tǒng)設(shè)計(jì)技術(shù)的最新發(fā)展方向,其自頂向下、從整體到局部的設(shè)計(jì)理念與設(shè)計(jì)平臺的構(gòu)建,為電子技術(shù)設(shè)計(jì)人員提供了更加方便、更加便捷的電子系統(tǒng)設(shè)計(jì)方法。隨著高性能的電子芯片出現(xiàn),人們對于先進(jìn)的EDA 軟件工具和芯片制造商開發(fā)平臺需求日益旺盛。如今,EDA 技術(shù)已經(jīng)成為眾多電子設(shè)計(jì)工程師的必備技能之一。
EDA 開發(fā)工具通常由器件生產(chǎn)廠家提供,如擁有CPLD/FPGA 市場大量份額的Altera 公司和Xilinx 公司,都有專門針對各自公司芯片的開發(fā)平臺。其中,MAX+PLUS II 是Altera 公司第三代開發(fā)工具,ISE 是Xilinx 公司推廣的開發(fā)工具。
EDA 設(shè)計(jì)使用硬件描述語言對系統(tǒng)的行為、功能進(jìn)行正確的描述。硬件描述語言作為一種電路設(shè)計(jì)的工具,它的使用與普通高級語言類似,首先經(jīng)過編譯器的語法、語義檢查,接著,轉(zhuǎn)換為某種中間格式。它們的區(qū)別是,用硬件描述語言編程的最終目的是要生成實(shí)際的硬件電路。
VHDL,超高速集成電路硬件描述語言,是最具推廣前景的硬件描述語言。1994年,電子與電氣工程師協(xié)會(huì)對其進(jìn)行了修訂,增加了部分新的命令與屬性,增強(qiáng)了系統(tǒng)的描述能力,目前,VHDL 語言已經(jīng)成為系統(tǒng)描述的國際公認(rèn)標(biāo)準(zhǔn),得到了眾多EDA 公司的支持,越來越多的電路設(shè)計(jì)工程師采用VHDL 語言描述系統(tǒng)的行為。在各種硬件描述語言中,VHDL 語言的抽象描述能力最強(qiáng),因此,用VHDL 進(jìn)行復(fù)雜電路設(shè)計(jì)時(shí),往往采用自頂向下分層設(shè)計(jì)的方法。首先,從系統(tǒng)功能設(shè)計(jì)開始,對系統(tǒng)的高層模塊進(jìn)行行為與功能描述并進(jìn)行高層次的功能仿真,然后從高層模塊開始往下逐級細(xì)化描述。它能形式化地抽象表示電路的結(jié)構(gòu)和行為,支持邏輯設(shè)計(jì)中層次與領(lǐng)域的描述,可借用高級語言的精巧結(jié)構(gòu)簡化電路的描述[3]。
VHDL 語言能夠得到硬件設(shè)計(jì)者的不斷重視,還具備以下優(yōu)點(diǎn):(1)VHDL 行為描述能力明顯強(qiáng)于其他HDL語言,使設(shè)計(jì)人員不必考慮具體的器件工藝結(jié)構(gòu),便于設(shè)計(jì)電路系統(tǒng);(2)能在設(shè)計(jì)的各個(gè)階段對電路系統(tǒng)進(jìn)行仿真模擬,使設(shè)計(jì)者在設(shè)計(jì)早期就能檢查系統(tǒng)的功能,減少可能發(fā)生的錯(cuò)誤,降低開發(fā)成本;(3)VHDL 語言能將復(fù)雜的系統(tǒng)分解成若干部分,實(shí)現(xiàn)多人多任務(wù)的并行工作方式,提高工作效率;(4)EDA 平臺和VHDL 綜合工具性能日益完善。
本文將使用MAX+PLUS II 開發(fā)平臺,利用VHDL語言,設(shè)計(jì)一個(gè)“01111010”序列發(fā)生器,結(jié)合波形仿真功能,可直觀、便捷地驗(yàn)證設(shè)計(jì)的正確性。MAX+PLUS II 是目前使用極為廣泛的EDA 開發(fā)工具之一,使用MAX+PLUS II,設(shè)計(jì)者無需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),而只需要用自己熟悉的設(shè)計(jì)輸入工具(如原理圖或高級行為語言)建立設(shè)計(jì),MAX+PLUS II 會(huì)自動(dòng)把這些設(shè)計(jì)轉(zhuǎn)換成最終結(jié)構(gòu)所需的格式,如圖1 所示。由于有關(guān)結(jié)構(gòu)的詳細(xì)知識已經(jīng)裝入開發(fā)工具,設(shè)計(jì)者不需手工優(yōu)化自己的設(shè)計(jì),因此,設(shè)計(jì)速度非??臁?/p>
圖1 MAX+PLUS II 啟動(dòng)界面Fig.1 MAX+PLUS II startup interface
MAX+PLUS II 具有以下特點(diǎn):(1)開放的界面,支持多家公司提供的工具接口;(2)與結(jié)構(gòu)無關(guān),MAX+PLUS II 的編譯器,提供強(qiáng)有力的邏輯綜合與最小化功能,使用戶比較容易將其設(shè)計(jì)集成到器件中;(3)多平臺,它的設(shè)計(jì)輸入、處理與校驗(yàn)功能一起提供了全集成化的一套可編程開發(fā)工具,加快調(diào)試進(jìn)程,縮短開發(fā)周期;(4)全集成化;(5)模塊組合式工具軟件;(6)支持硬件描述語言VHDL[4]。
在序列發(fā)生器的設(shè)計(jì)中,選用計(jì)數(shù)器作為狀態(tài)切換的控制電路。計(jì)數(shù)器可以完成對脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù),以實(shí)現(xiàn)數(shù)字測量、狀態(tài)控制和數(shù)據(jù)運(yùn)算等,它是數(shù)字系統(tǒng)最常用的基本部件,是典型的時(shí)序電路。序列發(fā)生器的設(shè)計(jì)原理是,結(jié)合VHDL 語言的判斷和賦值功能,按照“0-1-0-1-1-1-1-0”自左向右的順序,實(shí)現(xiàn)串行輸出。計(jì)數(shù)器的輸出,可以作為CASE 語句的判斷信號,從而產(chǎn)生對應(yīng)的輸出,實(shí)現(xiàn)狀態(tài)的有序切換,得到特定的序列。序列發(fā)生器的程序如下:
在本次設(shè)計(jì)中,定義了名為“BEHA”的實(shí)體,整個(gè)電路共有2 個(gè)輸入端“CLR”和“CLK”。其中,“CLR”為電路的異步復(fù)位端,它的優(yōu)先級最高,當(dāng)復(fù)位信號有效時(shí),電路輸出信號“0”;“CLK”是時(shí)鐘信號的輸入端,它是計(jì)數(shù)器工作的核心控制信號,當(dāng)時(shí)鐘信號的上升沿出現(xiàn)時(shí),計(jì)數(shù)器正常計(jì)數(shù)。
在電路功能描述部分,定義了名為“XLFS”的結(jié)構(gòu)體,聲明了名為“Q_TEMP”的信號,用于電信號傳輸,內(nèi)設(shè)了2 個(gè)進(jìn)程,使有關(guān)語句有序執(zhí)行。
程序運(yùn)行時(shí),一個(gè)進(jìn)程先確定電路的復(fù)位信號是否有效,然后,對計(jì)數(shù)的結(jié)果進(jìn)行判斷,若計(jì)數(shù)結(jié)果為“111”,則執(zhí)行下一周期的計(jì)數(shù),否則,程序在上升沿到來時(shí)刻,正常計(jì)數(shù)。另一個(gè)進(jìn)程,根據(jù)計(jì)數(shù)器輸出的結(jié)果,選擇輸出對應(yīng)的值。如此循環(huán)往復(fù),可得到序列“01111010”。由于電路采用串行輸出,所以,電路輸出的值相對序列本身是自右向左的。
程序的編譯結(jié)果如圖2 所示。
圖2 程序編譯結(jié)果Fig.2 Program compilation results
目前,仿真技術(shù)已廣泛運(yùn)用于不同學(xué)科的研究工作中,它具有十分重要的作用。當(dāng)所研究的對象實(shí)驗(yàn)成本高、實(shí)驗(yàn)周期長或需要花費(fèi)很長時(shí)間才能得出系統(tǒng)的影響因素時(shí),它能夠幫助研究人員快速得出相關(guān)結(jié)論。在航空航天領(lǐng)域,仿真已是飛行器和衛(wèi)星運(yùn)載工具研制必不可少的手段,可以取得很高的經(jīng)濟(jì)效益。在研制、鑒定和定型全過程都必須全面地應(yīng)用先進(jìn)的仿真技術(shù)[5]。在集成電路生產(chǎn)中,它可以有效得到不同工藝對良品率的影響;在電路設(shè)計(jì)領(lǐng)域,結(jié)合波形仿真圖,可直觀地看出輸出端的具體狀態(tài),確定電路功能設(shè)計(jì)是否正確,如圖3 所示。
圖3 添加電路端口信號Fig.3 Adding circuit port signal
本次設(shè)計(jì)中,序列發(fā)生器的波形如圖4 所示,在10ns-30ns 期間,電路的復(fù)位信號有效,即使時(shí)鐘信號的上升沿已經(jīng)出現(xiàn),電路也不能正常計(jì)數(shù);當(dāng)電路的復(fù)位信號無效時(shí),計(jì)數(shù)器正常工作,序列發(fā)生器有序輸出“01111010”。從圖中還可以看出,電路存在延時(shí)現(xiàn)象,這是不可避免的。
圖4 電路仿真波形Fig.4 Circuit simulation waveform
本文在深入理解序列發(fā)生器工作原理的基礎(chǔ)上,在MAX+PLUS II 設(shè)計(jì)平臺中利用VHDL 語言,完成序列發(fā)生器的設(shè)計(jì),針對編譯提示的問題,對程序進(jìn)行修改,完成波形仿真,實(shí)現(xiàn)預(yù)定的電路功能。
引用
[1] 程秀英,侯衛(wèi)周.基于NI Multisim 10.1數(shù)字邏輯選擇器的虛擬仿真[J].實(shí)驗(yàn)科學(xué)與技術(shù),2015(3):56-58.
[2] 魏欣,顧斌,姜志鵬.數(shù)字電路EDA設(shè)計(jì)(第三版)[M].西安:西安電子科技大學(xué)出版社,2016.
[3] 顧斌,趙明忠,姜志鵬,等.數(shù)字電路EDA設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2010.
[4] 胡赟鵬.一種可編程ASIC的開發(fā)軟件[J].現(xiàn)代電子技術(shù),2001 (8):52-54.
[5] 李華.開放式仿真系統(tǒng)的設(shè)計(jì)與關(guān)鍵技術(shù)[J].電子對抗技術(shù),2002(1):35-38.
數(shù)字技術(shù)與應(yīng)用2023年1期