乒乓电路—终稿
乒乓球游戏电路设计

1、主要内容:设计一个乒乓球游戏机,比赛由甲乙双方和裁判3人构成,能模拟比赛的基本过程和规则并能自动裁判和记分。
2、基本要求:1、设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。
2、用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。
3、当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。
若击中,则球向相反方向移动;若未击中,则对方得1分。
一方得分时,电路自动响铃3秒,这期间发球无效,等铃声停止后方能继续比赛。
4、设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局。
5、甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球才有效。
3、主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.一、总体设计思想1.基本原理用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。
当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。
若击中,则球向相反方向移动;若未击中,则对方得1分。
一方得分时,电路自动响铃3秒,这期间发球无效,等铃声停止后方能继续比赛。
设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局。
甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球才有效。
乒乓球比赛游戏机电路

数字电子技术课程设计一:课程设计名称:乒乓球比赛游戏机电路二:设计目的1.掌握设计乒乓球游戏机控制系统的方法。
2.熟悉掌握移位寄存器,计数器,译码器的用法。
3.在已学知识的基础上,根据实际情况融会贯通。
三:设计任务和设计要求1.设计任务(1)设计一个由甲、乙双方参赛,裁判参与的乒乓球比赛游戏模拟机。
(2)用八只(或更多)排成长串的指示灯(发光二极管)用来代表球的轨迹,其中一个亮的指示灯用来显示球的当前位置,用一个时钟脉冲源使点亮的指示灯依次从左向右,或从右向左移动,其速度应能调节,一般为1s转换一次。
(3)用两个按钮开关作为球拍,甲乙两人参加比赛。
当球到达甲方时,应立即按动开关(电路应只能响应按钮信号的前沿,若重复按动或持续按下去,将不起作用),表示回球,球到达乙时,同样也应立即按动乙方的开关,将球回击到对方去。
若击中,则乒乓球向相反方向移动,若未击中,则对方得一分。
(4)一方得分时,电路自动响铃3s,此时发球无效,等铃声停止后方能继续比赛。
(5)设置自动计分电路,双方各用二位数码管进行计分显示,每计满11分为一局。
(6)甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球有效。
2.设计要求(1) 确定总体设计方案画出总方框图。
(2) 确定各单元电路的功能,进行单元电路的设计,画出逻辑图。
(3) 选择芯片确定型号。
(4) 画出总逻辑图和装配图,并在实验板上组装电路。
(5) 进行电路调试,达到设计要求。
(6) 写出总结报告。
三、基本工作原理和设计方案乒乓球游戏模拟机电路框图如图所示。
频率可调的时钟发生器为双向移位寄存器提供时钟脉冲,用双向移位寄存器的输出端控制指示灯来模拟乒乓球的运动轨迹。
先点亮位于某一方的第1个指示灯,由击球者通过按钮输入“击球”开关信号,实现移位方向的控制。
本电路设计的核心为控制电路,它决定整个系统的动作,必须掌握各信号之间的关系。
框图中的双向移位寄存器也可用计数译码方式实现乒乓球运动轨迹的模拟,如利用加减计数器的两个时钟信号来实现甲乙双方的击球,由表示球拍“击打”按钮产生计数时钟,计数器的输出状态经译码器驱动指示灯发光。
plc乒乓电路实验报告

