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