馬宏興,賈浩博,劉旋,丁雨恒
(北方民族大學(xué) 電氣信息工程學(xué)院,寧夏銀川,750021)
設(shè)計時序電路時,可以用編碼器、譯碼器、數(shù)據(jù)選擇器、加法器、計數(shù)器、寄存器等中小規(guī)模集成電路,外加門級電路如與、或、非及與非、或非等電路,完成相應(yīng)功能。由于生活中需要各種計數(shù)功能,因此時序電路中最為常見的也是各種計數(shù)器的設(shè)計。
計數(shù)器是電路設(shè)計中使用最為廣泛的時序邏輯電路,能夠記憶脈沖個數(shù)。計數(shù)器設(shè)計原理是基于時序電路和觸發(fā)器,通過觸發(fā)器狀態(tài)的改變實現(xiàn)數(shù)字的累加。計數(shù)器不但可以記數(shù),而且還可以用于定時、分頻、脈沖產(chǎn)生和數(shù)字運算。
設(shè)計計數(shù)器時,常采用現(xiàn)有的集成計數(shù)字電路來設(shè)計所指定的計數(shù)器。假定已有N進制計數(shù)器,需要設(shè)計M進制計數(shù)器,當(dāng)設(shè)計的M進制計數(shù)器的M小于給定的N進制計數(shù)器時,只需要選取N 進制計數(shù)器中的M種狀態(tài)即可;當(dāng)設(shè)計的M進制計數(shù)器的M大于給定的N進制計數(shù)器的N時,須將多片N進制計數(shù)器級聯(lián),此時設(shè)計方法分為整體清零計數(shù)法和分解計數(shù)法。
(1)整體清零計數(shù)法
整體清零計數(shù)法的基本思想是先將n片計數(shù)器級聯(lián)組成N n(Nn>m)進制計數(shù)器,在計滿M個狀態(tài)后,采用整體清零,使得計數(shù)狀態(tài)在0~M- 1之間循環(huán),從而實現(xiàn)M進制計數(shù)器。
(2)分解計數(shù)法
分解計數(shù)法的基本思路是指將M進制分解,即M=M1×M2×…×Mn,其中,M1,M2,…,Mn均不大于計數(shù)器最大計數(shù)N,此時用n片計數(shù)器分別組成M1,M2,…,Mn進制的計數(shù)器,然后級聯(lián)構(gòu)成M 進制計數(shù)器。本文主要采用分解法對72 位計數(shù)器進行設(shè)計分析。
采用分解法用74LS160N 設(shè)計七十二進制計數(shù)器時,有兩種方法,分別計數(shù)9(九進制)個8(八進制)或8(八進制)個9(九進制)。在此采用高位八進制,低位九進制對電路進行設(shè)計。
電路設(shè)計時,低位計數(shù)器的狀態(tài)在0001~1001,即在狀態(tài)1~9 之間循環(huán),需要利用狀態(tài)1001 使計數(shù)器74LS160N 返回狀態(tài)0001,在此引入一個2 引腳與非門,將1001 中為1 的高電平信號送至低位計數(shù)器的~LOAD引腳,讀取預(yù)置數(shù)DCBA(0001),同時,利用低位計數(shù)器RCO 所產(chǎn)生的進位作為高位計數(shù)器的觸發(fā)信號,接入高位計數(shù)器的CLK 引腳;同理,高位計數(shù)器的狀態(tài)在0000~0111,即在狀態(tài)0~7 之間循環(huán),需利用狀態(tài)0111 使高位計數(shù)器74LS160N 返回狀態(tài)0000,在此引入一個3 引腳與非門,將0111 中為1 的高電平信號經(jīng)與非門后送至高位計數(shù)器的引腳~LOAD 讀取預(yù)置數(shù)DCBA(0000)。
需要注意的是計數(shù)器74LS160N 輸入引腳D、C、B 和A 中,D 是高位,A 是低位;輸出引腳QD、QC、QB 和QA中,QD 是高位,QA 是低位。
由于二進制狀態(tài)不易觀測,可以將二進制數(shù)變成十進制數(shù)來查看結(jié)果,此時需要接入數(shù)碼管。
(2)與大豆產(chǎn)量掛鉤的補貼政策效果不會改善政策的經(jīng)濟效率。根據(jù)國家發(fā)改委文件,大豆目標價格取消后會實施和玉米一樣的生產(chǎn)者補貼政策,即實施與種植面積或產(chǎn)量掛鉤的補貼政策。掛鉤的補貼政策同樣會產(chǎn)生扭曲,而且進口依存度越大產(chǎn)生的扭曲越大,政策的經(jīng)濟效率越低。實質(zhì)上目標價格政策就是一種差價補貼,在市場環(huán)境沒有發(fā)生改變的情況下,若取消目標價格政策轉(zhuǎn)而實施與大豆產(chǎn)量掛鉤的補貼政策仍不會提高政策的經(jīng)濟效率。
分解法設(shè)計72 進制電路如圖1 所示。
圖1 72 進制計數(shù)器
在圖1 中,U1 為低位計數(shù)器,其所對應(yīng)的數(shù)碼管U3數(shù)值變化在狀態(tài)1 到狀態(tài)9 之間循環(huán),一次循環(huán)共計9 個狀態(tài),是九進制計數(shù)器;U4 為高位計數(shù)器,其所對應(yīng)的數(shù)碼管U5 數(shù)值變化從狀態(tài)0 到狀態(tài)7 之間循環(huán),一次循環(huán)共計8 個狀態(tài),是八進制計數(shù)器。
電路運行后,U5=0,U3=1,當(dāng)U3 每計1 到9 共9 個狀態(tài)后,U5 會加1,一直運行到U5=7,U3=9 時,共計了8 個9,即72 種狀態(tài),是一個七十二進制計數(shù)器。此時如果電路繼續(xù)運行,又會從U5=0,U3=1 這個狀態(tài)開始。
在Multisim14.0 中對圖1 所示電路進行仿真,電路運行后,卻發(fā)現(xiàn)當(dāng)U3 狀態(tài)從1 變化到9 后,理論上U5 應(yīng)該繼續(xù)保持0,等到U3 變化為1 時,U5 變化到1。但電路運行后,數(shù)碼管U5U3 變化為08、19、11,中間的狀態(tài)09變成了狀態(tài)19。如果電路繼續(xù)運行,還會出現(xiàn)18、29、21,28、39、31……,至到68、79、71 等類似錯誤。
如果觸發(fā)脈沖頻率較高,這種錯誤會顯得隱蔽。為便于分析錯誤產(chǎn)生原因,在此引入邏輯分析儀對高位和低位計數(shù)器的多路輸出信號和觸發(fā)信號進行觀測。由于波形較多,為查看多引腳輸出波形之間的關(guān)系,需要在電路中顯示網(wǎng)絡(luò)節(jié)點。
顯示網(wǎng)絡(luò)節(jié)點具體過程為:點擊Multisim14.0 菜單Options, 選取Sheet Properties, 在選項卡Sheet visibility 中,對Net names 進行操作,選取show all,確認后即可顯示電路中的各網(wǎng)絡(luò)節(jié)點名稱。網(wǎng)絡(luò)節(jié)點名稱是軟件默認賦予,和電路連線順序有關(guān),電路中的“地”默認網(wǎng)絡(luò)節(jié)點名為0。網(wǎng)絡(luò)節(jié)點名可以修改,但不能重名。
用邏輯分析儀觀測計數(shù)器U1、U4 的輸出引腳QD、QC、QB 和QA 的輸出波形,電路如圖2 所示。
圖2 72 進制計數(shù)器分析電路
在圖2 中,低位計數(shù)器U1 的輸出引腳QD、QC、QB和QA 所對應(yīng)的網(wǎng)絡(luò)節(jié)點名分別為5、4、3 和2,高位計數(shù)器U4 的輸出引腳QD、QC、QB 和QA 所對應(yīng)的網(wǎng)絡(luò)節(jié)點名分別為11、10、9 和8,低位計數(shù)器觸發(fā)信號所對應(yīng)的網(wǎng)絡(luò)節(jié)點名為7,高位計數(shù)器觸發(fā)信號所對應(yīng)的網(wǎng)絡(luò)節(jié)點名為1。
運行圖2 所示電路后,邏輯分析儀XLA1 的顯示波形如圖3 所示。
圖3 邏輯分析儀輸出波形圖
注意,在圖3 中,節(jié)點1 所對應(yīng)的波形顯示為0,不會發(fā)生變化,但實際上是有變化的,在節(jié)點8 由0 變化到1之前是有一個脈沖信號,該信號在示波器中可以觀測到。
為使理論與仿真實驗一致,避免U5 的超前變化,可以在U1 的引腳~RCO 與U4 的引腳~CLK 之間添加與非門(非門)或延遲器對U4 的觸發(fā)信號進行延遲。
2.2.1 添加與非門對高位觸發(fā)信號延遲
根據(jù)與非門的傳輸延遲特性,在U1 的引腳~RCO 和U4 的引腳~CLK 中添加兩個與非門對高位脈沖信號進行延遲,電路如圖4 所示。
圖4 與非門延遲高位觸發(fā)信號電路
在圖4 中選取2 個與非門7400N 進行級聯(lián),是因為要保持高位計數(shù)器U4 高電平觸發(fā)。仿真邏輯分析儀XLA1 的結(jié)果與圖3 波形一致,U5U3 顯示時仍會出現(xiàn)09、19、11之類的錯誤。說明用與非門(非門)不好控制延遲時間,無法解決電路中存在的錯誤。
在實際仿真時,可用多個與非門級聯(lián),但仍不能保證低位觸發(fā)信號傳輸速度快于高位信號傳輸速度,可見與非門進行信號延遲的方法不可行。
2.2.2 添加延遲器對高位觸發(fā)信號延遲
在Multisim14.0 中,可以通過延遲器Delay 來模擬各種延遲情況,并對延遲時間自行設(shè)定,改變輸入信號的傳輸速度,從而改變輸出信號的時間。
在電路仿真時,可以在U1 的引腳~RCO 和U4 的引腳~CLK 之間添加一個延遲器,來延遲高位計數(shù)器的觸發(fā)信號觸發(fā),使其慢于低位計數(shù)器的觸發(fā)信號觸發(fā)。
在計算延遲器延遲時間時,由于高位計數(shù)器的觸發(fā)信號慢于低位計數(shù)器的觸發(fā)信號,在設(shè)計時需要延遲。雖然延遲時間無法衡量,但延遲一個脈沖周期一定能保證高位計數(shù)器的觸發(fā)信號慢于低位計數(shù)器的觸發(fā)信號。
根據(jù)公式:
在已知低位計數(shù)器的時鐘脈沖V1 的頻率參數(shù)f=25Hz時,可以計算出T=0.04s。
即設(shè)置延遲器的延遲時間為0.04s,可以保證高位計數(shù)器的觸發(fā)信號觸發(fā)慢于低位計數(shù)器的觸發(fā)信號。
添加延遲器對高位計數(shù)器觸發(fā)信號進行延遲后,電路如圖5 所示。在圖5 中,A1 為延遲器,延遲時間設(shè)置為0.04s。
圖5 延遲器延遲高位觸發(fā)信號電路
運行圖5 所示電路后,雙擊打開邏輯分析儀XLA1,運行結(jié)果如圖6 所示。
圖6 邏輯分析儀輸出波形圖
由圖6 的游標1 處可知U1 的輸出(QD、QC、QB、QA) 是0001(XLA1 中顯示的5、4、3、2 順序) 時,U2 的輸出QD、QC、QB、QA)是0001(XLA1 中顯示為11、10、9、8 順序),沒有出現(xiàn)19 這種狀態(tài)。此時理論與實際仿真相符。
這說明圖6 所示電路可正確實現(xiàn)72 進制計數(shù),低位U3 狀態(tài)變化在1~9 這9 個狀態(tài)之間循環(huán),高位U5 狀態(tài)在0~7 這8 個狀態(tài)之間循環(huán),計了72 個脈沖個數(shù),實現(xiàn)了72進制計數(shù)。
本文針對在用分解法設(shè)計計數(shù)器電路時,因為高位計數(shù)器接收到的觸發(fā)信號傳輸速度快于低位計數(shù)器接收到的觸發(fā)信號,導(dǎo)致高位計數(shù)器狀態(tài)發(fā)生變化快于低位計數(shù)器狀態(tài)變化,導(dǎo)致計數(shù)錯誤這一問題,在用邏輯分析儀對電路進行了深入分析,并引入與非門和延遲器對高位觸發(fā)信號傳輸時進行延遲,使低位計數(shù)器的狀態(tài)變化快于高位計數(shù)器狀態(tài)的變化。但從電路仿真結(jié)果來看,與非門不能控制延遲時長,無法保證高位信號的延遲時間;而延遲器可根據(jù)低位計數(shù)器的觸發(fā)脈沖頻率設(shè)置延遲時間,可有效保證低位觸發(fā)信號傳輸速度快于高位信號傳輸速度,從而解決用分解法設(shè)計計數(shù)器時高位計數(shù)器接收到的觸發(fā)信號傳輸速度快于低位計數(shù)器接收到的觸發(fā)信號這一問題。