plc乒乓电路实验报告实验名称:PLC乒乓电路实验实验目的:1. 了解PLC控制器的基本原理和应用方式2. 掌握PLC的硬件组成结构3. 学会PLC程序编写和下载,及其调试方法4. 通过乒乓球控制案例,学会PLC的实际应用实验原理:PLC的硬件组成结构分为五部分:1. 中央处理器CPU:PLC的核心部件,负责控制、计算和通信。
2. 输入/输出模块I/O:接受外部信号输入与输出信号输出,与被控对象连接。
3. 记忆器:存储PLC程序和数据。
4. 电源装置:提供稳定的工作电压。
5. 外壳:将上述部分装配在一起形成完整的PLC。
乒乓球控制实验案例:硬件:1. PLC可编程逻辑控制器2. 可编程控制器编程线3. 可编程控制器通信线4. 电源线5. 开关、电机等元件6. 乒乓球控制机构软件:1. PLC编程软件2. 仿真软件实验流程:1. 硬件组装:按照实验要求将硬件组合连接。
2. 编写程序:编写PLC程序,以操纵控制机构模拟乒乓球控制运动。
3. 下载程序:将编写好的程序通过编程线下载到PLC中。
4. 调试程序:通过仿真软件模拟实验过程,完成程序的调试。
5. 实验验证:运行实验,验证PLC程序的正确性和应用价值。
实验结果:通过本次实验,我们成功了解了PLC的基本原理、硬件组成结构和应用方式,熟练掌握了PLC程序编写和下载的方法和调试技巧,并通过乒乓球控制实验案例,深入掌握了PLC的实际应用。
结论:PLC控制器是一种现代化、全自动化的物理装置,具有可编程、多功能、集成化和可靠性高等特点,是现代工业控制领域的主力军之一。
在实际应用中,PLC可根据需要进行编程,控制机构模拟各种复杂的运动状态,如乒乓球控制。
PLC控制器的操作灵活,具有自动、半自动和手动控制等多种工作模式,具备广泛的应用前景。
PLC控制器的应用越来越广泛,在各种行业的自动化设备中已经占据了重要地位。
在加工制造行业中,PLC控制器主要应用于各种生产线的控制和自动化设备的精密控制,如机器人控制,焊接机控制,流水线控制等。
发电机乒乓式转子接地保护电路设计

厂l尸丫 Y L
(一 ) ( fR) + R + ,R I 一 R+ , , (f R + ) 1 a E= ' I Z () 5 酬 = , l I) 一 Z R( I () 6 联立以上方程可得 : R = R / 3 U - , 2 / R 3 fE , (A ) R 一 () 7 a 1 3 U/ 3 U = / + , (0 ) () 8 D U一 U/ ' U= E , 。 , E 通过上述计算可以确定发生励磁绕组接地故障
1 转子接地保护基本原理
乒乓切换电路基本原理如图 1 所示。图中E为 发电机励磁电压; 正实数 a反映励磁绕组接地点的
当S断开、 S导通时, , 2 有 a ( + , ) 一 R+ ,Z R+ f; (fR) E= '2 R R I I () 4
第 2 卷第 2 1 期 4
函 24 2 0 年1月 0
电 力 自 动 化 议 备
Eetc e A t ao E u m n l r Pw r o tn i et ci o um i qp
Vo.4 . l No 1 2 2
De .0 4 c2 0
发 电机乒乓式转子接地保护 电路设计
在对实现原理 、 检测和控制环节特征进行详细分析
的基础上, 结合现在工业条件所能提供的手段, 提出
最佳的设计方案。
(一 ) 一R + , R + , 2 I 1 a E= ( f R ) +( fR + R) ) I , z ( 2 U =R ( I 一z , , ) I , () 3
额定情况
强励情 况
U/ }V ,V U /
96 48 .5 .2 23 .9
一4 8 .2
U/ , V
3. 0 02
EDA课程设计_7

