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