当前位置:文档之家› 0920085108刘文凭毕业论文

0920085108刘文凭毕业论文

存档编号

赣南师范学院科技学院学士学位论文基于FPGA的乒乓球游戏

机设计

系别:数信系

届别: 09届

专业: 电子信息工程

学号: 0920085108

姓名: 刘文凭

指导老师:吴强

完成日期: 2013、5、6

目录

内容摘要 (1)

关键词 (1)

Abstract. (1)

Key words (1)

1引言 (2)

2 开发工具简介 (2)

2.1硬件描述语言—VHDL概述 (3)

2.1.1VHDL语言的特点 (3)

2.1.2基于VHDL的自顶向下设计 (4)

2.2 Quartus II开发软件概述 (5)

2.3本章小结 (6)

3基于FPGA的乒乓球游戏机设计与实现 (6)

3.1总体设计 (6)

3.2电路总原理图 (7)

3.3时钟分频设计 (9)

3.4状态机设计 (9)

3.4.1状态机的7种状态及状态转移 (9)

3.4.2状态机/球台控制程序 (10)

3.5记分牌显示电路设计 (13)

3.6按键消抖、乒乓球路径显示电路设计 (14)

3.7顶层实体的描述 (15)

3.8本章小结 (16)

4系统的调试、仿真、下载、测试 (16)

4.1 调试FPGA (16)

4.2系统的编译、仿真 (16)

4.2.1系统编译 (16)

4.2.2系统仿真 (18)

4.3系统的适配、编程下载 (19)

4.4本章小结 (21)

5结论 (21)

参考文献 (22)

致谢 (23)

附件1:硬件实物图 (24)

附件2:程序清单 (25)

内容摘要:随着电子设计自动化技术的不断发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。本文设计了基于FPGA的乒乓球游戏机设计。用VHDL语言编程, VHDL是甚高速集成电路硬件描述语言。目前,VHDL已成为许多设计自动化工具普遍采用的标准化硬件描述语言。VHDL语言功能性强,覆盖面广,灵活性高,具有很好的实用性。本文详细的简述了乒乓球游戏机的工作原理,此乒乓球游戏机由状态机、记分器、译码显示器与按键去抖等部分所组成。通过对各部分编写VHDL程序,在QuartusⅡ软件上进行编译、仿真,最终在Altera公司的EP开发板上成功实现下载和调试。经过仿真和验证的结果表明,实现乒乓游戏机的基本功能,结果达到了设计的要求。

关键词:FPGA VHDL 乒乓游戏机状态机

Abstract:As electronic design automation technology continues to develop and expand the field of application, EDA technology in electronic information, communication, increasing the importance of the field of automatic control and computer applications. This design of the table tennis game design based on FPGA . Programming in VHDL language, VHDL is the very high speed integrated circuit hardware description language . At present, the VHDL design automation tool widely used by many standardized hardware description language. VHDL language feature is strong, wide coverage, high flexibility, good practicality. This article gave a detailed summary of table tennis video game works, the table tennis game by the state machine, a device, decoding machine parts such as monitor and press the key to shaking up. The sections written by VHDL program, compiled in the Quartus II software, simulation, final EP of Altera Corporation successfully downloaded and debugged on the Development Board. After simulation and verification of the results shows that achieving basic functionality of ping pong game, the result meets the design requirements.

Key words:FPGA VHDL Table tennis game machine State machine

1引言

EDA(Electronic Design Automation,电子设计自动化)技术是现代电子工程领域的一门新技术。它提供了基于计算机和信息技术的电路系统设计方法。EDA技术的发张和推广应用极大地推动了电子工业的发展。随着社会的进步和工业技术的发展,在电子线路设计领域中,设计自动化工具已经逐步为设计者所接受,成为主要的设计手段。目前,VHDL已成为许多设计自动化工具普遍采用的标准化硬件描述语言,掌握VHDL语言,用VHDL语言设计电子线路,是电子线路设计者必须掌握的基本技能。VHDL支持数字电路的开发环境,VHDL也支持各种设计方法:自顶向下、自底向上或混合的方法[1]。VHDL语言功能性强,覆盖面大,灵活性高,具有很好的实用性[2]。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏相应而出,成为大家的娱乐节目。因此设计出了关于两人的乒乓球游戏。

