名稱:等精度頻率計設(shè)計verilog quartus仿真(代碼在文末付費下載)
軟件:Quartus
語言:Verilog
要求:等精度頻率測量技術(shù)
(一)簡易等精度頻率計設(shè)計
(二)要求
A:測量范圍信號:方波
頻率:100Hz~1MHz;
B:測試誤差:<0.1%(全量程)
C:時鐘頻率:50kHz
D:預(yù)閘門時間:01s
E:系統(tǒng)時鐘頻率:50MHz
F:頻率計算:保留1位小數(shù)
演示視頻:
部分代碼展示
//運算鎖存模塊 module?latch_buf( input?clk_in,//輸入50K基準(zhǔn)時鐘 input?doors_open, input?[31:0]CNT1_buf,//輸出基準(zhǔn)時鐘計數(shù)器 input?[31:0]CNT2_buf,//輸出待測頻率計數(shù)器 output?[31:0]total_frequency//輸出頻率 ); reg?[31:0]?CNT1_bufc=32'd0;//基準(zhǔn)時鐘計數(shù)器寄存器 reg?[31:0]?CNT2_bufc=32'd0;//待測頻率計數(shù)器寄存器 reg?door_1s_buf=0; always@(posedge?clk_in) door_1s_buf<=doors_open; wire?door_1s_negedge; assign?door_1s_negedge=~doors_open?&?door_1s_buf;//閘門信號下降沿 always@(posedge?clk_in) if(door_1s_negedge==1)begin CNT1_bufc<=CNT1_buf;//基準(zhǔn)頻率計數(shù) CNT2_bufc<=CNT2_buf;//待測頻率計數(shù) end //保留1位小數(shù),即再乘以10 //待測頻率計算=CNT2_buf*50000*10/CNT1_buf wire?[63:0]?mul_result; assign?mul_result=CNT2_bufc*32'd500000; assign?total_frequency=mul_result/CNT1_bufc;//單位0.1Hz endmodule
設(shè)計文檔(文檔點擊可下載):
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 仿真圖
整體仿真圖
5.1 分頻模塊
5.2 閘門信號產(chǎn)生模塊
5.3 計數(shù)模塊
5.4 運算鎖存模塊
5.5 數(shù)碼管顯示模塊
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=184
閱讀全文