国产成人高清亚洲,日韩无码一区二区,国产精品亚洲综合专区片高清久久久,欧美日韩国产区在线观看,sese在线,亞洲綜合久久精品無碼色欲,日韩亚洲av三级片

  • 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

Quartus簡易等精度頻率計設(shè)計verilog代碼

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-23122609195R56.doc

共1個文件

名稱:Quartus簡易等精度頻率計設(shè)計verilog代碼

軟件:Quartus

語言:Verilog

代碼功能:

簡易等精度頻率計設(shè)計

二)要求

被測信號:TTL方波;

A.頻率測量范圍:100HZ~MHz;

B.測試誤差:≤0.1%(全量程);

C.時鐘頻率:50kI1z;

D.預(yù)閘門時間:0.1s;

E.系統(tǒng)時鐘頻率:50MHz;

F.頻率計算:保留1位小數(shù);

G.頂層設(shè)計采用圖形輸入,各模塊可以用功能模塊或HDL語言等設(shè)計。

評價標準

(一)提交設(shè)計過程和實驗仿真等照片及大作業(yè)報告的電子文檔,正文不得少于3000字符,網(wǎng)絡(luò)復(fù)制率需小于40%,報告中的圖片需清晰無水印

(二)細則。

1、頻率測量誤差分析(10%);

2、分潁電路設(shè)計(10%);

3、閘門電路設(shè)計(10%);

4、計數(shù)電路設(shè)計(10%);

5、計算電路設(shè)計(10%);

6、仿真等驗證(30%);

7、格式規(guī)范等(20%)。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計文檔:

等精度頻率計結(jié)題報告

1.?設(shè)計要求

本設(shè)計為等精度頻率計,頻率計指標要求如下:

1.頻率測量范圍:100Hz~1MHz;

2.被測信號為TTL方波;

3.測試誤差:小于等于0.1%(全量程);

4.時鐘頻率:50KHz;

5.預(yù)閘門時間:0.1s;

6.系統(tǒng)時鐘頻率:50MHz;

7.頻率計算:保留1位小數(shù);

2.?設(shè)計原理

等精度測頻方法是在直接測頻方法的基礎(chǔ)上發(fā)展起來的。它的閘門時間不是固定的值,而是被測信號周期的整數(shù)倍,即與被測信號同步,因此,避除了對被測信號計數(shù)所產(chǎn)生的1個時鐘誤差,并且達到了在整個測試頻段的等精度測量。等精度測量的核心思想在于如何保證在實際測量門閘內(nèi)被測信號為整數(shù)個周期,這就需要在設(shè)計中讓實際測量門閘信號與被測信號建立一定的關(guān)系?;谶@種思想,設(shè)計中以被測信號的上升沿作為開啟門閘和關(guān)閉門閘的驅(qū)動信號,只有在被測信號的上升沿才將圖1中預(yù)置的“閘門”的狀態(tài)鎖存,因此在“實際閘門”內(nèi)被測信號的個數(shù)就能保證整數(shù)個周期,這樣就避免普通測量方法中被測信號的±1的誤差,但會產(chǎn)生高頻的標準頻率信號的±1周期誤差,由于標準頻率的頻率遠高于被測信號,因此它產(chǎn)生的±1周期誤差對測量精度的影響十分有限,特別是在中低頻測量的時候,相較于傳統(tǒng)的頻率測量和周期測量方法,可以大大提高測量精度。

其測頻原理如圖2.1所示。在測量過程中,有兩個計數(shù)器分別對標準信號和被測信號同時計數(shù)。首先給出閘門開啟信號(預(yù)置閘門上升沿),此時計數(shù)器并不開始計數(shù),而是等到被測信號的上升沿到來時,計數(shù)器才真正開始計數(shù)。然后預(yù)置閘門關(guān)閉信號,下降沿到時,計數(shù)器并不立即停止計數(shù),而是等到被測信號的上升沿到來時才結(jié)束計數(shù),完成一次測量過程??梢钥闯?,實際閘門時間t與預(yù)置閘門時間t1并不嚴格相等,但差值不超過被測信號的一個周期。

3.?測量誤差分析