乒乓球游戏电路设计一、乒乓球设计方案(1)我们设计的乒乓球游戏是以一排发光二极管交替发光指示乒乓球的行进路径, 其行进的速度可由输入的时钟信号控制。
乒乓球比赛是甲乙双方的比赛, 所以用两个按键模拟左右两个球拍;我们还要设计一个乒乓球控制模块, 即当发光二极管到最后一个的瞬间, 若检测到对应的表示球拍的键的信号, 立即使“球”反向运行, 如果此瞬间没有接到按键信号, 将给出失败鸣叫, 同时为对方记1分, 并将记分显示出来, 然后由对方重新发球以此类推;还要设计失球计数器的高低位计数模块;乒乓球行进方向控制模块, 主要由发球键控制;还要有一个失球提示发生模块。
(2)要知道乒乓球的游戏规则, 以多少分为一局, 谁先得到一定的分数谁就赢一局, 以此来判断输赢。
(3)用数码管显示双方的得分, 还要设计一个十进制计数器, 来显示分数。
(4)在乒乓球设计方案时还要考虑球速的问题。
二、乒乓球游戏电路的设计程序1.LIBRARY IEEE;--乒乓球游戏顶层文件use ieee.std_logic_1164.all;entity TENNIS isport(bain,bbin,clr,clk,souclk:in std_logic;ballout:out std_logic_vector(7 downto 0);countah,countal,countbh,countbl:out std_logic_vector(3 downto 0);lamp,speaker:out std_logic);end entity TENNIS;architecture ful of TENNIS iscomponent soundport(clk,sig,en:in std_logic;sout:out std_logic);end component;component ballctrlport(clr,bain,bbin,serclka,serclkb,clk:in std_logic; bdout,serve,serclk,ballclr,ballen:out std_logic);end component;component ballport(clk,clr,way,en:in std_logic;ballout:out std_logic_vector(7 downto 0));end component;component boardport(ball,net,bclk,serve:in std_logic;couclk,serclk:out std_logic);end component;component cou10port(clk,clr:in std_logic;cout:out std_logic;qout:out std_logic_vector(3 downto 0));end component;component cou4port(clk,clr:in std_logic;cout:out std_logic;qout:out std_logic_vector(3 downto 0));end component;component mwayport(servea,serveb:in std_logic;way:out std_logic);end component;signalnet,couclkah,couclkal,couclkbh,couclkbl,cah,cbh:std_logic; signalserve,serclka,serclkb,serclk,ballclr,bdout,way,ballen:std_lo gic;signal bbll:std_logic_vector(7 downto 0);beginnet<=bbll(4);ballout<=bbll;lamp<=clk;uah:cou4 port map(couclkah,clr,cah,countah);ual:cou10 port map(couclkal,clr,couclkah,countal);ubh:cou4 port map(couclkbh,clr,cbh,countbh);ubl:cou10 port map(couclkbl,clr,couclkbh,countbl); ubda:board port map(bbll(0),net,bain,serve,couclkal,serclka);ubdb:board port map(bbll(7),net,bbin,serve,couclkbl,serclkb);ucpu:ballctrlportmap(clr,bain,bbin,serclka,serclkb,clk,bdout,serve,serclk, ballclr,ballen);uway:mway port map(serclka,serclkb,way);uball:ball port map(clk,ballclr,way,ballen,bbll);usound:sound port map(souclk,ballen,bdout,speaker);end ful;2.library ieee;use ieee.std_logic_1164.all;entity sound isport(clk:in std_logic; --发声时钟sig:in std_logic; --正确接球信号en:in std_logic; --球拍接球脉冲sout:out std_logic); --提示声输出, 接小喇叭end entity sound;architecture ful of sound isbeginsout<=clk and (not sig) and en;--球拍接球, 没接到时, 发提示声end ful;3.library ieee; --总控制模块use ieee.std_logic_1164.all;entity ballctrlisport(clr:in std_logic; --系统复位bain:in std_logic; --左球拍bbin:in std_logic; --右球拍seclka:in std_logic; --左拍准确接球或发球serclkb:in std_logic; --右拍准确接球或发球clk:in std_logic; --乒乓球灯移动时钟bdout:out std_logic; --球拍接球脉冲serve:out std_logic; --发球状态信号serclk:out std_logic; --球拍正确接球信号ballclr:out std_logic; --乒乓球灯清零信号ballen:out std_logic); --乒乓球灯使能end entity ballctrl;architecture ful of ballctrl issignal bd:std_logic;signal ser:std_logic;beginbd<=bain or bbin;ser<=serclka or serclkb;serclk<=ser;--球拍正确接球信号bdout<=bd; --球拍接球脉冲process(clr,clk,bd)beginif(clr='1')then --系统复位serve<='1'; --系统处在职发球状态ballclr<='1'; --乒乓球灯清零elseif(bd='1')then --系统正常--球拍发球或接球时ballclr<='1'; --乒乓球灯清零if(ser='1')then --球拍发球或准确接球ballen<='1'; --乒乓球灯使能允许serve<='0'; --系统处在接球状态else ballen<='0';serve<='1'; --系统处在发球状态end if;else ballclr<='0';--没发球或接球时乒乓球灯不清零end if;end if;end process;end ful;4.--乒乓球灯模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ball isport(clk:in std_logic; --乒乓球灯前进时钟clr:in std_logic; --乒乓球灯清零way:in std_logic; --乒乓球灯前进方向en:in std_logic; --乒乓球灯使能ballout:out std_logic_vector(7 downto 0));--乒乓球灯end entity ball;architecture ful of ball issignal lamp:std_logic_vector(9 downto 0);beginprocess(clk,clr,en)beginif(clr='1') then lamp<="1000000001";--清零elsif en='0' thenelsif (clk'event and clk='1')then--使能允许, 乒乓球灯前进时钟上升沿if(way='1') then lamp(9 downto 1)<=lamp(8 downto 0);lamp(0)<='0';--乒乓球灯右移else lamp(8 downto 0)<=lamp(9 downto 1); lamp(9)<='0';--乒乓球灯左移end if;end if;ballout<=lamp(8 downto 1);end process;end ful;5.--乒乓拍模块library ieee;use ieee.std_logic_1164.all;entity board isport(ball:in std_logic; --接球点, 也就是乒乓球灯的末端net:in std_logic; --乒乓球灯的中点, 乒乓球过中点时, counclk、serclk复位bclk:in std_logic; --球拍接球信号serve:in std_logic; --发球信号couclk:out std_logic;serclk:out std_logic);end entity board;architecture ful of board isbeginprocess(bclk,net)beginif(net='1')then serclk<='0';couclk<='0';--乒乓球过中点时, counclk、serclk复位elsif(bclk'event and bclk='1')then—球拍接球时if(serve='1')then serclk<='1';--系统处于发球状态时—发球成功else—系统处于接球状态if(ball='1')then serclk<='1';--乒乓球刚落在接球点上, 接球成功else serclk<='0';couclk<='1';end if;end if;end if;end process;end ful;6.--十进制计数器用来做失球低位计数library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;serveb:in std_logic;way:out std_logic);end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';elsif(serveb='1')then way<='0';end if;end process;end ful;7、--四进制计数器用来做失球高位计数library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;serveb:in std_logic;way:out std_logic);end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';elsif(serveb='1')then way<='0';end if;end process;end ful;8、--乒乓球前进方向产生模块library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;--左选手发球信号serveb:in std_logic;--右选手发球信号way:out std_logic);--乒乓球灯前进方向信号end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';--左选手发球方向向右elsif(serveb='1')then way<='0';--右选手发球方向向左end if;end process;end ful;三、乒乓球游戏程序的仿真波形仿真波形图四、硬件测试方法然后我们就要测试硬件, 下载文件。
数电课设——乒乓球游戏电路设计

