![2023年verilog乒乓球大作業(yè)仿真成功_第1頁](http://file4.renrendoc.com/view/44f12a3e03ccc4be0d000d8194c5e8a8/44f12a3e03ccc4be0d000d8194c5e8a81.gif)
![2023年verilog乒乓球大作業(yè)仿真成功_第2頁](http://file4.renrendoc.com/view/44f12a3e03ccc4be0d000d8194c5e8a8/44f12a3e03ccc4be0d000d8194c5e8a82.gif)
![2023年verilog乒乓球大作業(yè)仿真成功_第3頁](http://file4.renrendoc.com/view/44f12a3e03ccc4be0d000d8194c5e8a8/44f12a3e03ccc4be0d000d8194c5e8a83.gif)
![2023年verilog乒乓球大作業(yè)仿真成功_第4頁](http://file4.renrendoc.com/view/44f12a3e03ccc4be0d000d8194c5e8a8/44f12a3e03ccc4be0d000d8194c5e8a84.gif)
![2023年verilog乒乓球大作業(yè)仿真成功_第5頁](http://file4.renrendoc.com/view/44f12a3e03ccc4be0d000d8194c5e8a8/44f12a3e03ccc4be0d000d8194c5e8a85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一任務(wù)描述1設(shè)計(jì)規(guī)定左、右雙方各持一按鍵作為“球拍”,實(shí)驗(yàn)板上一行8只發(fā)光二極管為乒乓球臺(tái),其中那只發(fā)光的發(fā)光二極管代表乒乓球所在位置。設(shè)計(jì)如圖1所示的乒乓球游戲?qū)嵨飯D的模擬控制器。發(fā)球方最后一位LED點(diǎn)亮,按下鍵表達(dá)發(fā)球,亮的燈依次向?qū)Ψ揭苿?dòng),當(dāng)?shù)竭_(dá)對方最后一位時(shí)0.5s內(nèi)對方必須按下按鍵表達(dá)接球,接球后LED燈向?qū)Ψ揭苿?dòng),否則輸球。接球時(shí),LED沒有亮到最后一位時(shí)就按下接球按鍵為犯規(guī)。輸球或者犯規(guī),對方加1分,率先加到11分者游戲勝出這一局。2設(shè)計(jì)思緒考慮到游戲的復(fù)雜度,采用狀態(tài)機(jī)來實(shí)現(xiàn)這些模式轉(zhuǎn)換。用到8個(gè)狀態(tài),如下所示:狀態(tài)功能S0復(fù)位狀態(tài),也是判斷發(fā)球權(quán)的狀態(tài)S1甲方發(fā)球S2球從甲方向乙方右移,若此時(shí)乙方接球就給甲方加一分,并將球權(quán)給甲方S3開始判斷乙方是否在0.5S內(nèi)接球S4乙方發(fā)球S5球從乙方向甲方左移,若此時(shí)甲方接球就給乙方加一分,并將球權(quán)給乙方S6開始判斷甲方是否在0.5S內(nèi)接球S7用于接球后判斷發(fā)球程序還加入了蜂鳴、用數(shù)碼管顯示分?jǐn)?shù)和發(fā)球權(quán)等功能。二結(jié)構(gòu)框圖1狀態(tài)轉(zhuǎn)移圖K_a=1led8s==8'b01000000led8s==8'b00000010K_b=1K_a=1K_b=1K_b=1K_a=1S7S6S3S1S5S2S4S0
2程序流程圖?K_a=1led8s==8'b01000000led8s==8'b00000010K_b=1K_a=1K_b=1K_b=1K_a=1S7S6S3S1S5S2S4S03系統(tǒng)模塊?三系統(tǒng)程序modulepingpangok(state,clk2hz,rst,k_a,k_b,led8s,led7s1,led7s2,led7s3,led7s4,led7s5,speaker);//clk2hz指一個(gè)2Hz的時(shí)鐘輸入,rst異步復(fù)位,k_a和k_b是比賽雙方按鍵,speaker是蜂鳴器//led8s是一排8個(gè)發(fā)光二極管代表球場,led7s1~4是4個(gè)顯示分?jǐn)?shù)的數(shù)碼管,led7s5是顯示發(fā)球權(quán)的數(shù)碼管inputclk2hz,rst,k_a,k_b;output[7:0]led8s;output[6:0]led7s1,led7s2,led7s3,led7s4,led7s5;outputspeaker;output[2:0]state;reg[7:0]led8s;reg[6:0]led7s1,led7s2,led7s3,led7s4,led7s5;reg[3:0]score_a,score_b;reg[2:0]state;regspeaker;parameters0=3'b000,//復(fù)位狀態(tài),也是判斷發(fā)球權(quán)的狀態(tài);??s1=3'b001,//甲方發(fā)球;??s2=3'b010,//球從甲方向乙方右移,若此時(shí)乙方接球就給甲方加一分,并將球權(quán)給甲方; s3=3'b011,//開始判斷乙方是否在0.5S內(nèi)接球; ?s4=3'b100,//乙方發(fā)球; ?s5=3'b101,//球從乙方向甲方左移,若此時(shí)甲方接球就給乙方加一分,并將球權(quán)給乙方;??s6=3'b110;//開始判斷甲方是否在0.5S內(nèi)接球; ?s7=3'b111;//用于判斷接球后發(fā)球;//----------------游戲邏輯控制核心----------------------------------------------------------------------------always@(posedgeclk2hz)?begin? case(state) s7:begin? ? if(k_a) ? ? state<=s1;//甲發(fā)球;? ? elseif(k_b)??? stat(yī)e<=s4;//乙發(fā)球; elseif(speaker)?? speaker=1'b0;?? ?else ?speaker=1'b0;? ?end???s0:begin? ?led7s5<=7'b0111111;//第五個(gè)數(shù)碼管顯示數(shù)字0,表達(dá)發(fā)球權(quán)可以開始判斷了; ? ??led8s<=7'b00000000;??? score_a<=0; ????score_b<=0;//給甲乙雙方的分?jǐn)?shù)復(fù)位; ????if(k_a) ????begin???? ??speaker<=1'b1;//由于按鍵k_a要連續(xù)按著保持高電位'1',蜂鳴器鳴叫是提醒可以松手了; ???? state<=s7;??? ? end? ???elseif(k_b) ? ??begin ? ? ?speaker<=1'b1; ??? ???state<=s7; ?end? ?else? ?? state<=s0; ? ? ? ?end? ?s1:begin??? ?led7s5<=7'b0000110;//第五個(gè)數(shù)碼管顯示數(shù)字1,表達(dá)發(fā)球權(quán)現(xiàn)在是甲方的; ? ? if(led8s==8'b00000000) ?? ??led8s<=8'b10000000;//點(diǎn)亮的燈出現(xiàn)在最右邊,即甲方發(fā)球; ? state<=s2; ????if(speaker)? ? speaker<=1'b0;//將剛才鳴叫的蜂鳴器關(guān)閉;?? ?end ?s2:begin? ??if(led8s==8'b00000010)? ??? begin?? ? led8s<=led8s>>1;?? ? ? stat(yī)e<=s3;//進(jìn)入判斷乙方接球的狀態(tài); ?? ?end ?else?? ? begin ?? ? ?led8s<=led8s>>1; ? ??? stat(yī)e<=s7;? ? end ?? if(k_b)? ? begin ???? score_a<=score_a+1;?? ?? speaker<=1'b1;//若在此期間乙方搶先按鍵,就判斷乙方輸,給甲方加1分,并讓蜂鳴器鳴叫; ? state<=s7;???? ??led8s<=8'b00000000;?? ?? end ?? end ??s3:begin? ? if(k_b)??? ? begin ??????state<=s7;//乙方接球成功,并進(jìn)入乙方發(fā)球的s7狀態(tài);? ?? ??led8s<=8'b00000000;????? end ?? else? ? ?begin ? ?score_a<=score_a+1; ? ?speaker<=1'b1; ??? ? stat(yī)e<=s7;//乙方接球不成功,則甲方加一分,并進(jìn)入甲方發(fā)球的s7狀態(tài),蜂鳴器鳴叫; led8s<=8'b00000000; ? ? end ???end???s4:begin?? ??led7s5<=7'b1011011;//第五個(gè)數(shù)碼管顯示數(shù)字2,表達(dá)發(fā)球權(quán)現(xiàn)在是乙方的; ? ?if(led8s==8'b00000000) ????? led8s<=8'b00000001;//點(diǎn)亮的燈出現(xiàn)在最左邊,即乙方發(fā)球;? ??state<=s5; ? if(speaker) ? ? speaker<=1'b0;//將剛才鳴叫的蜂鳴器關(guān)閉; ???end ??s5:begin?????if(led8s==8'b01000000)? ??begin ? ??led8s<=led8s<<1;? ? ? ?state<=s6;//進(jìn)入判斷甲方接球的狀態(tài); ?? ? end ? ?else? ? begin ? ? led8s<=led8s<<1; ? ??state<=s7;? ? ? end?? ? if(k_a)? ??begin ? score_b<=score_b+1; ? ?? speaker<=1'b1;//若在此期間甲方搶先按鍵,就判斷甲方輸,給乙方加1分,并讓蜂鳴器鳴叫; ????? state<=s7; ? ? led8s<=8'b00000000;? ? ? end ?end???s6:begin ??? if(k_a) ?? ??begin ?? ?? state<=s7;//甲方接球成功,并進(jìn)入甲方發(fā)球的s7狀態(tài);?? ??? led8s<=8'b00000000;???? ?end?? ??else???? begin???? ??score_b<=score_b+1;?????? speaker<=1'b1; ?? ?state<=s7;//甲方接球不成功,則乙方加一分,并進(jìn)入乙方發(fā)球的s7狀態(tài),蜂鳴器鳴叫;? ???led8s<=8'b00000000;??? end ??end?? ?default:state<=s0;??endcase//----------甲乙雙方的分?jǐn)?shù)各用2個(gè)數(shù)碼管顯示----------------------------------------------------------------- ?if(score_a==11&score_b==11)?? begin? ??score_a<=0;????score_b<=0;//假如任一方得11分,一局結(jié)束,計(jì)分清零; ? end??case(score_a) ??8'b0000:begin? ? led7s1<=7'b0111111;? ? led7s2<=7'b0111111;//數(shù)碼管顯示0分; ?? ? ?? ?end ?8'b0001:begin?????? led7s1<=7'b0111111;? ? ?? led7s2<=7'b0000110;//數(shù)碼管顯示1分; ? ?? ? ?end 8'b0010:begin??? ? ?led7s1<=7'b0111111;????? led7s2<=7'b1011011;//數(shù)碼管顯示2分;?? ? ? ?end ? 8'b0011:begin? ???led7s1<=7'b0111111; ???? ?led7s2<=7'b1001111;//數(shù)碼管顯示3分;? ?????? ?end? 8'b0100:begin ? ?led7s1<=7'b0111111; ? ? ?led7s2<=7'b1100110;//數(shù)碼管顯示4分; ? ? ??end?? 8'b0101:begin ? ? ?led7s1<=7'b0111111;? ?????led7s2<=7'b1101101;//數(shù)碼管顯示5分; ??? ??end? 8'b0110:begin ? led7s1<=7'b0111111; ? ???led7s2<=7'b1111101;//數(shù)碼管顯示6分;? ??? ? end ?8'b0111:begin?????? led7s1<=7'b0111111; ? ? led7s2<=7'b0000111;//數(shù)碼管顯示7分; ? ? ?end? ?8'b1000:begin? ? ???led7s1<=7'b0111111; ?????led7s2<=7'b1111111;//數(shù)碼管顯示8分;?? ???? ? end ?8'b1001:begin ? ???led7s1<=7'b0111111; ? ?led7s2<=7'b1101111;//數(shù)碼管顯示9分; ? ? ?? end ?8'b1010:begin? ? led7s1<=7'b0000110; ? ? led7s2<=7'b0111111;//數(shù)碼管顯示10分; ? ???? end ?8'b1011:begin ?? ?led7s1<=7'b0000110;? led7s2<=7'b0000110;//數(shù)碼管顯示11分;?? ??? ? end ? default:begin??? ??led7s1<=7'b0111111;??? ?led7s2<=7'b0111111;//數(shù)碼管顯示0分;? ? ? ? ??end??endcase? case(score_b)???8'b0000:begin? ? ??led7s3<=7'b0111111; ?? led7s4<=7'b0111111;//數(shù)碼管顯示0分; ? ? ?end ? 8'b0001:begin? ??led7s3<=7'b0111111; ?? ? led7s4<=7'b0000110;//數(shù)碼管顯示1分;????? ?? ?end ? 8'b0010:begin? ? led7s3<=7'b0111111;? ?? ? led7s4<=7'b1011011;//數(shù)碼管顯示2分; ???? ?? ?end?? 8'b0011:begin ? ??led7s3<=7'b0111111; ??? ? led7s4<=7'b1001111;//數(shù)碼管顯示3分;?? ?? ? end?? 8'b0100:begin ?? ?led7s3<=7'b0111111;? ???led7s4<=7'b1100110;//數(shù)碼管顯示4分; ? ? ?? end 8'b0101:begin? ? ?led7s3<=7'b0111111; ??? led7s4<=7'b1101101;//數(shù)碼管顯示5分;?? ???? end? 8'b0110:begin? ? ?led7s3<=7'b0111111; ??? ?led7s4<=7'b1111101;//數(shù)碼管顯示6分;?? ?? ? end? ?8'b0111:begin ? ? ? led7s3<=7'b0111111;? ?? ?led7s4<=7'b0000111;//數(shù)碼管顯示7分; ? ??? end 8'b1000:begin ?? led7s3<=7'b0111111;? ? ?? led7s4<=7'b1111111;//數(shù)碼管顯示8分; ? ? ???? end ? 8'b1001:begin ? ? ?led7s3<=7'b0111111;???? led7s4<=7'b1101111;//數(shù)碼管顯示9分; ?? ??? ??end?? 8'b1010:begin ? ????led7s3<=7'b0000110;?? ? led7s4<=7'b0111111;//數(shù)碼管顯示10分; ??? ??? ??en
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Tripetroselinin-1-2-3-Tri-6-Z-octadecenoyl-glycerol-生命科學(xué)試劑-MCE-1244
- Diethylene-glycol-d8-2-2-Oxybis-ethan-1-ol-d-sub-8-sub-生命科學(xué)試劑-MCE-5883
- 2025年度掛車司機(jī)運(yùn)輸合同違約責(zé)任與賠償合同
- 2025年度網(wǎng)絡(luò)安全行業(yè)競業(yè)限制協(xié)議生效細(xì)則及數(shù)據(jù)隱私
- 二零二五年度創(chuàng)業(yè)公司股權(quán)分配及股權(quán)激勵(lì)協(xié)議
- 2025年度消防電梯采購與應(yīng)急救援系統(tǒng)配套合同
- 2025年度水果種植基地農(nóng)業(yè)保險(xiǎn)合同
- 2025年度綠色能源股權(quán)合作開發(fā)合同
- 施工現(xiàn)場施工防傳染病制度
- 施工進(jìn)度管理及控制制度
- 鉗工考試題及參考答案
- 醫(yī)藥高等數(shù)學(xué)知到章節(jié)答案智慧樹2023年浙江中醫(yī)藥大學(xué)
- 中央企業(yè)商業(yè)秘密安全保護(hù)技術(shù)指引2015版
- 第4章操作臂的雅可比
- 人教版初中英語八年級(jí)下冊 單詞默寫表 漢譯英
- 學(xué)校網(wǎng)絡(luò)信息安全管理辦法
- 中國古代文學(xué)史 馬工程課件(下)21第九編晚清文學(xué) 緒論
- 2023年鐵嶺衛(wèi)生職業(yè)學(xué)院高職單招(語文)試題庫含答案解析
- 外科學(xué)-第三章-水、電解質(zhì)代謝紊亂和酸堿平衡失調(diào)課件
- 人事測評理論與方法-課件
- 最新卷宗的整理、裝訂(全)課件
評論
0/150
提交評論