《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的乒乓球游戲的設(shè)計與實現(xiàn)
基于FPGA的乒乓球游戲的設(shè)計與實現(xiàn)
摘要: FPGA(FieldProgrammableGateArray),現(xiàn)場可編程門陣列。它是繼PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的成果。它作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點
關(guān)鍵詞: SoPC FPGA 乒乓球游戲
Abstract:
Key words :

0引言

FPGA(FieldProgrammableGateArray),現(xiàn)場可編程門陣列。它是繼PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的成果。它作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。作為一種可編程器件,F(xiàn)PGA與傳統(tǒng)的數(shù)字電路和門電路相比,它采用邏輯單元陣列的模式,內(nèi)部包含有可配置邏輯模塊、輸出輸入模塊和內(nèi)部連線三個部分。通過硬件描述語言(如VHDL語言)完成的電路設(shè)計,可以通過綜合與布局,快速燒錄至FPGA芯片上進行測試。

SOPC(SystemOnProgrammableChip),可編程片上系統(tǒng)。它是用可編程邏輯技術(shù)把整個系統(tǒng)放到一塊硅片上,用于從事嵌入式系統(tǒng)的系統(tǒng)研究和電子測量處理等領(lǐng)域。SOPC是一種特殊的嵌入式系統(tǒng),它既是片上系統(tǒng)(SOC),即由單個芯片完成整個系統(tǒng)的主要邏輯功能,但它又不是簡單的SOC,也是可編程系統(tǒng),具有靈活的設(shè)計方式,可裁剪、可擴充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。

1乒乓球游戲玩法介紹

將雙通道示波器作為顯示屏。將兩路信號輸入示波器中,讓示波器工作在X/Y模式。
單片機實驗板上的兩個按鈕作為控制鍵分別用于左擊球和右擊球,當(dāng)小球接近屏幕左邊時按下左擊球可將球擊回右側(cè),右側(cè)擊球亦然。小球可以按照一定的拋物線軌跡自動在屏幕上左右運動,連續(xù)按下兩次擊球鍵能夠擊出高拋球,使球飛行距離增高。當(dāng)球接觸到屏幕邊沿而未按下?lián)羟蜴I則被判定為輸球。

2實驗器件

CycloneIII(EP3C10E144C8)FPGA實驗板,單片機P89V51實驗板(含按鍵顯示屏等),電阻導(dǎo)線若干。
Altera公司生產(chǎn)的CycloneIIIFPGA芯片具有低功耗、低成本和高性能等特點。其體系結(jié)構(gòu)包括高達(dá)120K的垂直排列邏輯單元(LE)、以9-Kbit(M9K)模塊構(gòu)成的4Mbits嵌入式存儲器、200個18x18的嵌入式乘法器。利用TSMC的65nm低功耗(LP)工藝,CycloneⅢFPGA芯片提供豐富的邏輯、存儲器和DSP功能,功耗更低。在可編程邏輯發(fā)展歷史中,CycloneIIIFPGA比其他低成本FPGA系列能夠支持實現(xiàn)更多的應(yīng)用。

3實驗原理及模塊詳解

用方波發(fā)生器生成兩個占空比可變的方波,方波經(jīng)過低通濾波器生成兩個通道的直流信號用于控制小球在X軸和Y軸的位置。通過改變方波占空比從而改變直流信號的值。用SOPC與單片機通訊實現(xiàn)按鍵對小球運動的控制。



3.1方波發(fā)生器生成原理

VHDL語言編寫的方波產(chǎn)生tennis模塊代碼的關(guān)鍵部分:

代碼分析:

每當(dāng)輸入時鐘clk_in變化時進程被觸發(fā)。在進程中,每一個時鐘上升沿計數(shù)器變量c0dutytmp加一,在一個周期內(nèi),計數(shù)器小于預(yù)設(shè)值時輸出低電平,大于預(yù)設(shè)值時輸出高電平。在設(shè)計中,我選用的預(yù)設(shè)值為8位,所以在0到255之間給定任意一個數(shù)作為輸入就可以設(shè)置它的占空比。占空比。而通過SOPCbuilder生成的SOPC控制c0duty便可以間接控制其占空比。以上代碼完成了一條通道的控制,另一個數(shù)據(jù)通道方法類似。

3.2直流信號生成方法

生成直流信號的方法很多。在此論述幾種常見方法。

第一種是通過D/A芯片。市場上D/A芯片較多,如DAC0832,DAC0809等。這種方法原理簡單,只需給定恒定的數(shù)字值便可以輕松控制輸出直流波形的電壓值。出于成本考慮,我們轉(zhuǎn)而另一種方法。

第二種方法是低通濾波法。例如當(dāng)方波占空比為100%時可當(dāng)作是直流高電平信號。而占空比為0表示零電平。將一定占空比的直流信號經(jīng)過低通濾波器,經(jīng)過計算可知占空比對于輸出信號的電平高低成線性關(guān)系。所以我們可以利用這點來完成電平控制。

