基于FPGA乒乓球游戲機(jī)Verilog設(shè)計(jì)(畢業(yè)論文)_第1頁
基于FPGA乒乓球游戲機(jī)Verilog設(shè)計(jì)(畢業(yè)論文)_第2頁
基于FPGA乒乓球游戲機(jī)Verilog設(shè)計(jì)(畢業(yè)論文)_第3頁
基于FPGA乒乓球游戲機(jī)Verilog設(shè)計(jì)(畢業(yè)論文)_第4頁
基于FPGA乒乓球游戲機(jī)Verilog設(shè)計(jì)(畢業(yè)論文)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于FPGA乒乓球游戲機(jī)Verilog設(shè)計(jì)2021年6摘要本文使用FPGA芯片來模擬實(shí)際的乒乓球游戲。本設(shè)計(jì)是基于Altera公司的FPGACycloneII芯片EP2C5T144C8的基礎(chǔ)上實(shí)現(xiàn),運(yùn)用VerilogHDL語言編程,在QuartusII軟件上進(jìn)行編譯、仿真,最終在開發(fā)板上成功實(shí)現(xiàn)下載和調(diào)試關(guān)鍵詞:編譯仿真AbstractThispaperusestheFPGAchiptosimulatetheactualtabletennisgame.ThedesignisbasedonAlteracompanyImplementationofFPGACyclonebasedonIIchipEP2C5T144C8,usingVerilogHDLprogramminglanguage,compile,simulationinQuartusIIsoftware,finallysuccessfullyinthedevelopmentboarddownloadanddebugKeywords:Compile;Simulation目錄摘要 IAbstract II第1章緒論 11.1概述 11.2 Verilog語言介紹 11.2.1Verilog語言的用途 21.2.2Verilog的歷史 21.2.3Verilog模塊 21.3本文研究的意義 3第2章Verilog的基本理論 42.1Verilog模塊的定義 42.2 Verilog模塊的組成 42.3EP2C5T144C8芯片簡介 52.3.1EP2C8開發(fā)板功能 52.3.2 開發(fā)板功能描述 62.3.3 EP2C5T144C8芯片的引腳圖 62.4Verilog硬件描述語言的主要能力 6第3章乒乓球游戲機(jī)的軟件設(shè)計(jì) 83.1乒乓球游戲機(jī)系統(tǒng)組成 83.1.2 功能模塊設(shè)計(jì) 83.2發(fā)球權(quán)控制器 93.3 乒乓球位置控制 103.3.1 基于FPGA乒乓球比賽游戲機(jī)頂層原理圖 12結(jié)論 13參考文獻(xiàn) 14附錄 15第1章緒論1.1概述隨著低復(fù)雜度FPGA器件成本的不斷下降,具有靈活性和及時(shí)面市優(yōu)勢的FPGA與ASIC相比更有競爭性,在數(shù)字消費(fèi)市場上的應(yīng)用也急劇增加。第一代Cyclone系列迄今發(fā)售了3百多萬片,在全球擁有3,000多位客戶,對(duì)大批量低成本數(shù)字消費(fèi)市場有著巨大的影響,該市場消納了三分之一的器件。根據(jù)GartnerDataquest調(diào)查,在2021年光消費(fèi)電子市場對(duì)FPGA需求就將達(dá)到3億9千萬美元,預(yù)計(jì)到2021年,將增加到11億6千萬美元,年復(fù)合增長率(CAGR)為31.9%。同時(shí),CycloneII器件系列也在電信、計(jì)算機(jī)外設(shè)、工業(yè)和汽車市場上獲得了巨大的進(jìn)步。CycloneII器件包含了許多新的特性,如嵌入存儲(chǔ)器、嵌入乘法器、PLL和低成本的封裝,這些都為諸如視頻顯示、數(shù)字電視(DTV)、機(jī)頂盒(STB)、DVD播放器、DSL調(diào)制解調(diào)器、家用網(wǎng)關(guān)和中低端路由器等批量應(yīng)用進(jìn)行了優(yōu)化。成本優(yōu)化的架構(gòu)CycloneII器件采用TSMC90nm低K絕緣材料工藝技術(shù),這種技術(shù)結(jié)合Altera低成本的設(shè)計(jì)方式,使之能夠在更低的成本下制造出更大容量的器件。這種新的器件比第一代Cyclone產(chǎn)品具有兩倍多的I/O引腳,且對(duì)可編程邏輯,存儲(chǔ)塊和其它特性進(jìn)行了最優(yōu)的組合,具有許多新的增強(qiáng)特性。Verilog語言介紹VerilogHDL是一種硬件描述語言(HDL:HardwareDiscriptionLanguage),是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。VerilogHDL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀(jì)80年代中期開發(fā)出來的。前者由GatewayDesignAutomation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。VerilogHDL是一種硬件描述語言,用于從算法級(jí)、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。VerilogHDL語言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言。此外,VerilogHDL語言提供了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行。VerilogHDL語言不僅定義了語法,而且對(duì)每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。語言從C編程語言中繼承了多種操作符和結(jié)構(gòu)。VerilogHDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,VerilogHDL語言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來說已經(jīng)足夠。當(dāng)然,完整的硬件描述語言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。1.2.1Verilog語言的用途VerilogHDL就是在用途最廣泛的C語言的基礎(chǔ)上發(fā)展起來的一種硬件描述語言,它是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首創(chuàng)的,最初只設(shè)計(jì)了一個(gè)仿真與驗(yàn)證工具,之后又陸續(xù)開發(fā)了相關(guān)的故障模擬與時(shí)序分析工具。1985年Moorby推出它的第三個(gè)商用仿真器Verilog-XL,獲得了巨大的成功,從而使得VerilogHDL迅速得到推廣應(yīng)用。1989年CADENCE公司收購了GDA公司,使得VerilogHDL成為了該公司的獨(dú)家專利。1990年CADENCE公司公開發(fā)表了VerilogHDL,并成立LVI組織以促進(jìn)VerilogHDL成為IEEE標(biāo)準(zhǔn),即IEEEStandard1364-1995.VerilogHDL的最大特點(diǎn)就是易學(xué)易用,如果有C語言的編程經(jīng)驗(yàn),可以在一個(gè)較短的時(shí)間內(nèi)很快的學(xué)習(xí)和掌握,因而可以把VerilogHDL內(nèi)容安排在與ASIC設(shè)計(jì)等相關(guān)課程內(nèi)部進(jìn)行講授,由于HDL語言本身是專門面向硬件與系統(tǒng)設(shè)計(jì)的,這樣的安排可以使學(xué)習(xí)者同時(shí)獲得設(shè)計(jì)實(shí)際電路的經(jīng)驗(yàn)。與之相比,VHDL的學(xué)習(xí)要困難一些。但VerilogHDL較自由的語法,也容易造成初學(xué)者犯一些錯(cuò)誤,這一點(diǎn)要注意。1.2.2Verilog的歷史VerilogHDL語言最初是于1983年由GatewayDesignAutomation公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言。那時(shí)它只是一種專用語言。由于他們的模擬、仿真器產(chǎn)品的廣泛使用,VerilogHDL作為一種便于使用且實(shí)用的語言逐漸為眾多設(shè)計(jì)者所接受。在一次努力增加語言普及性的活動(dòng)中,VerilogHDL語言于1990年被推向公眾領(lǐng)域。OpenVerilogInternational(OVI)是促進(jìn)Verilog發(fā)展的國際性組織。1992年,OVI決定致力于推廣VerilogOVI標(biāo)準(zhǔn)成為IEEE標(biāo)準(zhǔn)。這一努力最后獲得成功,Verilog語言于1995年成為IEEE標(biāo)準(zhǔn),稱為IEEEStd1364-1995。1.2.3Verilog模塊模塊是Verilog的基本描述單位,用于描述某個(gè)設(shè)計(jì)的功能或結(jié)構(gòu)及其與其他模塊通信的外部端口。一個(gè)設(shè)計(jì)的結(jié)構(gòu)可使用開關(guān)級(jí)原語、門級(jí)原語和用戶定義的原語方式描述;設(shè)計(jì)的數(shù)據(jù)流行為使用連續(xù)賦值語句進(jìn)行描述;時(shí)序行為使用過程結(jié)構(gòu)描述。一個(gè)模塊可以在另一個(gè)模塊中調(diào)用。1.3本文研究的意義通過乒乓球游戲機(jī)的開發(fā)研究更好的了解使用FPGA芯片,,運(yùn)用VerilogHDL語言編程,使自己在理論上和實(shí)驗(yàn)室條件下達(dá)到了比較高的水平。第2章Verilog的基本理論2.1Verilog模塊的定義末塊的定義從關(guān)鍵字module開始,到關(guān)鍵字endmodule結(jié)束,每條VerilogHDL語句以“;”做為結(jié)束(塊語句、編譯向?qū)?、endmodule等少數(shù)除外)。Verilog模塊的組成一個(gè)完整的Verilog模塊由以下五個(gè)部分組成:1.模塊定義行:modulemodule_name(port_list);2.說明部分用于定義不同的項(xiàng),例如模塊描述中使用的寄存器和參數(shù)。語句定義設(shè)計(jì)的功能和結(jié)構(gòu)。說明部分和語句可以散布在模塊中的任何地方;但是變量、寄存器、線網(wǎng)和參數(shù)等的說明部分必須在使用前出現(xiàn)。為了使模塊描述清晰和具有良好的可讀性,最好將所有的說明部分放在語句前。說明部分包括:寄存器,線網(wǎng),參數(shù):reg,wire,parameter端口類型說明行:input,output,inout函數(shù)、任務(wù):function,task,等3.描述體部分:這是一個(gè)模塊最重要的部分,在這里描述模塊的行為和功能,子模塊的調(diào)用和連接,邏輯門的調(diào)用,用戶自定義部件的調(diào)用,初始態(tài)賦值,always塊,連續(xù)賦值語句等等。4.結(jié)束行,以endmodule結(jié)束,注意后面沒有分號(hào)了。以下為建模一個(gè)半加器電路的模塊的簡單實(shí)例。moduleHalfAdder(A,B,Sum,Carry);inputA,B;outputSum,Carry;assign#2Sum=A^B;assign#3Carry=A&B;endmodule模塊的名字是HalfAdder。模塊有4個(gè)端口:兩個(gè)輸入端口A和B,兩個(gè)輸出端口Sum和Carry。由于沒有定義端口的位數(shù),所有端口大小都為1位;同時(shí),由于沒有各端口的數(shù)據(jù)類型說明,這四個(gè)端口都是線網(wǎng)數(shù)據(jù)類型。模塊包含兩條描述半加器數(shù)據(jù)流行為的連續(xù)賦值語句。從這種意義上講,這些語句在模塊中出現(xiàn)的順序無關(guān)緊要,這些語句是并發(fā)的。每條語句的執(zhí)行順序依賴于發(fā)生在變量A和B上的事件。在模塊中,可用下述方式描述一個(gè)設(shè)計(jì):1)數(shù)據(jù)流方式;2)行為方式;3)結(jié)構(gòu)方式;4)上述描述方式的混合。2.3EP2C5T144C8芯片簡介EP2C5T144C8-FPGA開發(fā)板(以下簡稱EP2C5開發(fā)板)采用Altera公司推出的CYCLONEⅡ系列芯片EP2C5T144C8芯片作為核心處理器進(jìn)行設(shè)計(jì),CYCLONEⅡ系列芯片可以說是目前市場上性價(jià)比較高的芯片,比第一代的EP1C6或者EP1C12等芯片設(shè)計(jì)上、內(nèi)部的邏輯資源上都有很大的改進(jìn),同時(shí)價(jià)格也可以被廣大客戶接受;雖然Altera推出了CYCLONEIII甚至于IV代的芯片,但是目前市場上價(jià)格走勢偏高,尤其是針對(duì)廣大初學(xué)者的定位,目前還不是適合采用。2.3.1EP2C8開發(fā)板功能①板載EP2C8Q208C8-FPGA核心芯片;②板載SDRAM-K4S641632-UC60或HY57V641620FTP-7,兩款SDRAM兼容,容量64Mbit,引腳獨(dú)立,用來做NIOSII實(shí)驗(yàn)的程序運(yùn)行空間;③50MHz有源晶體,提供系統(tǒng)工作主時(shí)鐘,通過22Ω;匹配電阻連接只CLK0和CLK4,均可以作為系統(tǒng)時(shí)鐘使用;④5v電源輸入接口,外經(jīng)5mm,內(nèi)徑3.5mm內(nèi)正外負(fù);⑤電源開關(guān),正視開發(fā)板,向上接通電源;⑥R_C按鍵,F(xiàn)PGA的重新配置按鍵,按下之后,系統(tǒng)重新從EPCS4配置芯片中讀取程序然后作;⑦Rst按鍵,這個(gè)用戶IO,可以當(dāng)做用戶輸入按鍵使用,也可以分配為系統(tǒng)的復(fù)位按鍵;⑧IN5822二極管防止電源反接,高速肖特基二極管;⑨電源工作指示D2;⑩25x2雙排直插2.54間距用戶接口;1個(gè)用戶LED-D4,引腳獨(dú)立,沒有與接口板進(jìn)行復(fù)用;下載指示燈D1,平時(shí)熄滅,下載的時(shí)候會(huì)亮,按下R_C按鍵的時(shí)候也會(huì)亮;JTAG下載接口,對(duì)應(yīng)下載的文件是SOF文間,速度很快,JTAG將程序直接下載到FPGA中,但是掉電程序丟失,平時(shí)學(xué)習(xí)推薦使用JTAG方式,最后固化程序的時(shí)候再通過ASP方式將程序下載到配置芯片中即可;ASP下載接口,對(duì)應(yīng)下載的是POF文件,速度相對(duì)JTAG比較慢,而且需要重新上電并且拔掉下載線,才能工作,操作相對(duì)麻煩,不推薦學(xué)習(xí)的時(shí)候使用,最后需要斷電操作的情況下再使用ASP下載模式;4線制RS232串口通信接口以及SRAM片選跳線選擇;當(dāng)與接口板連接時(shí),改引腳與復(fù)用;25x2雙排直插2.54間距用戶接口;螺絲銅柱支撐;1085-3.3v穩(wěn)壓芯片;1117-1.2v穩(wěn)壓芯片,提供FPGA核電壓;SRAM芯片IS61LV25616AL256kx16b,(選配件);AT24C02-I2C存儲(chǔ)器件配置芯片EPCS4(4Mb)。開發(fā)板功能描述①VGA接口-利用顯示器實(shí)現(xiàn)顯示圖片、文字;②PS2接口-可以接入PS2鍵盤;③串口通信接口-做串口UART通訊實(shí)驗(yàn);④AD輸入調(diào)節(jié)電位器;⑤設(shè)置引腳、GND、VCC擴(kuò)展引腳;⑥外設(shè)資源接口雙排孔接入;⑦外設(shè)資源接口雙排針接入;⑧DS18B20溫度傳感器;⑨LCD1602液晶接口;⑩主板5v、3.3v電源濾波電路;主板與接口板雙排針接口;TL4312.5v基準(zhǔn)電壓電路;PCF8563時(shí)鐘電路;DAC-TLC56158位單通道DA輸出;蜂鳴器電路;ADC-TLC5498位單通道輸入;8位數(shù)碼管顯示;4x4矩陣鍵盤輸入;8路LED輸出指示;紅外通訊接口;4位撥碼開關(guān)輸入;主板與接口板雙排陣接口;4位獨(dú)立按鍵輸入。EP2C5T144C8芯片的引腳圖2.4Verilog硬件描述語言的主要能力基本邏輯門,例如and、or和nand等都內(nèi)置在語言中?!び脩舳x原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時(shí)序邏輯原語。·開關(guān)級(jí)基本結(jié)構(gòu)模型,例如pmos和nmos等也被內(nèi)置在語言中?!ぬ峁╋@式語言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查?!た刹捎萌N不同方式或混合方式對(duì)設(shè)計(jì)建模。這些方式包括:行為描述方式—使用過程化結(jié)構(gòu)建模;數(shù)據(jù)流方式—使用連續(xù)賦值語句方式建模;結(jié)構(gòu)化方式—使用門和模塊實(shí)例語句描述建模。·VerilogHDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲(chǔ)元件?!つ軌蛎枋鰧哟卧O(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次?!ぴO(shè)計(jì)的規(guī)??梢允侨我獾?;語言不對(duì)設(shè)計(jì)的規(guī)模(大小)施加任何限制?!erilogHDL不再是某些公司的專有語言而是IEEE標(biāo)準(zhǔn)。·人和機(jī)器都可閱讀Verilog語言,因此它可作為EDA的工具和設(shè)計(jì)者之間的交互語言?!erilogHDL語言的描述能力能夠通過使用編程語言接口(PLI)機(jī)制進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問Verilog模塊內(nèi)信息、允許設(shè)計(jì)者與模擬器交互的例程集合。·設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開關(guān)級(jí)、門級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí),包括進(jìn)程和隊(duì)列級(jí)。·能夠使用內(nèi)置開關(guān)級(jí)原語在開關(guān)級(jí)對(duì)設(shè)計(jì)完整建模?!ね徽Z言可用于生成模擬激勵(lì)和指定測試的驗(yàn)證約束條件,例如輸入值的指定。·VerilogHDL能夠監(jiān)控模擬驗(yàn)證的執(zhí)行,即模擬驗(yàn)證執(zhí)行過程中設(shè)計(jì)的值能夠被監(jiān)控和顯示。這些值也能夠用于與期望值比較,在不匹配的情況下,打印報(bào)告消息。·在行為級(jí)描述中,VerilogHDL不僅能夠在RTL級(jí)上進(jìn)行設(shè)計(jì)描述,而且能夠在體系結(jié)構(gòu)級(jí)描述及其算法級(jí)行為上進(jìn)行設(shè)計(jì)描述。·能夠使用門和模塊實(shí)例化語句在結(jié)構(gòu)級(jí)進(jìn)行結(jié)構(gòu)描述。·在VerilogHDL的混合方式建模能力,即在一個(gè)設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模。·VerilogHDL還具有內(nèi)置邏輯函數(shù),例如&(按位與)和|(按位或)。·對(duì)高級(jí)編程語言結(jié)構(gòu),例如條件語句、情況語句和循環(huán)語句,語言中都可以使用。·可以顯式地對(duì)并發(fā)和定時(shí)進(jìn)行建模。·提供強(qiáng)有力的文件讀寫能力?!ふZ言在特定情況下是非確定性的,即在不同的模擬器上模型可以產(chǎn)生不同的結(jié)果;例如,事件隊(duì)列上的事件順序在標(biāo)準(zhǔn)中沒有定義。第3章乒乓球游戲機(jī)的軟件設(shè)計(jì)3.1乒乓球游戲機(jī)系統(tǒng)組成瓶乓球比賽游戲機(jī)的組成如圖1所示。比賽規(guī)則約定:五局三勝;1分一局;裁判發(fā)出比賽開始信號(hào),觸發(fā)FPGA內(nèi)部隨機(jī)數(shù)發(fā)生器模塊產(chǎn)生首次發(fā)球權(quán)方;比賽進(jìn)行中,選手連續(xù)兩次獲得發(fā)球權(quán)后,發(fā)球權(quán)交予對(duì)方,如未獲發(fā)球權(quán)方發(fā)球,裁判端犯規(guī)音響電路鳴響;6個(gè)LED排列成行模擬乒乓球臺(tái)(因?yàn)槲业拈_發(fā)板上只有6個(gè)LED燈,比賽開始時(shí)候中間兩個(gè)燈亮,如果有條件的話有10來個(gè)燈最好了);點(diǎn)亮的LED模擬乒乓球,受FPGA控制從左到右或從右到左移動(dòng);比賽選手通過按鈕輸入模擬擊球信號(hào),實(shí)現(xiàn)LED移位方向的控制;若發(fā)亮的LED運(yùn)動(dòng)在球臺(tái)中點(diǎn)至對(duì)方終點(diǎn)之間時(shí),對(duì)方未能及時(shí)按下?lián)羟虬粹o使其向相反方向移動(dòng),即失去一分。功能模塊設(shè)計(jì)圖1中,基于FPGA設(shè)計(jì)的控制端為整個(gè)系統(tǒng)的核心,其內(nèi)部主要由簡易隨機(jī)數(shù)發(fā)生器、發(fā)球權(quán)控制器、乒乓球位置控制器、甲乙方計(jì)分控制器、犯規(guī)音響控制器等模塊組成。整個(gè)控制端采用模塊化設(shè)計(jì),先用Verilog語言編寫功能模塊,然后用頂層原理圖將各功能模塊連接起來。設(shè)計(jì)的難點(diǎn)在于協(xié)調(diào)各模塊工作,嚴(yán)格遵守各信號(hào)間時(shí)序關(guān)系。本系統(tǒng)采用50MHz系統(tǒng)時(shí)鐘。簡易隨機(jī)數(shù)發(fā)生器比賽首次發(fā)球權(quán)由隨機(jī)數(shù)發(fā)生器產(chǎn)生的數(shù)據(jù)決定,其隨機(jī)性要求不嚴(yán),因此,采用非常簡單的模式產(chǎn)生,即一旦FPGA上電,系統(tǒng)時(shí)鐘百分頻產(chǎn)生一方波信號(hào)square,當(dāng)裁判閉合開始比賽開關(guān)產(chǎn)生start信號(hào)上升沿時(shí),讀取此時(shí)square信號(hào)值作為隨機(jī)數(shù)發(fā)生器輸出data_rand。模塊仿真如圖2所示,結(jié)果滿足設(shè)計(jì)要求。此模塊設(shè)計(jì)時(shí)保證了square信號(hào)周期應(yīng)遠(yuǎn)大于start信號(hào)上升沿建立時(shí)間,保證隨機(jī)數(shù)據(jù)的正確讀取。3.2發(fā)球權(quán)控制器發(fā)球權(quán)控制器的控制過程為:如果按下復(fù)位按鈕,發(fā)球權(quán)數(shù)碼管顯示8,否則,開始比賽開關(guān)閉合時(shí),顯示隨機(jī)數(shù)發(fā)生器的值(0或1,0代表甲方、1代表乙方)。而在比賽中,為遵守發(fā)球權(quán)交換規(guī)則,設(shè)計(jì)甲乙雙方計(jì)分器總和信號(hào)sum是不為0的偶數(shù)時(shí)(即計(jì)分總次低位變化時(shí)),發(fā)球權(quán)數(shù)碼管顯示由0變?yōu)?或由1變?yōu)?。此模塊設(shè)計(jì)中,發(fā)球權(quán)數(shù)碼管的信號(hào)控制受多個(gè)時(shí)鐘的控制,即開始比賽開關(guān)start和計(jì)分值sum[1]信號(hào),將兩個(gè)信號(hào)組合成一個(gè)時(shí)鐘信號(hào),并統(tǒng)一兩個(gè)時(shí)鐘的觸發(fā)沿。因此最佳時(shí)鐘觸發(fā)方式如圖3所示的qq_en信號(hào)。為滿足這種時(shí)序要求,借助計(jì)分總和次低位sum_1信號(hào)和啟動(dòng)信號(hào)start設(shè)計(jì)qq_en信號(hào)。乒乓球位置控制乒乓球位置控制、甲乙計(jì)分、犯規(guī)音響控制乒乓球位置控制電路為FPGA控制端的核心,依據(jù)比賽規(guī)則,采用了Mealy型狀態(tài)機(jī)[10]來實(shí)現(xiàn),大大降低了設(shè)計(jì)難度。狀態(tài)機(jī)共定義了7個(gè)狀態(tài),各狀態(tài)定義如表1所示,狀態(tài)轉(zhuǎn)換如圖5所示,轉(zhuǎn)換條件如表2所示,具體程序如下。基于FPGA乒乓球比賽游戲機(jī)頂層原理圖結(jié)論經(jīng)過這次對(duì)乒乓球游戲機(jī)系統(tǒng)的設(shè)計(jì),讓我對(duì)EDA設(shè)計(jì)有了更進(jìn)一步的認(rèn)識(shí),同時(shí)也對(duì)EDA這門課程游客更深入的了解。這次設(shè)計(jì)讓我了解了關(guān)于乒乓球游戲機(jī)的原理課設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路要先進(jìn)行軟件仿真再進(jìn)行實(shí)際的電路制作。通過這次設(shè)計(jì)讓我收獲不小。這次的課程設(shè)計(jì)終于順利完成了,也解決了設(shè)計(jì)中遇見的一些問題。這次設(shè)計(jì)讓我受益匪淺。對(duì)軟件運(yùn)用更加的熟練。在摸索該如何設(shè)計(jì)程序使之實(shí)現(xiàn)的過程中,培養(yǎng)并鍛煉了我的設(shè)計(jì)思維,增加了實(shí)際操作經(jīng)驗(yàn),鍛煉了能力,總的來說這次收獲了很多,基本能夠?qū)W以致用。根據(jù)所學(xué)課程,數(shù)字電子技術(shù)、模擬電子技術(shù)、Verilog、EDA等所學(xué)知識(shí)的應(yīng)用在設(shè)計(jì)過程中都得到了相應(yīng)鞏固,我們對(duì)本專業(yè)的了解也更深了一層。經(jīng)過了這次自己實(shí)踐動(dòng)手的設(shè)計(jì),自己的分析能力得到了提高,動(dòng)手能力也有很大進(jìn)步,從中也收獲了很多經(jīng)驗(yàn),希望今后類似這樣課程設(shè)計(jì)、類似這樣的鍛煉機(jī)會(huì)能更多些。我想在今后的實(shí)踐過程中我會(huì)有更大的進(jìn)步,也會(huì)做的越來越好。參考文獻(xiàn)[1]侯建軍,SOPC技術(shù)基礎(chǔ)教程,清華大學(xué)出版社,2021-05

