河北科技大学EDA课设

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北科技大学

课程设计报告

学生姓名:学号:

专业班级:

课程名称:EDA技术

学年学期: 2 0 12 —2 013 学年第 2 学期指导教师:

2 0 1

3 年6 月

课程设计成绩评定表

目录

1.设计题目 (1)

2.设计目的 (1)

3.设计内容

4.设计原理

5.实现方法

6.编译与波形仿真

7.设计改进

8.设计体会

9.附录

引言

EDA(Electronic Design Automation,电子设计自动化)技术是现代电子工程领域的一门新技术。它提供了基于计算机和信息技术的电路系统设计方法。EDA技术的发张和推广应用极大地推动了电子工业的发展。EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译,逻辑化简,逻辑分割,逻辑综合及优化,逻辑布局布线,逻辑仿真,直至对于特定目标芯片的适配编译,逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果[1]。近年来,集成电路制造技术的快速发展, 一方面促进了相应设计技术的发展, 另一方面也对设计技术提出了更高的要求。当前集成电路设计, 面临着功能强、性能好、规模大、成本低、设计周期短等一系列要求和挑战, 这些要求和挑战引起了集成电路设计方法的全面革新。当今, 以行为设计为主要标志的新一代数字系统设计理论已形成并得到发展。在集成电路的数字系统的系统级设计中, VHDL 硬件描述语言构造的描述模型优化设计, 有利于高效利用设计空间, 实现设计结构的精确分析, 使芯片资源得以充分利用。

1.设计题目

基于VHDL的乒乓球游戏机。

2.设计目的

本文应用状态机,设计了一个乒乓球游戏机的状态机。状态机的实现是符合人的思维逻辑的,且简单明了。

(1)通过该EDA课程设计,结合计算机科学的理论、抽象和设计三种形态,进一步掌握各功能部件的工作原理和逻辑实现,熟悉乒乓球游戏机的基本工作原理。

(2)通过该EDA课程设计的学习,总结课程的学习内容,运用所学的数字电路以及计算机组成和状态机的基本原理、基本知识和基本技巧,解决某一个具体的实际问题,培养综合分析和解决问题的能力。

(3)为今后分析、设计、开发以及使用计算机软件设计打下坚实的基础。

3.设计内容

本文设计的主要部分是一个乒乓球游戏机的状态机。利用VHDL,不需要按照传统的设计方法进行烦琐的状态分配、绘制状态、化简状态方程等,就可以简单地根据MDS图直接对状态机进行描述。该设计可以实现的功能如下:

(1)该设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。

(2)用8个LED排成一条直线,以中点为界,两人乒乓游戏机是用8个发光二极管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定方向移动来表示球的运动,在游戏机的两侧各设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。

(3)当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。当甲方按动乒乓球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方方向依次点亮,代表乒乓球的移动。当球过网后按照设计者规定的球位乙方就可以击球。若乙方提前击球或者未击到球,则甲方得分。然后重新发球进行比赛。

(4)设置自动记分电路,甲、乙双方各用7段译码管进行记分显示,每计满11分为1局,然后记分清零,重新开始新一局比赛。

4.设计原理

根据乒乓球比赛的过程和规则,首先游戏开始,如果一方非正确击球则另一方加分,当分数大于11时获胜,游戏结束,我们把设计流程规定如图4.1所示。

图4.1设计流程图

状态机设置了7个状态,分别是“等待发球状态(waitserve)”、“第一盏灯亮状态(light1on)”、“第八盏灯亮状态(light8on)”、“球向乙移动状态(ballmoveto2)”、“球向甲移动状态(ballmoveto1)”、“允许甲击球状态(allow1hit)”、“允许乙击球状态(allow2hit)”。这是该程序中起决定作用的七个状态。开始的时候处于“等待发球状态”,若甲发球则状态转移到“第一盏灯亮状态”,若乙发球则转移到“第八盏灯亮状态”,具体说明以甲球为例。

若发球后乙没有提前击球(规定球移动到对方第一个发光二极管时允许击球),那么状态机从“第一盏灯亮状态”转移到“球向乙移动状态”。若在“球向乙移动状态”乙仍然没有提

前击球,状态就转移到“允许乙击球状态”,在此状态下,如果乙击球了,那么状态就转移到“球向甲移动状态”。在“第一盏灯亮状态”,“球向乙移动状态”中,如果乙击球了,就算提前击球,这样甲得分,状态转移到“等待发球状态”等待发球,“球向甲移动状态”之后的过程和前面的过程只不过是甲乙角色的调换而已。状态转移规则都是一样的。图4.2给出了乒乓球游戏机的原理图。

图4.2 乒乓球游戏机原理图

5.实现方法

(1)乒乓球游戏机实体的设计

设计该乒乓球游戏机的输入/输出端口。首先考虑输入端口,一般都应该设置一个异步置位端口reset,用于在系统不正常时回到初始状态;两个发球输入端serve1和serve2,逻辑‘1’分别表示甲方和乙方的发球;两个击球输入端hit1和hit2,逻辑‘1’分别表示甲击球和乙击球;一个开始游戏按钮startbutton,处于逻辑‘1’表示可以游戏;还得有一个时钟输入端口clk。

其次考虑输出端口,芯片应该有8个输出端口来控制8个发光二极管,输出逻辑‘1’即输出一个高电平,可以使发光二极管点亮;另外,要直观地表示双方的得分,就得用到数码管和译码器,每方用到2个,可以表示0~11的数字,每个数码管译码器需要芯片的4个输出端口来控制,总共需要16个输出端口。实体的设计如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

相关文档
最新文档