3.3擊球控制

運用單片機與FPGA實驗板之間的通訊完成擊球命令的傳遞。常見的通訊方法:串口通訊和并口通訊。
并口通訊雖然使用簡單,但是速度較慢,占用管腳較多,實現(xiàn)功能受到位數(shù)限制,可以完成的指令較少。于是利用串口通訊。在Quartus軟件下運行SOPCBuilder生成SOPC并為其添加UART功能。設(shè)置波特率為9600。利用SOPC的txd和rxd兩個端口與單片機的串口端相連接。于是便可以在程序中加入串口接收中斷并且在中斷服務(wù)函數(shù)中完成大量工作。以下編碼全部用C語言完成。

SOPC內(nèi)部中斷服務(wù)函數(shù):


代碼分析:

首先簡單介紹Avalon總線。SOPCBuilder自動生成的Avalon交換架構(gòu)是針對系統(tǒng)處理器和外設(shè)的專用互聯(lián)需求進行優(yōu)化。Avalon總線可以連接許多外部設(shè)備,如定時器/計數(shù)器,外部三態(tài)橋接,外部SRAM接口,UART,LCD接口,用戶邏輯接口JTAG,UARTC,并行I/O等。代碼中,IOWR_ALTERA_AVALON_UART_STATUS()函數(shù)可以完成向串口發(fā)送數(shù)據(jù)的任務(wù),IOWR_ALTERA_AVALON_PIO_DATA()函數(shù)則可以給內(nèi)部工程發(fā)送并行數(shù)據(jù),控制占空比的值。

在中斷服務(wù)函數(shù)中,通過設(shè)置標(biāo)志位變量flag辨別是否為雙擊命令。在確定擊球方式后生成cmd的四種狀態(tài)。cmd為全局變量,在main()函數(shù)中實現(xiàn)狀態(tài)的選擇。

3.4小球運動程序

程序分析:

該段程序是主函數(shù)main()的關(guān)鍵部分,其中數(shù)組xlabel[50]是小球在X軸方向的運動軌跡,軌跡方程是xlabel=i×5。數(shù)組ylabel[50]和ylabel2[50]是小球在Y方向的兩個軌跡,軌跡方程分別為ylabel=-0.007i2+1.792i和ylabel2=-0.013i2+3.328i,其中i是小球運動的變量,在for循環(huán)函數(shù)中勻速增加或減小。當(dāng)出現(xiàn)break時小球運動方向改變。當(dāng)i=0或者i=49時,說明小球觸壁卻沒能遭到有效擊球,判定一方得分,通過UART發(fā)送指令在單片機上顯示比分。delay()函數(shù)用來控制小球的運動速度。

4實驗結(jié)果

將程序燒寫到FPGA芯片內(nèi)部,在NiosII開發(fā)環(huán)境下運行RunasNiosⅡHardware。把低通濾波器的兩個輸出通道分別接到雙蹤示波器的輸入端。觀察到示波器上顯示出小球沿著拋物線軌跡來回運動,并可以通過按鍵實現(xiàn)擊球命令改變小球運動。

