




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.運(yùn)動(dòng)計(jì)時(shí)器設(shè)計(jì)報(bào)告PLD與數(shù)字系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告-設(shè)計(jì)性實(shí)驗(yàn)報(bào)告(運(yùn)動(dòng)計(jì)時(shí)器1、實(shí)驗(yàn)說明:作為Verilog語(yǔ)言的初學(xué)者,此次報(bào)告全面的展示了計(jì)時(shí)器實(shí)驗(yàn)設(shè)計(jì)的過程,總結(jié)了自己學(xué)習(xí)的一些內(nèi)容。計(jì)時(shí)器設(shè)計(jì)的實(shí)現(xiàn)方法比較多,本設(shè)計(jì)的創(chuàng)新點(diǎn)主要有以下方面:使用了硬件描述語(yǔ)言和原理圖混合輸入的方式,進(jìn)行模塊化設(shè)計(jì),生成電路元件符號(hào),設(shè)計(jì)方法比較直觀,方便其他實(shí)驗(yàn)進(jìn)行模塊調(diào)用。計(jì)時(shí)器的暫停開始功能的控制,使用StateCAD圖像化的設(shè)計(jì)方式,利用狀態(tài)機(jī)實(shí)現(xiàn)該模塊的設(shè)計(jì)。1.1 實(shí)驗(yàn)要求使用Xilinx公司的Spartan3S 400AN開發(fā)板上的相關(guān)模塊,利用ISE開發(fā)軟件完成運(yùn)動(dòng)計(jì)時(shí)器的設(shè)計(jì),要求實(shí)現(xiàn)如
2、下功能:(1)在LED數(shù)碼管上顯示分鐘和秒,最長(zhǎng)的計(jì)時(shí)時(shí)間為59:59。(2)自定義清零按鍵,按下該按鍵,在數(shù)碼管上顯示的時(shí)間為00:00。(3)自定義啟動(dòng)/暫停按鍵,按下該按鍵,則啟動(dòng)或暫停計(jì)時(shí)器計(jì)時(shí)。其功能與實(shí)際的計(jì)時(shí)器的開始/停止按鈕功能相同。1.2 實(shí)驗(yàn)工具XUP(FPGA:Spartan3S400AN)實(shí)驗(yàn)開發(fā)板Xilinx軟件ISE13.4開發(fā)軟件二、實(shí)驗(yàn)分析設(shè)計(jì)過程實(shí)驗(yàn)設(shè)計(jì)理念主要為自頂向下的設(shè)計(jì)方法,這也是數(shù)字系統(tǒng)設(shè)計(jì)中最常用的設(shè)計(jì)方法,也是基于芯片的系統(tǒng)設(shè)計(jì)的主要方法。它的基本原理框圖如下:圖 1 設(shè)計(jì)方法框圖自頂向下的設(shè)計(jì)方法利用功能分割手段將設(shè)計(jì)由上到下進(jìn)行層次化和模塊化
3、,即分層次、分模塊進(jìn)行設(shè)計(jì)和仿真。功能分割時(shí),將系統(tǒng)功能分解為功能塊,功能塊再分解為邏輯塊,邏輯塊再分解為更少的邏輯塊和電路。如此分割,逐步的將系統(tǒng)細(xì)化,將功能逐步具體化,模塊化。高層次設(shè)計(jì)進(jìn)行功能和接口描述,說明模塊的功能和接口,模塊功能的更詳細(xì)描述在下一設(shè)計(jì)層次說明,最底層的設(shè)計(jì)才涉及具體寄存器和邏輯門電路等實(shí)現(xiàn)方式的描述。2.1 各模塊描述語(yǔ)言的實(shí)現(xiàn)本實(shí)驗(yàn)采用硬件描述語(yǔ)言和電路原理圖混合輸入的方式實(shí)現(xiàn),用Verilog描述語(yǔ)言分別產(chǎn)生計(jì)數(shù)、顯示和控制模塊,然后將這些模塊生成電路符號(hào)并構(gòu)成一個(gè)頂層電路原理圖,這種方法使用方便,設(shè)計(jì)也比較直觀,并且生成的功能模塊方便其他設(shè)計(jì)的調(diào)用。下面是每個(gè)
4、模塊設(shè)計(jì)的思路:2.1.1 計(jì)時(shí)模塊的設(shè)計(jì)本模塊的設(shè)計(jì)類似于數(shù)字時(shí)鐘的方法,秒、分都是60 進(jìn)制計(jì)數(shù),采用了 6 進(jìn)制計(jì)數(shù)器與10 進(jìn)制計(jì)數(shù)器的組合實(shí)現(xiàn);控制邏輯主要是用來(lái)實(shí)現(xiàn)計(jì)數(shù)和清零。首先,要由系統(tǒng)時(shí)鐘(50Mhz)分頻得到秒信號(hào),秒時(shí)鐘累加即可得到分鐘信號(hào),分頻方案主要有以下兩種:a) 占空比1:1方波信號(hào)分頻效果如下圖所示,(這里為了仿真的方便改變計(jì)數(shù)器的數(shù)值)圖 2 秒信號(hào)(方波形式)b) 非方波形式從50Mhz的時(shí)鐘信號(hào)分頻,得到秒信號(hào)高電平的脈沖寬度為分頻時(shí)鐘的一個(gè)周期,控制秒鐘加1。圖 3 秒信號(hào)(非方波形式)本實(shí)驗(yàn)采用第二種分頻方式,主要是為了防止在進(jìn)行綜合的時(shí)候出現(xiàn)分頻信號(hào)
5、向系統(tǒng)時(shí)鐘偏移(clock skew)的警告,一般遵循使用一個(gè)時(shí)鐘域幾個(gè)使能域優(yōu)于多個(gè)全局時(shí)鐘域的規(guī)則。 圖4 時(shí)鐘偏移的考慮其次,用分頻出的秒信號(hào),作為計(jì)數(shù)模塊秒低位計(jì)數(shù)器的觸發(fā)信號(hào),依此完成秒高位、分低位、分高位的計(jì)數(shù)功能。其實(shí)現(xiàn)方法是使用四個(gè)always進(jìn)程模塊,分別對(duì)計(jì)時(shí)器的四位計(jì)數(shù),由于always進(jìn)程是并行的,因此可以提高程序運(yùn)行的效率。對(duì)其仿真結(jié)果如下所示:圖 5 計(jì)數(shù)器仿真上圖是計(jì)數(shù)器仿真部分截圖,從圖中數(shù)據(jù)看到,計(jì)數(shù)器功能正常。此模塊所對(duì)應(yīng)的程序如下所示:module timer(clken,rst,clk_50M,sec1,sec2,min1,min2);input clk
6、_50M;/系統(tǒng)時(shí)鐘input clken,rst;/其中clken是控制計(jì)數(shù)信號(hào),rst是清零信號(hào),都由控制模塊產(chǎn)生output 3:0sec1;output 3:0sec2;output 3:0min1;output 3:0min2;reg 3:0 sec1; /秒低位信號(hào)reg 3:0 sec2; /秒高位信號(hào)reg 3:0 min1; /分鐘低位信號(hào)reg 3:0 min2; /分鐘高位信號(hào)reg 27:0 count;reg clk_1H;/分頻得到1s的信號(hào)always (posedge clk_50M or posedge rst ) begin if(rst) begin co
7、unt <= 28'd0; end else begin /if(count=28'd2499_9999) if(count=28'd4) begin count <= 28'd0; clk_1H <= 1'd1; end else begin count <= count+1; clk_1H <= 1'd0; end endend/秒個(gè)位計(jì)數(shù)器always (posedge clk_50M or negedge rst) begin if(rst) begin sec1 <= 4'b0; end el
8、se if(clken)/計(jì)數(shù)使能信號(hào) begin if(clk_1H) begin if(sec1 = 4'b1001) sec1 <= 4'b0000; else sec1 <= sec1+4'b0001; end endend/秒十位計(jì)數(shù)器always (posedge clk_50M or negedge rst) begin if(!rst) begin sec2 <= 4'b0; end else if(clken)/計(jì)數(shù)使能信號(hào) begin if(clk_1H&&(sec1 = 4'b1001)/秒信號(hào)和秒
9、低位信號(hào)控制秒高位計(jì)數(shù) begin if(sec2 = 4'b0101) sec2 <= 4'b0; else sec2 <= sec2+4'b0001; end end end /分個(gè)位計(jì)數(shù)器always (posedge clk_50M or negedge rst) begin if(rst) begin min1 <= 4'b0; end else if(clken) begin if(clk_1H&&(sec1 = 4'b1001)&&(sec2 =4'b0101) begin if(m
10、in1 = 4'b1001) min1 <= 4'b0; else min1 <= min1 +4'b0001; end end end /分十位計(jì)數(shù)器always (posedge clk_50M or negedge rst) begin if(rst) begin min2 <= 4'b0; end else if(clken) begin if(clk_1H&&(sec1 = 4'b1001)&&(sec2 = 4'b0101)&&(min1 = 4'b1001)
11、begin if(min2 = 4'b0101) min2 <= 4'b0; else min2 <= min2 +4'b0001; end end end endmodule2.1.2 數(shù)碼管顯示模塊設(shè)計(jì)本模塊主要是對(duì)數(shù)碼管顯示進(jìn)行動(dòng)態(tài)掃描及譯碼輸出。動(dòng)態(tài)掃描顯示的原理很簡(jiǎn)單,由于在實(shí)驗(yàn)中片選信號(hào)和筆畫碼都是不經(jīng)過數(shù)據(jù)鎖存而直接由IO口送數(shù)碼管的,并且四位數(shù)碼管共用并行的筆畫碼數(shù)據(jù)線,因此必須輪流選中某一位數(shù)碼管,才能使各位數(shù)碼管能顯示不同的數(shù)字或符號(hào)。再利用人眼睛對(duì)50Hz以上的光的閃爍不敏感的特性。因此,只要輪流選中某一位的時(shí)間間隔不超過20ms(對(duì)四
12、位數(shù)碼管來(lái)說,相鄰位選中間隔不超過5ms),就感覺數(shù)碼管是在持續(xù)發(fā)光顯示一樣。其次是要根據(jù)實(shí)驗(yàn)板上數(shù)碼管共陽(yáng)的特性進(jìn)行譯碼輸出。圖 6 數(shù)碼管編碼段選設(shè)計(jì)源程序如下:使用了計(jì)數(shù)器cnt實(shí)現(xiàn)了對(duì)數(shù)碼管的逐位點(diǎn)亮,并在把相應(yīng)的顯示數(shù)據(jù)送到該位顯示。module player(clk_50M,reset,sec1,sec2,min1,min2,dula,weil);input clk_50M;input reset;input 3:0sec1;input 3:0sec2;input 3:0min1;input 3:0min2;output 7:0 dula; /數(shù)碼管段選控制output 3:0 w
13、eil;/數(shù)碼管位選控制reg 7:0 dula;reg 3:0 weil;reg 3:0 num;reg 27:0 count;reg 1:0 cnt;reg clks;/數(shù)碼管掃描的頻率/分頻得到500hz的掃描頻率always (posedge clk_50M or negedge reset) begin if(!reset) begin count <= 28'd0; clks <= 0; end else begin if(count=28'd49_999) begin count <= 28'd0; clks <= 1'b1
14、; end else begin count <= count+1;/默認(rèn)為十進(jìn)制 clks <= 1'b0; end endendalways (posedge clk_50M)begin if(clks)/ begin cnt <= cnt+2'b01; end case(cnt) 2'b00 :begin weil <= 4'b1110;/最右邊的數(shù)碼管亮 num <= sec1; end 2'b01 :begin weil <= 4'b1101; num <= sec2; end 2'b1
15、0 :begin weil <= 4'b1011;/左二位 num <= min1; end 2'b11 :begin weil <= 4'b0111;/最左邊的數(shù)目管亮 num <= min2; end endcase end/譯碼模塊always (num) begin case(num) 4'b0000 :dula7:1 <= (7'b1111_110);/顯示0 4'b0001 :dula7:1 <= (7'b0110_000);/1 4'b0010 :dula7:1 <= (7&
16、#39;b1101_101);/2 4'b0011 :dula7:1 <= (7'b1111_001);/3 4'b0100 :dula7:1 <= (7'b0110_011);/4 4'b0101 :dula7:1 <= (7'b1011_011); 4'b0110 :dula7:1 <= (7'b1011_111); 4'b0111 :dula7:1 <= (7'b1110_000); 4'b1000 :dula7:1 <= (7'b1111_111); 4&
17、#39;b1001 :dula7:1 <= (7'b1111_011); default :; endcase endendmodule 2.1.3 控制模塊的設(shè)計(jì)根據(jù)實(shí)驗(yàn)的要求,用一個(gè)按鍵實(shí)現(xiàn)計(jì)時(shí)器的暫停和開始的功能。這個(gè)功能的實(shí)現(xiàn)有以下兩個(gè)方案:通過檢測(cè)按鍵的電平變化,改變控制計(jì)數(shù)的變量的值,可以通過取反來(lái)實(shí)現(xiàn)0、1狀態(tài)的反轉(zhuǎn),從而完成暫停和開始的控制。利用有限狀態(tài)機(jī)。ISE中的StateCAD支持以狀態(tài)轉(zhuǎn)移圖作為邏輯設(shè)計(jì)輸入,可以實(shí)現(xiàn)將狀態(tài)轉(zhuǎn)移圖生成HDL語(yǔ)言,在此基礎(chǔ)上進(jìn)行一些必要性的修改,可以獲得控制模塊的代碼。根據(jù)清零按鍵和暫停開始按鍵輸出控制信號(hào)clken和rst,
18、控制計(jì)數(shù)模塊timer的計(jì)數(shù)和清零。在ISE中的timer工程新建狀態(tài)機(jī)文件,有限狀態(tài)機(jī)的變化過程如下:圖7 控制模塊狀態(tài)機(jī)轉(zhuǎn)換本設(shè)計(jì)使用了第二種控制方法,相比第一種方法邏輯控制較嚴(yán)密,并取得了較好的效果。其描述語(yǔ)言如下所示:module control(clk_50M,reset,pause,clken,rst);input clk_50M;input reset,pause;/低電平有效output clken;output rst;reg clken;reg rst;/定義狀態(tài)機(jī)的六個(gè)狀態(tài)parameter clear = 6'b000_001,parameter zero =
19、6'b000_010,parameter start = 6'b000_100,parameter counting = 6'b001_000,parameter stop1 = 6'b010_000,parameter stopped = 6'b100_000;reg 5:0 current_state;/當(dāng)前狀態(tài)reg 5:0 next_state; /下一狀態(tài)always (current_state or pause) begin case(current_state) clear:begin next_state <= zero; clk
20、en <= 1'b0; rst <= 1'b1; end zero:begin next_state <= (pause)?zero:start; clken <= 1'b0; rst <= 1'b0; end start:begin next_state <= (pause)?counting:start; clken <= 1'b0; rst <= 1'b0; end counting:begin next_state <= (pause)?counting:stop1; clken &l
21、t;= 1'b1; rst <= 1'b0; end stop1:begin next_state <= (pause)?stopped:stop1; clken <= 1'b0; rst <= 1'b0; end stopped:begin next_state <= (pause)?stopped:start; clken <= 1'b0; rst <= 1'b0; end endcaseendalways (posedge clk_50M or negedge reset) begin if(!re
22、set) current_state = clear; else current_state = next_state; endendmodule2.2 綜合及設(shè)計(jì)實(shí)現(xiàn)在完成各模塊的HDL描述后,進(jìn)行語(yǔ)法的檢查,生成電路模塊設(shè)計(jì)頂層原理圖。加入用戶約束文件,確定對(duì)應(yīng)的管腳編號(hào),最后對(duì)原理圖進(jìn)行綜合和設(shè)計(jì)實(shí)現(xiàn)及生成下載文件。2.2.1 各模塊原理圖的生成在當(dāng)前工程窗口中的Design Utilites項(xiàng)目中,雙擊Creat Schmatic Symbol命令,得到三個(gè)模塊control、timer、display原理圖,如下所示:圖8 控制模塊原理圖圖9 計(jì)數(shù)模塊原理圖圖10 顯示模塊原理圖2.2.2 頂層原理圖
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨員領(lǐng)導(dǎo)干部廉政法規(guī)知識(shí)考試題庫(kù)及答案(共130題)
- 體育體測(cè)檢討書
- FAMILYDAY員工家庭日活動(dòng)
- 醫(yī)藥航空運(yùn)輸服務(wù)協(xié)議
- 氫能項(xiàng)目可行性研究報(bào)告
- 項(xiàng)目監(jiān)控工程
- 聰明屋智能家居系統(tǒng)
- 屋頂分布式光伏發(fā)電項(xiàng)目可研報(bào)告
- 部門間工作聯(lián)系函及溝通策略指導(dǎo)
- 有關(guān)光伏發(fā)電的調(diào)研報(bào)告
- 2025年合肥共達(dá)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
- 2025美國(guó)急性冠脈綜合征(ACS)患者管理指南解讀課件
- 足球迷互動(dòng)活動(dòng)策劃與執(zhí)行策略
- 2025年寧夏工商職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)帶答案
- ESC+2024+心房顫動(dòng)(房顫)管理指南解讀
- 2019地質(zhì)災(zāi)害防治工程工程量清單計(jì)價(jià)規(guī)范
- 2022-2024年江蘇中考英語(yǔ)試題匯編:任務(wù)型閱讀填空和閱讀回答問題(教師)
- 游戲跨文化傳播-洞察分析
- 河北石家莊市市屬國(guó)有企業(yè)招聘筆試沖刺題2025
- 2025-2030年中國(guó)鐵合金冶煉行業(yè)競(jìng)爭(zhēng)格局展望及投資策略分析報(bào)告
-
評(píng)論
0/150
提交評(píng)論