牟晨淏 黃鐵文 賀哲明 袁申 馮洪威 王穎
摘要:為了實現可逆計數器的功能,以FPGA為基礎,包含主控模塊,數碼管顯示模塊,來實現這個設計,通過設計頂層電路,程序編程,模塊搭建,仿真運行,性能良好,故實現此功能以供展示。
關鍵詞:FPGA;Verilog;計數器;數碼管
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)07-0242-02
開放科學(資源服務)標識碼(OSID):
既可加1計數又可減1計數的計數器叫作可逆計數器,也叫作雙向計數器。可逆計數器是可以進行正向和反向計數的這種計數器就是把加法計數器和減法計數器的作用合在一起,在邏輯線路上,對計數器的進位和借位脈沖進行適當的控制。即用一個與或門把進位和借位脈沖加以控制,便構成可逆計數器。
1 原理
FPGA是一種運用了邏輯單元陣列LCA的概念,其中包含了邏輯模塊輸入與輸出并且還有IOB與內部連線這幾個部分,其中門陣列是可以直接進行編程的器件,他與傳統的門陣列進行比較時,會具有相對更小的查找表來實現組合邏輯,在每一個D觸發器的輸入端都會與一個查找表相互連接,其他的I/O口或者是邏輯電路都由觸發器來驅動,這樣就形成了一種既可以實現時序邏輯又可以實現組合邏輯功能的一個最基礎的邏輯模塊,這些模塊之間通過金屬線進行互相連接或者直接連接到I/O口。在FPGA中邏輯是由靜態單元運行編程數據后來實現的。各模塊或模塊與I/O口間的相互連接方式是由存儲器單元中的值來決定了邏輯功能,最后呈現出所需要的功能。分別含有的兩個模塊一個是數碼管模塊,一個是主要程序模塊。
2 總設計圖
設計要求及原理:計數器是一種在實踐課程中運用較多的一個時序邏輯器件,它的基本功能是統計時間脈沖在一定時間內的個數,從而實現對脈沖實現技術的功能,它的工作原理可以大概論為:在上升或者下降沿到來時,二進制數據在低一位進行自加或自減。
當在沒有其他約束條件的時候,計數器可以和所對應的數值進行相互對應的循環計數。我們可以通過需要來改變計數器的位數,并且通過給他施加外部條件來進行人為的設定計數模數,在一個計數過程之后,經歷N個時鐘脈沖信號之后,二進制數據又到了最初始的狀態。
3 程序代碼
4 仿真圖
仿真圖結果如圖所示,時鐘脈沖始終保持一致,通過不同的輸入,來顯示不同結果,所得數字不同,詳細見仿真圖。
5 流程圖
CLR為異步清零端,S為同步置數端,EN用于控制計數器的工作,CLK為時鐘脈沖輸入端,UPDN為計數器方向控制端。同步可逆計數器的狀態表。
6 總結
通過Verilog硬件描述語言,設計了4位二進制加/減計數器,計數器有加計數、減計數、清零和置數的功能,且所有的這些設計功能都通過了仿真分析,符合設計要求。通過本次實驗,學會了Quartus設計數字電路的一般方法和仿真方法,并且在實驗中加深了對理論知識的理解??偟膩碚f,這次設計的數字鐘還是比較成功的,有點小小的成就感,終于覺得平時所學的知識有了實用的價值,達到了理論與實踐相結合的目的,不僅學到了不少知識,而且鍛煉了自己的能力,使自己對以后的路有了更加清楚的認識。
參考文獻:
[1] 鄒道勝,朱如琪.CPLD/FPGA與ASIC設計實踐教程[M].北京:科學出版社,2010.
【通聯編輯:唐一東】