电子技术课程设计数电部分设计题目:乒乓球游戏电路设计第一章设计指标 (3)设计指标 (3)第二章系统概述 (4)2.1设计思想 (4)2.2可行性论证 (8)2.3各功能的组成 (8)2.4总体工作过程 (9)第三章单元电路设计与分析 (10)3.1各单元电路的选择 (10)3.2设计及工作原理分析 (15)第四章电路的组构与调试 (15)4.1 遇到的主要问题 (15)4.2 现象记录及原因分析 (16)4.3 解决措施及效果 (16)4.4 功能的测试方法、步骤、设备、记录的数据 (16)第五章结束语 (20)5.1对设计题目的结论性意见及进一步改进的意向说明 (20)5.2 总结设计的收获与体会 (20)参考文献 (21)附图(电路总图) (22)“乒乓球游戏”电路以发光二级管模拟乒乓球的运动轨迹,以按键模拟球拍,具有乒乓球的娱乐功能。
电路可以采用数字电子技术基础课程中介绍的基础器件实现。
通过电路的设计和实现过程,我们可以了解和掌握以为寄存器的功能和应用以及数字逻辑控制的设计方法。
本次课程要求用软件QuartusII的应用基础,结合数字电子技术基础课程的知识完成“乒乓球游戏”。
QuartusII应用的基本流程如图:本设计还要用到七段数码显示器:LP-2900共有六位七段数码显示器,连接成动态扫描显示电路,每个显示器的共阴极由该装置上一个74138译码器的前六位输出Y0~Y5产生的扫描信号控制;段码控制信号高电平有效。
如图:第一章.设计指标1.设计要求以12个发光二极管出个点亮模拟乒乓球的运动,双方击球动作各以一个按键模拟,并以4位LED数码管闲事游戏双方得分。
具体规则如下:(1)当发球方按过击球键后,“乒乓球”向对方移动,当“球”到达终端位置时,对方必须按键接“球”。
若对方在“球”到达接球位置时准确按下击球键,“球”即向反方向移动。
若“球”到达接球位置时未被“接”住,“球”将飞出界外,发球方得一分。
数电实验报告乒乓球游戏机

