新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 一種基于FPGA的數字秒表設計方法

        一種基于FPGA的數字秒表設計方法

        作者: 時間:2012-03-07 來源:網絡 收藏

        摘要:文中介紹了一種基于。采用VHDL硬件描述語言,運用ModelSim等EDA仿真工具。該設計具有外圍電路少、集成度高、可靠性強等優點。最后經實驗驗證,該計時準確,輸入信號能準確控制秒表運行。系統所采用的自上而下的模塊化,對于其他復雜的系統設計也有很強的借鑒意義。
        關鍵詞:;模塊化設計;VHDL

        數字集成電路作為當今信息時代的基石,不僅在信息處理、工業控制等生產領域得到普及應用,并且在人們的日常生活中也是隨處可見,極大的改變了人們的生活方式。面對如此巨大的市場,要求數字集成電路的設計周期盡可能短、實驗成本盡可能低,最好能在實驗室直接驗證設計的準確性和可行性,因而出現了現場可編程邏輯門陣列。對于芯片設計而言,FPCA的易用性不僅使得設計更加簡單、快捷,并且節省了反復流片驗證的巨額成本。對于某些小批量應用的場合,甚至可以直接利用FPGA實現,無需再去訂制專門的數字芯片。
        文中著重介紹了一種基于FPGA利用VHDL硬件描述浯言的數字秒表,在設計過程中使用基于VHDL的EDA工具ModelSim對各個模塊仿真驗證,并給出了完整的源程序和仿真結果。

        1 總體功能結構設計
        一個完整的數字秒表應具有計時、相應的控制以及計時結果顯示功能,總體的功能結構如圖1所示。黑色線框內是計數模塊、使能轉化模塊和顯示譯碼模塊,左邊是輸入控制信號,右邊是顯示計時結果的數碼顯示管,用六位BCD七段數碼管顯示讀數,顯示格式如圖2,計時范圍為:1小時,精度為0.01s。

        本文引用地址:http://www.104case.com/article/190686.htm

        a.jpg


        輸入時鐘信號由32MHz的石英晶振提供,考慮到設計指標要求秒表精度為0.01秒,計數脈沖的時鐘輸入就應該是頻率為100Hz的脈沖,所以先要設計一個320000分頻器,分頻器的輸出可作計數器的輸入;其次計數模塊設計應綜合考慮秒表的計時范圍(1小時)和顯示輸出(6位輸出),6位輸出中有兩位是六進制輸出,其余四位是十進制輸出,所以可通過設計4個模10計數器和2個模6計數器來實現,其中較低位的進位輸出就是高位的計數輸入端。
        控制模塊應包括開始計時/停止計時、復位兩個按鈕,即電路設計經常用到的使能端和清零端,這兩個控制端口直接接到計數器的清零和史能端即可實現復位、開始計時/停止計時;但是外圍使能輸入需要經過使能轉換電路后,才可變為計數器可用的使能控制信號。因此在輸入使能信號和計數器使能輸入之間需設計一個信號轉換模塊。
        顯示計數結果的模塊實現較為簡單,只需將六位計數結果通過七段譯碼電路接到輸出即可點亮數碼管,無需時序控制,直接用組合邏輯電路就可以實現。數碼管顯示可以采用掃描顯示,用一個頻率1KHz的信號掃描一個多路選擇器,實現對六位已經鎖存的計數結果的掃描輸出。

        2 各功能模塊設計
        2.1 分頻器模塊
        分頻器的功能是提供標準時鐘控制信號以精確控制計數器的開閉,提供的標準信號是32MHz,根據設計精度0.01s的要求,輸出信號是100Hz,所該分頻器實現的功能是320000分頻,具體的VHDL源程序:
        b.jpg
        2.2 計數模塊
        該計數器要實現最大計數值為59分59秒99的計數,而且為了數碼管顯示方便,該模塊必須通過計數器的級聯來實現,即首先分別設計一個模6計數器和一個模10計數器,然后將他們級聯,其中調用4次模10計數器、2次模6計數器,這樣可以比直接設計模100的計數器和模60的計數器節省資源。級聯時低位的計數進位輸出接高位的計數輸入端,如圖3所示。再考慮到控制模塊的要求,每個計數器有三個輸入端:時鐘、使能和清零,兩個輸出端:計數輸出和進位輸出,采用同步使能異步清零的設計方法,每個計數器的使能和清零端都與外圍的使能和清零端相聯。

        c.jpg

        分頻器相關文章:分頻器原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凤翔县| 宜昌市| 子洲县| 那坡县| 遂川县| 兰坪| 保康县| 延川县| 黄梅县| 萝北县| 平乡县| 泰来县| 铜川市| 高雄市| 奉化市| 郎溪县| 垦利县| 太仆寺旗| 福州市| 东乌珠穆沁旗| 仙桃市| 兰考县| 盐城市| 中西区| 阜阳市| 江山市| 尉犁县| 溆浦县| 湘西| 沁阳市| 长岭县| 文昌市| 玉田县| 新乡县| 深水埗区| 巴彦县| 靖安县| 湖南省| 荔浦县| 桃源县| 渭南市|