[2]

童詩白.

華成英.

模擬電子技術(shù)基礎(chǔ)[M].

高等教育出版社,2021-5

[3]

邱關(guān)源.

電路.

高等教育出版社[M].

[4]

王新梅.

肖國鎮(zhèn).

糾錯(cuò)碼——原理與方法[M].

西安電子科技大學(xué)出版

[5]

曹昕燕.

周鳳臣.

EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì)[M].

清華大學(xué)出版社,2021-5

[6]王金明數(shù)字系統(tǒng)設(shè)計(jì)與VerilogHDL[M]電子工業(yè)出版社,2021-1附錄pp_en信號(hào)產(chǎn)生模塊如下:modulepp_en(clk,start,sum_1,pp_en,cnt);inputclk;inputstart;//裁判啟動(dòng)信號(hào)inputsum_1;//總局?jǐn)?shù)sum次低位sum[1]outputpp_en;output[4:0]cnt;//pp_en信號(hào)個(gè)數(shù)//regsum_1_a,sum_1_b;regstart_a,start_b;reg[4:0]cnt_r;always@(posedgeclk)beginstart_a<=start;start_b<=start_a;sum_1_a<=sum_1;sum_1_b<=sum_1_a;end//always@(posedgeclk)beginif(pp_en)cnt_r<=cnt_r+4'b1;elsecnt_r<=cnt_r;end//assigncnt=cnt_r;assignpp_en=(start_a^start_b)|(sum_1_a^sum_1_b);endmodule根據(jù)pp_en信號(hào)和隨機(jī)數(shù)data_rand控制甲乙球權(quán)模塊:modulepp_possession(clk,reset,data_rand,pp_en,cnt,led_pose);inputclk;inputreset;inputdata_rand;inputpp_en;input[4:0]cnt;output[3:0]led_pose;//甲乙球權(quán)輸出,0代表甲,1代表乙。//reg[3:0]led_pose_r;always@(posedgeclkornegedgereset)beginif(!reset)led_pose_r<=4'd8;elseif(pp_en)beginif(cnt==5'b1)led_pose_r<={3'b0,data_rand};elseled_pose_r<=!led_pose_r;endelseled_pose_r<=led_pose_r;endassignled_pose=led_pose_r;endmodule乒乓球游戲機(jī)核心控制模塊:moduleled_con(clk_1s,reset,start,key_a,key_b,led_pose,sum,score_a,score_b,speaker,led);inputclk_1s;inputreset;inputstart;inputkey_a;inputkey_b;inputled_pose;output[4:0]sum;output[3:0]score_a;output[3:0]score_b;output[5:0]led;outputspeaker;regspeaker;//reg[5:0]led_move;reg[3:0]score_a_r;reg[3:0]score_b_r;reg[6:0]state;parameter[6:0]s0=7'b0000001,s1=7'b0000010,s2=7'b0000100,s3=7'b0001000,s4=7'b0010000,s5=7'b0100000,s6=7'b1000000;always@(posedgeclk_1sornegedgereset)beginif(!reset)state<=s0;elseif(!start) begin case(state) s0: begin speaker<=1; if(score_a_r==4'd11||score_b_r==4'd11) begin score_a_r<=4'b0; score_b_r<=4'b0; end elseif(!led_pose) begin led_move<=6'b011111; state<=s1; end elseif(led_pose) begin led_move<=6'b111110; state<=s4; end end s1: begin if(!key_a) begin led_move<={led_move[0],led_move[5:1]}; state<=s2; end elseif(!key_b) begin speaker<=0; state<=s0; end elsestate<=s1; end s2: begin if((led_move[2]==0||led_move[1]==0||led_move[0]==0)&&!key_b) state<=s6; elseif(((led_move[2]==0||led_move[1]==0)&&key_b)||(led_move[5]==0||led_move[4]==0||led_move[3]==0)) state<=s3; elsebegin score_a_r<=score_a_r+1; state<=s0; end end s3: begin led_move<={led_move[0],led_move[5:1]}; state<=s2; end s4:begin if(!key_b) begin led_move<={led_move[4:0],led_move[5]}; state<=s5; end elseif(!key_a) begin speaker<=0; state<=s0; end elsestate<=s4; end s5: begin if((led_move[3]==0||led_move[4]==0||led_move[5]==0)&&!key_a) state<=s3; elseif(((led_move[3]==0||led_move[4]==0)&&key_a)||(led_move[0]==0||led_move[1]==0||led_move[2]==0)) state<=s6; elsebegin score_b_r<=score_b_r+1; state<=s0; end end s6: begin led_move<={led_move[4:0],led_move[5]}; state<=s5; end default:state<=s0; endcaseendelsebeginled_move<=6'b110011;speaker<=1;endendassignscore_a=score_a_r;assignscore_b=score_b_r;assignled=led_move;assignsum=score_a_r+score_b_r;endmodule