等精度測頻的實現(xiàn)方法可簡化為圖2.2所示。CNT1和CNT2是兩個可控計數(shù)器,標準頻率信號從CNT1的時鐘輸入端CLK輸入;經(jīng)整形后的被測信號從CNT2的時鐘輸入端CLK輸入。當(dāng)預(yù)置門控信號為高電平時,經(jīng)整形后的被測信號的上升沿通過D觸發(fā)器的Q端同時啟動CNT1和CNT2。CNT1、CNT2同時對標準頻率信號和經(jīng)整形后的被測信號進行計數(shù),分別為Ns與Nx。當(dāng)預(yù)置門信號為低電平的時候,后而來的被測信號的上升沿將使兩個計數(shù)器同時關(guān)閉,所測得的頻率為(Fs/Ns)*NX。則等精度測量方法測量精度與預(yù)置門寬度的標準頻率有關(guān),與被測信號的頻率無關(guān)。在預(yù)置門時間和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變。

首先,被測信號頻率fx的相對誤差與被測信號的頻率無關(guān);其次,增大測量時間段“軟件閘門”或提高標準頻率,可以減小相對誤差,提高測量精度;最后,由于一般提供標準頻率的石英晶振穩(wěn)定性很高,所以標準信號的相對誤差很小,可忽略。假設(shè)標準信號的頻率為50 KHz,只要實際閘門時間大于或等于0.1s,就可使測量的精度達到1/5 KHz。

4.?工作原理

根據(jù)上述設(shè)計思想,對等精度頻率計進行具體設(shè)計,整體設(shè)計框圖如下圖所示。

整體設(shè)計電路圖

包括分頻電路模塊(clk_div),閘門電路模塊(div_doors),計數(shù)電路模塊(count_cal),運算電路模塊(latch_buf),數(shù)碼管顯示模塊(display)等,分頻電路將時鐘50M分頻為50KHz作為標準時鐘控制其他模塊,閘門電路實現(xiàn)0.1s的閘門信號,計數(shù)電路按閘門時間分別采用標準時鐘和被測信號進行計數(shù),并將計數(shù)結(jié)果輸入到運算電路模塊,最終通過運算電路的計算得到頻率結(jié)果,顯示模塊將最終的頻率結(jié)果顯示到數(shù)碼管上。

各個模塊具體功能介紹如下:

4.1 分頻電路設(shè)計

分頻模塊用于將系統(tǒng)時鐘50MHz分頻為50KHz,本設(shè)計將50KHz作為標準頻率信號。分頻方法為計數(shù)法,即50M除以50K等于1000,則分頻系數(shù)為1000.因此使用計數(shù)器對50MHz進行計數(shù),當(dāng)計數(shù)到1000后回0。計數(shù)值前500輸出高電平,后500輸出低電平,最終得到的輸出信號就是50KHz。

分頻模塊框圖

4.2 閘門電路設(shè)計

閘門信號產(chǎn)生模塊用于產(chǎn)生周期為0.1s的閘門信號,并將閘門信號同步于被測信號,使閘門寬度為被測信號周期的整數(shù)倍。50KHz要得到0.1s的信號即10Hz,故分頻系數(shù)為50K/10=5000。也使用計數(shù)法產(chǎn)生,計數(shù)2500后信號翻轉(zhuǎn),得到的就是一共計數(shù)5000的周期信號。得到的閘門周期則為0.1s,其中高電平時間就是閘門開啟時間,為0.05秒。

閘門電路框圖

4.2 計數(shù)電路設(shè)計

計數(shù)模塊使用標準頻率和被測頻率分別對閘門進行計數(shù),得到2個計數(shù)值。使用CNT1計數(shù)標注頻率信號,使用CNT2計數(shù)被測信號,然后將兩個計數(shù)信號輸出。計數(shù)CNT1使用clk_in作為計數(shù)時鐘,當(dāng)door_1s為1時開始計數(shù),door_1s為0時計數(shù)清零。CNT2使用signal_in作為計數(shù)時鐘,當(dāng)door_1s為1時開始計數(shù),door_1s為0時計數(shù)清零。

計數(shù)電路框圖

4.2 計算電路設(shè)計

運算鎖存模塊接收2個計數(shù)值,依據(jù)頻率計算公式計算被測信號的頻率。CNT1和CNT2得到后需要將數(shù)據(jù)鎖存,以便于進行后續(xù)的頻率計算,鎖存信號為閘門信號的下降沿。閘門信號的下降沿獲取方法是先將doors_open信號在clk_in時鐘下打一拍得到door_1s_buf信號,再將door_1s_buf與上doors_open的非。

