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