這是關于如何使用VHDL和FPGA電路板(如Basys3 Atrix-7 Board)制作秒表的教程。秒表可以從00.00秒到99.99秒。它使用兩個按鈕,一個用于啟動/停止按鈕,另一個用于復位按鈕。數(shù)字顯示在電路板的七段顯示器上,使用陽極和陰極。有三個不同的文件需要為了得到這個秒表工作。
- Basys3 Atrix-7 FPGA板
- 賽靈思Vivado設計套件
- USB 2.0 A Male to Micro-B Male
第2步:框圖
整體秒表有三個輸入和兩個輸出。三個輸入是開始/停止,重置和時鐘。開始/停止和復位是按鈕,時鐘是電路板的100MHz時鐘。這兩個輸出是七段顯示器的陽極和陰極。
第一個模塊(時鐘分頻器)有一個輸入和兩個輸出。輸入是板子的100MHz時鐘,輸出是兩個獨立的時鐘,一個以480Hz運行,另一個運行0.5MHz。
第二個模塊(顯示器)有五個輸入和兩個輸出。輸入是電路板的100MHz時鐘,來自時鐘分頻器模塊的兩個時鐘以及啟動/停止和復位按鈕。輸出是陽極和陰極。
最后一個模塊(由整個框圖模擬)有三個輸入和兩個輸出。這是把所有東西放在一起的文件。輸入是板子的100MHz和開始/停止和重置按鈕。輸出是控制七段顯示器的陽極和陰極。
所有的輸入和輸出物理上在最后模塊的電路板上。
第3步:狀態(tài)圖
上面的圖片顯示了秒表如何工作的狀態(tài)圖。按下重置按鈕不會影響秒表的狀態(tài)。下一個狀態(tài)由開始/停止按鈕確定。開始/停止按下時為“高”,按下時為“高”,暫時按下時為“低”,按鈕為“高”時按下。如果秒表正在計數(shù),開始/停止按鈕變?yōu)椤案摺保瑒t停止計數(shù)。如果秒表停止并且開始/停止按鈕變?yōu)椤案摺?,則它再次開始計數(shù)。對于這兩種狀態(tài),如果開始/停止按鈕是“低”,則它將保持當前處于的狀態(tài)。
第4步:時鐘分頻器模塊
時鐘分頻器模塊有一個輸入,板子的100MHz時鐘和兩個輸出,480Hz和0.5MHz時鐘。480Hz時鐘用于通過快速切換四個通道同時保持七段顯示器上的所有LED“開”。0.5MHz時鐘用于秒表實際上按厘秒計數(shù)。(代碼見附件)
第5步:顯示模塊
這個顯示模塊有五個輸入,板的100MHz時鐘,兩個時鐘模塊,開始/停止和復位按鈕,以及兩個輸出,陽極和陰極。該模塊還具有秒表如何計算和合并有限狀態(tài)機的“邏輯”。(代碼見附件)
第6步:綁定模塊
這個最后的模塊是把另外兩個模塊放在一起的模塊。它有三個輸入,板的100MHz時鐘和啟動/停止和復位按鈕,以及兩個輸出,陽極和陰極。100MHz時鐘進入時鐘分頻器模塊和顯示模塊,啟動/停止和復位按鈕進入顯示模塊。時鐘分頻器模塊的輸出(480Hz和0.5MHz)轉到顯示模塊的兩個時鐘輸入端。顯示模塊(陽極和陰極)的輸出到最終模塊的輸出。(代碼見附件)
第7步:約束
兩個輸入可以是Basys3 Atrix-7 FPGA電路板上的任何按鈕,輸出將是七段顯示器的四個陽極和八個陰極(因為您還希望小數(shù)點在幾秒和幾毫秒之間)。
第8步:完成!
將程序上傳到您的Basys3 Atrix-7 FPGA板上,然后按下開始/停止按鈕以使秒表進入!