鎖存后依據(jù):待測頻率=CNT2_buf*50000*10/CNT1_buf的計算公式進行計算,得到的頻率值包含一位小數(shù)點。

運算電路框圖

4.2 數(shù)碼管顯示電路設(shè)計

數(shù)碼管顯示模塊用于控制數(shù)碼管將被測頻率顯示出來。數(shù)碼管顯示使用動態(tài)掃描的方式,依次顯示頻率的不同位。使用8段數(shù)碼管顯示,每個數(shù)碼管輸入為8位,對應(yīng)下圖中的abcdefg7段加上小數(shù)點dp,當(dāng)輸入0時對應(yīng)的段點亮,當(dāng)輸入為1時,對應(yīng)的段滅。

根據(jù)上圖可以觀察到,若要顯示數(shù)字0,需要DP滅,G滅,ABCDEF亮,也就是對應(yīng)編碼為“11000000”,其中從左到右依次對應(yīng)DP-GFEDCBA。以此類推可以得到0~9的所有編碼。一共有8個數(shù)碼管,8個數(shù)碼管共用一組段選信號(seg_select),因此為了同時顯示8個數(shù)碼管,需要對8個數(shù)碼管依次切換,控制位選信號(bit_select)按順序循環(huán)選通,低電平時對應(yīng)數(shù)碼管點亮。

部分代碼展示:

//?Copyright?(C)?1991-2013?Altera?Corporation
//?Your?use?of?Altera?Corporation's?design?tools,?logic?functions?
//?and?other?software?and?tools,?and?its?AMPP?partner?logic?
//?functions,?and?any?output?files?from?any?of?the?foregoing?
//?(including?device?programming?or?simulation?files),?and?any?
//?associated?documentation?or?information?are?expressly?subject?
//?to?the?terms?and?conditions?of?the?Altera?Program?License?
//?Subscription?Agreement,?Altera?MegaCore?Function?License?
//?Agreement,?or?other?applicable?license?agreement,?including,?
//?without?limitation,?that?your?use?is?for?the?sole?purpose?of?
//?programming?logic?devices?manufactured?by?Altera?and?sold?by?
//?Altera?or?its?authorized?distributors.??Please?refer?to?the?
//?applicable?agreement?for?further?details.
//?PROGRAM"Quartus?II?64-Bit"
//?VERSION"Version?13.0.1?Build?232?06/12/2013?Service?Pack?1?SJ?Full?Version"
//?CREATED"Wed?Jun?15?23:50:45?2022"
module?frequency_detect(
reset_p,
signal_in,
clk_50M,
dataout,
en
);
input?wirereset_p;
input?wiresignal_in;
input?wireclk_50M;
output?wire[7:0]?dataout;
output?wire[7:0]?en;
wireSYNTHESIZED_WIRE_9;
wireSYNTHESIZED_WIRE_10;
wire[31:0]?SYNTHESIZED_WIRE_4;
wire[31:0]?SYNTHESIZED_WIRE_7;
wire[31:0]?SYNTHESIZED_WIRE_8;
count_calb2v_inst(
.clk_in(SYNTHESIZED_WIRE_9),
.signal_in(signal_in),
.doors_open(SYNTHESIZED_WIRE_10),
.CNT1_buf(SYNTHESIZED_WIRE_7),
.CNT2_buf(SYNTHESIZED_WIRE_8));
div_doorsb2v_inst1(
.clk_in(SYNTHESIZED_WIRE_9),
.reset_p(reset_p),
.signal_in(signal_in),
.doors_open(SYNTHESIZED_WIRE_10));
defparamb2v_inst1.count_1s?=?32'b00000000000000000110000110101000;
displayb2v_inst2(
.clk(SYNTHESIZED_WIRE_9),
.display_frequency(SYNTHESIZED_WIRE_4),
.dataout(dataout),
.en(en));
latch_bufb2v_inst3(
.clk_in(SYNTHESIZED_WIRE_9),
.doors_open(SYNTHESIZED_WIRE_10),
.CNT1_buf(SYNTHESIZED_WIRE_7),
.CNT2_buf(SYNTHESIZED_WIRE_8),
.total_frequency(SYNTHESIZED_WIRE_4));
clk_divb2v_inst4(
.clk_50M(clk_50M),
.clk_50K(SYNTHESIZED_WIRE_9));
endmodule

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=411

  • 2-23122609195R56.doc
    下載

相關(guān)推薦