【正文】
ASE。 count = count + 1。 else count := count + 1。 ENTITY total_stat IS port(p1total,p2total,reset,reset_all,ends: IN STD_LOGIC。 PROCESS(p2total,reset,ends,reset_all) BEGIN if(reset_all = 39。 use 。039。state=p1ready。state=p1ready。 if(p2 = 39。 球繼續(xù)移動 state = p1top2。039。 end if。 when 39。 else led_pos = led_pos 1。 elsif(led_pos = 9) then 球“出界“ p1win = 39。 end if。 when 39。 送至分?jǐn)?shù)統(tǒng)計模塊,清除比分 if(total = 0 OR total = 2 OR total = 4 OR total = 6) then CASE sel IS when 39。 BEGIN PROCESS(clk,judge,reset) BEGIN if(reset=39。 total1 = total_1。 比賽重新開始,總比分清零 end if。 // 程序名稱: // 程序作者:陳 梁 // 最后修改日期: 20xx32 library ieee。 ARCHITECTURE main OF clk_div IS SIGNAL clk_out_2hz,clk_out_5hz:STD_LOGIC。digit = d5。 when 1= d6 = 0110000。 d4 = 1111111。 d4 = 1111110。 when 5= d1 = 0000000。 total1,total2: IN integer range 0 to 4。139。 use 。 score1,score2: IN integer range 0 to 11。 COMPONENT clk_div IS PORT(clk,sel:IN STD_LOGIC。 who_temp = first_temp when (temp=0 OR temp=1 OR temp=4 OR temp=5 OR temp=8 OR temp=9 OR temp=12 OR temp=13 OR temp=16 OR temp=17 OR temp=20) else NOT first_temp when (temp=2 OR temp=3 OR temp=6 OR temp=7 OR temp=10 OR temp=11 OR temp=14 OR temp=15 OR temp=18 OR temp=19) else who_temp。 use 。這種情況下球的移動狀況如圖 所示。這說明 score11(2)和 score21(2)端口輸出一直是‘ 1’。 signal count1,count2:std_logic_vector(1 to 5):=00000。 when10011=bcdout1=0110000。 when01011=bcdout1=0110000。 when00011=bcdout1=1111110。 library ieee。139。then i=0。 then i=0。 when 0139。count100000。 use 。 甲 乙 否 否 N N Y Y 圖 設(shè)計流程圖 狀態(tài)機 設(shè)置了 7個狀態(tài),分別是“等待發(fā)球狀態(tài)”,“第一盞燈亮狀態(tài)”,“第八盞燈亮狀態(tài)”,“球向乙移動狀態(tài)”,“ 球向甲移動狀態(tài)”,“允許甲擊球狀態(tài)”, “允許乙擊球狀態(tài)”?,F(xiàn)在, VHDL 和 Verilog 作為 IEEE 的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多 EDA公司的支持,在電子工程領(lǐng)域,已成為事實上的通用硬件描述語言。 2 EDA、 VHDL 簡介 EDA 發(fā)展概況 電子設(shè)計技術(shù)的核心就是 EDA 技術(shù), EDA 是指以計算機為工作臺,融合應(yīng)用電子技術(shù)、計算機技術(shù)、 智能化技術(shù)最新成果而研制成的電子 CAD 通用軟件包,主要能輔助進行三方面的設(shè)計工作,即 IC設(shè)計、電子電路設(shè)計和 PCB 設(shè)計。狀態(tài)機的實現(xiàn)是符合人的思維邏輯的,且簡單明了 [2]。 MAX + PLUS Ⅱ 基于 VHDL 的乒乓球游戲機的設(shè)計與實現(xiàn) 目 錄 1 引言 ...................................................... 1 課題設(shè)計的目的 ........................................ 1 課題設(shè)計的內(nèi)容 ........................................ 2 2 EDA、 VHDA 簡介 ............................................. 3 EDA 的發(fā)展概況 ........................................ 3 硬件描述語言 VHDL ........................................3 3 乒乓球游戲機設(shè)計過程 ........................................ 5 設(shè)計規(guī)劃 .............................................. 5 乒乓球?qū)嶓w的設(shè)計 ...................................... 6 狀態(tài)機編程實現(xiàn) ........................................ 7 記分譯器的設(shè)計 ....................................... 10 構(gòu)造體的設(shè)計 ........................................ 12 4 系統(tǒng)仿真 ................................................. 14 系統(tǒng)編譯 ............................................. 14 系統(tǒng)有關(guān)波形的仿真 .................................... 14 結(jié)束語 ..................................................... 17 致謝 ....................................................... 18 參考文獻 ................................................... 19 附錄 ....................................................... 20 《乒乓球游戲機的設(shè)計 與實現(xiàn) 》 第 1 頁 共 30 頁 1 引 言 08 年奧運,在電視機前歡騰了半個晚上。 design。乒乓球游戲機還能在娛樂的同時提高我們的反應(yīng)、應(yīng)變能力。若乙方提前擊球或者未擊到球,則甲方得分。自 IEEE 公布了 VHDL 的標(biāo)準(zhǔn)版本,IEEE1076(簡稱 87 版 )之后,各 EDA 公司相繼推出了自己的 VHDL 設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和 VHDL 接口。 ( 4)對 于用 VHDL 完成的一個確定的設(shè)計,可以利用 EDA 工具進行邏輯綜合和優(yōu)化,并自動的把 VHDL 描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。 其次考慮輸出端口,芯片應(yīng)該有 8 個輸出端口來控制 8 個發(fā)光二極管,輸出邏輯‘ 1’即輸出一個高電平,可以使發(fā)光二極管點亮;另外,要直觀地表示雙方的得分,就得用到 4個七段譯碼器,每方用到 2 個,可以表示 0 到 21 的數(shù)字,每個七段譯碼器需要芯片的 7 個輸出端口來控制,總共 28 個輸出端 口。狀態(tài)機的進程如下: process(clk) clk 作為敏感信號觸發(fā)進程 begin 進程開始 if reset=39。 else 以下 case 語句是程序中最關(guān)鍵的狀態(tài)機部分 case state is when waitserve= 進程處于等待發(fā)球狀態(tài) case serve is when 1039。 when light8on= 進程處于第八盞燈亮狀態(tài) i=7。 end if。 state=waitserve。記分譯碼器( mydecoder) :由于記分需要顯示出來,所以 要使用七段譯碼器。bcdout2=0110000。bcdout2=1111011。bcdout2=1110000。 rchitecture game of pingponggame is type pingpong is (waitserve,light1on,ballmoveto2,allow2hit, light8on,ballmoveto1,allow1hit)。而外圍的部分,比如分?jǐn)?shù)顯示,球的軌跡,都是通過它傳出的信號來控制。在圖 中可 以清楚地看到球的移動軌跡。 致 謝 在論文的準(zhǔn)備和寫作階段,我遇到了很多難題,也從中認識到了自己專業(yè)知識的不足和設(shè)計思維上與老師們的差距。139。 SIGNAL score1,score2 : integer range 0 to 11。 total1,total2: OUT integer range 0 to 4)。 U3: score_stat PORT MAP(p1win=p1win,p2win=p2win,reset=clear,reset_all=reset,score1=score1,score2=score2)。 end if。 use 。 d2 = 1111001。 d2 = 0110000。 when 7= d3 = 0000000。 when 4= d5 = 0110011。 when 3= cat = 111110。 ENTITY clk_div IS PORT(clk,sel: IN STD_LOGIC。, clk_out_5hz when 39。) then 裁判按下開始鍵 if(ends=39。 elsif(rising_edge(p2total)) then total_2 = total_2 + 1。 ARCHITECTURE main OF control IS SIGNAL led_pos:integer range 0 to 9。139。= first=39。139。139。 elsif(led_pos = 0) then p2win = 39。 else CASE who IS 根據(jù)發(fā)球權(quán)選擇