何 松
(常州工學(xué)院 計(jì)算機(jī)信息工程學(xué)院,江蘇 常州 213032)
Matlab是由美國The MathWorks公司開發(fā)的軟件,是MatrixLaboratory(矩陣實(shí)驗(yàn)室)的縮寫,一種高效的工程計(jì)算機(jī)語言。它集概念設(shè)計(jì)、算法開發(fā)、建模仿真、實(shí)時(shí)實(shí)現(xiàn)于一體,方便使用且適于集成環(huán)境。Matlab的一個(gè)重要的分支產(chǎn)品是Simulink,它結(jié)合了框圖界面和交互仿真能力,是一種系統(tǒng)設(shè)計(jì)和仿真的工具。Simulink模型是用繪制方框圖代替程序編寫,使得系統(tǒng)編寫具有了可視化的功能,同時(shí)也可借助模擬示波器等虛擬設(shè)備更加直觀地顯示仿真動(dòng)態(tài)結(jié)果。Simulink也是目前動(dòng)態(tài)系統(tǒng)建模、仿真等方面應(yīng)用最為廣泛的軟件之一[1]。
“數(shù)字電路”課程是信息、電子類專業(yè)的一門專業(yè)基礎(chǔ)課。數(shù)字電路由若干個(gè)數(shù)字集成器件構(gòu)造而成。按照邏輯功能不同特點(diǎn),可以分成組合邏輯、時(shí)序邏輯兩大類電路。傳統(tǒng)的課程實(shí)驗(yàn)中,大多采用實(shí)驗(yàn)箱,讓學(xué)生搭建實(shí)驗(yàn)電路,操作簡單。隨著信息技術(shù)的發(fā)展,除了關(guān)注學(xué)生的動(dòng)手操作能力,更加強(qiáng)調(diào)知識體系的分析和應(yīng)用能力。如果能夠較好地利用Matlab/Simulink方針技術(shù),將可以使教師的講解更加生動(dòng),學(xué)生也可以更加直觀地看到電路運(yùn)行時(shí)的波形變化,更加容易被學(xué)生理解,從而提高學(xué)習(xí)效率[2]。
本文以并行寄存器為例。設(shè)計(jì)中使用基本RS觸發(fā)器設(shè)計(jì)一個(gè)2位并行寄存器。并行寄存器就是能夠同時(shí)存儲(chǔ)幾個(gè)數(shù)據(jù)源數(shù)據(jù)的寄存器。Simulink中提供了基本RS觸發(fā)器模塊。首先在Matlab中運(yùn)行Simulink,然后新建一個(gè)模型,將RS觸發(fā)器的模塊添加到模型中,通過在這個(gè)模塊上右擊鼠標(biāo),單擊彈出菜單中的“Look Under Mask”(查看下封裝下的電路)命令,可以看到這個(gè)模塊內(nèi)部電路?;綬S觸發(fā)器模塊及其內(nèi)部電路如圖1所示。
圖1 基本RS觸發(fā)器模塊及內(nèi)部電路
觸發(fā)器(Flip Flop)是一種可以存儲(chǔ)電路狀態(tài)的電子元件。最簡單的是由兩個(gè)或非門,兩個(gè)輸入端和兩個(gè)輸出端組成的RS觸發(fā)器,邏輯符號如圖2所示,狀態(tài)轉(zhuǎn)換如圖3所示。
圖2 RS觸發(fā)器邏輯符號
圖3 RS觸發(fā)器狀態(tài)轉(zhuǎn)換
RS觸發(fā)器的真值表如表1所示。
表1 RS觸發(fā)器真值表
復(fù)雜一些的有帶時(shí)鐘(CLK)端和D(Data)端,當(dāng)CLK端是高電平時(shí)跟隨D端狀態(tài),當(dāng)CLK端變?yōu)榈碗娖降乃查g鎖存信號。更常用的是兩個(gè)簡單D觸發(fā)器相級聯(lián),在時(shí)鐘下跳沿鎖存信號的邊緣D觸發(fā)器,廣泛應(yīng)用于計(jì)數(shù)器、運(yùn)算器、存儲(chǔ)器等電子器件。
設(shè)計(jì)一個(gè)兩位并行寄存器需要2個(gè)基本RS觸發(fā)器,而且這個(gè)寄存器要在同一個(gè)激勵(lì)下,從輸入端讀入數(shù)據(jù),存儲(chǔ)一段時(shí)間后,在下個(gè)周期將信號輸出,同時(shí)讀入新的信號。這就需要將時(shí)鐘源信號作為輸入信號的控制端,由于輸入信號R和S不能同時(shí)為1,所以通過一個(gè)非門將它們聯(lián)系起來,迫使兩個(gè)端口信號不同時(shí)為高電平[3-4]。
用基本RS觸發(fā)器構(gòu)造并行寄存器,需要5個(gè)模塊:RS觸發(fā)器、時(shí)鐘源、脈沖源、邏輯運(yùn)算模塊、示波器。搭建模型后,需要修改模塊參數(shù)。RS觸發(fā)器模塊只有一個(gè)參數(shù)即觸發(fā)器的初始狀態(tài),也就是Q端的初始值,默認(rèn)值為0。時(shí)鐘源模塊的參數(shù)時(shí)鐘周期,采用默認(rèn)值2。4個(gè)邏輯運(yùn)算模塊均設(shè)置為2輸入與非門。將脈沖源模塊的Pulse Type選擇Sample based,其他參數(shù)設(shè)置如表2所示。示波器輸入端口改為5個(gè),完成參數(shù)設(shè)計(jì)部分[5]。
表2 并行寄存器脈沖源參數(shù)設(shè)置
將各模塊擺放合適,完成連線,仿真圖如圖4所示。仿真時(shí)間默認(rèn)為10 s,開始仿真,通過示波器觀察到輸出波形,如圖5所示。
圖4 2位并行寄存器電路
圖5 示波器輸出結(jié)果
從波形上可以看出,當(dāng)時(shí)鐘源處于低電平時(shí),觸發(fā)器輸出保持在時(shí)鐘跳變前的數(shù)值,對于D1和D0輸入的變化沒有改變,而當(dāng)時(shí)鐘源處于高電平時(shí),輸入的信號全部送入輸出端,這是一個(gè)不穩(wěn)定的因素,也是電平觸發(fā)的觸發(fā)器的一個(gè)缺點(diǎn)。并且兩個(gè)觸發(fā)器完全獨(dú)立工作,互不影響,這就是并行的特點(diǎn)。
雖然Mat lab軟件中還沒有提供用于數(shù)字電路仿真的專用工具箱,但提供一些常用的模塊,可以使用已有的模塊,自行構(gòu)建所需模塊,組成一個(gè)小型的虛擬實(shí)驗(yàn)箱,來滿足基本的教學(xué)需要,同時(shí)可以作為學(xué)生的課外學(xué)習(xí)或?qū)嶒?yàn)使用。
在未來的教學(xué)中,可以考慮將Matlab/Simulink和GUI部件相結(jié)合,對數(shù)字電路進(jìn)行仿真運(yùn)行,為數(shù)字電路教學(xué)提供另外一種很好的方法。GUI用戶界面的融合,提高了仿真的效率,操作非常簡便,使用者不需要掌握計(jì)算機(jī)語言,一切操作都可以在鼠標(biāo)的點(diǎn)擊和拖動(dòng)下完成,而且具有可開發(fā)性。它為數(shù)字電路的實(shí)驗(yàn)教學(xué)提供了一種新的方式,也為數(shù)字電路的理論教學(xué)提供了一種輔助教學(xué)手段。
[參考文獻(xiàn)]
[1]唐競新.數(shù)字電子電路[M].北京:清華大學(xué)出版社,2003.
[2]潘曉明.基于Matlab數(shù)字電路建模與仿真[J].柳州師專學(xué)報(bào),2007(4):128-129.
[3]張森,張正亮.Matlab仿真技術(shù)與實(shí)例教程[M].北京:機(jī)械工業(yè)出版社,2004.
[4]劉磊.Matlab在“數(shù)字電路”課程教學(xué)中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào),2008(5):79-81.
[5]陳懷琛.Matlab及在電子信息課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2003.