江蘇商貿職業學院 焦鵬 鄧正萬
在介紹了序列信號發生器的基礎上,給出了利用VHDL 語言設計的具體方法。結合MAX+PLUS II 的波形仿真功能,驗證設計的正確性。
數字信號采用二值信息“0”和“1”來表示兩個相對的狀態,如脈沖的有、無或電平的高、低。例如:若用“1”表示高電平,則“0”可表示低電平;若用“0”表示有脈沖,則“1”可表示無脈沖。數字電路中,“0”和“1”僅表示兩種相對獨立的狀態,沒有數值上的大小概念,在實際應用中,兩個相對獨立的狀態可用電子器件的開關特性來實現,就是利用二極管、三極管、場效應管等元器件的開關特性,如完全導通表示一種狀態,完全截止表示另一種狀態。因此,數字電路的傳輸與信號處理無論在電路結構還是研究內容、分析方法均與模擬電路不同。
序列信號發生器,能夠在時鐘信號作用下,產生具有周期性的二進制信號,這類邏輯器件又稱序列發生器,它是一種常見的數字電路。根據結構的不同,序列信號發生器可分為移位型序列信號發生器信號發生器和計數型序列信號發生器。前者是由若干移位寄存器和組合邏輯電路兩部分構成,組合電路的輸出信號,可以作為寄存器的輸入信號;后者能夠產生不同的序列信號,它是一種具有多種測量功能、多種用途的電子計數器。
序列信號發生器的構成方法有多種。其中,利用計數器和數據選擇器組合實現就是常用的一種做法。具備數據選擇功能的邏輯電路即數據選擇器,它的作用是,選擇相應的信號,并把處在不同通道的數據傳送至公共數據通道,也稱多路選擇器或多路開關。例如,需要產生一組8 位的序列信號10110101,可使用八進制計數器和八選一數據選器實現。帶反饋邏輯電路的移位寄存器也可以用于序列信號發生器的設計,但是,設計中選用的移位寄存器位數與序列信號的位數密切相關。若仍然要求產生10110101 這樣一組8 位的序列信號,需要3 位移位寄存器和相關組合邏輯電路方可實現[1]。
EDA 技術指的是以計算機硬件和系統軟件為基本工作平臺,結合多個學科的最新成果,開發而成的通用支撐軟件,涉及了電子、數學、圖論等多個領域[2]。其功能復雜,實用性強,代表了當今電子系統設計技術的最新發展方向,其自頂向下、從整體到局部的設計理念與設計平臺的構建,為電子技術設計人員提供了更加方便、更加便捷的電子系統設計方法。隨著高性能的電子芯片出現,人們對于先進的EDA 軟件工具和芯片制造商開發平臺需求日益旺盛。如今,EDA 技術已經成為眾多電子設計工程師的必備技能之一。
EDA 開發工具通常由器件生產廠家提供,如擁有CPLD/FPGA 市場大量份額的Altera 公司和Xilinx 公司,都有專門針對各自公司芯片的開發平臺。其中,MAX+PLUS II 是Altera 公司第三代開發工具,ISE 是Xilinx 公司推廣的開發工具。
EDA 設計使用硬件描述語言對系統的行為、功能進行正確的描述。硬件描述語言作為一種電路設計的工具,它的使用與普通高級語言類似,首先經過編譯器的語法、語義檢查,接著,轉換為某種中間格式。它們的區別是,用硬件描述語言編程的最終目的是要生成實際的硬件電路。
VHDL,超高速集成電路硬件描述語言,是最具推廣前景的硬件描述語言。1994年,電子與電氣工程師協會對其進行了修訂,增加了部分新的命令與屬性,增強了系統的描述能力,目前,VHDL 語言已經成為系統描述的國際公認標準,得到了眾多EDA 公司的支持,越來越多的電路設計工程師采用VHDL 語言描述系統的行為。在各種硬件描述語言中,VHDL 語言的抽象描述能力最強,因此,用VHDL 進行復雜電路設計時,往往采用自頂向下分層設計的方法。首先,從系統功能設計開始,對系統的高層模塊進行行為與功能描述并進行高層次的功能仿真,然后從高層模塊開始往下逐級細化描述。它能形式化地抽象表示電路的結構和行為,支持邏輯設計中層次與領域的描述,可借用高級語言的精巧結構簡化電路的描述[3]。
VHDL 語言能夠得到硬件設計者的不斷重視,還具備以下優點:(1)VHDL 行為描述能力明顯強于其他HDL語言,使設計人員不必考慮具體的器件工藝結構,便于設計電路系統;(2)能在設計的各個階段對電路系統進行仿真模擬,使設計者在設計早期就能檢查系統的功能,減少可能發生的錯誤,降低開發成本;(3)VHDL 語言能將復雜的系統分解成若干部分,實現多人多任務的并行工作方式,提高工作效率;(4)EDA 平臺和VHDL 綜合工具性能日益完善。
本文將使用MAX+PLUS II 開發平臺,利用VHDL語言,設計一個“01111010”序列發生器,結合波形仿真功能,可直觀、便捷地驗證設計的正確性。MAX+PLUS II 是目前使用極為廣泛的EDA 開發工具之一,使用MAX+PLUS II,設計者無需精通器件內部的復雜結構,而只需要用自己熟悉的設計輸入工具(如原理圖或高級行為語言)建立設計,MAX+PLUS II 會自動把這些設計轉換成最終結構所需的格式,如圖1 所示。由于有關結構的詳細知識已經裝入開發工具,設計者不需手工優化自己的設計,因此,設計速度非常快。

