雷霞 張華忠 鐘勉



摘要:為滿足新工科與工程認證的人才培養要求,豐富數字電子技術基礎教學內容,培養開發學生的創新意識和設計能力,將Matlab應用到課程教學中。利用Matlab中GUI和Simulink仿真工具箱,開發了可視化的數字電路虛擬仿真實驗平臺,可以對數字電路中常見的組合邏輯電路和時序邏輯電路進行仿真。通過GUI模塊建立的可視化界面控制Simulink的參數并運行Simulink仿真,把仿真結果顯示在圖形用戶界面中,方便學生直觀地觀察結果和加深對理論知識的理解。
關鍵詞:Simulink;Matlab;數字電路;仿真實驗
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2024)11-0001-04
0 引言
數字電子技術基礎是電子信息類專業一門重要的專業基礎課程,在電子信息類專業人才培養方案的課程體系中起著重要作用。本專業在工程認證背景下,基于OBE理念對課程進行了教學改革和建設,將Matlab仿真引入課程教學中,利用Simulink仿真模塊對一些數字電路模塊進行仿真,利用GUI呈現友好的人機交互界面,直接在界面中調整Simulink 模型參數,直觀地觀察到仿真結果,利于學生理解和分析電路[1-2]。將Simulink和GUI虛擬仿真應用到數字電路教學中,不僅可以節約硬件設備資源,也有利于調動學生學習的積極性和主動性,提高學生利用理論知識和解決實際工程問題的能力[3-4]。
1 數字電路虛擬仿真實驗系統架構設計
數字電路虛擬仿真實驗平臺基于Matlab的GUI 設計人機交互界面,系統主要由組合邏輯電路和時序邏輯電路兩部分組成,點擊界面相應按鈕跳轉對應電路模塊進行仿真,系統總體設計框架和仿真平臺主界面如圖1所示。
2 基于Matlab Simulink的數字電路仿真模塊實現
2.1 組合邏輯電路仿真
2.1.1 全加器的設計及仿真
1 位全加器電路是數字電子技術基礎教學中的重點電路[5],用于計算兩個二進制數相加。將兩個單獨的二進制數和低位的進位相加,產生一個本位和以及一個向高位的進位。在Simulink模塊庫中選擇Logicand Bit Operations子庫內的Logic Operator模塊,根據邏輯表達式設置對應的功能模塊參數,參照邏輯電路圖將功能模塊放置合適的位置后用連接線連接各模塊。需要注意的是,實現Simulink和GUI 界面之間的數據傳遞,3個輸入端需要設置為From Workspace模塊,2個輸出端設置為To Workspace模塊。同時,為保障電路順利運行還需加上Power GUI模塊。Matlab的GUI通過open_system加載需要控制的Simulink模型,在GUI控件的回調函數中設置Simulink仿真所需的輸入參數。建立的Simulink模型,需要存放在與GUI的FIG(.fig) 文件相同的位置,通過 From Workspace 模塊跨空間將GUI界面中設置的輸入參數傳遞給Simulink 模型計算,同時通過 To Workspace 模塊將Simulink仿真后計算結果輸出至工作空間,從而實現Simulink和GUI之間的參數相互調用[6-9]。
建立Simulink 仿真模型后,利用Matlab 軟件的GUIDE工具進行用戶界面設計。界面設計主要包括界面布局、設置控件的屬性、編寫回調函數三個方面,保存會自動生成兩個文件,其中文件FIG(.fig) 中包含了 GUI 對象的布局信息和屬性設置,M文件(.m) 中保存所需函數用以實現具體功能[6]。1位全加器仿真界面如圖2所示,整個仿真過程流程如下:左上方是實驗數據輸入區,輸入相應的參數A、B和CI后點擊下方“開始實驗”按鈕,跳轉到Simulink全加器電路仿真,右上方實驗結果輸出區顯示CO和S的計算結果。點擊“真值表”按鈕在界面左下方顯示全加器真值表,點擊“Simulink仿真模型”按鈕顯示Simulink 全加器仿真電路模型。整個仿真實驗界面整潔美觀、層次結構清晰,同時增加各種控件用以豐富課件的功能和知識性,可以一定程度地提高教學效果和效率,增加學生對該課程的興趣。
2.1.2 3-8譯碼器的設計及仿真
3-8 譯碼器是一種常用的組合邏輯電路,輸入的3 位二進制代碼共有8種狀態,譯碼器將這8種狀態譯為對應的8 位高、低電平信號。譯碼器的每個輸出都對應著一個二進制數,對應于一個確定的輸入,且只有一個輸出會被置為1,其他輸出都為0。譯碼器可以將三輸入變量的全部最小項進行譯碼輸出。
3-8譯碼器電路實驗仿真GUI界面如圖3(a)所示。整個仿真過程流程如下:根據實驗需要調整輸入參數,單擊“ 開始實驗”按鈕,跳轉到Siumink仿真電路頁面,右上方輸出區顯示計算結果。點擊“真值表”按鈕顯示3-8 譯碼器的真值表,點擊“Simulink 仿真模型”按鈕顯示Simulink 電路仿真模型。根據真值表和邏輯函數表達式,利用Simulink搭建3-8譯碼器電路,搭建完成后的3-8譯碼器Simulink 仿真電路圖如圖3(b)所示。以A2=1,A1=0,A0=1 為例,輸出高電平有效,只有Y5=1,其余輸出均為0,通過Simulink仿真得到的計算結果如圖3(a)所示。
2.1.3 優先編碼器的設計及仿真
編碼器的邏輯功能是將輸入的每一個高低電平信號編譯為對應的二進制代碼。在優先編碼器電路中,事先確定所有輸入信號的優先順序,編碼方式是優先級較高的輸入信號擁有較高的權重。允許同時輸入兩個及以上的輸入信號,電路只對其中優先級最高的一個信號進行編碼。
根據經典8線-3線優先編碼器74HC138的內部邏輯電路圖,在Simulink選擇相應模塊搭建8線-3線優先編碼器電路,搭建完成后的8線-3線優先編碼器電路實驗仿真界面如圖4(a)所示,Simulink 仿真電路圖如圖4(b)所示。用戶根據實驗需要調整輸入參數,以Y0=0,Y1=0,Y2=1,Y3=0,Y4=1,Y5=0,Y6=1,Y7=1 為例,代表Y2、Y4、Y6、Y7這4路輸入信號均有編碼需求,編碼器電路只對優先級最高的Y7信號進行編碼,輸出結果為111。通過實驗有利于學生理解優先編碼器電路原理,可以方便、有效地對電路進行分析。
2.2 時序邏輯電路仿真
2.2.1 移位寄存器的設計及仿真
移位寄存器是一種常用的時序邏輯電路,具有存儲代碼和移位的功能,在移位脈沖的作用下寄存器里存儲的代碼可以依次左移或右移。移位寄存器不僅可以存儲代碼,還可以實現數據處理、串行-并行轉換、數值運算等。根據教學內容,利用D觸發器構建右移移位寄存器,參照電路原理圖,從Simulink 庫瀏覽器中選擇對應的模塊,連接所有的信號線,使得模型中的所有端口連接正確,其中第一個D觸發器的輸入端用來接收輸入信號,剩下的3個觸發器的輸入端均與前面一個觸發器的輸出端Q相連,建立的右移移位寄存器的Simulink 模擬模型和仿真波形圖如圖5(a) 和(b)所示。
2.2.2 十進制計數器的設計及仿真
計數器是數字系統中使用最多的時序邏輯電路,可以對時鐘脈沖計數、分頻、定時、產生節拍脈沖等。同步計數器通常由T觸發器構成,可以控制輸入端T 的狀態和控制時鐘CLK信號來實現相應的觸發器翻轉,通過計數器電路的不同狀態從而實現對輸入的CLK脈沖進行計數。參照同步十進制加法計數器的原理圖在Simulink中搭建好電路,用JK觸發器構成T 觸發器,所有觸發器共用同一個時鐘,當計數脈沖到達時,使需要翻轉的觸發器輸入控制端T=1,不需要翻轉的觸發器輸入控制端T=0,建立的十進制加法計數器的Simulink 模擬模型和仿真波形圖如圖6(a)和(b)所示。由圖6(b)可知,十進制加法計數器電路可以實現從0000開始加法計數,計入第九個輸入脈沖后,電路進入到1001狀態,當第十個輸入脈沖到達后,電路返回到0000狀態并且輸出進位信號C=1。
2.2.3 順序脈沖發生器的設計及仿真
順序脈沖發生器可以由移位寄存器構成。采用移位寄存器構成環形計數器,當環形計數器工作在每個狀態中只有一個為1的循環狀態時,就在時鐘脈沖的依次作用下,各觸發器依次輸出正脈沖,并不斷循環輸出順序脈沖。
根據電路原理圖從Simulink 庫中選擇相應的模塊,將模塊依次連接。建立的順序脈沖發生器的Simulink 模擬模型和仿真波形圖如圖7(a)和(b)所示。觸發器的輸入端使用時鐘模塊來模擬時鐘信號, 觸發器的輸出端連接Scope 模塊進行可視化展示,用于觀察脈沖序列的輸出波形和周期性等特征。在仿真過程中,可以調整時鐘信號頻率、仿真時間等仿真參數,并實時觀察仿真結果。
3 結論
本文基于Matlab的GUI技術和Simulink仿真技術實現了數字電子基礎課程中涉及的常見的組合邏輯電路和時序邏輯電路的設計和仿真,充分地結合界面操控與模型仿真的優點,提高軟件實用性。將枯燥、難懂的理論知識變成直觀、易解的框圖模型,有利于加強學生對數字電路理論的理解,調動學生的學習積極性,進而有利于促進數字電子技術基礎課程教學效果和質量的提高。
參考文獻:
[1] 邵正途,張路,陳鵬,等. 基于GUI/Simulink的通信對抗效能仿真平臺設計與實現[J]. 艦船電子對抗,2020,43(6):57-59,64.
[2] 陳曉娟. 電路分析仿真平臺的GUI設計[J]. 設備管理與維修,2021(9):135-137.
[3] 郭建勤,許書君,王琰.《高頻電子線路分析與設計》精品資源共享課程建設的有效探索[J]. 教育現代化,2018,5(8):305-307.
[4] 常世杰,杜云明,徐穎,等. 一種基于Matlab GUI的電力電子實驗教學平臺設計[J]. 中國科技信息,2021(17).
[5] 閻石,王紅. 數字電子技術基礎[M]. 6版. 北京:高等教育出版社,2016.
[6] 王江. 基于Matlab/Simulink系統仿真權威指南[M]. 北京:機械工業出版社,2013.
[7] 毛文杰,朱其剛,楊金梁,等. 基于Simulink的語音通信系統設計與分析[J]. 電腦知識與技術,2020,16(35):4-6.
[8] 梁營玉,張志,查雯婷. 基于Matlab/Simulink的可視化對比調壓實驗設計[J]. 電腦知識與技術,2022,18(24):121-123.
[9] 崔翔, 鮑克勤, 邵明強,等. 基于Matlab GUI/SIMULINK的軟件設計及在工程實際中的應用[J]. 電腦知識與技術,2016,12(17):220-223.
【通聯編輯:王力】