数字系统与逻辑设计综合实验——10秒倒计时+简易乒乓球游戏机设计课题的任务要求课题任务:1.设计实现一个10 秒倒计时电路,使用8×8 点阵显示计时结果。
2.自拟功能:简易乒乓球游戏机,倒计时至0 后开始执行该功能。
两人乒乓游戏机是以8个发光二极管代表乒乓球台,中间两个发光管兼作球网,用发光管按一定的方向依次闪亮来表示球的运动。
在游戏机两侧各设一个发球/击球开关,当甲方发球时,靠近甲方的第一个发光管亮,然后依次点亮第二个……球向乙方移动,球过网后到达设计者的规定的球位乙方即可击球,若乙方提前击球或未击到球,则甲方得分。
然后重新发球进行比赛,直到某一方记分达到规定分,比赛结束。
1.以8个发光二极管代表乒乓球台,中间两个是球网,乒乓球的位置和移动方向由灯亮及依次点亮的方向决定;2.球移动的速度0.5s;3.用4个数码管分别显示双方的得分;4.发3个球后换发球,最边上的发光二极管亮表示发球方;5.设置复位键,按下后比分清零,重新10秒倒计时,双方重新开始比赛;6.当某一方比分达到11分时,比赛结束。
设计思路及总体框图总体电路外部框图:总体电路外部接口说明:框图中左边部分为输入信号,右边为输出信号。
输入信号中,clk 为全局时钟信号,由实验板的晶振产生,频率为1MHz ;h1、h2为双方的发球、击球按键,分别锁定到实验板的BTN4及BTN1上;reset 为全局复位,当reset 为高电平时,比分全部清零,重新倒计时,然后比赛重新开始,reset 锁定到BTN2上。
输出信号中,row[7..0]为点阵行选择信号,col[7..0]为列选择信号,table[7..0]控制7个发光二极管(表示球的移动)、catch[3..0] 为数码管选通信号,score[6..0] 控制七段数码管(用来显示比分)。
总体框图:各模块间电路连接图:(详见电子版)设计思路:1. 考虑到系统的功能比较多且复杂,故采用分块设计的方式,先设计好底层各模块,再到顶层进行综合。
乒乓球游戏电路课程设计最终完成版

