版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 1 緒論</b></p><p><b> 1.1課程設(shè)計背景</b></p><p> 隨著數(shù)字電子技術(shù)的發(fā)展,頻率測量成為一項越來越普遍的工作,因此測頻計常受到人們的青睞。目前許多高精度的數(shù)字頻率計都采用單片機加上外部的高速計數(shù)器來實現(xiàn),然而單片機的時鐘頻率不高導(dǎo)致測頻速度比較慢,并且在這種設(shè)計中,由于PCB
2、版的集成度不高,導(dǎo)致PCB板走線長,因此難以提高計數(shù)器的工作頻率。為了克服這種缺點,大大提高測量精度和速度,我們可以設(shè)計一種可編程邏輯器件來實現(xiàn)數(shù)字頻率計。EDA技術(shù)是以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,以硬件語言為系統(tǒng)邏輯描述的主要方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具,通過有關(guān)的開發(fā)軟件,自動完成用軟件設(shè)計的電子系統(tǒng)到硬件系統(tǒng)的設(shè)計,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。其設(shè)計的靈活性使得ED
3、A技術(shù)得以快速發(fā)展和廣泛應(yīng)用。以Max+PlusⅡ軟件為設(shè)計平臺,采用VHDL語言實現(xiàn)數(shù)字頻率計的整體設(shè)計。伴隨著集成電路(IC)技術(shù)的發(fā)展,電子設(shè)計自動化(EDA)逐漸成為重要的設(shè)計手段,已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。電子設(shè)計自動化是一種實現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動化設(shè)計的技術(shù),它與電子技術(shù),微電子技術(shù)的發(fā)展密切相關(guān),它</p><p> 1.2 課程設(shè)計目的</p><p&g
4、t; 掌握數(shù)字頻率計電路的設(shè)計原理,并能夠在實際生活中正確應(yīng)用;</p><p> 學(xué)會在MAX+plusⅡ軟件環(huán)境中仿真;</p><p> 鍛煉自己獨立解決問題的能力,學(xué)會有效獲取有用信息。</p><p> 2 課程設(shè)計總體方案</p><p> 方案一: 采用小規(guī)模數(shù)字集成電路制作被測信號經(jīng)過放大整形變換為脈沖信號后加到主
5、控門的輸入端,時基信號經(jīng)控制電路產(chǎn)生閘門信號送至主控門,只有在閘門信號采樣期間內(nèi)輸入信號才通過主控門,若時基信號周期為T,進入計數(shù)器的輸入脈沖數(shù)為N,則被信號的測頻率其頻率F=N/T, 方案二:采用單片機進行測頻控制單片機技術(shù)比較成熟,功能也比較強大,被測信號經(jīng)放大整形后送入測頻電路,由單片機對測頻電路的輸出信號進行處理,得出相應(yīng)的數(shù)據(jù)送至顯示器顯示。采用這種方案優(yōu)點是呆以依賴地成熟的單片機技術(shù)、運算功能較強、軟件編程靈活、自由度大
6、、設(shè)計成本也較低,缺點是顯而易見的,在傳統(tǒng)的單片機設(shè)計系統(tǒng)中必須使用許多分立元件組成單片機的外圍電路,整個系統(tǒng)顯得十分復(fù)雜,并且單片機的頻率不能做得很高,使得測量精度大大降低。方案三:采用現(xiàn)場可編程門陣列(FPGA)為控制核心采用現(xiàn)場可編程門陣列(FPGA)為控制核心,利用VHDL語言編程,下載燒制實現(xiàn)。將所有器件集成在一塊芯片上,體積大大減小的同時還提高了穩(wěn)定性,可實現(xiàn)大規(guī)模和超大規(guī)模的集成電路,測頻測量精度高,測量頻率范圍大,而
7、且編程靈活、調(diào)試方便。綜合上述分析,方</p><p><b> 3 設(shè)計的基本原理</b></p><p> 3.1設(shè)計的原理框圖如下所示:</p><p><b> 3.2工作原理</b></p><p> 眾所周知,頻率信號易于傳輸,抗干擾性強,可以獲得較好的測量精度。因此,頻率檢測
8、是電子測量領(lǐng)域最基本的測量之一。頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。通常情況下計算每秒內(nèi)待測信號的脈沖個數(shù),即閘門時間為1 s。閘門時間可以根據(jù)需要取值,大于或小于1 s都可以。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越長,則每測一次頻率的間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1 s作為閘門時間。</p><p>
9、數(shù)字頻率計的關(guān)鍵組成部分包括測頻控制信號發(fā)生器、計數(shù)器、鎖存器、譯碼驅(qū)動電路和顯示電路,其原理框圖如圖1所示。</p><p> 3.3圖形元件原理圖</p><p> 利用軟件MAX+plusⅡ的圖形文件輸入法設(shè)計設(shè)計頻率計的原理圖3—1</p><p><b> 圖3—1</b></p><p> 4 設(shè)計的
10、步驟和過程</p><p> 4.1 測頻控制信號發(fā)生器</p><p> 測頻控制信號發(fā)生器產(chǎn)生測量頻率的控制時序,是設(shè)計頻率計的關(guān)鍵。這里控制信號CLK取為1 Hz,2分頻后就是一個脈寬為1 s的時鐘信號FZXH,用來作為計數(shù)閘門信號。當(dāng)FZXH為高電平時開始計數(shù);在FZXH的下降沿,產(chǎn)生一個鎖存信號SCXH,鎖存數(shù)據(jù)后,還要在下次FZXH上升沿到來之前產(chǎn)生清零信號CLEAR,為下
11、次計數(shù)做準(zhǔn)備,CLEAR信號是上升沿有效。</p><p> 四選一數(shù)據(jù)選擇器的程序如下:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p>
12、; entity si_xuan_1 is</p><p> port(a,b,c1,c2,c3,c4:in std_logic;</p><p> y:out std_logic);</p><p> end si_xuan_1;</p><p> architecture behav of si_xuan_1 is</p&
13、gt;<p> signal x:std_logic_vector(1 downto 0);</p><p><b> begin</b></p><p> process(a,b)</p><p><b> begin</b></p><p><b> x<
14、=b&a;</b></p><p><b> case x is</b></p><p> when"00"=> y<=c1;</p><p> when"01"=> y<=c2;</p><p> when"10&qu
15、ot;=> y<=c3;</p><p> when"11"=> y<=c4;</p><p> when others=>null;</p><p> end case; </p><p> end process;</p><p> end behav;&
16、lt;/p><p> 通過四選一數(shù)據(jù)選擇器的控制按不同的BA二進制數(shù)值時輸出被測信號的1分頻、10分頻、100分頻、1000分頻,通過二四譯碼器按不同的BA二進制數(shù)值時輸出四個檔次p0、p1、p2、p3,分別代表1hz、10hz、100hz、1000hz為單位。</p><p><b> 4.2 計數(shù)器</b></p><p> 計數(shù)器以待測
17、信號FZXH作為時鐘,在清零信號CLEAR到來時,異步清零;FZXH為高電平時開始計數(shù)。本文設(shè)計的計數(shù)器計數(shù)最大值是99 999 999。</p><p> 十進制計數(shù)器的程序如下:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ie
18、ee.std_logic_unsigned.all;</p><p> entity jishu10 is</p><p> port(clk,rst,en:in std_logic;</p><p> cq:out std_logic_vector(3 downto 0);</p><p> cout:out std_logic);
19、</p><p> end jishu10;</p><p> architecture behav of jishu10 is</p><p><b> begin</b></p><p> process(clk,rst,en)</p><p> variable cqi:std_l
20、ogic_vector(3 downto 0);</p><p><b> begin</b></p><p> if rst='1' then cqi:=(others=>'0');</p><p> elsif clk'event and clk='1' then</
21、p><p> if en='1' then</p><p> if cqi<9 then cqi:=cqi+1;</p><p> else cqi:=(others=>'0');</p><p><b> end if;</b></p><p>&
22、lt;b> end if;</b></p><p><b> end if;</b></p><p> if cqi=9 then cout<='1';</p><p> else cout<='0';</p><p><b> end i
23、f;</b></p><p><b> cq<=cqi;</b></p><p> end process;</p><p> end behav;</p><p><b> 4.3 鎖存器</b></p><p> 當(dāng)鎖存信號SCXH上升沿到來時
24、,將計數(shù)器的計數(shù)值鎖存,這樣可由外部的七段譯碼器譯碼并在數(shù)碼管上顯示。設(shè)置鎖存器的好處是顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。鎖存器的位數(shù)應(yīng)跟計數(shù)器完全一樣,均是32位。寄存器是在計數(shù)結(jié)束后,利用觸發(fā)器的上升沿把最新的頻率測量值保存起來,這樣在計數(shù)過程中可不必一直看著數(shù)碼管顯示器,顯示器將最終的頻率讀數(shù)定期進行更新,其輸出將作為動態(tài)掃描電路的輸入。4位寄存器的VHDL源程序如下。</p><p>
25、 library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity reg_4 is</p><p> port(load:in std_logic;</p><p> din:in std_logic_vector(3 downto 0);</p>
26、<p> dout:out std_logic_vector(3 downto 0));</p><p> end reg_4;</p><p> architecture behav of reg_4 is</p><p><b> begin </b></p><p> process(din)&
27、lt;/p><p><b> begin </b></p><p> if load’event and load='1' then </p><p> dout<=din;</p><p><b> end if;</b></p><p> en
28、d process;</p><p> end behav;</p><p> 在源程序中LOAD 是鎖存信號,上升沿觸發(fā);din[3..0]是寄存器輸入;dout[3..0]是寄存器輸出。</p><p> 4.4 譯碼驅(qū)動電路</p><p> 本文數(shù)碼管采用動態(tài)顯示方式,每一個時刻只能有一個數(shù)碼管點亮。數(shù)碼管的位選信號電路是74
29、LS138芯片,其8個輸出分別接到8個數(shù)碼管的位選;3個輸入分別接到EPF10K10LC84-4的I/O引腳。</p><p> 譯碼模塊是對計數(shù)出的數(shù)進行譯碼顯示出來,該部分由寄存器、動態(tài)掃描電路和譯碼驅(qū)動電路組成。</p><p> 本設(shè)計采用掃描方式來實現(xiàn)LED數(shù)碼管動態(tài)顯示,控制好數(shù)碼管之間的延遲時間相當(dāng)重要。根據(jù)人眼視覺暫留原理,LED數(shù)碼管每秒導(dǎo)通16次以上,人眼就無法LE
30、D數(shù)碼管短暫的不亮,認(rèn)為是一直點亮的(其實LED數(shù)碼管是以一定頻率在閃動的)。但是,延時(導(dǎo)通頻率)也不是越小越好,因為LED數(shù)碼管達(dá)到一定亮度需要一定時間。如果延時控制的不好則會出現(xiàn)閃動,或者亮度不夠,根據(jù)經(jīng)驗,延時0.005S可以達(dá)到滿意的效果。另外,顯示的字符有變化時,可在延時到達(dá)后送一個地電平(共陰極數(shù)碼管)LED數(shù)碼管先短暫熄滅,再顯示一個字符,可使在視覺上字符的變化更清楚。</p><p> 動態(tài)掃
31、描顯示的VHDL源程序如下。</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p>
32、<p> entity xu_dynamic is</p><p> port(clk,reset:in std_logic;</p><p> din1:in std_logic_vector(3 downto 0);</p><p> din2:in std_logic_vector(7 downto 4);</p><p&
33、gt; din3:in std_logic_vector(11 downto 8);</p><p> din4:in std_logic_vector(15 downto 12);</p><p> shift:out std_logic_vector(1 downto 0);</p><p> bus4:out std_logic_vector(3 do
34、wnto 0));</p><p> end xu_dynamic;</p><p> architecture one of xu_dynamic is</p><p> signal scan_clk:std_logic_vector(1 downto 0);</p><p><b> begin</b>&l
35、t;/p><p> p1:process(clk,scan_clk,reset)</p><p> variable scan:std_logic_vector(17 downto 0);</p><p><b> begin</b></p><p> if reset='1' then </p
36、><p> scan:="000000000000000000";</p><p> scan_clk<="00";</p><p> elsif clk'event and clk='1' then</p><p> scan:=scan+1;</p>
37、<p><b> end if;</b></p><p> scan_clk<=scan(1 downto 0);</p><p> end process p1;</p><p> p2:process(scan_clk,din1,din2,din3,din4)</p><p><b>
38、; begin</b></p><p> case scan_clk is</p><p> when"00"=>bus4<=din1;shift<="11";</p><p> when"01"=>bus4<=din2;shift<="10
39、";</p><p> when"10"=>bus4<=din3;shift<="01";</p><p> when"11"=>bus4<=din4;shift<="00";</p><p> when others=>bus4
40、<=din1;shift<="11";</p><p><b> end case;</b></p><p> end process p2;</p><p><b> end one;</b></p><p> 程序中,CLK是掃描時鐘;RST為復(fù)位信號,當(dāng)
41、RST=1時對位選信號復(fù)位,shitf為4個數(shù)碼管的位選信號,高電平有效;din1、din2、din2、din3、din4為輸入的鎖存信號,bus4為選中的信號輸出。</p><p><b> 4.5數(shù)碼管顯示</b></p><p> 本文采用8個共陰極數(shù)碼管來顯示待測頻率的數(shù)值,其顯示范圍從O~99 999 999</p><p>
42、七段數(shù)碼管驅(qū)動電路的VHDL設(shè)計</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity decl7s is</p><p> port(a:in std_logic_vector(3 downto 0);</p><
43、p> led7s:out std_logic_vector(6 downto 0));</p><p> end decl7s</p><p><b> 4.6 模塊的整合</b></p><p> 整個軟件的程序流程圖如4—1所示。</p><p><b> 圖4—1</b><
44、;/p><p> 5 設(shè)計的仿真和運行結(jié)果</p><p><b> 5.1 設(shè)計的仿真</b></p><p> 把源程序通過鍵盤輸入電腦,先在MAX+plusⅡ軟件環(huán)境下進行編譯,將編譯提示的錯誤完全改正后,在MAX+plusⅡ軟件環(huán)境下進行仿真的結(jié)果如圖5—1所示。其中sig為系統(tǒng)待測信號,clr為清零信號,clk則為掃描時鐘,sel0
45、、sel1、sel2為led片選,q6到q0為led輸出信號,sel決定選擇顯示的8個數(shù)碼管。Clr接一開關(guān),當(dāng)clr置1時清零,8個led數(shù)碼管顯示為零,當(dāng)clr開關(guān)置0時,系統(tǒng)開始測試輸入信號的頻率,將數(shù)據(jù)傳至鎖存器后,送往led輸出所測頻率。</p><p><b> 圖5—1</b></p><p><b> 5.2 運行結(jié)果</b>
46、</p><p> 軟件仿真完全正確后,線封鎖引腳,然后連接硬件(如圖5—2), </p><p><b> 圖5—2</b></p><p> 再次編譯,沒有錯誤后下載程序到硬件之中,選用Altera公司生產(chǎn)的FPGA產(chǎn)品FLEX10K系列的EPF10K10LC84-4芯片,下載適配后,便可以在數(shù)碼管上顯示出待測頻率的數(shù)值。如下圖5—3
47、所示</p><p><b> 圖5—3</b></p><p><b> 6 總結(jié)</b></p><p> 6.1 課程設(shè)計總結(jié)</p><p> 1 設(shè)計任務(wù)完成情況</p><p> 通過為期兩周的課程設(shè)計,完成了本次設(shè)計的技術(shù)指標(biāo),剛開始設(shè)計的時候,由于v
48、hdl語言編寫程序這部分比較難搞定,所以在分析設(shè)計程序模塊的時候,就會停下來設(shè)計控制電路,為了提高效率,在實際的操作中,先分模塊編寫程序再根據(jù)分塊程序?qū)懗隹偟某绦?,利用波形文件仿真實驗結(jié)果,調(diào)測符合要求。最后搞定控制電路的連接。最后完成的一塊電路板,它所實現(xiàn)的功能就是可以測被測信號的頻率,周期和脈寬。在調(diào)測的過程中發(fā)現(xiàn)測量頻率時,檔位在1Hz~9999999Hz,最終得到的結(jié)果的誤差稍微大了點,其他的測量結(jié)果非常接近測量值。</p
49、><p><b> 2 問題及改進</b></p><p> 由于電路里面使用的電容元件,在實驗的時候,隨著實驗室里面溫度的變化,輸出信號的頻率也會發(fā)生變化,這是造成誤差的一個原因,為了在驗收的時候提高測量的準(zhǔn)確性,所以在測量前要調(diào)節(jié)電位器,把產(chǎn)生的方波信號接示波器,測量其輸出頻率,調(diào)節(jié)電位器,使輸出的信號非常接近1KHz,這樣的話在后面的測量中會減小誤差。剛開始的時
50、候波形文件的仿真總是遇到大大小小的問題,比如結(jié)束時間不會重新設(shè)置、正弦輸入脈沖不會調(diào)制等等。最后也在實驗指導(dǎo)老師的幫助下,一步步的真正的掌握了,最后成功的調(diào)制出了波形的仿真。還有引腳鎖定的第一種方法,元器件的選擇等等一些細(xì)節(jié)上的小問題,也在不知不覺的這幾天的課程設(shè)計中順利的解決了,雖然在設(shè)計的道路上我們遇到了很多的大大小小的困難,但是最終我們也在實習(xí)指導(dǎo)老師的幫助下真正的學(xué)到了許多實際應(yīng)用中的知識,而且順利的完成我們的數(shù)字頻率計。<
51、;/p><p> 6.2 課程設(shè)計心得</p><p><b> 課程設(shè)計心得</b></p><p><b> 一 、收獲:</b></p><p> 本次實習(xí)讓我們體味到設(shè)計電路、連接電路、調(diào)測電路過程中的樂苦與甜。設(shè)計是我們將來必需的技能,這次實習(xí)恰恰給我們提供了一個應(yīng)用自己所學(xué)知識的機會
52、,從到圖書館查找資料到對電路的設(shè)計對電路的調(diào)試再到最后電路的成型,都對我所學(xué)的知識進行了檢驗。在實習(xí)的過程中發(fā)現(xiàn)了以前學(xué)的數(shù)字電路的知識掌握的不牢。同時在設(shè)計的過程中,遇到了一些以前沒有見到過的元件,但是通過查找資料來學(xué)習(xí)這些元件的功能和使用。制作過程是一個考驗人耐心的過程,不能有絲毫的急躁,馬虎,對電路的調(diào)試要一步一步來,不能急躁,因為是在電腦上調(diào)試,比較慢,又要求我們有一個比較正確的調(diào)試方法,像把頻率調(diào)準(zhǔn)等等。這又要我們要靈活處理,
53、在不影響試驗的前提下可以加快進度。合理的分配時間。在設(shè)計控制電路的時候,我們可以連接譯碼顯示和計數(shù)電路,這樣就加快了完成的進度。最重要的是要熟練地掌握課本上的知識,這樣才能對試驗中出現(xiàn)的問題進行分析解決。在整個課程設(shè)計完后,總的感覺是:有收獲。以前上課都是上一些最基本的東西而現(xiàn)在卻可以將以前學(xué)的東西作出有實際價值的東西。在這個過程中,我的確學(xué)得到很多在書本上學(xué)不到的東西,如:利用VHDL語言編寫程序,如何利用現(xiàn)有的</p>
54、<p> 通過緊張有序的設(shè)計實踐,我覺得自己的動手能力有了很大的提高;自信心也增強了.在課程設(shè)計中自己動腦子解決遇到的問題,書本上的知識有了用武之地,這又鞏固和深化了自己的知識結(jié)構(gòu)。</p><p><b> 二、建議:</b></p><p> 由于種種原因,我們實習(xí)之前準(zhǔn)備嚴(yán)重不足,包括心理上和自身能力上,在這之前同學(xué)們對實習(xí)內(nèi)容了解的并不多,
55、對實習(xí)中必須用到數(shù)字實驗平臺幾乎是一無所知,所以自然地就造成了許多不必要的時間上的浪費,我建議以后老師們能夠在課堂外利用空閑的時間多講解一下有關(guān)此方面的知識,讓同學(xué)們提前有所準(zhǔn)備,對實驗內(nèi)容有所了解,相信做的時候大家必會感到更加輕松吧。另外,既然是數(shù)電實驗,作為基礎(chǔ)的數(shù)電,大家一定要熟知課本上的知識,這樣才能在實驗時不手忙腳亂不知所措。</p><p><b> 參考文獻</b></
56、p><p> [1] 閻石 主編,《數(shù)字電子技術(shù)基礎(chǔ)》,高等教育出版社,1998</p><p> [2] 譚會生等主編,《EDA技術(shù)及應(yīng)用》,西安電子科技大學(xué)出版社,2001</p><p> [3] 廖裕評等主編,《CPLD數(shù)字電路設(shè)計——使用MAX+plusⅡ入門篇》,清華大學(xué)出版社,2001</p><p> [4] 馮濤等主編,
57、《可編程邏輯器件開發(fā)技術(shù):MAX+plusⅡ入門與提高》,人民郵電出版社,2002</p><p> [5] 楊崇志,《特殊新型電子元件手冊》,遼寧科學(xué)技術(shù)出版社,1999</p><p> [6] 彭介華,《電子技術(shù)課程設(shè)計指導(dǎo)》高等教育出版社.2000年出版.</p><p> [7] Mark Zwolinski, Digital System Desi
58、gn with VHDL, 電子工業(yè)出版社,2002</p><p> [8] Alan B. Marcovitz Introduction to logic Design, 電子工業(yè)出版社,2002</p><p><b> 附錄 A源程序</b></p><p> LIBRARY IEEE; --等精度頻率計FPGA設(shè)計部分<
59、/p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY etester IS</p><p> PORT ( BCLK : IN STD_LOGIC; --標(biāo)準(zhǔn)頻率時鐘信號clock2,50MHZ<
60、;/p><p> TCLK : IN STD_LOGIC; --待測頻率時鐘信號</p><p> CLR : IN STD_LOGIC; --清零和初始化信號</p><p> CL : IN STD_LOGIC; --當(dāng)SPUL為高電平時,CL為預(yù)置門控信號,用于測頻計數(shù)</p><p> --時間控制當(dāng)SPUL為低電平時,CL為測脈
61、寬控制信號,</p><p> --CL高電平時測高電平脈寬而當(dāng)CL為低電平時,測低電平脈寬。</p><p> SPUL : IN STD_LOGIC; --測頻或測脈寬控制</p><p> START : OUT STD_LOGIC;--起始計數(shù)標(biāo)志信號</p><p> EEND : OUT STD_LOGIC; -- 由低電
62、平變到高電平時指示脈寬計數(shù)結(jié)束,</p><p> SEL : IN STD_LOGIC_VECTOR(2 DOWNTO 0); --數(shù)據(jù)讀出選同控制</p><p> DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --END etester; 8位數(shù)據(jù)讀出</p><p> END etester;</p>
63、<p> ARCHITECTURE behave OF etester IS</p><p> SIGNAL BZQ : STD_LOGIC_VECTOR(31 DOWNTO 0); --標(biāo)準(zhǔn)計數(shù)器</p><p> SIGNAL TSQ : STD_LOGIC_VECTOR(31 DOWNTO 0); --測頻計數(shù)器</p><p>
64、SIGNAL ENA : STD_LOGIC; --計數(shù)使能</p><p> SIGNAL MA, CLK1, CLK2, CLK3 : STD_LOGIC;</p><p> SIGNAL Q1,Q2,Q3,BENA,PUL:STD_LOGIC;</p><p> SIGNAL SS : STD_LOGIC_VEC
65、TOR(1 DOWNTO 0);</p><p><b> BEGIN</b></p><p> START <= ENA ;</p><p> DATA <= BZQ(7 DOWNTO 0) WHEN SEL="000" ELSE -- 標(biāo)準(zhǔn)頻率計數(shù)低8位輸出</p><p>
66、 BZQ(15 DOWNTO 8) WHEN SEL="001" ELSE</p><p> BZQ(23 DOWNTO 16) WHEN SEL="010" ELSE</p><p> BZQ(31 DOWNTO 24) WHEN SEL="011" ELSE -- 標(biāo)準(zhǔn)頻率計數(shù)最高8位輸出</p><
67、p> TSQ(7 DOWNTO 0) WHEN SEL="100" ELSE --待測頻率計數(shù)值最低8位輸出</p><p> TSQ(15 DOWNTO 8) WHEN SEL="101" ELSE</p><p> TSQ(23 DOWNTO 16) WHEN SEL="110" ELSE</p>&
68、lt;p> TSQ(31 DOWNTO 24) WHEN SEL="111" ELSE --待測頻率計數(shù)值最高8位輸出</p><p> TSQ(31 DOWNTO 24) ;</p><p> BZH : PROCESS(BCLK, CLR) --標(biāo)準(zhǔn)頻率測試計數(shù)器,標(biāo)準(zhǔn)計數(shù)器</p><p><b&
69、gt; BEGIN</b></p><p> IF CLR = '1' THEN BZQ <= ( OTHERS=>'0' ) ;</p><p> ELSIF BCLK'EVENT AND BCLK = '1' THEN</p><p> IF BENA = '1
70、9; THEN BZQ <= BZQ + 1; END IF;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> TF : PROCESS(TCLK, CLR, ENA) --待測頻率計數(shù)器,測頻計數(shù)器</p><p>
71、;<b> BEGIN</b></p><p> IF CLR = '1' THEN TSQ <= ( OTHERS=>'0' );</p><p> ELSIF TCLK'EVENT AND TCLK = '1' THEN</p><p> IF ENA =
72、9;1' THEN TSQ <= TSQ + 1; END IF;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(TCLK,CLR)</p><p><b> BEGIN</b></p&
73、gt;<p> IF CLR = '1' THEN ENA <= '0' ;</p><p> ELSIF TCLK'EVENT AND TCLK='1' THEN ENA <= CL ; END IF;</p><p> END PROCESS;</p><p> MA&
74、lt;=(TCLK AND CL) OR NOT(TCLK OR CL) ; --測脈寬邏輯</p><p> CLK1<=NOT MA ; CLK2<=MA AND Q1 ; CLK3<=NOT CLK2; SS<=Q2 & Q3 ;</p><p> DD1: PROCESS(CLK1,CLR)</p><p><b
75、> BEGIN</b></p><p> IF CLR = '1' THEN Q1 <= '0' ;</p><p> ELSIF CLK1'EVENT AND CLK1 = '1' THEN Q1 <= '1' ; END IF;</p><p> E
76、ND PROCESS;</p><p> DD2: PROCESS(CLK2,CLR)</p><p><b> BEGIN</b></p><p> IF CLR = '1' THEN Q2 <= '0' ;</p><p> ELSIF CLK2'EVENT
77、AND CLK2 = '1' THEN Q2 <= '1' ; END IF;</p><p> END PROCESS;</p><p> DD3: PROCESS(CLK3,CLR)</p><p><b> BEGIN</b></p><p> IF CLR
78、 = '1' THEN Q3 <= '0' ;</p><p> ELSIF CLK3'EVENT AND CLK3 = '1' THEN Q3 <= '1' ; END IF;</p><p> END PROCESS;</p><p> PUL<='
79、;1' WHEN SS="10" ELSE --當(dāng)SS=“10”時,PUL高電平,允許標(biāo)準(zhǔn)計數(shù)器計數(shù),</p><p> '0' ; --禁止計數(shù)</p><p> EEND<='1' WHEN SS="11" ELSE --EEND為低
80、電平時,表示正在計數(shù),由低電平變到高電平</p><p> '0'; --時,表示計數(shù)結(jié)束,可以從標(biāo)準(zhǔn)計數(shù)器中讀數(shù)據(jù)了</p><p> BENA<=ENA WHEN SPUL='1' ELSE</p><p> --標(biāo)準(zhǔn)計數(shù)器時鐘使能控制信號,當(dāng)SPUL為1時,測頻率</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計--數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- 課程設(shè)計---eda數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- eda課程設(shè)計數(shù)字頻率計
- eda技術(shù)課程設(shè)計 ---eda數(shù)字頻率計
- eda課程設(shè)計-數(shù)字頻率計的設(shè)計
- eda技術(shù)課程設(shè)計----數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 課程設(shè)計--數(shù)字頻率計
- 課程設(shè)計——數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 課程設(shè)計-數(shù)字頻率計
- 課程設(shè)計--數(shù)字頻率計
- 課程設(shè)計--數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
評論
0/150
提交評論