




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目目 录录 1 引言引言 1 1 1 设计背景 1 1 2 VHDL 简介 1 1 3 QUARTUS 简介 3 2 乒乓球比赛游戏机的设计乒乓球比赛游戏机的设计 3 2 1 系统设计要求 3 2 2 设计思路 4 3 乒乓球比赛游戏机的实现乒乓球比赛游戏机的实现 6 3 1 乒乓球比赛游戏机的顶层原理图 6 3 2 系统各功能模块的实现 6 3 2 1 比赛控制模块 6 3 2 2 记分模块 7 3 2 3 数码管显示模块 8 4 各个模块的仿真以及系统仿真 分析各个模块的仿真以及系统仿真 分析 9 4 1 比赛控制模块仿真波形 9 4 2 记分模块仿真波形图 9 4 3 管脚锁定 10 4 4 系统的波形仿真 11 4 5 显示结果的几种情况 14 5 总结总结 15 5 1 设计制作过程中遇到的问题及解决方案 15 5 2 本设计有以下几个可以改进的地方 15 参考文献参考文献 16 附附 录录 17 游戏控制模块的 VHDL 程序 17 记分模块的 VHDL 程序 19 动态扫描模块的 VHDL 程序 20 译码器模块的 VHDL 程序 21 1 1 引言引言 1 11 1 设计背景设计背景 1 21 2 VHDLVHDL 简介简介 硬件描述语言已经有几十年的发展历史 并且在系统的仿真 验证和设计 综合等方面得到成功的应用 目前常用的硬件描述语言有 VHDL Verilog HDL ABEL 等 2 3 4 VHDL 则起源于 20 世纪 70 年代末和 80 年代初 美国国防 部提出的 VHSIC 计划 目标是为下一代集成电路的生产 实践阶段性的工艺极 限和完成 10 万门级以上的电路设计而建立一种新的描述方法 5 VHDL 的英文 全称为 Very High Speed Integrated Circuit Hardware Description Language 是 IEEE 标准化的硬件描述语言 并且已经成为系统描述的国际公认 标准 得到众多 EDA 公司的支持 VHDL 具有很多的优点使它能够被大多数人认可 被广泛应用在逻辑电路的 设计方面 并且成为了标准化的硬件描述语言 其优点如下 1 功能强大和设计灵活 一个简洁的使用 VHDL 语言编写的程序就可以描 述一个复杂的逻辑电路 因为 VHDL 拥有强大的语言结构 6 VHDL 多层次的设 计描述功能可以有效地控制设计的实现 支持设计库和可重复使用的元件生成 还支持多种设计方式 如层次化设计 模块化设计和同步 异步和随机电路设 计 2 与具体器件无关 用 VHDL 设计硬件电路时不用先确定设计要用到哪种 器件 也不用特别熟悉器件的内部结构 这样可以使设计人员专注于进行系统 设计 设计完成后 可以根据消耗的资源选择合适的器件 而不造成资源的浪 费 3 很强的移植能力 VHDL 由很多不同的工具支持 同一个设计的程序可 以在包括综合工具 仿真工具 系统平台等工具中使用 4 强大的硬件描述能力 VHDL 可以描述系统级电路和门级电路 而且描 述方式多样 可以采用行为描述 寄存器传输描述或者结构描述 也可以用其 混合描述方式 同时 VHDL 可以准确地建立硬件电路模型 因为它支持惯性延 迟和传输延迟 VHDL 的数据类型很丰富 支持标准定义的数据类型 当标准定 义的数据类型不能满足用户的需求时 用户可以自己定义的所需要的数据类型 增加了设计的自由度 5 语法规范 易于共享 当把用 VHDL 编写的代码文件看作是程序时 它 可以作为设计人员之间的交流内容 当把它看作是文档时 可以作为签约双方 的合同文本 VHDL 易于共享的特点 使得大规模的协作开发容易实现 同时 这些特点也促进了 VHDL 的发展和完善 综上所述 VHDL 有很多其他的硬件描述语言所不具备的优点 但是 VHDL 仍然存在一些缺点 主要是 3 个方面 1 要求设计者对硬件电路知识甚至是芯片结构方面的知识了解较多 应该 摆脱一般的高级语言程序设计思路 因为在电路世界里的事件很多是并行发生 的 并且硬件电路系统内部的模块可以是互相独立的 也可以是互为因果的 所以 在用 VHDL 设计硬件电路时应摆脱一般的高级语言程序设计思路 在设计 电路时 应先构思电路 然后才能描述 2 不能进行太抽象的系统描述 因为 EDA 工具无法综合抽象性太强的系统 故 用 VHDL 描述系统电路时不能太抽象 目前的 VHDL 很难综合实际的硬件电路 只能适用于系统建模 3 不能描述模拟电路 对于模拟电路而言 VHDL 并不是一种理想的硬件 描述语言 但可以预见 未来硬件描述语言的发展方向是模拟电路和数模混合 电路的描述方式 1 31 3 Quartus Quartus 简介简介 2 2 乒乓球比赛游戏机的设计乒乓球比赛游戏机的设计 2 12 1 系统设计要求系统设计要求 设计一个由甲乙双方参赛 有裁判的三人乒乓球游戏机 用 8 个 或更多个 LED 排成一条直线 以中点为界 两边各代表参赛双 方的位置 其中一只点亮的 LED 指示球的当前位置点亮的 LED 依此从左到右 或从右到左 其移动速度应能调节 当 球 点亮的那只 LED 运动到某方的最后一位时 参赛者应能果断地 按下位于自己一方的按钮开关 既表示启动球拍击球 若未击中 球掉出桌外 则对方得一方 设置自动记分电路 甲乙双方各用两位数码管进行记分显示 每记满 11 分 为 1 局 甲乙双方各设一个发光二极管表示拥有发球权 每隔两次自动交换发球权 拥有发球权的一方发球才有效 系统框图如图 2 1 所示 图 2 1 乒乓球比赛游戏机系统框图 2 22 2 设计思路设计思路 此设计问题可分为游戏控制模块 加减计数模块 译码模块 甲乙方得分 显示模块四部分 设置甲乙双方击球脉冲信号 int1 int2 一方的击球信号使加 减计数器加 法计数 则另一方的击球信号就使加 减计数器减法计数 译码模块输出端 Y1 Y8 接 LED 模拟乒乓球的轨迹 经控制模块实现移位方向的控制 真值表 2 2 所 列 设置发球权拥有显示信号 s1 s2 控制模块使每两次交换发球权 加 减控制信号 D 由乒乓球到达 Y8 Y1 和击球信号 int1 int2 及发球U 权拥有信号 s1 s2 共同产生 真值表如表 2 3 所示 当球到达 Y8 或 Y1 时 参赛者没有及时击中 则球掉出桌外 加 减计数模 块停止计数 对方得一分 设置捡球信号 reset1 通过加 减计数模块的异步置数端实现捡球 当甲 方拥有发球权时捡球信号将球放到 Y1 乙方拥有发球权时将球放到 Y8 在控制模块对甲乙双方的得分进行检测 只要一方的得分达到 11 则一局 结束 设置裁判员复位信号 reset 在每局结束后将双方得分清零 由调节晶振产生的时钟脉冲信号的频率 可以调节球的运动速度 表 2 2 加 减计数译码显示真值表 时钟加 减控制计数器输出译码器输出 CLK DUQ3Q2Q1Q0Y8Y7Y6Y5Y4Y3Y2Y1 0000100000001 0001000000010 0001100000100 0010000001000 0010100010000 0011000100000 0011101000000 0100010000000 1011101000000 1011000100000 1010100010000 1010000001000 1001100000100 1001000000010 1000100000001 表 2 3 加减控制信号的产生 Y8Y1Int1Int2S1S2 DU 100 011 01 0100 硬件系统示意图如下所示 图 2 4 硬件系统示意图 3 3 乒乓球比赛游戏机的实现乒乓球比赛游戏机的实现 3 13 1 乒乓球比赛游戏机的顶层原理图乒乓球比赛游戏机的顶层原理图 图 3 1 顶层原理图 原理图中输入部分分别是 复位按键 res 时钟 clk 1 startbutton 开始游 戏按键 serve 1 0 发球按键 serve0 代表甲发球 serve1 代表乙发球 int1 为甲击球按键 int2 为乙击球按键 原理图中输出部分分别是 8 个 LED 灯 light 1 8 数码管段选信号 A C D E F G H 数码管进入译码器 74ls138 的位选信号 sel 2 0 在数码管上显示了甲乙两个人的分数 3 23 2 系统各功能模块的实现系统各功能模块的实现 3 2 13 2 1 比赛控制模块比赛控制模块 图 3 2 比赛控制模块元件框图 按下 startbutton 按键之后游戏开始 当按下 serve0 时甲发球 8 个一排 的 LED 灯从左向右移动 从 1 到 8 当移动到第八个灯时按下 int2 按键代表 乙击中 则乙得 1 分 提前或未来的及击球则甲得分 当按下 serve1 时乙发球 从右向左移动 当移动到第一个灯时按下 int1 代表甲击中球 甲得 1 分 提前 或未来的击球及则乙得分 3 2 23 2 2 记分模块记分模块 图 3 3 记分模块元件框图 当选择好的信号 binaryin 4 1 进入 mydecoder 之后 相应的数据会选择 到相应的信号中 并且通过 bcdout1 4 1 和 bcdout2 4 1 输出相应的分数在 两位数码管上的显示数字 bcdout1 为十位数 bcdout2 为个位数 3 2 33 2 3 数码管显示模块数码管显示模块 图 3 4 显示模块框图 数码管显示模块主要是由两个模块组成分别为 setime 以及 deled 这两个模 块组成 setime 模块主要是将输入的分数进行动态扫描 显示到每一位数码管 的位选上 通过高速的扫描后会将每一位选手的分数很清晰的显示在数码管上 deled 模块是一个译码器的模块译码器的译码对照表 3 5 如下所示 表 3 5 译码器的译码对照表 显示的数字BCD 编码七段共阳数码管 000001000000 100011111001 200100100100 300110110000 401000011001 501010010010 601100000010 701111111000 810000000000 910010010000 XXXXX1111111 在程序中只考虑 0000 1001 即 0 9 的情况 将其转化为相应的七段显示 器的码字 其他情况不予考虑 4 4 各个模块的仿真以及系统仿真 分析各个模块的仿真以及系统仿真 分析 4 14 1 比赛控制模块仿真波形比赛控制模块仿真波形 图 4 1 比赛控制模块 4 24 2 记分模块仿真波记分模块仿真波形图形图 图 4 2 记分模块仿真波形图 表 4 3 对应分数的数码管显示 binaryinbcdout1bcdout2 000000000000 000100000001 001000000010 001100000011 010000000100 010100000101 011000000110 011100000111 100000001000 100100001001 101000010000 101100010001 在图 4 2 中可以看出当得分为 2 0010 分时对应的两位数码管则会显示 为 02 bcoudt1 0000 bcoudt2 0010 当分数超过 11 分时数码管的显示全为为 00 表 4 3 为具体的分数对应的数码管显示 4 34 3 管脚锁定管脚锁定 在验证出乒乓球比赛游戏机系统的功能之前 需要清楚实验箱与各个信号 之间的对应关系 参照资料得出本设计中各引脚的对应情况如下 图 4 4 各引脚的对应情况 4 44 4 系统的波形仿真系统的波形仿真 图 4 5 所示为甲方发球 在恰当的时候乙方接到球 当球回到甲方时 甲 方又接到球 但乙方再也没有接到球的仿真波形 图 4 5 乒乓球仿真波形一 图 4 6 所示为甲方两次发球 乙方没有接到球 甲方得到 2 分的仿真波形 图 图 4 6 乒乓球仿真波形二 图 4 7 所示为甲方发球 乙方提前击球的情况 此时 甲方得一分 图中 还显示了甲方发球 乙方在规定的时刻没有接到球的情况 此时 甲方又得一 分 图 4 7 乒乓球仿真波形三 图 4 8 所示为当清零信号按下时 得分清零 又开始新一局游戏 图 4 8 乒乓球仿真波形四 4 54 5 显示结果的几种情况显示结果的几种情况 图 4 9 验证结果 1 图 4 10 验证结果 2 图 4 11 验证结果 3 5 5 总结总结 5 15 1 设计制作过程中遇到的问题及解决方案设计制作过程中遇到的问题及解决方案 1 VHDL 语法使用不规范 当我们编写软件程序的时 遇到了编译错误 细心阅读 QuartusII 错误提 示和所编写的程序后发现是因为 VHDL 语法使用错误 最后经过翻阅 EDA 课本 熟悉相关语法后将其改正 2 动态扫描部分不清楚 以至无法实现得分显示功能 起初以为每个数码管的引脚都要锁定 不知该怎样锁定四个数码管的引脚 后来想起曾经做过的数码管显示控制系列最终完成了该部分 3 引脚锁定不完整 最终编译无法通过 处理了之前出现的几个问题后 在最后编译时未通过 细致查看了错误提 示 发现是个别管脚未锁定的原因 我们最终把各个管脚锁定号码一一检查了 一遍 从而通过了编译 5 25 2 本设计有以下几个可以改进的地方本设计有以下几个可以改进的地方 1 可以在甲乙两位得分的数码管显示中间在用一个显示 这个符号 2 通过适当添加几种语音芯片 就可以在不同的情况下发出美妙的声响 能为比赛增添不少乐趣 3 在现有设计基础上使用无线电或红外技术 还可以使本项目升级为无线 智能乒乓球游戏机 附附 录录 游戏控制模块的游戏控制模块的 VHDLVHDL 程序程序 library ieee use ieee std logic 1164 all use ieee std logic arith all use ieee std logic unsigned all entity compete is port reset in std logic clk 1 in std logic startbutton in std logic serve in std logic vector 1 downto 0 int1 int2 in std logic light out std logic vector 1 to 8 counta countb out std logic vector 3 downto 0 end compete architecture one of compete is Type pingpong is waitserve light1on ballmoveto2 allow2int light8on ballmoveto1 al low1int signal state pingpong signal i integer range 0 to 8 signal count1 count2 count3 count4 std logic vector 3 downto 0 0000 begin process clk 1 begin if reset 1 then i 0 count1 0000 count2 0000 count3 0000 count4 0000 elsif clk 1 event and clk 1 1 then if count1 1011 then i 0 count1 0000 count2 0000 count3 count3 1 elsif count2 1011 then i 0 count1 0000 count2 0000 count4 count4 1 elsif startbutton 0 then i 0 count1 0000 count2 0000 count3 0000 count4 case serve is when 01 i 1 state i 8 statei ii 2 if int2 1 then i 0 count1 count1 1 state waitserve else state i 7 if int1 1 then i 0 count2 count2 1 state waitserve else state if int1 1 then i 0 count2 count2 1 state waitserve elsif i 2 then i 1 state allow1int else i if int2 1 then i 0 count1 count1 1 state waitserve elsif i 7 then i 8 state allow2int else i if int1 1 then i 2 state ballmoveto2 else count2 count2 1 i 0 state if int2 1 then i 7 state ballmoveto1 else count1 count1 1 i 0 state waitserve end if end case end if end if end process counta count1 countb count2 light 10000000 when i 1 else 01000000 when i 2 else 00100000 when i 3 else 00010000 when i 4 else 00001000 when i 5 else 00000100 when i 6 else 00000010 when i 7 else 00000001 when i 8 else 00000000 end one 记分模块的记分模块的 VHDLVHDL 程序程序 library ieee use ieee std logic 1164 all use ieee std logic arith all use ieee std logic unsigned all entity mydecoder is port binaryin in std logic vector 4 downto 1 bcdout1 out std logic vector 4 downto 1 bcdout2 out std logic vector 4downto 1 end mydecoder architecture m of mydecoder is signal tembinaryin std logic vector 4 downto 1 begin process binaryin begin tembinaryin bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0000 bcdout2 bcdout1 0001 bcdout2 bcdout1 0001 bcdout2 bcdout1 0000 bcdout2 0000 end case end process end m 动态扫描模块的动态扫描模块的 VHDLVHDL 程序程序 library ieee use ieee std logi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招商银行襄阳市襄城区2025秋招笔试专业知识题专练及答案
- 浦发银行杭州市临平区2025秋招结构化面试经典题及参考答案
- 浦发银行乌鲁木齐市新市区2025秋招笔试英文行测高频题含答案
- 民生银行天津市武清区2025秋招结构化面试经典题及参考答案
- 平安银行杭州市拱墅区2025秋招笔试性格测试题专练及答案
- 平安银行无锡市惠山区2025秋招半结构化面试15问及话术
- 民生银行福州市马尾区2025秋招笔试热点题型专练及答案
- 光大银行金华市婺城区2025秋招笔试专业知识题专练及答案
- 华夏银行昆明市西山区2025秋招笔试价值观测评题专练及答案
- 平安银行沈阳市沈河区2025秋招金融科技岗笔试题及答案
- 2025年全国水利行业安全生产竞赛测试题及答案
- 期货从业资格之期货投资分析从业资格考试真题及答案详解【网校专用】
- 危重新生儿救治知识竞赛试题及答案
- 2025年新人教版语文三年级上册全册教学课件
- 《数字图像处理基础》课件
- 2025年全国质量月主题宣讲课件
- 无取向硅钢热轧板翘皮缺陷成因及控制措施研究
- 煤矿机电安全事故培训课件
- 施工升降机安全技术培训材料
- 安全培训反三违课件
- (9月3日)铭记历史珍爱和平-纪念中国人民抗日战争暨世界反法西斯战争胜利80周年爱国主义主题教育班会课件
评论
0/150
提交评论