馬宏興,賈浩博,劉旋,丁雨恒
(北方民族大學 電氣信息工程學院,寧夏銀川,750021)
設計時序電路時,可以用編碼器、譯碼器、數據選擇器、加法器、計數器、寄存器等中小規模集成電路,外加門級電路如與、或、非及與非、或非等電路,完成相應功能。由于生活中需要各種計數功能,因此時序電路中最為常見的也是各種計數器的設計。
計數器是電路設計中使用最為廣泛的時序邏輯電路,能夠記憶脈沖個數。計數器設計原理是基于時序電路和觸發器,通過觸發器狀態的改變實現數字的累加。計數器不但可以記數,而且還可以用于定時、分頻、脈沖產生和數字運算。
設計計數器時,常采用現有的集成計數字電路來設計所指定的計數器。假定已有N進制計數器,需要設計M進制計數器,當設計的M進制計數器的M小于給定的N進制計數器時,只需要選取N 進制計數器中的M種狀態即可;當設計的M進制計數器的M大于給定的N進制計數器的N時,須將多片N進制計數器級聯,此時設計方法分為整體清零計數法和分解計數法。
(1)整體清零計數法
整體清零計數法的基本思想是先將n片計數器級聯組成N n(Nn>m)進制計數器,在計滿M個狀態后,采用整體清零,使得計數狀態在0~M- 1之間循環,從而實現M進制計數器。
(2)分解計數法
分解計數法的基本思路是指將M進制分解,即M=M1×M2×…×Mn,其中,M1,M2,…,Mn均不大于計數器最大計數N,此時用n片計數器分別組成M1,M2,…,Mn進制的計數器,然后級聯構成M 進制計數器。本文主要采用分解法對72 位計數器進行設計分析。
采用分解法用74LS160N 設計七十二進制計數器時,有兩種方法,分別計數9(九進制)個8(八進制)或8(八進制)個9(九進制)。在此采用高位八進制,低位九進制對電路進行設計。
電路設計時,低位計數器的狀態在0001~1001,即在狀態1~9 之間循環,需要利用狀態1001 使計數器74LS160N 返回狀態0001,在此引入一個2 引腳與非門,將1001 中為1 的高電平信號送至低位計數器的~LOAD引腳,讀取預置數DCBA(0001),同時,利用低位計數器RCO 所產生的進位作為高位計數器的觸發信號,接入高位計數器的CLK 引腳;同理,高位計數器的狀態在0000~0111,即在狀態0~7 之間循環,需利用狀態0111 使高位計數器74LS160N 返回狀態0000,在此引入一個3 引腳與非門,將0111 中為1 的高電平信號經與非門后送至高位計數器的引腳~LOAD 讀取預置數DCBA(0000)。
需要注意的是計數器74LS160N 輸入引腳D、C、B 和A 中,D 是高位,A 是低位;輸出引腳QD、QC、QB 和QA中,QD 是高位,QA 是低位。
由于二進制狀態不易觀測,可以將二進制數變成十進制數來查看結果,此時需要接入數碼管。
(2)與大豆產量掛鉤的補貼政策效果不會改善政策的經濟效率。根據國家發改委文件,大豆目標價格取消后會實施和玉米一樣的生產者補貼政策,即實施與種植面積或產量掛鉤的補貼政策。掛鉤的補貼政策同樣會產生扭曲,而且進口依存度越大產生的扭曲越大,政策的經濟效率越低。實質上目標價格政策就是一種差價補貼,在市場環境沒有發生改變的情況下,若取消目標價格政策轉而實施與大豆產量掛鉤的補貼政策仍不會提高政策的經濟效率。
分解法設計72 進制電路如圖1 所示。

圖1 72 進制計數器
在圖1 中,U1 為低位計數器,其所對應的數碼管U3數值變化在狀態1 到狀態9 之間循環,一次循環共計9 個狀態,是九進制計數器;U4 為高位計數器,其所對應的數碼管U5 數值變化從狀態0 到狀態7 之間循環,一次循環共計8 個狀態,是八進制計數器。
電路運行后,U5=0,U3=1,當U3 每計1 到9 共9 個狀態后,U5 會加1,一直運行到U5=7,U3=9 時,共計了8 個9,即72 種狀態,是一個七十二進制計數器。此時如果電路繼續運行,又會從U5=0,U3=1 這個狀態開始。
在Multisim14.0 中對圖1 所示電路進行仿真,電路運行后,卻發現當U3 狀態從1 變化到9 后,理論上U5 應該繼續保持0,等到U3 變化為1 時,U5 變化到1。但電路運行后,數碼管U5U3 變化為08、19、11,中間的狀態09變成了狀態19。如果電路繼續運行,還會出現18、29、21,28、39、31……,至到68、79、71 等類似錯誤。
如果觸發脈沖頻率較高,這種錯誤會顯得隱蔽。為便于分析錯誤產生原因,在此引入邏輯分析儀對高位和低位計數器的多路輸出信號和觸發信號進行觀測。由于波形較多,為查看多引腳輸出波形之間的關系,需要在電路中顯示網絡節點。
顯示網絡節點具體過程為:點擊Multisim14.0 菜單Options, 選取Sheet Properties, 在選項卡Sheet visibility 中,對Net names 進行操作,選取show all,確認后即可顯示電路中的各網絡節點名稱。網絡節點名稱是軟件默認賦予,和電路連線順序有關,電路中的“地”默認網絡節點名為0。網絡節點名可以修改,但不能重名。
用邏輯分析儀觀測計數器U1、U4 的輸出引腳QD、QC、QB 和QA 的輸出波形,電路如圖2 所示。

