基于FPAG的简易数字频率计设计
生活随笔
收集整理的這篇文章主要介紹了
基于FPAG的简易数字频率计设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、設計要求
- 1、 設計四位十進制的簡易數字頻率計,能夠利用系統時鐘產生1KHZ-9999KHZ方波信號,并且設計模塊對1KHZ-9999KHZ的方波信號進行頻率測量;
- 2、測量的方波頻率值要在4位數碼管上進行顯示
- 3、此頻率計要設有一個整體復位控制(有reset 按鍵),可恢復初始狀態;
- 4、利用2個按鍵控制方波頻率在1KHZ-10MHZ可調,步進1kHZ。1個按鍵按下頻率增加1KHZ,另外一個按鍵按下頻率減少1KHZ;
二、設計思路
- 1、分析要求,由設計要求知簡易頻率計可以分為兩個部分:
第一部分:頻率范圍是:1KHZ-9999KHz,且頻率可調,步進值為1kHz的方波發生器;
第二部分:簡易的頻率計;
- 2、通過頂層化設計思想,可以將任務分為四個模塊:
第一部分:按鍵模塊,(四個按鍵:復位、模式選擇、頻率加、頻率減),其需要包含按鍵消抖模塊;
第二部分:數碼管顯示模塊,需要顯示:方波發生器的方波頻率;和頻率計的測量頻率;其需要一個BCD碼轉換模塊和模式按鍵作為選擇端的二選一模塊;
第三部分:方波發生模塊,其需要一個分頻可鍵控的分頻器;
第四部分:頻率計模塊,采用預置閘門法進行頻率測量,因此需要一個計數器和分頻器產生一個預置閘門;
三、模塊講解
第一部分:按鍵模塊
1、按鍵消抖原理講解
- 對于單按鍵的消抖模塊,其接口如圖所示,接口聲明功能描述如下
- 按鍵消抖經常使用狀態機來進行消抖,按照狀態機的狀態可以分為以下四個狀態:為按下空閑時IDLE、按下抖動濾除狀態FILTER0、按下穩定狀態DOWN、釋放抖動濾除狀態FILTER1.其狀態轉換圖如下:
其轉移條件入下表所示:
2、按鍵具體模塊
1)單bit信號同步
- 按鍵信號對于FPGA內部信號來說是一個異步信號,如果不進行處理直接輸入,很容易出現時序違例出現亞穩態。因此需要將按鍵信號先同步到FPGA的時域里面,常見的方法便是二級觸發器,其結構如圖所示:
Verilog代碼:
2) 邊沿檢測電路
- 通過上述狀態機可以以看出,在轉換條件中需要邊沿檢測電路,因此設計邊沿檢測電路,其原理圖如圖:
- 其檢測過程:
根據上圖可知,其為比較兩個時鐘輸入信號電平是否一樣,當前一個時鐘為1,后一個時鐘為0時:pos_out=1;反之neg_out=1;其他狀態兩個口為0;
Verilog代碼:
3)狀態機消抖設計
代碼請參考上傳資料;
第四部分:顯示模塊
1、數碼管動態顯示
-
對于數碼管顯示模塊,其接口如圖所示,接口聲明功能描述如下
-
數碼管邏輯圖為:
-
子模塊功能描述
第三部分:頻率計模塊
1、預置閘門法原理
- 對于數碼管顯示模塊,其接口如圖所示
- 其邏輯圖為:
D觸發器的功能:對應 CK 端上升沿,D端的信號傳送到Q端。
由于D觸發器的同步作用,計數器Ⅰ所記錄的 NA已不存在 ±1 字誤差的影響。 但是,實際的閘門時間T已不等于預置的閘門時間TP。因此,還需要同時測量實際的閘門時間T的大小。為了測量實際的閘門時間T,設置了計數器Ⅱ,并用標準時鐘 f0 進行計數來確定實際閘門時間T的大小。
2、預置閘門法代碼
具體代碼請參考上傳的文件內容;
由于頻率計部分原理同分頻器一致再次不進行敘述;
三、最后視圖
最后代碼,及原理圖均已上傳,詳情參照具體代碼;
下載地址:https://download.csdn.net/download/weixin_42348938/12063614
總結
以上是生活随笔為你收集整理的基于FPAG的简易数字频率计设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小众软件整理总结
- 下一篇: idea 离线安装translation