版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí) 驗(yàn) 報(bào) 告課程名稱: EDA技術(shù)實(shí)用教程 指導(dǎo)老師: 學(xué)生姓名: 學(xué) 號: 專業(yè)班級: 通信工程134班 2015年 12月 7 日目 錄實(shí)驗(yàn)一、全加器設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)二、??勺冇?jì)數(shù)器設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)三、序列信號發(fā)生和檢測器設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)四、交通燈控制器設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)五、多功能數(shù)字鐘設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)六、出租車計(jì)費(fèi)器設(shè)計(jì)實(shí)驗(yàn)本課程總結(jié)專心-專注-專業(yè)一、全加器設(shè)計(jì)實(shí)驗(yàn)(1) 實(shí)驗(yàn)?zāi)康?、 熟悉建立文件夾和建立工程的整個(gè)過程。2、 學(xué)會建立波形文件。3、 學(xué)會將文件下載到板子上。(2) 設(shè)計(jì)要求完成設(shè)計(jì)、仿真、調(diào)試、下載、硬件測試等環(huán)節(jié),在EDA實(shí)驗(yàn)裝置上實(shí)現(xiàn)模可變計(jì)數(shù)器功能,具體要
2、求如下:1、利用書上的程序,完成實(shí)驗(yàn)?zāi)康?,?shí)現(xiàn)兩個(gè)一位二進(jìn)制數(shù)的相加,并將進(jìn)位輸出。(3) 主要儀器設(shè)備1、微機(jī)1臺2、QuartusII集成開發(fā)軟件1套3、EDA實(shí)驗(yàn)裝置 1套(4) 實(shí)驗(yàn)思路由于要用到例化語句,所以需要將文件都放在一個(gè)文件夾里然后創(chuàng)建工程。選擇文件夾和名稱。添加文件選擇實(shí)驗(yàn)室用的芯片選擇仿真工具半加器真值表如下ABSOCO0000011010101101其中A和B為輸入信號,SO為和值輸出,CO為進(jìn)位輸出。程序如下。module banjia(A,B,SO,CO); input A,B; output SO,CO; assign SO=AB; assign CO=A&
3、;B;Endmodule由真值表可得輸入信號A和B異或可作為和值輸出,相與可作為進(jìn)位輸出。全加器真值表如下AinBinCinCoutSum0000001001100011101000101011101011011111ain和bin為輸入信號,cin為進(jìn)位信號與ain和bin一起相加,cout為進(jìn)位出書,sum為和值輸出。程序如下。module quanjia(ain,bin,cin,cout,sum); output cout,sum; input ain,bin,cin; wire net1,net2,net3; banjia U1(ain,bin,net1,net2); banjia U
4、2(.A(net1),.SO(sum),.B(cin),.CO(net3); or U3(cout,net2,net3);Endmodule這里用了例化語句調(diào)用了一個(gè)半加器的模塊讓ain與bin通過半加器的相加之后的和值net1作為一個(gè)輸入信號再與進(jìn)位信號cin相加作為和值sum,ain與bin相加產(chǎn)生的進(jìn)位信號net2和ain與bin的和值net1與cin相加產(chǎn)生的進(jìn)位信號net3相或作為整體的進(jìn)位輸出cout,便可完成真值表的要求。(5) 時(shí)序仿真添加文件添加引腳然后對輸入信號進(jìn)行賦值,賦值為周期性信號。編譯后保存。仿真后效果如下將程序燒入板子如下(6) 實(shí)驗(yàn)總結(jié)因?yàn)檫@個(gè)是第一次進(jìn)EDA實(shí)
5、驗(yàn)室,對軟件硬件都不了解。遇到很多的簡單問題,也就是操作上的不熟練。對照書本上的步驟一步一步操作,才能完成。真應(yīng)該加強(qiáng)動(dòng)手能力。通過這次實(shí)驗(yàn)理解了全加器的原理和例化語句的使用,初步對EDA實(shí)驗(yàn)產(chǎn)生了興趣。二、模可變計(jì)數(shù)器設(shè)計(jì)(一) 實(shí)驗(yàn)?zāi)康?、 進(jìn)一步熟悉實(shí)驗(yàn)裝置和Quartus軟件的使用;2、 進(jìn)一步熟悉和掌握EDA設(shè)計(jì)流程;3、 學(xué)習(xí)簡單組合、時(shí)序電路的EDA設(shè)計(jì);4、 學(xué)習(xí)計(jì)數(shù)器中二進(jìn)制碼到BCD碼的轉(zhuǎn)換技巧;5、學(xué)習(xí)實(shí)驗(yàn)裝置上數(shù)碼管的輸出方法。(二) 設(shè)計(jì)要求完成設(shè)計(jì)、仿真、調(diào)試、下載、硬件測試等環(huán)節(jié),在EDA實(shí)驗(yàn)裝置上實(shí)現(xiàn)??勺冇?jì)數(shù)器功能,具體要求如下:1、 設(shè)置一個(gè)按鍵控制改變模值
6、,按鍵按下時(shí)模為10-99之間(具體數(shù)值自行確定)的數(shù),沒按下時(shí)模為100-199之間(具體數(shù)值自行確定)的數(shù);2、 計(jì)數(shù)結(jié)果用三位數(shù)碼管十進(jìn)制顯示。(三) 主要儀器設(shè)備1、微機(jī)1臺2、QuartusII集成開發(fā)軟件1套3、EDA實(shí)驗(yàn)裝置 1套(四) 實(shí)驗(yàn)思路總體程序如下module jishuqi (CLK,rst,M,SG,en,q,d);input CLK,rst,en;input M;output SG;reg7:0 cnt;reg clk1;reg7:0 SG;reg sel;output reg11:0 q;reg11:0 model;reg3:0 a;output reg d;w
7、ire3:0 gw,sw,bw;assign gw3:0=q3:0;assign sw3:0=q7:4; assign bw3:0=q11:8;always (M)if (M) model=12'b0;else model=12'b0; always (posedge CLK)begin cnt=cnt+1; if (cnt=200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; if (sel<2) sel=sel+1; else sel=0; endalways (posedge CLK or negedge
8、rst)beginif(!rst)q=0;elseif(en) beginif(q<model)begin if (gw=9) begin q=q+7; if (sw=9) q=q+96; end else q=q+1; endelse q=0;end endalways (q)begin if(q<model) d<=0; else d<=1;endalways (sel) begin case (sel) 0: a=bw; 1: a=sw; 2: a=gw; default: a=0; endcase case (a)0:SG<=8'b; 1:SG&l
9、t;=8'b;2:SG<=8'b; 3:SG<=8'b; 4:SG<=8'b; 5:SG<=8'b;6:SG<=8'b; 7:SG<=8'b; 8:SG<=8'b; 9:SG<=8'b; default: SG=8'b; endcase endendmodule分頻模塊分頻模塊由時(shí)鐘頻率的分頻作為計(jì)數(shù)脈沖,每200個(gè)系統(tǒng)脈沖有一個(gè)技術(shù)脈沖,同時(shí)可以利用系統(tǒng)脈沖進(jìn)行循環(huán)選擇SEL來進(jìn)行循環(huán)掃碼。程序如下 always (posedge CLK)begin cnt=cnt
10、+1; if (cnt=200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; if (sel<2) sel=sel+1; else sel=0; 選擇模塊由M選擇,M為1時(shí)模是30,M為0時(shí)模為100。always (M)if (M) model=12'b0;else model=12'b0; 計(jì)數(shù)模塊計(jì)數(shù)模塊如下,由于q為16進(jìn)制數(shù),我們需要的輸出為BCD碼,故進(jìn)行調(diào)整。平常時(shí)q來一個(gè)脈沖加1,當(dāng)加到個(gè)位為9時(shí),也就是1001,將其加7變?yōu)?6也就是0,實(shí)現(xiàn)了個(gè)位由9到0的BCD計(jì)數(shù),同時(shí)也會向十位進(jìn)1。當(dāng)十位
11、和個(gè)位同時(shí),為9時(shí),q位加96也就是十位加6,再加上個(gè)位向十位進(jìn)的1就是加7,十位會清零同時(shí)個(gè)位也會清零,同時(shí)向百位進(jìn)1,實(shí)現(xiàn)了正常的十進(jìn)制BCD碼計(jì)數(shù)。Rst則為清零信號,en為使能信號。always (posedge CLK or negedge rst)beginif(!rst)q=0;elseif(en) beginif(q<model)begin if (gw=9) begin q=q+7; if (sw=9) q=q+96; end else q=q+1; endelse q=0;end End當(dāng)計(jì)數(shù)到頂后有個(gè)標(biāo)志位d標(biāo)志是否計(jì)到頂。always (q)begin if(q&
12、lt;model) d<=0; else d<=1;end循環(huán)掃碼模塊如下,由于sel的變化頻率和系統(tǒng)時(shí)鐘相同,所以肉眼辨別不出來在跳動(dòng),可以通過其分別選擇數(shù)碼管并將個(gè)位十位百位呈現(xiàn)在數(shù)碼管上,同時(shí)配有譯碼程序。always (sel) begin case (sel) 0: a=bw; 1: a=sw; 2: a=gw; default: a=0; endcase case (a)0:SG<=8'b; 1:SG<=8'b;2:SG<=8'b; 3:SG<=8'b; 4:SG<=8'b; 5:SG<=8
13、39;b;6:SG<=8'b; 7:SG<=8'b; (五) 實(shí)驗(yàn)截圖仿真時(shí)用CLK代替分頻頻率便于觀察.總體圖Rst可以實(shí)現(xiàn)計(jì)數(shù)的清零。當(dāng)M為1時(shí)實(shí)現(xiàn)了模30的計(jì)數(shù),同時(shí)標(biāo)志位為1當(dāng)M為0時(shí)實(shí)現(xiàn)了模100的計(jì)數(shù),同時(shí)標(biāo)志位為1使能信號en為0時(shí)計(jì)數(shù)保持不變(六) 實(shí)驗(yàn)總結(jié)初步進(jìn)行了自己設(shè)計(jì)程序和仿真一系列工作,加深了對設(shè)計(jì)過程和語句使用的理解。進(jìn)而對軟硬件的操作使用都有了進(jìn)一步的熟練,遇到的基礎(chǔ)問題也能想辦法去解決了,不像第一次那樣手足無措了。語法語句也大概有了了解。三、序列信號發(fā)生和檢測器設(shè)計(jì) (一) 實(shí)驗(yàn)?zāi)康?、 進(jìn)一步熟悉EDA實(shí)驗(yàn)裝置和Quartus軟件的
14、使用方法;2、 學(xué)習(xí)有限狀態(tài)機(jī)法進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì);3、 學(xué)習(xí)使用原理圖輸入法進(jìn)行設(shè)計(jì)。(二) 設(shè)計(jì)要求完成設(shè)計(jì)、仿真、調(diào)試、下載、硬件測試等環(huán)節(jié),在EDA實(shí)驗(yàn)裝置上實(shí)現(xiàn)一個(gè)串行序列信號發(fā)生器和一個(gè)序列信號檢測器的功能,具體要求如下:1、 先用設(shè)計(jì)序列信號發(fā)生器,其最后6BIT數(shù)據(jù)用LED顯示出來;2、 再設(shè)計(jì)一個(gè)序列信號檢測器,檢測上述序列信號,若檢測到串行序列“”則輸出為“1”,否則輸出為“0”;(三) 主要儀器設(shè)備1、微機(jī)1臺2、QuartusII集成開發(fā)軟件1套3、EDA實(shí)驗(yàn)裝置 1套(四) 實(shí)驗(yàn)思路首先畫出狀態(tài)轉(zhuǎn)移圖總體程序如下module xulieji2(clk,rst,en,da
15、te,SOUT);parameter s0=1,s1=2,s2=3,s3=4,s4=5,s5=6,s6=7;input clk,rst,en;output date,SOUT;wire SOUT;reg8:0 cnt;reg6:0 ST,NST;reg5:0 date;reg16:0 sdate;assign SOUT=(NST=s6);always ( posedge clk or negedge rst )beginif(!rst) beginST<=s0;date<=6'b;sdate<=17'b;cnt<=16;endelse if(en) be
16、gin ST<=NST;date5:1<=date4:0;date0<=sdatecnt;cnt<=cnt-1;endelse cnt<=0;case(ST)s0: begin if(date0=1'b1) NST<=s1;else NST<=s0;ends1: begin if(date0=1'b1) NST<=s2;else NST<=s0;ends2: begin if(date0=1'b0) NST<=s3;else NST<=s2;ends3: begin if(date0=1'b1)
17、NST<=s4;else NST<=s0;ends4: begin if(date0=1'b1) NST<=s5;else NST<=s0;ends5: begin if(date0=1'b0) NST<=s6;else NST<=s2;ends6: begin if(date0=1'b0) NST<=s0;else NST<=s4;enddefault: NST<=s0;endcase endendmodule這里用到了狀態(tài)機(jī)技術(shù),狀態(tài)機(jī)可以方便的設(shè)置程序滿足什么條件然后去往什么狀態(tài),利用狀態(tài)機(jī)可以實(shí)現(xiàn)檢測到時(shí)的狀
18、態(tài),同時(shí)可以在不滿足時(shí)準(zhǔn)確的調(diào)往正確的狀態(tài)以便于下一步的判斷。狀態(tài)機(jī)簡寫為FSM(Finite State Machine),主要分為2大類:第一類,若輸出只和狀態(tài)有關(guān)而與輸入無關(guān),則稱為Moore狀態(tài)機(jī);第二類,輸出不僅和狀態(tài)有關(guān)而且和輸入有關(guān)系,則稱為Mealy狀態(tài)機(jī)。要特別注意的是,因?yàn)镸ealy狀態(tài)機(jī)和輸入有關(guān),輸出會受到輸入的干擾,所以可能會產(chǎn)生毛刺(Glitch)現(xiàn)象,使用時(shí)應(yīng)當(dāng)注意。事實(shí)上現(xiàn)在市面上有很多EDA工具可以很方便的將狀態(tài)圖的描述轉(zhuǎn)換成可以綜合的程序代碼。狀態(tài)機(jī)可歸納為4個(gè)要素,即現(xiàn)態(tài)、條件、動(dòng)作、次態(tài)。這樣的歸納,主要是出于對狀態(tài)機(jī)的內(nèi)在因果關(guān)系的考慮?!艾F(xiàn)態(tài)”和“條
19、件”是因,“動(dòng)作”和“次態(tài)”是果。詳解如下:現(xiàn)態(tài):是指當(dāng)前所處的狀態(tài)。條件:又稱為“事件”,當(dāng)一個(gè)條件被滿足,將會觸發(fā)一個(gè)動(dòng)作,或者執(zhí)行一次狀態(tài)的遷移。動(dòng)作:條件滿足后執(zhí)行的動(dòng)作。動(dòng)作執(zhí)行完畢后,可以遷移到新的狀態(tài),也可以仍舊保持原狀態(tài)。動(dòng)作不是必需的,當(dāng)條件滿足后,也可以不執(zhí)行任何動(dòng)作,直接遷移到新狀態(tài)。次態(tài):條件滿足后要遷往的新狀態(tài)?!按螒B(tài)”是相對于“現(xiàn)態(tài)”而言的,“次態(tài)”一旦被激活,就轉(zhuǎn)變成新的“現(xiàn)態(tài)”了。賦值模塊parameter s0=1,s1=2,s2=3,s3=4,s4=5,s5=6,s6=7;input clk,rst,en;output date,SOUT;wire SOUT
20、;reg8:0 cnt;reg6:0 ST,NST;reg5:0 date;reg16:0 sdate;assign SOUT=(NST=s6);s1到s6為狀態(tài)機(jī)的不同狀態(tài),clk為控制序列輸入的信號,rst為清零信號,en為使能信號,SOUT為檢測到序列時(shí)的輸出信號1,cnt為控制哪一位數(shù)據(jù)進(jìn)行檢測的數(shù),ST和NST為狀態(tài)機(jī)現(xiàn)在的狀態(tài)和下一時(shí)刻將要到來的狀態(tài),date為檢測到的6為數(shù)據(jù),sdate為輸入序列,當(dāng)檢測到狀態(tài)為s6時(shí),通過assign SOUT=(NST=s6)可以讓SOUT輸出為1.輸入序列模塊always ( posedge clk or negedge rst )begi
21、nif(!rst) beginST<=s0;date<=6'b;sdate<=17'b;cnt<=16;endelse if(en) begin ST<=NST;date5:1<=date4:0;date0<=sdatecnt;cnt<=cnt-1;endelse cnt<=0;Clk為序列輸入信號,rst為清零信號,rst為低電平時(shí)將初始狀態(tài)設(shè)為s0,初始6位待檢測數(shù)據(jù)為,17位輸入序列為,先從最高位從左往右輸入,所以cnt開始時(shí)為16。en為使能信號,當(dāng)en為1時(shí)可以將下一狀態(tài)NST賦予現(xiàn)在狀態(tài)ST,同時(shí)將序列進(jìn)行移位,
22、待檢測信號進(jìn)行輸入,同時(shí)cnt減1指向下一數(shù)據(jù)。如果en為0,則保持現(xiàn)在的狀態(tài)不進(jìn)行工作。狀態(tài)轉(zhuǎn)移模塊case(ST)s0: begin if(date0=1'b1) NST<=s1;else NST<=s0;ends1: begin if(date0=1'b1) NST<=s2;else NST<=s0;ends2: begin if(date0=1'b0) NST<=s3;else NST<=s2;ends3: begin if(date0=1'b1) NST<=s4;else NST<=s0;ends4: b
23、egin if(date0=1'b1) NST<=s5;else NST<=s0;ends5: begin if(date0=1'b0) NST<=s6;else NST<=s2;ends6: begin if(date0=1'b0) NST<=s0;else NST<=s4;enddefault: NST<=s0;endcase endEndmodule通過這個(gè)狀態(tài)轉(zhuǎn)移語句可以正確的實(shí)現(xiàn)檢測到便可使?fàn)顟B(tài)到達(dá)s6,即便序列為時(shí)也是可以的,原理附狀態(tài)轉(zhuǎn)移圖。(五) 時(shí)序仿真可以清楚的看出,當(dāng)檢測到序列時(shí)sout便為1,即便是連續(xù)的
24、也可以檢測出來,證明了這個(gè)程序的正確性。(六) 實(shí)驗(yàn)總結(jié)要求畫出狀態(tài)轉(zhuǎn)移圖,我把書上的狀態(tài)機(jī)部分仔細(xì)閱讀,參考了書上的程序編寫了這個(gè)程序,一開始檢查的時(shí)候不符合要求,后來檢查是狀態(tài)轉(zhuǎn)移圖弄錯(cuò)了,修改之后進(jìn)行仿真,便得到了正確的結(jié)果。狀態(tài)機(jī)在EDA的程序設(shè)計(jì)中應(yīng)用廣泛。經(jīng)過這次實(shí)驗(yàn)深刻掌握了狀態(tài)機(jī)技術(shù)和狀態(tài)轉(zhuǎn)移圖的畫法,進(jìn)一步激發(fā)了我對eda的興趣。四、 交通燈控制器設(shè)計(jì) (一) 實(shí)驗(yàn)?zāi)康?、 學(xué)習(xí)與日常生活相關(guān)且較復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì);2、 進(jìn)一步熟悉EDA實(shí)驗(yàn)裝置和Quartus軟件的使用方法;3、 學(xué)習(xí)二進(jìn)制碼到BCD碼的轉(zhuǎn)換;(二) 設(shè)計(jì)要求完成設(shè)計(jì)、仿真、調(diào)試、下載、硬件測試等環(huán)節(jié),在型E
25、DA實(shí)驗(yàn)裝置上實(shí)現(xiàn)一個(gè)由一條主干道和一條鄉(xiāng)間公路的匯合點(diǎn)形成的十字交叉路口的交通燈控制器功能,具體要求如下:1、 有MR(主紅)、MY(主黃)、MG(主綠)、CR(鄉(xiāng)紅)、CY(鄉(xiāng)黃)、CG(鄉(xiāng)綠)六盞交通燈需要控制;2、 交通燈由綠轉(zhuǎn)紅前有4秒亮黃燈的間隔時(shí)間,由紅轉(zhuǎn)綠沒有間隔時(shí)間;3、 鄉(xiāng)間公路右側(cè)各埋有一個(gè)串連傳感器,當(dāng)有車輛準(zhǔn)備通過鄉(xiāng)間公路時(shí),發(fā)出請求信號S=1,其余時(shí)間S=0;4、 平時(shí)系統(tǒng)停留在主干道通行(MGCR)狀態(tài),一旦S信號有效,經(jīng)主道黃燈4秒(MYCR)狀態(tài)后轉(zhuǎn)入鄉(xiāng)間公路通行(MRCG)狀態(tài),但要保證主干道通行大于一分鐘后才能轉(zhuǎn)換;5、 一旦S信號消失,系統(tǒng)脫離MRCG狀
26、態(tài),即經(jīng)鄉(xiāng)道黃燈4秒(MRCY)狀態(tài)進(jìn)入MGCR狀態(tài),即使S信號一直有效,MRCG狀態(tài)也不得長于20秒鐘;6、 控制對象除紅綠燈之外,還包括分別在主干道和鄉(xiāng)間公路各有一個(gè)兩位十進(jìn)制倒計(jì)時(shí)數(shù)碼管顯示。(三) 主要儀器設(shè)備1、微機(jī)1臺2、QuartusII集成開發(fā)軟件1套3、EDA實(shí)驗(yàn)裝置 1套(四) 實(shí)驗(yàn)思路總體程序如下程序大體分為S=1與S=0的情況,不同情況對應(yīng)不同處理方法,每一次COUNTER均為0時(shí)根據(jù)S的1和0來改變數(shù)碼管的計(jì)數(shù)的燈的情況,具體原理在注釋中有。module jiaotong (S,clk,LED,COUNTER,LED1,sel); input clk; reg CPB
27、; /時(shí)鐘input S; output 2:0 sel;reg 2:0 sel; /指明鄉(xiāng)村路口是否有汽車的通行信號reg 3:0a;output 5:0 LED; /信號燈的顯示output 7:0 LED1; /顯示時(shí)間的十位output 8:0 COUNTER; /數(shù)碼的顯示reg 5:0 LED;reg 7:0 COUNTER;reg 7:0 LED1;reg 35:0i;reg flag1;reg flag2; reg 7:0 cnt; initialbegin flag2='b0; flag1='b0; COUNTER7:0='D60; LED5:0<
28、;=6'b; /主干道是綠燈鄉(xiāng)村道是紅燈end always (posedge clk) begin cnt=cnt+1; if (cnt=1000) begin CPB=1'b1; cnt=0; end else CPB=1'b0;endalways (posedge clk) begin if (sel<1) sel=sel+1; else sel=0; end /sel為數(shù)碼管選擇always (posedge clk)begin if(COUNTER3:0=4'D0 && COUNTER7:4=4'D0) /在數(shù)碼管是60時(shí)
29、判斷是否有信號s的出現(xiàn) begin if(S)/S為1即鄉(xiāng)村想中斷的情況下 begin if(LED5:0=6'b) begin LED5:0<=6'b; /表示主干道是黃燈而鄉(xiāng)村是紅燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; end else if(LED5:0=6'b) /表示4秒鐘過后的鄉(xiāng)村開始通路了 begin LED5:0<=6'b; /表示主干道是紅燈而鄉(xiāng)村是綠燈 COUNTER7:4<=4'D2; /顯示的是20秒鐘 COUNTER3:0<
30、=4'D0; flag1=1'b1; end else if(LED5:0='b) /表示20秒過后主干道通行了 begin LED5:0<='b; /表示主干道是紅燈而鄉(xiāng)村是黃燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag1='b0; end else if(LED5:0='b) begin LED5:0<='b; /主干道是綠燈鄉(xiāng)村道是紅燈 COUNTER7:4<=4'D6; /顯示的是60秒鐘 COUNTER3:0<=
31、4'D0; end end else /S為0即鄉(xiāng)村不想中斷的情況下 begin if(LED5:0='b) /表示4秒鐘過后的鄉(xiāng)村開始通路了 begin LED5:0<='b; /表示主干道是紅燈而鄉(xiāng)村是綠燈 COUNTER7:4<=4'D2; /顯示的是20秒鐘 COUNTER3:0<=4'D0; flag1=1'b1; /表示可以開始進(jìn)行20秒的檢查是否鄉(xiāng)村 end else if(LED5:0='b) /表示20秒過后主干道可以通行了 begin LED5:0<='b; /表示主干道是紅燈而鄉(xiāng)村是黃
32、燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag1='b0; endelse if(LED5:0='b) /表示4秒過后主干道通行了 begin LED5:0<='b; /表示主干道是綠燈而鄉(xiāng)村是紅燈 COUNTER7:4<=4'D6; /顯示的是60秒鐘 COUNTER3:0<=4'D0;end else if(LED5:0='b) begin flag2='b1;/60秒過后才可以讓鄉(xiāng)村中斷主干道 LED5:0<='b;/
33、主干道是綠燈鄉(xiāng)村道是紅燈 COUNTER7:4<=4'D6; /再次顯示60秒鐘 COUNTER3:0<=4'D0; end end end else begin if(S && (flag2='b1) /表示鄉(xiāng)村道路有信號并且可以讓鄉(xiāng)村道路通行了,鄉(xiāng)村想中斷 begin LED5:0<='b; /表示主干道是黃燈而鄉(xiāng)村是紅燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag2='b0; end else begin if(COUNTER3:0
34、=4'D0) /正常計(jì)數(shù) begin COUNTER7:4=COUNTER7:4-4'D1; COUNTER3:0=4'D9; end else COUNTER3:0=COUNTER3:0-4'D1; end end if(flag1='b1) begin/鄉(xiāng)村不想綠燈了,想中斷其20秒的綠燈 if(!S) begin flag2='b0; flag1='b0; LED5:0<='b; /表示主干道是紅燈而鄉(xiāng)村是黃燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'
35、;D4; end endend always (sel) begin case (sel) 0: a=COUNTER7:4; /1數(shù)碼管為十位 1: a=COUNTER3:0; default: a=0; endcase case (a) 0:LED17:0='b; 1:LED17:0='b; 2:LED17:0='b; 3:LED17:0='b; 4:LED17:0='b; 5:LED17:0='b; 6:LED17:0='b; 7:LED17:0='b; 8:LED17:0='b; 9:LED17:0='b;
36、default: LED17:0=8'b; endcase end endmodule 賦值模塊input clk; reg CPB; /時(shí)鐘input S; output 2:0 sel;reg 2:0 sel; /指明鄉(xiāng)村路口是否有汽車的通行信號 reg 3:0a;output 5:0 LED; /信號燈的顯示output 7:0 LED1; /顯示時(shí)間的十位output 8:0 COUNTER; /數(shù)碼的顯示reg 5:0 LED;reg 7:0 COUNTER;reg 7:0 LED1;reg 35:0i;reg flag1;reg flag2; reg 7:0 cnt; in
37、itialbegin flag2='b0; flag1='b0; COUNTER7:0='D60; LED5:0<=6'b; Clk為系統(tǒng)時(shí)鐘1KHz,可以作為掃描頻率,將其分頻之后的CPB作為秒的計(jì)數(shù)頻率,S為鄉(xiāng)道是否想中斷主道的信號,sel為循環(huán)掃描信號,LED為信號燈的顯示,LED1為顯示時(shí)間的十位,COUNTER為時(shí)間數(shù)碼的顯示。Flag1和flag2的處理方法當(dāng)flag為1即在鄉(xiāng)道20秒運(yùn)行的過程中才為1,這時(shí)配合語句if(flag1='b1) begin/鄉(xiāng)村不想綠燈了,想中斷其20秒的綠燈 if(!S) begin flag2=
38、9;b0; flag1='b0; LED5:0<='b; /表示主干道是紅燈而鄉(xiāng)村是黃燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4;就是在這時(shí)一旦檢測到S為0即鄉(xiāng)道沒車的時(shí)候,讓鄉(xiāng)道黃燈轉(zhuǎn)入主道60秒的計(jì)時(shí)。當(dāng)flag2為1即在主道60之后才為1,這時(shí)配合語句 if(S && (flag2='b1) /表示鄉(xiāng)村道路有信號并且可以讓鄉(xiāng)村道路通行了,鄉(xiāng)村想中斷 begin LED5:0<='b; /表示主干道是黃燈而鄉(xiāng)村是紅燈 COUNTER7:4<=4
39、9;D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag2='b0; End即S=1同時(shí)flag2為1時(shí)才可轉(zhuǎn)入鄉(xiāng)道的20秒計(jì)時(shí)。通過這兩個(gè)信號正確地完成需要的功能。分頻模塊輸出CPB為1秒的信號always (posedge clk) begin cnt=cnt+1; if (cnt=1000) begin CPB=1'b1; cnt=0; end else CPB=1'b0;數(shù)碼管掃描模塊循環(huán)掃碼模塊如下,由于sel的變化頻率和系統(tǒng)時(shí)鐘相同,所以肉眼辨別不出來在跳動(dòng),可以通過其分別選擇數(shù)碼管并將個(gè)位十位百位呈現(xiàn)在數(shù)碼管上,同時(shí)配有譯碼
40、程序。always (sel) begin case (sel) 0: a=COUNTER7:4; /1數(shù)碼管為十位 1: a=COUNTER3:0; default: a=0; endcase case (a) 0:LED17:0='b; 1:LED17:0='b; 2:LED17:0='b; 3:LED17:0='b; 4:LED17:0='b; 5:LED17:0='b; 6:LED17:0='b; 7:LED17:0='b; 8:LED17:0='b; 9:LED17:0='b; default: LED1
41、7:0=8'b; endcase end endmodule (五) 時(shí)序仿真總體圖在主道開始60秒的計(jì)數(shù)過程中即使S為1也不會轉(zhuǎn)入鄉(xiāng)道運(yùn)行在主道60秒計(jì)數(shù)結(jié)束后可以轉(zhuǎn)入鄉(xiāng)道的20秒,在鄉(xiāng)道的20秒過程中如果S為0則又返回主道計(jì)數(shù)(六) 實(shí)驗(yàn)總結(jié)這次實(shí)驗(yàn)是從EDA實(shí)驗(yàn)以來遇到的最復(fù)雜的代碼,其中的if語句眾多,而且嵌套也多,開始的時(shí)候摸不到頭腦,編譯的時(shí)候在這些語句上也是出錯(cuò)最多了。還好有一定的代碼基礎(chǔ),我就在此基礎(chǔ)上進(jìn)行了一些修改和改進(jìn),仿真也非常的成功,去實(shí)驗(yàn)室進(jìn)行燒程序進(jìn)板子的時(shí)候,也很快。所以,這次實(shí)驗(yàn)的驗(yàn)收也很快。這也大大的促使我學(xué)習(xí)的動(dòng)力,就想在下一次的實(shí)驗(yàn)中,學(xué)到更多。五
42、、 多功能數(shù)字鐘設(shè)計(jì) (一) 實(shí)驗(yàn)?zāi)康?、 學(xué)習(xí)綜合且較復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì); 2、 學(xué)習(xí)多層次、多模塊數(shù)字系統(tǒng)設(shè)計(jì);3、 學(xué)習(xí)數(shù)碼管掃描顯示電路設(shè)計(jì);(二) 設(shè)計(jì)要求完成設(shè)計(jì)、仿真、調(diào)試、下載、硬件測試等環(huán)節(jié),在型EDA實(shí)驗(yàn)裝置上由簡單到復(fù)雜實(shí)現(xiàn)多功能數(shù)字鐘功能,具體要求如下:1、 數(shù)碼管掃描顯示時(shí)、分、秒;2、 具有正常計(jì)時(shí)和調(diào)時(shí)、調(diào)分、調(diào)秒等校時(shí)功能;3、 經(jīng)設(shè)置應(yīng)具有整點(diǎn)報(bào)時(shí)功能;4、 經(jīng)設(shè)置應(yīng)具有跑表功能;5、 經(jīng)設(shè)置應(yīng)具有鬧鐘功能;以下部分為擴(kuò)展要求:6、 音樂鬧鐘功能;7、 液晶顯示:年、月、日、時(shí)、分、秒、星期;8、 自動(dòng)閏年、閏月的萬年歷功能;(三) 主要儀器設(shè)備1、微機(jī)1臺2、
43、QuartusII集成開發(fā)軟件 1套3、EDA實(shí)驗(yàn)裝置 1套(四) 實(shí)驗(yàn)思路整個(gè)程序采用模塊化的設(shè)計(jì)方法。基本計(jì)數(shù)模塊整個(gè)程序采用BCD碼計(jì)數(shù),即每一位要顯示的數(shù)據(jù)都用3位二進(jìn)制數(shù)來表示。根據(jù)設(shè)計(jì)要求,技術(shù)模塊應(yīng)有模60,模24和模100的計(jì)數(shù),可以用模10的模6的和模24的三個(gè)模塊通過例化元件一步步實(shí)現(xiàn),而且計(jì)數(shù)模塊應(yīng)具有計(jì)數(shù)清零和鎖存的功能。模10通過使能端en完成計(jì)數(shù)和鎖存ncr清零,cp為計(jì)數(shù)脈沖,Q為數(shù)據(jù)輸出。module counter10(Q,nCR,EN,CP); input nCR,EN,CP; output 3:0 Q; reg 3:0 Q;always (posedge
44、CP or negedge nCR) begin if (nCR) Q<=4'b0000; else if (EN) Q<=Q; else if ( Q=4'b1001) Q<=4'b0000; else Q<=Q+1'b1; end endmodule模6原理與模10相同module counter6(Q,nCR,EN,CP); input nCR,EN,CP; output 3:0 Q; reg 3:0 Q;always (posedge CP or negedge nCR) begin if (nCR) Q<=4'b0
45、000; else if (EN) Q<=Q; else if ( Q=4'b0101) Q<=4'b0000; else Q<=Q+1'b1; end endmodule模60通過例化模10和模6的元件,二者計(jì)數(shù)脈沖相同,進(jìn)位通過模6的使能段en在模10的為9的下一個(gè)脈沖時(shí)進(jìn)行使能選通從而進(jìn)位,否則鎖存數(shù)據(jù)。module counter6(Q,nCR,EN,CP); input nCR,EN,CP; output 3:0 Q; reg 3:0 Q;always (posedge CP or negedge nCR) begin if (nCR) Q<=4'b0000; else if (EN) Q<=Q; else if ( Q=4'b0101) Q<=4'b0000; else Q<=Q+1'b1; end endmodule模100與模60原理相同module counter100(Cnt,nCR,EN,C
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:教育公平與合作學(xué)習(xí)研究
- 二零二五年度鐵路旅客運(yùn)輸合同修訂版2篇
- 2025版圖書電子文檔txt下載代理授權(quán)合同3篇
- 二零二五年高校創(chuàng)新創(chuàng)業(yè)基地入駐服務(wù)合同3篇
- 2025年度個(gè)人小產(chǎn)權(quán)房屋買賣合同范本與稅務(wù)籌劃要點(diǎn)4篇
- 二零二五年度4S店汽車銷售區(qū)域代理合同范本3篇
- 二零二五版智慧交通管理系統(tǒng)建設(shè)與運(yùn)營協(xié)議3篇
- 二零二五年度馬鈴薯深加工廢棄物資源化利用合同4篇
- 二零二五年度創(chuàng)新型企業(yè)房屋租賃合同書
- 2025年度平房出租與城市可持續(xù)發(fā)展合作協(xié)議4篇
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學(xué)年部編版七年級歷史下冊
- 2025-2030年中國糖醇市場運(yùn)行狀況及投資前景趨勢分析報(bào)告
- 冬日暖陽健康守護(hù)
- 水處理藥劑采購項(xiàng)目技術(shù)方案(技術(shù)方案)
- 2024級高一上期期中測試數(shù)學(xué)試題含答案
- 盾構(gòu)標(biāo)準(zhǔn)化施工手冊
- 山東省2024-2025學(xué)年高三上學(xué)期新高考聯(lián)合質(zhì)量測評10月聯(lián)考英語試題
- 不間斷電源UPS知識培訓(xùn)
- 三年級除法豎式300道題及答案
- 2024年江蘇省徐州市中考一模數(shù)學(xué)試題(含答案)
- 新一代飛機(jī)維護(hù)技術(shù)
評論
0/150
提交評論