乒乓球游戏电路课程设计最终完成版第一篇:乒乓球游戏电路课程设计最终完成版电子课程设计——基于Verilog的乒乓游戏设计电路学院:专业、班级:姓名:学号:指导教师:2014年12月引言可编程器件的广泛应用,为数字系统的设计带来了极大的灵活性。
可编程器件可以通过软件编程对硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样快捷方便。
高速发展的FPGA、CPLD兼有串、并行工作方式和高速、高可靠性的特点,在电子系统设计中得到了广泛应用。
通常使用硬件描述语言(Hardware Description Language,HDL)进行数字电子系统设计。
目前应用广泛的硬件描述语言有:VHDL语言,Verilog HDL语言,AHDL语言。
Verilog语言由于具有强大的行为描述能力和丰富的仿真语句从而成为系统设计领域最佳的硬件描述语言。
鉴于如上所述,本系统使用Verilog语言进行设计,采用自上向下的设计方法。
利用Quartus II 9.1 进行Verilog程序的编译与综合,然后用Modelism SE 6.0进行功能仿真和时序仿真,并使用EDA实验箱进行下载验证。
基于Verilog的乒乓游戏设计电路一、设计任务与要求任务:设计一个乒乓球游戏机,模拟乒乓球比赛的基本过程和规则,并能裁判和自动计分。
要求如下:1.使用乒乓球游戏机的甲乙双方在不同的位置罚球或击球。
2.乒乓球的位置和移动方向可由发光二极管和依次点亮的方向决定,为球的移动速度为一定值(我们设计中设为0.5秒移动一位)。
使用者可按乒乓球的位置发出相应的动作,在其他时候击球视为犯规,给对方加一分;都犯规双方各加一分。
二、总体框图设计思路根据乒乓球比赛的过程和规则,首先游戏开始,如果一方非正确击球则另一方加分,当分数大于11时获胜,游戏结束,系统设计流程图如图1所示。
图2给出了乒乓球游戏机的原理图。
用5个发光二极管代表乒乓球,在游戏机两侧各设置二个开关,一个是发球开关,一个是击球开关。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生毕业论文(设计)题目:利用EDA技术实现乒乓游戏电路的设计专业代码: XXXXX作者姓名:XXX学号: XXXXXXXXXX单位: XXXXXXXXXXX指导教师: XXXX年 X 月 X日摘要本次设计的任务是利用EDA技术实现乒乓游戏电路的设计。
我们采用EDA 技术在QuartusII系统开发平台上对核心电路进行设计,完成设计后把用VHDL 描述的源程序下载到目标芯片上并对其功能进行仿真。
设计分为两个模块:一,游戏主模块;二,计分显示模块。
主模块完成用LED表示球和球台并对玩家是否击球、是否犯规做出判断,并且将两位玩家的游戏得分进行输出。
计分显示模块完成对局数比分的运算,显示局数比分和每局游戏玩家的得分。
通过使用自顶向下的层次化的设计方法,实现了乒乓球游戏的基本功能。
关键词:乒乓球游戏;EDA;VHDL;QuartusIIAbstractThe task of this design is to design and implement a ping-pong game circuit by using EDA technology. We use EDA technology to design the core circuit in QuartusII system development platform, completed the design of the VHDL description of the source code download to the target chip and simulate its function. The design is divided into two modules: first, the game master module; second, scoring display module. The main module is complete with the ball and the table said by LED, said to judge whether players hit the ball, on whether to judge whether a foul and two players of game scores to output. Scoring display module to complete the game count the score calculation, display innings score and score with gamers in each game. By using the top-down hierarchical design method, realized the basic function of the table tennis game.Key words:Table Tennis Games; EDA; VHDL; QuartusII目录前言 (1)1.引言 (1)1.1课题的背景、目的 (2)1.2课题设计主要内容 (3)2.开发工具简介 (3)2.1 EDA技术 (3)2.2硬件描述语言—VHDL (4)2.3 QuartusII (5)3.总体设计思想 (6)3.1基本原理 (6)3.2设计框图 (7)4.设计步骤 (8)4.1乒乓球游戏机实体的设计 (8)4.2状态机编程实现 (8)4.3记分译码器的设计 (10)4.4构造体的设计 (12)4.5时钟分频器设计 (13)4.6总电路图设计 (14)5.编译和波形仿真 (15)5.1分频器的仿真 (15)5.2 COMPETE模块仿真 (15)5.3译码模块仿真 (16)5.4顶层文件仿真图 (16)总结 (17)参考文献 (18)附录 (18)致谢 (22)利用EDA技术实现乒乓游戏电路的设计前言乒乓球游戏机是现代化的产物,随着乒乓球运动日益人们喜爱的运动,对乒乓球运动的形式要求越发增多,进而产生了乒乓球游戏机。
乒乓球游戏机体现了对现代技术的应用,全世界都在研究更加先进的乒乓球游戏机以满足现代人更为快捷的乒乓球运动需要。
乒乓球游戏机在乒乓球运动领域显得愈发重要。
它是对乒乓球运动文化的继承和发扬,它的地位无疑越来越重要,具有很大的经济价值、文化价值、商业价值,发展前景十分广阔。
本论文研究的主要问题:两人乒乓球游戏机是用8个发光二级管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定方向移动来表示球的运动。
在游戏机的两侧各设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。
当甲方按动发球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方向乙方依次点亮,代表乒乓球的移动。
当球过网后乙方就可以击球。
若乙方提前击球或者未击到球,则甲方得分。
然后重新发球进行比赛,知道一方记分达到11分为止,记分清零,重新开始新一局比赛。
本课题应解决的主要问题:(1)使用乒乓球游戏机的甲乙双方在不同的位置发球或击球。
(2)当球过网后接球方就可以击球。
若接球方提前击球或者未击到球,则发球方得分。
(3)游戏的状态机编程实现。
(4)比赛按11分为一局进行,甲乙双方都应设置自己的记分牌。
(5)任何一方先记满11分,该方就算胜出,按RESET复位重新开局。
(6)甲乙双方记分译码器的设计。
1.引言EDA(Electronic Design Automation,电子设计自动化)技术是现代电子工程领域的一门新技术。
它提供了基于计算机和信息技术的电路系统设计方法。
EDA技术的发张和推广应用极大地推动了电子工业的发展。
EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译,逻辑化简,逻辑分割,逻辑综合及优化,逻辑布局布线,逻辑仿真,直至对于特定目标芯片的适配编译,逻辑映射和编程下载等工作。
设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果[1]。
近年来,集成电路制造技术的快速发展, 一方面促进了相应设计技术的发展, 另一方面也对设计技术提出了更高的要求。
当前集成电路设计, 面临着功能强、性能好、规模大、成本低、设计周期短等一系列要求和挑战, 这些要求和挑战引起了集成电路设计方法的全面革新。
当今, 以行为设计为主要标志的新一代数字系统设计理论已形成并得到发展。
在集成电路的数字系统的系统级设计中, VHDL 硬件描述语言构造的描述模型优化设计, 有利于高效利用设计空间, 实现设计结构的精确分析, 使芯片资源得以充分利用。
1.1课题的背景、目的20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏相应而出,成为大家的娱乐节目。
因此设计了这个两人的乒乓球游戏。
而电子信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。
而伴随着如上两个特点的产生,相应的出现了设计上的两个问题。
其一,在电子系统日趋数字化、复杂化和大规模集成化的今天,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计日趋复杂。
那么如何去完成这些高复杂度的电子设计呢?其二,电子产品设计周期短和上市快是电子厂商们坚持不懈的追求,那么面对日趋复杂的设计,又如何能够缩短开发时间呢?解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作。
1.2课题设计主要内容两人乒乓球游戏机是用8个发光二级管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定方向移动来表示球的运动。
在游戏机的两侧各设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。
当甲方按动发球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方向乙方依次点亮,代表乒乓球的移动。
当球过网后乙方就可以击球。
若乙方提前击球或者未击到球,则甲方得分。
然后重新发球进行比赛,知道一方记分达到11分为止,记分清零,重新开始新一局比赛。
2.开发工具简介2.1 EDA技术EDA[2]是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL(Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。
综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。
综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。
也就是说,综合器是软件描述与硬件实现的一座桥梁。
综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。
硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。
HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。
设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。
目前,就FPGA/CPLD开发来说,比较常用和流行的HDL 主要有ABEL-HDL、AHDL和VHDL。
2.2硬件描述语言—VHDLVHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。