版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、實驗名稱數(shù)字頻率計的設計二、實驗地點211樓303三、實驗目的和任務(1) 了解數(shù)字電路設計的基本特點 (2) 了解數(shù)字頻率計電路的基本原理 (3) 基本掌握 ISE 軟件的使用(設計輸入、仿真、實現(xiàn)) (4) 了解可編程邏輯器件( FPGA )的一般情況 (5) 基本掌握 HDL 的使用四、實驗內容(1) 設計出符合設計要求的解決方案 (2) 設計出單元電路 (3) 利用 EDA 軟件對各單元電路及整體電路進行仿真 (4)利用 EDA 軟件在 ELB 電子課程設計實驗板實現(xiàn)設計 (5) 觀察實驗結果五、項目需用儀器設備名稱以及所需主要元器件PC 機、EDA教學實驗系統(tǒng)一臺,帶有(SPAR
2、TAN -3A XC3S200A芯片 ,LED 管 , 七段數(shù)碼管 等)的實驗板一塊 , 跳線、下載電纜一根,函數(shù)發(fā)生器。六、實驗任務與要求頻率測量范圍為10Hz10MHz,用6只數(shù)碼管以kHz為單位顯示測量結果;有三個帶鎖按鍵開關(任何時候都只會有一個被按下)用來選擇1S、0.1S和0.01S三個閘門時間中的一個;有一個按鈕開關用來使頻率計復位;有兩只LED,一只用來顯示閘門的開與閉,另一只當計數(shù)器溢出時做溢出指示。數(shù)字頻率計的相關技術指標如下:1、位數(shù):測量頻率通過LED數(shù)碼管為六位十進制數(shù)顯示。2、測試頻率范圍為:10HZ-10MHZ。3、計數(shù)器溢出時要有溢出標志over。4、需要有閘門
3、標志gate。5、顯示工作方式:a、用BCD七段共陽極數(shù)碼管顯示讀數(shù),只有在讀數(shù)不發(fā)生跳變時才是正確的結果。b、采用記憶顯示方法,即在一次測試結束時,顯示測試結果,此顯示值一直保留到下次測量顯示數(shù)到來,才將上次顯示更新。用第二次測試結果,更新顯示值。6、要求被測輸入信號應是符合數(shù)字電路要求的脈沖波。 七、verilog設計環(huán)境介紹VerilogVerilog HDL是目前應用最為廣泛的硬件描述語言Verilog HDL可以用來進行各種層次的邏輯設計,也可以進數(shù)字系統(tǒng)的邏輯綜合,仿真驗證和時序分析等。 Verilog HDL適合算法級,寄存器級,邏輯級,開關級、系統(tǒng)級和版圖級等各個層次的設計和描
4、述 verilogHDL進行設計最大的優(yōu)點是其工藝無關性這使得工程師在功能設計,邏輯驗證階段可以不必過多考慮門級及工藝實現(xiàn)的具體細節(jié),只需根據(jù)系統(tǒng)設計的要求施加不同的約束條件,即可設計出實際電路 verilogHDL是一種硬件描述語言(hardware description language),為了制作數(shù)字電路而用來描述ASICS和FPGA的設計之用。verilogHDL 的設計者想要以 C 編程語言為基礎設計一種語言,可以使工程師比較容易學習。 Verilog 是由en:Gateway Design Automation公司于大約1984年開始發(fā)展。Gateway Design Autom
5、ation公司后來被 Cadence Design Systems于1990年所購并?,F(xiàn)在 Cadence 對于 Gateway 公司的 Verilog 和 Verilog-XL 模擬器擁有全部的財產權。 選擇VHDL還是verilog HDL?這是一個初學者最常見的問題。其實兩種語言的差別并不大,他們的描述能力也是類似的。掌握其中一種語言以后,可以通過短期的學習,較快的學會另一種語言。 選擇何種語言主要還是看周圍人群的使用習慣,這樣可以方便日后的學習交流。當然,如果您是專用集成電路(ASIC)設計人員,則必須首先掌握verilog,因為在IC設計領域,90%以上的公司都是采用verilog進
6、行IC設計。對于PLD/FPGA設計者而言,兩種語言可以自由選擇。八、實驗原理所謂“頻率”,就是周期性信號在單位時間(1秒)內變化的次數(shù)。若在一定時間內計得這個周期信號變化的次數(shù)為N,則其頻率可表達為: (1)電子技術器可以嚴格按公式(1)所表達的頻率的定義進行測頻,其原理方框圖如圖1所示:計數(shù)器閘門放大整形門控電路時基信號發(fā)生器 圖1 測頻原理圖 首先,把被測信號(以正弦波為例)通過放大整形電路變成脈沖(實際上變成方波即可)其重復頻率等于被測頻率,然后將它加到閘門的一個輸入端。閘門通過門控信號來控制開、閉時間,只有在閘門開通時間T內,被計數(shù)的脈沖才能通過閘門,被送到十進制電子計數(shù)器進行計數(shù)。
7、門控信號的時間T是非常準確的,以它作為時間基準,它由時基發(fā)生器提供。時基信號發(fā)生器由一個高穩(wěn)定的石英振蕩器和一系列數(shù)字分頻器組成,由它輸出的標準時間脈沖(時標)去控制門控電路形成門控信號。比如,時標信號的重復周期為1S,則加到閘門的門控信號作用時間T及閘門時間亦準確的等于1S,及閘門開通時間為1S,這時若計得10000個數(shù),則有(1)式知,被測頻率。從以上討論可知,電子計數(shù)器的測頻原理實質上以比較法為基礎,它將和時基信號頻率相比,兩個頻率相比的結果以數(shù)字的形式顯示出來。溢出指示燈9、 1 .原理框圖溢出信號七段譯碼管顯示數(shù)據(jù)掃描顯示系統(tǒng)門控電路分頻器石英振蕩鎖存器計數(shù)器閥門控制被測信號 cle
8、arlatch時基2、各模塊功能及實現(xiàn)一.分頻模塊程序module count(rest,clk,clk_1hz,clk_10hz,clk_100hz,clk_1khz); input clk,rest; output reg clk_1hz,clk_10hz,clk_100hz,clk_1khz; reg29:0 count1,count2,count3,count4;initial begin clk_1hz=0; clk_10hz=0; clk_100hz=0; clk_1khz=0; count1=0; count2=0; count3=0; count4=0; endalways(
9、posedge clk) begin if(!rest) begin count1<=0;count2<=0;count3<=0;count4<=0; clk_1hz<=0; clk_10hz<=0;clk_100hz<=0;clk_1khz<=0; end else begin if(count1=24000000) begin count1<=0;clk_1hz<=clk_1hz; end else count1<=count1+1; if(count2=2400000) begin count2<=0;clk_10h
10、z<=clk_10hz;end else count2<=count2+1; if(count3=240000) begin count3<=0;clk_100hz<=clk_100hz;end else count3<=count3+1; if(count4=24000) begin count4<=0;clk_1khz<=clk_1khz;end else count4<=count4+1; end endendmodule 仿真圖 仿真模塊 二,門控電路和清零,鎖存,閥門信號產生程序 module chose(rest,clk_10hz,c
11、lk_100hzhz,clk_1khz,key1,key10,key100,gate_out1,ff,clk_latch,clk_clear); input rest ,clk_10hz,clk_100hz,clk_1khz,key1,key10,key100; output gate_out1,clk_latch,clk_clear; output reg 2:1 ff; reg gate_out1,clk_latch,clk_clear,gate; reg 4:1count; initial begin gate_out1=0;ff=0;clk_latch=0;clk_clear=0;ga
12、te=0;count=0;endalways( posedge clk_1khz) begin if(!rest) begin gate_out1<=0; ff<=2'b00;end else begin if(key1=1&&key10=0&&key100=0) begin gate<=clk_10hz; ff<=2'b01;end else if(key1=0&&key10=1&&key100=0) begin gate<=clk_100hz;ff<=2'b10;en
13、d else if(key1=0&&key10=0&&key100=1) begin gate<=clk_1khz;ff<=2'b11;end else begin ff<=0;end endend / always (posedge gate)begincount<=count+1;if (count<=9)begin gate_out1<=1;clk_clear<=0;clk_latch<=0;endelse if (count=11)begin gate_out1<=0;clk_clear<
14、;=0;clk_latch<=1;endelse if (count=13)begin gate_out1<=0;clk_clear<=1;clk_latch<=0;count<=0;endelse begin gate_out1<=0;clk_clear<=0;clk_latch<=0;endendendmodule仿真圖仿真模塊 三, 計數(shù)器程序module counter(rest,start,clk_in,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,yichu,clk_clear); input rest,start,cl
15、k_in,clk_clear; output yichu; reg yichu; output reg 4:1cnt1,cnt2,cnt3,cnt4,cnt5,cnt6; initial begin yichu=1; cnt1<=4'b0000;cnt2<=4'b0000;cnt3<=4'b0000;cnt4<=4'b0000; cnt5<=4'b0000; cnt6<=4'b0000; end always(posedge clk_in )begin if(!rest) begin cnt1<=4
16、9;b0000;cnt2<=4'b0000;cnt3<=4'b0000; cnt4<=4'b0000;cnt5<=4'b0000;cnt6<=4'b0000; end else begin if(clk_clear=1) begin cnt1<=4'b0000;cnt2<=4'b0000;cnt3<=4'b0000; cnt4<=4'b0000;cnt5<=4'b0000;cnt6<=4'b0000;yichu<=1; end else
17、 if(start=1) begin if(cnt6=4'b1001)&&(cnt5=4'b1001)&&(cnt4=4'b1001)&&(cnt3=4'b1001)&&(cnt2=4'b1001)&&(cnt1=4'b1001) begin cnt1<=4'b0000;cnt2<=4'b0000;cnt3<=4'b0000;cnt4<=4'b0000; cnt5<=4'b0000;cnt6<
18、=4'b0000;yichu<=0;end else if(cnt5=4'b1001)&&(cnt4=4'b1001)&&(cnt3=4'b1001)&&(cnt2=4'b1001)&&(cnt1=4'b1001) begin cnt1<=4'b0000;cnt2<=4'b0000; cnt3<=4'b0000;cnt4<=4'b0000; cnt5<=4'b0001;cnt6<=cnt6+4'
19、b0001; endelse if(cnt4=4'b1001)&&(cnt3=4'b1001)&&(cnt2=4'b1001)&&(cnt1=4'b1001) begin cnt1<=4'b0000;cnt2<=4'b0000;cnt3<=4'b0000; cnt4<=4'b0000;cnt5<=cnt5+4'b0001;cnt6<=cnt6; end else if(cnt3=4'b1001)&&(cnt2=4
20、39;b1001)&&(cnt1=4'b1001) begin cnt1<=4'b0000;cnt2<=4'b0000;cnt3<=4'b0000; cnt4<=cnt4+4'b0001;cnt5<=cnt5;cnt6<=cnt6; end else if(cnt2=4'b1001)&&(cnt1=4'b1001) begin cnt1<=4'b0000;cnt2<=4'b0000; cnt3<=cnt3+4'b0001;cnt4
21、<=cnt4;cnt5<=cnt5;cnt6<=cnt6; endelse if(cnt1=4'b1001)begincnt1<=4'b0000;cnt2<=cnt2+4'b0001;cnt3<=cnt3;cnt4<=cnt4;cnt5<=cnt5;cnt6<=cnt6;endelse begin cnt1<=cnt1+4'b0001;cnt2<=cnt2;cnt3<=cnt3; cnt4<=cnt4;cnt5<=cnt5;cnt6<=cnt6; end end end e
22、ndendmodule仿真圖模塊仿真圖四,鎖存以及譯碼掃描顯示程序module v138(rest,clk_1khz,se,in1,in2,in3,in4,in5,in6,segs,ff,dp,led,en,clk_latch); input 4:1 in1,in2,in3,in4,in5,in6; input clk_1khz,rest; input 2:1ff; input clk_latch; output reg dp, led,en; output reg 4:1 se; reg 3:1 count,dig; output reg 7:1 segs; reg 4:1 sign_out
23、4; reg 4:1 latch1,latch2,latch3,latch4,latch5,latch6; initial begin count<=0; dp<=1 ;segs<=0; se<=0;sign_out4<=0;led<=0;en<=0; latch1<=0;latch2<=0;latch3<=0; latch4<=0;latch5<=0;latch6<=0; end/always( posedge clk_latch ) begin latch1<=in1;latch2<=in2;latc
24、h3<=in3; latch4<=in4;latch5<=in5;latch6<=in6; end /鎖存器。 always(posedge clk_1khz)begin count<=count+1;end/位選自加always(posedge clk_1khz ) begin if(!rest) begin led<=1; end else begin case(count) 0: begin sign_out4<=latch1; se<=count;end 1: begin sign_out4<=latch2; se<=coun
25、t;end 2: begin sign_out4<=latch3; se<=count;end 3: begin sign_out4<=latch4; se<=count;end 4: begin sign_out4<=latch5; se<=count;end 5: begin sign_out4<=latch6; se<=count;end default:sign_out4<=4'b1111; endcase endend / 將數(shù)據(jù)依次譯碼 always(posedge clk_1khz) begin if(ff=2'
26、;b01&&se=3)begin dp<=0;end else if(ff=2'b10&&se=2)begin dp<=0;end else if(ff=2'b11&&se=1)begin dp<=0;end else begin dp<=1;endend/檔位選擇always ( sign_out4)beginif(!rest) begin segs<=0;endelse begin case(sign_out4) 0:segs<=7'b0000001; 1:segs<=7
27、9;b1001111; 2:segs<=7'b0010010; 3:segs<=7'b0000110; 4:segs<=7'b1001100; 5:segs<=7'b0100100; 6:segs<=7'b1100000; 7:segs<=7'b0001111; 8:segs<=7'b0000000; 9:segs<=7'b0000100; default:segs<=7'b1111111; endcase endend/譯碼顯示endmodule仿真圖模塊仿真圖五,頂
28、層電路程序module top(rest,clk,key1,key2,key3,clk_in,se,segs,led,dp,en,yichu); input rest,clk,clk_in,key1,key2,key3; output dp,led,en,yichu; output 3:1 se ; output7:1 segs; wire 4:1out1,out2,out3,out4,out5,out6; wire 2:1ff; wire gate_out1;count count(.clk(clk),.rest(rest),.clk_10hz(clk_10hz),.clk_100hz(cl
29、k_100hz),.clk_1khz(clk_1khz);/分頻器 chose chose(.rest(rest),.clk_1khz(clk_1khz),.clk_10hz(clk_10hz),.clk_100hz(clk_100hz),.ky1(key1),.key10(key2),.key100(key3), .gate_out1(gate_out1),.ff(ff),.clk_latch(clk_latch),.clk_cear(clk_clear);/時基選擇模塊 counter counter(.start(gate_out1),.rest(rest),.clk_in(clk_in
30、),.cnt1(out1), .yichu(yichu) ,.cnt2(out2),.cnt3(out3),.cnt4(out4),.cnt5(out5),.cnt6(out6),.clk_clear(clk_clear);/計數(shù)器器 v138 v138(.rest(rest),.clk_1khz(clk_1khz),.se(se), .led(led),.in1(out1),.in2(out2),.in3(out3),.in4(out4), .in5(out5),.in6(out6),.segs(segs),.ff(ff),.en(en),.dp(dp),.clk_latch(clk_lat
31、ch);endmodule/譯碼顯示頂層電路圖生成的各個模塊按要求連線,形成頂層原理圖,如下3 分配引腳和下載實現(xiàn)根據(jù)XC3S200A I/O口對應管腳參考分配引腳。引腳分配完畢后雙擊“Generate programming”對所有程序進行綜合,改正綜合過程中提示的錯誤和警告,然后運行“Configure Device”把程序下載到電路板上。4 結果測試在成功下載并運行后,評估該設計系統(tǒng)的實際測量效果,作對比試驗,選用頻率可調的函數(shù)發(fā)生器生成測試信號。當閘門時間為1s時,測得結果如下:序號輸入(Hz)輸出(KHz)11000.001210000.010 31000000.100410000001.000 5100000010.0006100000100.0007200000200.0008300000300.0009400000400.00010500000500.00011600000600.00012700000700.00013800000800.00014900000899.99515920000919.99416960000959.995171000000999.996181000008999.999191000017溢出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025海南省安全員-B證(項目經理)考試題庫
- 2025年-遼寧省安全員知識題庫
- 2025青海省安全員B證考試題庫及答案
- 2025年湖北省安全員A證考試題庫附答案
- 2025遼寧建筑安全員考試題庫及答案
- 建筑用花崗巖開采及建筑用碎石、機制砂加工項目可行性研究報告模板-備案拿地
- 英語英語時態(tài)課件
- 一年級語文《-jqx》課件
- 單位管理制度展示匯編【人事管理】
- 單位管理制度展示大全職員管理篇十篇
- 北師大版五年級數(shù)學下冊第3單元第2課時分數(shù)乘法(二)課件
- 教育部中國特色學徒制課題:中國特色學徒制制度設計與運行機制研究
- 城市規(guī)劃思想史
- 山東師范大學新聞采訪期末復習題
- 讓與擔保合同協(xié)議范本
- 住宅設計效果圖協(xié)議書
- 新版中國食物成分表
- 2024河南鄭州市金水區(qū)事業(yè)單位招聘45人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 食物損失和浪費控制程序
- TCI 373-2024 中老年人免散瞳眼底疾病篩查規(guī)范
- 2024四川太陽能輻射量數(shù)據(jù)
評論
0/150
提交評論