5結(jié)束語
本實驗可以進行適當(dāng)改進。比如小球軌跡可以選用三個或三個以上更加豐富的軌道碼表,這樣小球的運動軌跡將更加多樣。還可以設(shè)立對游戲難度的設(shè)置,改變對小球的運動速度,這個想法可以在中斷服務(wù)函數(shù)通過對delay()函數(shù)進行實參的變換而實現(xiàn)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线不卡中文字幕播放| 在线亚洲一区二区| 欧美视频二区36p| 欧美大片一区| 蜜桃久久av| 狂野欧美激情性xxxx| 久久精品2019中文字幕| 欧美一区二区三区在线播放| 亚洲专区在线| 亚洲影院免费观看| 亚洲在线免费| 亚洲综合国产精品| 亚洲综合视频1区| 亚洲欧美日本国产有色| 亚洲综合精品四区| 亚洲一区二区三区精品在线观看| 在线精品视频免费观看| 国产欧美日韩另类一区| 国产精品美女一区二区在线观看| 欧美专区福利在线| 国产精品99久久久久久久vr| 中文高清一区| 在线综合视频| 亚洲一区二区综合| 亚洲午夜视频在线| 午夜精品一区二区三区在线视 | 亚洲国产综合在线看不卡| 极品av少妇一区二区| 亚洲电影观看| 亚洲国产精品一区二区第一页| 国产日韩精品一区二区| 国产日韩在线看| 狠狠色综合色区| 亚洲第一中文字幕在线观看| 亚洲电影免费观看高清完整版| 国产精品美女黄网| 国产精品一区二区久激情瑜伽| 欧美福利精品| 欧美日韩一二三四五区| 欧美午夜激情在线| 国产精品自拍小视频| 狠狠干综合网| 亚洲人成高清| 亚洲一级黄色片| 久久精品九九| 日韩性生活视频| 午夜精品理论片| 美国三级日本三级久久99| 欧美国产高潮xxxx1819| 国产精品sss| 黑丝一区二区| 99精品国产高清一区二区| 亚洲一区激情| 亚洲丰满在线| 亚洲性感美女99在线| 久久久91精品| 欧美日韩成人激情| 国产午夜一区二区三区| 亚洲激情在线播放| 亚洲免费伊人电影在线观看av| 一本一本久久| 欧美在线关看| 一区二区三区四区五区精品| 久久精品国产69国产精品亚洲| 性做久久久久久久免费看| 久久人人97超碰人人澡爱香蕉| 久久不射电影网| 女仆av观看一区| 亚洲精品一区二区三区蜜桃久 | 亚洲在线观看视频网站| 久久精品成人一区二区三区| 女仆av观看一区| 国产精品日韩一区二区三区| 亚洲国产精品一区二区第一页| 亚洲国产日韩一区| 亚洲一区二区精品视频| 久久精品视频免费| 亚洲欧美综合v| 欧美理论在线| 伊人久久亚洲热| 午夜国产一区| 亚洲无玛一区| 嫩草影视亚洲| 国产亚洲欧美一区| 亚洲一级在线观看| 99re热精品| 久久亚洲私人国产精品va媚药| 美女国产精品| 国产精品影片在线观看| 日韩视频一区二区| 亚洲成人自拍视频| 亚洲尤物精选| 欧美日韩免费观看中文| 在线日韩av永久免费观看| 午夜精品一区二区在线观看| 亚洲一区二区欧美日韩| 欧美激情欧美狂野欧美精品| 狠狠色狠狠色综合日日五| 午夜一级在线看亚洲| 午夜国产精品影院在线观看 | 欧美日韩亚洲成人| 亚洲二区在线视频| 欧美中文字幕久久| 欧美在线观看你懂的| 国产精品久久久久久妇女6080| 国产一区二区三区在线观看免费| 激情综合色丁香一区二区| 在线亚洲欧美专区二区| 正在播放欧美一区| 欧美大片在线影院| 亚洲二区在线观看| 亚洲七七久久综合桃花剧情介绍| 亚洲自拍偷拍一区| 欧美日韩亚洲综合一区| 亚洲国产美女久久久久| 亚洲国产女人aaa毛片在线| 久久蜜桃精品| 一区二区三区无毛| 久久精品99国产精品日本| 久久精品在线免费观看| 国产日韩欧美在线| 欧美一区二区黄| 久久精品成人欧美大片古装| 国产精品私人影院| 国产一区 二区 三区一级| 国产欧美日韩在线视频| 国产一区二区三区久久久久久久久| 国产精品综合久久久| 在线亚洲美日韩| 亚洲综合丁香| 国产精品嫩草影院av蜜臀| 亚洲在线观看| 久久国产精品色婷婷| 国产综合欧美| 91久久精品日日躁夜夜躁国产| 亚洲一区二区三区四区五区午夜| 久久精品一区二区三区不卡牛牛 | 欧美激情按摩| 亚洲精选成人| 亚洲一区二区三区久久| 国产精品一区二区女厕厕| 久久aⅴ国产紧身牛仔裤| 久久久天天操| 亚洲国产日韩欧美| 亚洲图色在线| 国产欧美视频一区二区| 亚洲大片免费看| 欧美黄色日本| 亚洲丝袜av一区| 久久精品卡一| 91久久黄色| 亚洲女与黑人做爰| 国产亚洲综合在线| 亚洲狼人精品一区二区三区| 欧美日韩在线亚洲一区蜜芽| 午夜在线观看免费一区| 久久中文欧美| 99精品久久| 久久精品人人爽| 亚洲啪啪91| 性欧美暴力猛交69hd| 伊人婷婷久久| 亚洲夜晚福利在线观看| 国产精品日韩在线播放| 亚洲第一成人在线| 欧美肉体xxxx裸体137大胆| 午夜久久99| 欧美激情综合网| 午夜免费电影一区在线观看| 欧美国产激情二区三区| 亚洲小说欧美另类社区| 另类尿喷潮videofree| 99精品99久久久久久宅男| 久久久精品午夜少妇| 亚洲精品久久久久久久久久久久| 亚洲激情电影在线| 欧美香蕉大胸在线视频观看| 亚洲第一福利社区| 国产精品卡一卡二| 亚洲茄子视频| 国产精品一区久久| 99国产精品久久久| 国产真实乱子伦精品视频| 一本一道久久综合狠狠老精东影业 | 午夜精品视频网站| 欧美激情视频在线播放 | 亚洲一区二区视频| 久久久综合视频| 日韩一级精品| 蜜臀99久久精品久久久久久软件 | 亚洲人www| 国产精品夜夜夜一区二区三区尤| 亚洲午夜一区二区三区| 久久久久久色| 亚洲视频在线播放| 欧美成人一区二区在线| 午夜精品影院在线观看| 欧美日韩黄色一区二区| 亚洲电影免费在线观看| 国产精品丝袜白浆摸在线|