(玉溪師范學(xué)院 信息技術(shù)工程學(xué)院,云南 玉溪 653100)
數(shù)字電路是數(shù)字電子技術(shù)課程的一個(gè)重要內(nèi)容.在以往的教學(xué)中,對(duì)于所設(shè)計(jì)數(shù)字電路的正確性和有效性的驗(yàn)證,是通過(guò)學(xué)生使用實(shí)驗(yàn)箱搭建電路來(lái)完成的,實(shí)驗(yàn)過(guò)程不僅費(fèi)時(shí)費(fèi)力,而且受實(shí)驗(yàn)條件的影響,很難達(dá)到預(yù)期效果.而運(yùn)用計(jì)算機(jī)仿真軟件進(jìn)行驗(yàn)證是一種新的實(shí)驗(yàn)途徑,它不需要實(shí)驗(yàn)設(shè)備和元器件,只要搭建電路模型進(jìn)行仿真即可完成,在實(shí)驗(yàn)效率和準(zhǔn)確程度上均有很大提高.MATLAB具有強(qiáng)大的圖形處理、符號(hào)運(yùn)算和數(shù)值計(jì)算功能,其中的動(dòng)態(tài)仿真工具箱Simulink是從底層開(kāi)發(fā)的一個(gè)完整的仿真環(huán)境和圖形界面.運(yùn)用Simulink用戶(hù)可以完成面向框圖系統(tǒng)仿真的全過(guò)程,直觀(guān)和準(zhǔn)確地達(dá)到仿真目標(biāo).本文中,筆者以組合邏輯電路和時(shí)序邏輯電路為例,介紹Simulink在數(shù)字電路仿真中的應(yīng)用.
在數(shù)字電路中,全加器是實(shí)現(xiàn)兩個(gè)一位二進(jìn)制數(shù)及低位來(lái)的進(jìn)位數(shù)相加,求得和數(shù)及向高位進(jìn)位的邏輯電路,將多個(gè)一位全加器進(jìn)行級(jí)聯(lián),就可實(shí)現(xiàn)多位二進(jìn)制數(shù)的相加.
圖1 全加器仿真模型及驗(yàn)證結(jié)果
表1全加器真值表
Ci-1AiBiSiCi0000000110010100110110010101011100111111
表1為一位全加器的真值表,其中Ai為被加數(shù),Bi為加數(shù),Ci-1為相鄰低位來(lái)的進(jìn)位,Si為輸出本位和,Ci為向高位進(jìn)位.化簡(jiǎn)真值表可得全加器的表達(dá)式為:Si=Ai?Bi?Ci,Ci=AiBi+Ci-1(Ai?Bi).根據(jù)邏輯表達(dá)式,利用Simulink的Logic and Bit Operations子庫(kù)中的Logic Operator模塊[1]和其他相關(guān)模塊可搭建全加器的仿真電路模型如圖1所示,根據(jù)表1分別設(shè)置Ci-1,Ai,Bi的值為1、0、1,運(yùn)行后2個(gè)Display模塊所顯示Si、Ci的值為0、1,與真值表一致,說(shuō)明搭建的仿真電路模型是正確可行的.
兩位二進(jìn)制乘法器可實(shí)現(xiàn)兩個(gè)兩位二進(jìn)制數(shù)的相乘,輸出的乘積為一個(gè)四位二進(jìn)制數(shù),設(shè)A1、A2、B1、B2分別為兩個(gè)乘數(shù)的高位和低位,乘積為Y4、Y3、Y2、Y1,其真值表如表2所示.
表2 兩位二進(jìn)制乘法器真值表
圖2 兩位二進(jìn)制乘法器仿真電路模型
根據(jù)其真值表可得到化簡(jiǎn)后的邏輯表達(dá)式為:
利用Simulink搭建乘法器的電路模型如圖2所示.根據(jù)表2設(shè)置A1A2B1B2為1010,運(yùn)行后,Display模塊顯示0100,仿真結(jié)果與真值表一致.
由于兩位二進(jìn)制乘法器電路比較復(fù)雜,用實(shí)驗(yàn)箱搭建實(shí)際電路來(lái)驗(yàn)證其設(shè)計(jì)的正確性,往往很難達(dá)到預(yù)期結(jié)果,而使用Simulink,只要正確搭建電路模型,便可快速地完成驗(yàn)證.
具有移位功能的寄存器稱(chēng)為移位寄存器[2],屬于時(shí)序邏輯電路.移位寄存器除了可以寄存數(shù)據(jù)外,還可以在時(shí)鐘脈沖控制下將所存數(shù)據(jù)向左或向右移位.在移位寄存器中,輸入信號(hào)輸入到第一個(gè)觸發(fā)器的輸入端,前一個(gè)觸發(fā)器的輸出作為下一個(gè)觸發(fā)器的輸入,所有觸發(fā)器使用同一個(gè)時(shí)鐘脈沖,信號(hào)每經(jīng)過(guò)一個(gè)觸發(fā)器,就被緩存一次.但實(shí)際上,信號(hào)通過(guò)觸發(fā)器是有時(shí)延的,當(dāng)時(shí)鐘脈沖的第一個(gè)上升沿到來(lái)時(shí),信號(hào)就被第一個(gè)觸發(fā)器讀入并送到其輸出端,但此時(shí)第二個(gè)觸發(fā)器還不能讀入這個(gè)信號(hào).因?yàn)楫?dāng)該信號(hào)到達(dá)第一個(gè)觸發(fā)器的輸出端時(shí),時(shí)鐘脈沖的上升沿已經(jīng)結(jié)束,因此只有等到下一個(gè)上升沿到來(lái)時(shí),第二個(gè)觸發(fā)器才能讀入這個(gè)信號(hào).這樣,信號(hào)就在每個(gè)觸發(fā)器的輸出端保持一個(gè)時(shí)鐘周期,且每個(gè)觸發(fā)器的輸出端信號(hào)依次延遲一個(gè)時(shí)鐘周期,從而實(shí)現(xiàn)信號(hào)的移位.采用D觸發(fā)器設(shè)計(jì)一個(gè)4位移位寄存器,并使用Simulink搭建仿真電路模型如圖3所示,圖4是仿真運(yùn)行后示波器的輸出結(jié)果.從仿真輸出波形可以看出,只有在時(shí)鐘信號(hào)的上升沿時(shí),各個(gè)觸發(fā)器的輸出端Q0、Q1、Q2、Q3才會(huì)發(fā)生變化,且四個(gè)觸發(fā)器的輸出依次延遲一個(gè)時(shí)鐘周期.
圖3 4位移位寄存器仿真電路模型
圖4 4位移位寄存器輸出波形
[1]霍加﹒托和塔森.基于MATLAB的數(shù)字電路建模與仿真[J].伊犁師范學(xué)院學(xué)報(bào):自然科學(xué)版,2010(1):49-52.
[2]侯建軍.數(shù)字電子技術(shù)基礎(chǔ):第2版[M].北京:高等教育出版社,2007:36-59.