乒乓游戏机是由9个发光二极管代表乒乓球台,中间的3个发光二极管兼作球网,用点亮的发光二极管按一定方向移动来表示球的运动。在游戏机的两侧各设置两个开关,甲乙二人按乒乓球比赛规则来操作开关。此设计由译码显示器、记分器、状态机/球台控制器与按键去抖等部分组成。设计总体要求:乒乓机能模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。其主要任务和要求如下:

(1) 使用乒乓球的甲乙双方在不同的位置发球或击球。

(2) 乒乓球的位置和移动方向由灯亮及依次点亮的方向决定。球速为0.5s-1s移动1位。球过网,接球方向可击球,提前击球或没击球均判失分。

(3) 比赛按11分为一局,甲乙双方应设置记分牌,任何一方先记满11分,为胜出,按RESET复位重新开局。

(4) 基于VHDL的乒乓球程序设计及软件编译与调试、仿真。

2 开发工具简介

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20

世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域中,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。2.1硬件描述语言—VHDL概述

VHDL是Very high speed integrated circuit Hardware Description Language 的缩写,即“甚高速集成电路硬件描述语言”,最初由美国国防部和INTER、IBM、TI公司联合开发,1987年成为IEEE标准,即IEEE1076标准(俗称87版VHDL)[3]。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

2.1.1 VHDL语言的特点

VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点[4]:

(1)VHDL语言功能强大,设计方式多样

VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,

既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。

(2)VHDL 语言具有强大的硬件描述能力

VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。

(3)VHDL语言具有很强的移植能力

VHDL 语言很强的移植能力主要体现在对于同一个硬件电路的VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。

(4)VHDL语言的设计描述与器件无关

采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。

(5)VHDL语言程序易于共享和复用