論大學(xué)生寫作能力寫作能力是對(duì)自己所積累的信息進(jìn)行選擇、提取、加工、改造并將之形成為書面文字的能力。積累是寫作的基礎(chǔ),積累越厚實(shí),寫作就越有基礎(chǔ),文章就能根深葉茂開奇葩。沒有積累,胸?zé)o點(diǎn)墨,怎么也不會(huì)寫出作文來的。寫作能力是每個(gè)大學(xué)生必須具備的能力。從目前高校整體情況上看,大學(xué)生的寫作能力較為欠缺。一、大學(xué)生應(yīng)用文寫作能力的定義那么,大學(xué)生的寫作能力究竟是指什么呢?葉圣陶先生曾經(jīng)說過,“大學(xué)畢業(yè)生不一定能寫小說詩歌,但是一定要寫工作和生活中實(shí)用的文章,而且非寫得既通順又扎實(shí)不可。”對(duì)于大學(xué)生的寫作能力應(yīng)包含什么,可能有多種理解,但從葉圣陶先生的談話中,我認(rèn)為:大學(xué)生寫作能力應(yīng)包括應(yīng)用寫作能力和文學(xué)寫作能力,而前者是必須的,后者是“不一定”要具備,能具備則更好。眾所周知,對(duì)于大學(xué)生來說,是要寫畢業(yè)論文的,我認(rèn)為寫作論文的能力可以包含在應(yīng)用寫作能力之中。大學(xué)生寫作能力的體現(xiàn),也往往是在撰寫畢業(yè)論文中集中體現(xiàn)出來的。本科畢業(yè)論文無論是對(duì)于學(xué)生個(gè)人還是對(duì)于院系和學(xué)校來說,都是十分重要的。如何提高本科畢業(yè)論文的質(zhì)量和水平,就成為教育行政部門和高校都很重視的一個(gè)重要課題。如何提高大學(xué)生的寫作能力的問題必須得到社會(huì)的廣泛關(guān)注,并且提出對(duì)策去實(shí)施解決。二、造成大學(xué)生應(yīng)用文寫作困境的原因:(一)大學(xué)寫作課開設(shè)結(jié)構(gòu)不合理。就目前中國多數(shù)高校的學(xué)科設(shè)置來看,除了中文專業(yè)會(huì)系統(tǒng)開設(shè)寫作的系列課程外,其他專業(yè)的學(xué)生都只開設(shè)了普及性的《大學(xué)語文》課。學(xué)生寫作能力的提高是一項(xiàng)艱巨復(fù)雜的任務(wù),而我們的課程設(shè)置僅把這一任務(wù)交給了大學(xué)語文教師,可大學(xué)語文教師既要在有限課時(shí)時(shí)間內(nèi)普及相關(guān)經(jīng)典名著知識(shí),又要適度提高學(xué)生的鑒賞能力,且要教會(huì)學(xué)生寫作規(guī)律并提高寫作能力,任務(wù)之重實(shí)難完成。(二)對(duì)實(shí)用寫作的普遍性不重視?!按髮W(xué)語文”教育已經(jīng)被嚴(yán)重地“邊緣化”。目前對(duì)中國語文的態(tài)度淡漠,而是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論