圖2 72 進制計數器分析電路
在圖2 中,低位計數器U1 的輸出引腳QD、QC、QB和QA 所對應的網絡節點名分別為5、4、3 和2,高位計數器U4 的輸出引腳QD、QC、QB 和QA 所對應的網絡節點名分別為11、10、9 和8,低位計數器觸發信號所對應的網絡節點名為7,高位計數器觸發信號所對應的網絡節點名為1。
運行圖2 所示電路后,邏輯分析儀XLA1 的顯示波形如圖3 所示。

圖3 邏輯分析儀輸出波形圖
注意,在圖3 中,節點1 所對應的波形顯示為0,不會發生變化,但實際上是有變化的,在節點8 由0 變化到1之前是有一個脈沖信號,該信號在示波器中可以觀測到。
為使理論與仿真實驗一致,避免U5 的超前變化,可以在U1 的引腳~RCO 與U4 的引腳~CLK 之間添加與非門(非門)或延遲器對U4 的觸發信號進行延遲。
2.2.1 添加與非門對高位觸發信號延遲
根據與非門的傳輸延遲特性,在U1 的引腳~RCO 和U4 的引腳~CLK 中添加兩個與非門對高位脈沖信號進行延遲,電路如圖4 所示。

圖4 與非門延遲高位觸發信號電路
在圖4 中選取2 個與非門7400N 進行級聯,是因為要保持高位計數器U4 高電平觸發。仿真邏輯分析儀XLA1 的結果與圖3 波形一致,U5U3 顯示時仍會出現09、19、11之類的錯誤。說明用與非門(非門)不好控制延遲時間,無法解決電路中存在的錯誤。
在實際仿真時,可用多個與非門級聯,但仍不能保證低位觸發信號傳輸速度快于高位信號傳輸速度,可見與非門進行信號延遲的方法不可行。
2.2.2 添加延遲器對高位觸發信號延遲
在Multisim14.0 中,可以通過延遲器Delay 來模擬各種延遲情況,并對延遲時間自行設定,改變輸入信號的傳輸速度,從而改變輸出信號的時間。
在電路仿真時,可以在U1 的引腳~RCO 和U4 的引腳~CLK 之間添加一個延遲器,來延遲高位計數器的觸發信號觸發,使其慢于低位計數器的觸發信號觸發。
在計算延遲器延遲時間時,由于高位計數器的觸發信號慢于低位計數器的觸發信號,在設計時需要延遲。雖然延遲時間無法衡量,但延遲一個脈沖周期一定能保證高位計數器的觸發信號慢于低位計數器的觸發信號。
根據公式:
在已知低位計數器的時鐘脈沖V1 的頻率參數f=25Hz時,可以計算出T=0.04s。
即設置延遲器的延遲時間為0.04s,可以保證高位計數器的觸發信號觸發慢于低位計數器的觸發信號。
添加延遲器對高位計數器觸發信號進行延遲后,電路如圖5 所示。在圖5 中,A1 為延遲器,延遲時間設置為0.04s。

圖5 延遲器延遲高位觸發信號電路
運行圖5 所示電路后,雙擊打開邏輯分析儀XLA1,運行結果如圖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 順序),沒有出現19 這種狀態。此時理論與實際仿真相符。
這說明圖6 所示電路可正確實現72 進制計數,低位U3 狀態變化在1~9 這9 個狀態之間循環,高位U5 狀態在0~7 這8 個狀態之間循環,計了72 個脈沖個數,實現了72進制計數。
本文針對在用分解法設計計數器電路時,因為高位計數器接收到的觸發信號傳輸速度快于低位計數器接收到的觸發信號,導致高位計數器狀態發生變化快于低位計數器狀態變化,導致計數錯誤這一問題,在用邏輯分析儀對電路進行了深入分析,并引入與非門和延遲器對高位觸發信號傳輸時進行延遲,使低位計數器的狀態變化快于高位計數器狀態的變化。但從電路仿真結果來看,與非門不能控制延遲時長,無法保證高位信號的延遲時間;而延遲器可根據低位計數器的觸發脈沖頻率設置延遲時間,可有效保證低位觸發信號傳輸速度快于高位信號傳輸速度,從而解決用分解法設計計數器時高位計數器接收到的觸發信號傳輸速度快于低位計數器接收到的觸發信號這一問題。