圖1 MAX+PLUS II 啟動界面Fig.1 MAX+PLUS II startup interface
MAX+PLUS II 具有以下特點:(1)開放的界面,支持多家公司提供的工具接口;(2)與結構無關,MAX+PLUS II 的編譯器,提供強有力的邏輯綜合與最小化功能,使用戶比較容易將其設計集成到器件中;(3)多平臺,它的設計輸入、處理與校驗功能一起提供了全集成化的一套可編程開發工具,加快調試進程,縮短開發周期;(4)全集成化;(5)模塊組合式工具軟件;(6)支持硬件描述語言VHDL[4]。
在序列發生器的設計中,選用計數器作為狀態切換的控制電路。計數器可以完成對脈沖的個數進行計數,以實現數字測量、狀態控制和數據運算等,它是數字系統最常用的基本部件,是典型的時序電路。序列發生器的設計原理是,結合VHDL 語言的判斷和賦值功能,按照“0-1-0-1-1-1-1-0”自左向右的順序,實現串行輸出。計數器的輸出,可以作為CASE 語句的判斷信號,從而產生對應的輸出,實現狀態的有序切換,得到特定的序列。序列發生器的程序如下:


在本次設計中,定義了名為“BEHA”的實體,整個電路共有2 個輸入端“CLR”和“CLK”。其中,“CLR”為電路的異步復位端,它的優先級最高,當復位信號有效時,電路輸出信號“0”;“CLK”是時鐘信號的輸入端,它是計數器工作的核心控制信號,當時鐘信號的上升沿出現時,計數器正常計數。
在電路功能描述部分,定義了名為“XLFS”的結構體,聲明了名為“Q_TEMP”的信號,用于電信號傳輸,內設了2 個進程,使有關語句有序執行。
程序運行時,一個進程先確定電路的復位信號是否有效,然后,對計數的結果進行判斷,若計數結果為“111”,則執行下一周期的計數,否則,程序在上升沿到來時刻,正常計數。另一個進程,根據計數器輸出的結果,選擇輸出對應的值。如此循環往復,可得到序列“01111010”。由于電路采用串行輸出,所以,電路輸出的值相對序列本身是自右向左的。
程序的編譯結果如圖2 所示。

圖2 程序編譯結果Fig.2 Program compilation results
目前,仿真技術已廣泛運用于不同學科的研究工作中,它具有十分重要的作用。當所研究的對象實驗成本高、實驗周期長或需要花費很長時間才能得出系統的影響因素時,它能夠幫助研究人員快速得出相關結論。在航空航天領域,仿真已是飛行器和衛星運載工具研制必不可少的手段,可以取得很高的經濟效益。在研制、鑒定和定型全過程都必須全面地應用先進的仿真技術[5]。在集成電路生產中,它可以有效得到不同工藝對良品率的影響;在電路設計領域,結合波形仿真圖,可直觀地看出輸出端的具體狀態,確定電路功能設計是否正確,如圖3 所示。

圖3 添加電路端口信號Fig.3 Adding circuit port signal
本次設計中,序列發生器的波形如圖4 所示,在10ns-30ns 期間,電路的復位信號有效,即使時鐘信號的上升沿已經出現,電路也不能正常計數;當電路的復位信號無效時,計數器正常工作,序列發生器有序輸出“01111010”。從圖中還可以看出,電路存在延時現象,這是不可避免的。

圖4 電路仿真波形Fig.4 Circuit simulation waveform
本文在深入理解序列發生器工作原理的基礎上,在MAX+PLUS II 設計平臺中利用VHDL 語言,完成序列發生器的設計,針對編譯提示的問題,對程序進行修改,完成波形仿真,實現預定的電路功能。
引用
[1] 程秀英,侯衛周.基于NI Multisim 10.1數字邏輯選擇器的虛擬仿真[J].實驗科學與技術,2015(3):56-58.
[2] 魏欣,顧斌,姜志鵬.數字電路EDA設計(第三版)[M].西安:西安電子科技大學出版社,2016.
[3] 顧斌,趙明忠,姜志鵬,等.數字電路EDA設計[M].西安:西安電子科技大學出版社,2010.
[4] 胡赟鵬.一種可編程ASIC的開發軟件[J].現代電子技術,2001 (8):52-54.
[5] 李華.開放式仿真系統的設計與關鍵技術[J].電子對抗技術,2002(1):35-38.