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