【正文】
S,CPU_RD,CPU_Addr和CPU_RD_Data,它們正好和任何一款CPU的片選、讀、地址和讀數(shù)據(jù)總線連接起來,用來讀取reg_CLK50M_N和reg_SigX_N這兩個(gè)寄存器中的數(shù)據(jù)。當(dāng)CPU讀出這兩個(gè)寄存器中的數(shù)據(jù)之后就可以統(tǒng)計(jì)簡(jiǎn)單的計(jì)算得到待測(cè)信號(hào)的頻率,并顯示之。 三個(gè)模塊之間的連接上文所講的三個(gè)模塊必須通過的正確的連接,產(chǎn)生一個(gè)更大的頂層模塊才能完成等精度測(cè)頻的任務(wù)。具體連接方式見附錄。四、實(shí)驗(yàn)過程 在電腦上安裝Quartus II或Maxplus II,最好是安裝Quartus II。 讀懂本文所附的參考程序,在Quartus II中為每一個(gè)模塊建立仿真激勵(lì)文件,分別給三個(gè)子模塊仿真,再對(duì)頂層模塊進(jìn)行仿真。 3*、將Verilog代碼改寫為VHDL的代碼。 4*、有條件的同學(xué)可以使用開發(fā)板做成模塊,再用單片機(jī)訪問。五、實(shí)驗(yàn)結(jié)果分析 Clk=50M,當(dāng)輸入的信號(hào)為1M時(shí)的仿真波形:從圖中可以看出reg_CLK50M_N=00000000000000000000000000110010即50 reg_SigX_N=0000000000000000000000000000001即1計(jì)算可得輸入信號(hào)的頻率:(reg_SigX_N/ reg_CLK50M_N)*= (HZ)與實(shí)際輸入相同。 Clk=50M,當(dāng)輸入的信號(hào)為5M時(shí)的仿真波形:從圖中可以看出reg_CLK50M_N=00000000000000000000000000000110即10 reg_SigX_N =0000000000000000000000000000001即1計(jì)算可得輸入信號(hào)的頻率:(reg_SigX_N/ reg_CLK50M_N)*= (HZ)與實(shí)際輸入相同。六、思考題為什么等精度測(cè)頻比《電子測(cè)量與儀器》書上講的“高頻宜測(cè)頻,低頻宜側(cè)周”要優(yōu)越?答:《電子測(cè)量與儀器》書上講的“高頻宜測(cè)頻,低頻宜側(cè)周”,可能會(huì)多測(cè)或少測(cè)一個(gè)脈沖這樣的話,待測(cè)信號(hào)頻率越高多測(cè)一個(gè)或少測(cè)一個(gè)的影響不大但是當(dāng)待測(cè)頻率較低時(shí)這種誤差則是致命的。而等精度測(cè)頻法使測(cè)試的閘門脈沖與待測(cè)信號(hào)完成了同步這樣就避免了多測(cè)一個(gè)和少測(cè)一個(gè)的誤差,因此對(duì)幾乎所有頻率是一樣的。 等精度測(cè)頻原理中為什么能實(shí)現(xiàn)“等精度”,這個(gè)“等精度”是相對(duì)于哪個(gè)信號(hào)而言的“等精度”?答:是相對(duì)于待測(cè)信號(hào)的等精度。 程序library IEEE。use 。use 。use 。ENTITY _Asyn_Sec_Pulse_Module IS PORT ( CLK_50M : in std_logic。 Asyn_Sec_Pulse : out std_logic)。END _Asyn_Sec_Pulse_Module。ARCHITECTURE translated OF _Asyn_Sec_Pulse_Module IS SIGNAL t : std_logic_vector(31 DOWNTO 0)。 SIGNAL reg_Asyn_Sec_Pulse : std_logic。 SIGNAL Asyn_Sec_Pulse_xhdl1 : std_logic。BEGIN Asyn_Sec_Pulse = Asyn_Sec_Pulse_xhdl1。 PROCESS BEGIN WAIT UNTIL (CLK_50M39。EVENT AND CLK_50M = 39。139。)。 IF (t 00000010111110101111000010000000) THEN t = t + 00000000000000000000000000000001。 ELSE t = 00000000000000000000000000000000。 reg_Asyn_Sec_Pulse = NOT reg_Asyn_Sec_Pulse。 END IF。 END PROCESS。 Asyn_Sec_Pulse_xhdl1 = reg_Asyn_Sec_Pulse 。END Behavioral。library IEEE。use 。use 。use 。ENTITY _Syn_Sec_Pulse_Module IS PORT ( Sig_X_In : IN std_logic。 Asyn_Sec_Pulse_In : IN std_logic。 Syn_Sec_Pulse_Out : OUT std_logic)。END Syn_Sec_Pulse_Module。ARCHITECTURE translated OF Syn_Sec_Pulse_Module IS SIGNAL reg_Syn_Sec_Pulse_Out : std_logic。 SIGNAL Syn_Sec_Pulse_Out_xhdl1 :