VHDL 语言采用基于库( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

2.1.2基于VHDL的自顶向下设计

在电子设计领域,自顶向下的设计方法只有在EDA技术得到快速发展和成熟应用的今天才成为可能。自顶向下设计方法的有效应用必须基于功能强大的EDA工具,具备集系统描述、行为描述和结构描述功能为一体的VHDL 硬件描述语言,以及先进的ASIC制造工艺和FPGA开发技术。当今,自顶向下的设计方法已经是EDA技术的首选设计方法,是ASIC或FPGA开发的主要设计手段。

自顶向下的设计方法使系统被分解为各个模块的集合之后,可以对设计的每个独立模块指派不同的工作小组,其在不同地点工作,分属不同的单位,最后将不同模块集成为一个系统模型,并对其进行综合测试与评价。

自顶向下设计流程的框图说明如图1所示:

图1自顶向下的设计流程图

2.3 Quartus II开发软件概述

Quartus II是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP 应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer 的设计辅助工具,集成了SOPC和HardCopy设计流程。

Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括[5]:

(1)可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;

(2)芯片(电路)平面布局连线编辑;

(3)LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;

(4)功能强大的逻辑综合工具;

(5)完备的电路功能仿真与时序逻辑仿真工具;

(6)定时/时序分析与关键路径延时分析;

(7)可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;

(8)支持软件源文件的添加和创建,并将它们链接起来生成编程文件;

(9)使用组合编译方式可一次完成整体设计流程;

(10)自动定位编译错误以及高效的期间编程与验证工具;

(11)可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件也能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。

2.4本章小结

本章主要介绍了系统的开发工具,对硬件的描述语言VHDL的特点做了基本介绍,简明了VHDL的自顶向下设计的流程。并对QuartusII开发软件进行了概述。

3基于FPGA的乒乓球游戏机设计与实现

3.1总体设计

乒乓游戏机的组成示意图如2所示。

本设计中的乒乓游戏机是由9个发光二极管代表乒乓球台,中间3个发光二极管兼作球网,用点亮的发光二极管按一定方向移动来表示球的运动方向。在游戏机的两侧各设置两个开关:hit1、hit2,甲乙二人按乒乓球比赛规则来操作开关。甲开始发球时,靠近甲方的第一个发光二极管亮,然后发

光二极管由甲向乙依次点亮,代表乒乓球的移动。当球过网后按规定的球位,乙方就可以击球。若乙方提前击球或没有击中球,则判乙方失分,甲方的记分牌自动加一分。同理,当乙方开始发球时,点击hit1击球。然后重新发球,比赛继续进行。比赛一直要进行到一方记分牌达到11分,该局才结束。

本设计由译码显示器、按键去抖、状态机/球台控制器等部分所组成。系统的整体设计结构图如图3所示。

图2 乒乓球游戏机的组成示意图

图3 系统结构图

3.2电路总原理图

本设计由+5V供电,输出+3.3V的供电模块、50MHz有源晶振模块、AS 下载端口拨码开关控制LED灯显示模块、数码管计分显示模块及芯片

EP2C5T144C8N 组成。如下图4所示:

图4 乒乓球游戏机设计总原理图

A S D I

n C S I /O 3I /O 4+3.3V

G N D I /O 7

I /O 8I /O 9T D O T M S

T C K T D I D A T A D C L K n C E C L K I N I /O 18G N D n C O N

I /O 21

I /O 22+3.3V I /O 24

I /O 25I /O 26I /O 27I /O 28

+3.3V I /O 30

I /O 31I /O 32G N D G N D V C C G N D

3.3时钟分频设计

分频是将一个给定的频率较高的数字输入信号经过适当的处理而产生一个或数个频率较低的数字输出信号。由于开发板的时钟信号频率是50MHz,直接作为二极管点亮频率和数码管扫描频率过大,不符合设计要求,如下图5所示为50MHz有源晶振电路图。因此需将时钟信号分频,分频成两个时钟信号分别给发光二极管作为移动速度和数码管的显示信号,分别设置分频系数为25000000、5000000,分频后的信号频率为1Hz、,此时发光二极管的移动速度为1s,符合设计要求。

图5 50MHz有源晶振电路图

部分时钟分频源程序:

p1:process(count,clk) -- 25000000 倍分频,发光二极管

begin

if clk'event and clk='1' then count<=count+1;

if count=25000000 then tmp<='1'; count<=0; else tmp<='0';

end if; end if; end Process;

p2:process(couny) -- 5000000倍分频,数码管

begin

if clk'event and clk='1' then couny<=couny+1;

if couny=5000000 then tmg<='1'; couny<=0; else tmg<='0';

end if; end if; end Process;

3.4状态机设计

3.4.1状态机的7种状态及状态转移

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

若发球后甲没有提前击球----规定球移动到对方第一个发光二极管时允许击球,那么状态机从“第七盏灯亮状态”转移到“球向甲移动状态”。若在“球向甲移动状态”甲仍然没有提前击球,状态就转移到“允许甲击球状态”,在此状态下,如果甲击球了,那么状态就转移到“球向乙移动状态”。在“第七盏灯亮状态”,“球向甲移动状态”中,如果甲击球了,就算提前击球,这样甲得分,状态转移到“等待发球状态”等待发球,“球向乙移动状态”之后的过程和前面的过程只是甲乙角色的调换。状态转移规则都是一样的。

表1 状态机的7种状态及含义

结合表1,从图6乒乓球游戏机的MDS图中很清楚地看出乒乓游戏机比赛过程中球的移动情况,及加分方法图7乒乓球游戏机转移图,还可以初步了解到本状态机设计的基本思路。

3.4.2状态机/球台控制程序

状态机是种很重要的时序电路,也是本设计的核心部件。状态机属于时序电路范畴,实现一个控制功能更为方便,并提高了控制速度[6]。在本设计中,状态机用两个信号表示状态:STATE表示当前状态,I表示下一个状态。此状态机由两个进程构成,状态机的输入/输出引脚的作用如表2所示。其中SCORE11[6..0]、SCORE12[6..0]、SCORE21[6..0]、SCORE22[6..0]用七段BCD 码译码器显示得分情况,而SCORE1、SCORE2用二进制进行加分,由记分器反馈回来。

图6 乒乓球游戏机的MDS图表2 输入/输出引脚的作用

图7 乒乓游戏机状态转移图

状态机的主要部分源程序如下:

p3:process(tmp) --状态机部分

begin

case state is

when waitserve => --等待状态下进程处于等待发球状态

case serve is

when "00" => i<=0;

when "10" => i<=1;state<=light1on; when "01" => i<=7;state<=light7on;

when "11" => i<=0; when others => i<=0;

end case;

when light1on => i<=2; --light1on状态下进程处于第一盏灯亮状态

if hit2='1' then i<=0; count1<=count1+1;state<=waitserve;

else state<=ballmoveto2;

end if;

when light7on => i<=6; --light7on状态下进程处于第八盏灯亮状态

if hit1='1' then i<=0; count2<=count2+1;state<=waitserve;

else state<=ballmoveto1;

end if;

when ballmoveto1 => --进程处于球向2移动状态

if hit1='1' then i<=0; count2<=count2+1;state<=waitserve;

elsif i=2 then i<=1; state<=allow1hit;

else i<=i-1;

end if;

when ballmoveto2 => --进程处于球向1移动状态

if hit2='1' then i<=0; count1<=count1+1;state<=waitserve;

elsif i=6 then i<=7; state<=allow2hit;

else i<=i+1;

end if;

when allow1hit => --进程处于允许1击球状态

if hit1='1' then i<=2; state<=ballmoveto2;

else count2<=count2+1;i<=0; state<=waitserve;

end if;

when allow2hit => --进程处于允许2击球状态

if hit2='1' then i<=6;state<=ballmoveto1;

else count1<=count1+1;i<=0; state<=waitserve;

end if; end case;

end if; end if;

end process;

end one;

3.5记分牌译码显示电路设计

数码管的动态扫描显示就是指我们采用分时的方法,轮流控制各个显示器的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感[7]。如图8数码管显示电路

图,图中1K 电阻起限流作用,保护发光二极管。

图8 数码管显示图

3.6按键去抖、乒乓球路径显示电路设计

乒乓球游戏机用按键控制击、发球以及开始游戏键,当甲(开关

3)发球,LED 灯由左向右依次点亮(D1、D6常亮);到D9时,乙(开关6)击球,LED 灯向甲移动。同理,当乙发球,点甲(开关5)击球。如图9按键控制LED 灯。其按键闭合与释放瞬间,输入的信号会有毛刺。如果不进行消抖处理,系统会将这些毛刺误以为是用户的另一次输入,导致系统的误操作。防抖电路有很多种,最简单、最容易理解的就是计数法。其原理是对键值进行计数,当某一键值保持一段时间不改变时(计数器达到一定值后),才确认它为有效值;否则将其判为无效键值,重新对键值进行计算[8]。

P I N _142

P I N _139

图9 按键控制LED 灯

基于计数法的防抖电路部分源程序:

p1:process(pre,nex,din) --按键去抖状态机

begin

case pre is

when s0=>dout<='1'; if din='1' then nex<=s0;

else nex<=s1; end if;

when s1=>dout<='1'; if din='1' then nex<=s0;

else nex<=s2; end if;

when s2=>dout<='1'; if din='1' then nex<=s0;

else nex<=s3; end if;

when s3=>dout<='0'; if din='1' then nex<=s0;

else nex<=s3;

end if; end case;

end process; end one;

3.7顶层实体的描述

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

实体部分源程序如下:

entity game is --实体部分

port(reset: in std_logic; --reset是记分牌清零信号

clk: in std_logic;

start: in std_logic; --Start控制游戏是否开始

serve: in std_logic_vector(0 to 1); --发球信号

hit1,hit2: in std_logic; --击球键

light: out std_logic_vector(0 to 6); --发光二极管的输出信号

tmp: buffer std_logic; --tmp,tmg为输入输出类型,作为分频后的信号,供给数码管扫描和发光二极管点亮使用

tmg: buffer std_logic;

score11,score12,score21,score22: out std_logic_vector(0 to 6));

end game;

元件例化部分源程序如下:

u0: myd port map(count1,score11,score12);

u1: myd port map(count2,score21,score22);

u2: qdd port map(clk,start,ht,dt);

3.8 本章小结

本章主要介绍了基于FPGA的乒乓球游戏机设计的模块及实现功能,其中包括时钟分频设计、状态机/球台控制器、记分牌译码显示器、按键去抖和乒乓球路径显示电路、顶层实体描述的介绍。全面的简述了系统的软硬件结合,以及通过软硬件结合时序了设计的功能。

4系统的调试、仿真、下载、测试

4.1 调试FPGA

在调试FPGA电路时要遵循一定的原则和技巧,才能减少调试时间,避免误操作损坏电路。一般情况下,可以参考以下步骤进行FPGA硬件系统的调试[9]。

(1)首先在焊接硬件电路时,只焊接电源部分。使用万用表进行测试,排除电源短路等情况后,上电测量电压是否正确。

(2)然后连接好FPGA及相关的下载电路。再次测量电源地之间是否有短路现象,上电测试电压是否正确,然后将手排除静电后触摸FPGA有无发烫现象。

(3)以上步骤均通过后,将电路板上电运行。然后把下载电缆接到JTAG 接口上,在主机中运行Quartus II软件,并打开Programmer编程器,单击其中的“Auto Detect”按钮进行FPGA下载链路自动检测。若能正确检测到FPGA,说明配置电路是正确连接的。

(4)检查时钟电路、复位电路及数码管电路,向FPGA下载一个数码管跑马灯程序。若程序能够正确运行,说明FPGA已经可以正常工作了。

仿真:用modelsim等等仿真工具做仿真验证功能、时序的正确性。

硬件在线调试:一般采用JTAG电路协议结构,进行在线调试。

4.2系统的编译、仿真

4.2.1系统编译

顶层文件元件连接GAME.GDF,模块LIGHT是状态机/球台控制,当复位键为低电平时,当甲方或乙方开始发球,模块light的发光二极管L0、L1、L2、L3(L4、L5)L6、L7、L8在下降沿来临时正向或反向依次点亮,当有

方得分时,加分情况将通过四个数码管来显示,并将其反馈回状态机模块,当有一方先达到11时,其游戏结束。

在按键与FPGA相连的引脚需要设置下拉电阻(300~1000Ω即可)以便在没有按键按下时将输入也稳定在低电平,否则系统会不稳定。

用Quartus II编辑程序并存盘,步骤如下[10]:

(1)设置顶层文件:在编译系统文件GAME.GDF之前,需要设置该文件为顶层文件Project(工程文件)。选择菜单“File”→ “Project”→ “Set Project to Current File”,当前的工程,即被设为GAME。首先通过选择“Quatrus II” → “Compiler”菜单,进入编辑窗。

(2)选择目标器件及锁定引脚:先选择用编程的目标芯片。选择菜单“Assign”→“Device…”在弹出的对话框中的“Device Family”下拉栏中选择“Cyclone II”,然后在“Devices”列表框中选择芯片型号“EP2C5T144C8N”,按“OK”。

选择菜单“Assign” →“Pin/Location/Chip…”弹出一个对话框来设置引脚。在“Pin”右边的下拉栏中选择芯片引脚号,然后按下“Add”按钮,就会在下面的子窗口出现引脚设定说明语句,当前的一个引脚设置就加到了列表中。如果是总线形式的引脚名,也应分别写出总线中的每一个信号引脚设定,顶层文件引脚锁定文件为GAME.PPN。如图10所示为编译仿真成功图。

图10 编译仿真成功图

相关主题
文本预览
相关文档 最新文档