数字逻辑综合实验报告
- 格式:pdf
- 大小:747.58 KB
- 文档页数:23
一、实验目的1. 理解数字逻辑的基本概念和基本原理。
2. 掌握数字逻辑电路的基本分析方法,如真值表、逻辑表达式等。
3. 熟悉常用数字逻辑门电路的功能和应用。
4. 提高数字电路实验技能,培养动手能力和团队协作精神。
二、实验原理数字逻辑电路是现代电子技术的基础,它主要研究如何用数字逻辑门电路实现各种逻辑功能。
数字逻辑电路的基本元件包括与门、或门、非门、异或门等,这些元件可以通过组合和连接实现复杂的逻辑功能。
1. 与门:当所有输入端都为高电平时,输出端才为高电平。
2. 或门:当至少有一个输入端为高电平时,输出端为高电平。
3. 非门:将输入端的高电平变为低电平,低电平变为高电平。
4. 异或门:当输入端两个高电平或两个低电平时,输出端为低电平,否则输出端为高电平。
三、实验内容1. 实验一:基本逻辑门电路的识别与测试(1)认识实验仪器:数字电路实验箱、逻辑笔、示波器等。
(2)识别与测试与门、或门、非门、异或门。
(3)观察并记录实验现象,分析实验结果。
2. 实验二:组合逻辑电路的设计与分析(1)设计一个简单的组合逻辑电路,如加法器、减法器等。
(2)根据真值表列出输入输出关系,画出逻辑电路图。
(3)利用逻辑门电路搭建电路,进行实验验证。
(4)观察并记录实验现象,分析实验结果。
3. 实验三:时序逻辑电路的设计与分析(1)设计一个简单的时序逻辑电路,如触发器、计数器等。
(2)根据电路功能,列出状态表和状态方程。
(3)利用触发器搭建电路,进行实验验证。
(4)观察并记录实验现象,分析实验结果。
四、实验步骤1. 实验一:(1)打开实验箱,检查各电路元件是否完好。
(2)根据电路图连接实验电路,包括与门、或门、非门、异或门等。
(3)使用逻辑笔和示波器测试各逻辑门电路的输出,观察并记录实验现象。
2. 实验二:(1)根据实验要求,设计组合逻辑电路。
(2)列出真值表,画出逻辑电路图。
(3)根据逻辑电路图连接实验电路,包括所需逻辑门电路等。
数字逻辑实验报告1篇一:数字逻辑实验报告实验一 TTL门电路的逻辑功能测试一、实验目的1、掌握TTL器件的使用规则。
2、掌握TTL集成与非门的逻辑功能。
3、掌握TTL集成与非门的测试方法。
二、实验原理TTL集成电路的输入端和输出端均为三极管结构,所以称作三极管、三极管逻辑电路(Transistor -Transistor Logic )简称TTL电路。
54 系列的TTL电路和74 系列的TTL电路具有完全相同的电路结构和电气性能参数。
所不同的是54 系列比74 系列的工作温度范围更宽,电源允许的范围也更大。
74 系列的工作环境温度规定为0—700C,电源电压工作范围为5V±5%V,而54 系列工作环境温度规定为-55—±1250C,电源电压工作范围为5V±10%V。
54H 与74H,54S 与74S 以及54LS 与74LS 系列的区别也仅在于工作环境温度与电源电压工作范围不同,就像54 系列和74 系列的区别那样。
在不同系列的TTL 器件中,只要器件型号的后几位数码一样,则它们的逻辑功能、外形尺寸、引脚排列就完全相同。
TTL 集成电路由于工作速度高、输出幅度较大、种类多、不易损坏而使用较广,特别对我们进行实验论证,选用TTL电路比较合适。
因此,本实训教材大多采用74LS(或74)系列TTL 集成电路,它的电源电压工作范围为5V±5%V,逻辑高电平为“1”时≥2.4V,低电平为“0”时≤0.4V。
它们的逻辑表达式分别为:图 1.2.1 分别是本次实验所用基本逻辑门电路的逻辑符号图。
图 TTL 基本逻辑门电路与门的逻辑功能为“有0 则0,全1 则1”;或门的逻辑功能为“有1则1,全0 则0”;非门的逻辑功能为输出与输入相反;与非门的逻辑功能为“有0 则1,全1 则0”;或非门的逻辑功能为“有1 则0,全0 则1”;异或门的逻辑功能为“不同则1,相同则0”。
三、实验设备与器件1、仪器数字逻辑实验箱2、器件74LS00 二输入端四与非门四、实验内容及实验步骤(包括数据记录)1、测试74LS00(四2输入端与非门)逻辑功能将74LS00正确接入DIP插座,注意识别1脚位置(集成块正面放置且缺口向左,则左下角为1脚),输入端接逻辑电平输出插口,输出端接逻辑电平显示,拨动逻辑电平开关,根据LED发光二极管亮与灭,检测非门的逻辑功能,结果填入下表中。
一、实验目的1. 理解数字逻辑的基本概念和基本原理。
2. 掌握常用数字逻辑门的功能和特性。
3. 学会使用数字逻辑电路设计简单功能电路。
4. 提高实验操作能力和分析问题、解决问题的能力。
二、实验器材1. 数字逻辑实验箱2. 逻辑门电路芯片3. 逻辑测试笔4. 连接线5. 逻辑分析仪6. 示波器三、实验原理数字逻辑是研究数字信号和数字系统的一门学科。
它主要研究数字电路的设计、分析和实现。
数字逻辑的基本元件包括逻辑门、触发器、寄存器等。
本实验主要涉及以下几种逻辑门:1. 与门(AND):只有当所有输入端都为高电平时,输出才为高电平。
2. 或门(OR):只要有一个输入端为高电平,输出就为高电平。
3. 非门(NOT):输入为高电平时,输出为低电平;输入为低电平时,输出为高电平。
4. 异或门(XOR):只有当两个输入端电平不同时,输出才为高电平。
四、实验内容1. 逻辑门功能测试(1)测试与门、或门、非门、异或门的功能。
(2)使用逻辑测试笔和逻辑门电路芯片,观察输入和输出之间的关系。
2. 组合逻辑电路设计(1)设计一个简单的组合逻辑电路,实现二进制加法功能。
(2)使用逻辑门电路芯片和连线,搭建电路。
(3)测试电路功能,验证其正确性。
3. 时序逻辑电路设计(1)设计一个简单的时序逻辑电路,实现计数功能。
(2)使用触发器、寄存器等时序逻辑元件,搭建电路。
(3)测试电路功能,验证其正确性。
五、实验步骤1. 准备工作(1)检查实验器材是否齐全,确保实验顺利进行。
(2)阅读实验指导书,了解实验原理和步骤。
2. 逻辑门功能测试(1)将逻辑门电路芯片插入实验箱。
(2)根据实验指导书,连接输入和输出端口。
(3)使用逻辑测试笔,观察输入和输出之间的关系。
3. 组合逻辑电路设计(1)根据设计要求,选择合适的逻辑门。
(2)使用连线,搭建组合逻辑电路。
(3)测试电路功能,验证其正确性。
4. 时序逻辑电路设计(1)根据设计要求,选择合适的时序逻辑元件。
一、实验目的1. 理解数字逻辑的基本概念和原理;2. 掌握常用数字逻辑门的功能和特性;3. 学会组合逻辑电路和时序逻辑电路的设计方法;4. 培养动手能力和实际操作能力。
二、实验内容1. 常用数字逻辑门实验2. 组合逻辑电路实验3. 时序逻辑电路实验三、实验原理1. 数字逻辑门:数字逻辑门是构成数字电路的基本单元,主要包括与门、或门、非门、异或门、或非门、同或门等。
这些门电路具有不同的逻辑功能,可以根据需要组合成各种复杂的逻辑电路。
2. 组合逻辑电路:组合逻辑电路是由数字逻辑门组成的,其输出仅与当前输入有关,与电路历史状态无关。
常见的组合逻辑电路有编码器、译码器、加法器、乘法器等。
3. 时序逻辑电路:时序逻辑电路是由组合逻辑电路和存储器(如触发器)组成的,其输出不仅与当前输入有关,还与电路历史状态有关。
常见的时序逻辑电路有计数器、寄存器、移位寄存器等。
四、实验步骤1. 常用数字逻辑门实验(1)观察与门、或门、非门、异或门、或非门、同或门等逻辑门电路的输入输出关系;(2)根据实验要求,设计组合逻辑电路,并使用逻辑门实现;(3)测试电路,观察输入输出关系,验证电路功能。
2. 组合逻辑电路实验(1)设计编码器、译码器、加法器、乘法器等组合逻辑电路;(2)使用逻辑门实现电路,并连接到实验平台上;(3)测试电路,观察输入输出关系,验证电路功能。
3. 时序逻辑电路实验(1)设计计数器、寄存器、移位寄存器等时序逻辑电路;(2)使用逻辑门和触发器实现电路,并连接到实验平台上;(3)测试电路,观察输入输出关系,验证电路功能。
五、实验结果与分析1. 常用数字逻辑门实验通过观察和测试,验证了与门、或门、非门、异或门、或非门、同或门等逻辑门电路的输入输出关系,掌握了这些门电路的基本功能。
2. 组合逻辑电路实验通过设计、实现和测试编码器、译码器、加法器、乘法器等组合逻辑电路,掌握了组合逻辑电路的设计方法,提高了动手能力。
3. 时序逻辑电路实验通过设计、实现和测试计数器、寄存器、移位寄存器等时序逻辑电路,掌握了时序逻辑电路的设计方法,提高了实际操作能力。
一、实验背景数字逻辑是电子技术与计算机科学的基础课程,它研究数字电路的设计与实现。
为了加深对数字逻辑电路的理解,我们进行了本次实验,通过实际操作和仿真,验证数字逻辑电路的理论知识,并掌握数字逻辑电路的设计与实现方法。
二、实验目的1. 理解数字逻辑电路的基本原理和组成。
2. 掌握逻辑门电路、组合逻辑电路和时序逻辑电路的设计方法。
3. 通过实验验证数字逻辑电路的功能,提高动手能力和分析问题能力。
三、实验内容1. 逻辑门电路实验(1)实验目的:学习分析基本的逻辑门电路的工作原理,掌握与门、或门、非门等基本逻辑门电路的逻辑功能。
(2)实验步骤:①按照实验指导书的要求,连接实验电路;②根据输入信号,观察输出信号,验证逻辑门电路的逻辑功能;③记录实验结果,分析实验现象。
(3)实验结果与分析:实验结果显示,与门、或门、非门等基本逻辑门电路的逻辑功能符合预期。
通过实验,我们加深了对逻辑门电路工作原理的理解。
2. 组合逻辑电路实验(1)实验目的:掌握组合逻辑电路的设计方法,验证组合逻辑电路的功能。
(2)实验步骤:①根据实验要求,设计组合逻辑电路;②按照实验指导书的要求,连接实验电路;③根据输入信号,观察输出信号,验证组合逻辑电路的功能;④记录实验结果,分析实验现象。
(3)实验结果与分析:实验结果显示,设计的组合逻辑电路功能符合预期。
通过实验,我们掌握了组合逻辑电路的设计方法,提高了逻辑思维能力。
3. 时序逻辑电路实验(1)实验目的:掌握时序逻辑电路的设计方法,验证时序逻辑电路的功能。
(2)实验步骤:①根据实验要求,设计时序逻辑电路;②按照实验指导书的要求,连接实验电路;③根据输入信号,观察输出信号,验证时序逻辑电路的功能;④记录实验结果,分析实验现象。
(3)实验结果与分析:实验结果显示,设计的时序逻辑电路功能符合预期。
通过实验,我们掌握了时序逻辑电路的设计方法,提高了逻辑思维能力。
四、实验总结通过本次实验,我们完成了以下任务:1. 理解了数字逻辑电路的基本原理和组成;2. 掌握了逻辑门电路、组合逻辑电路和时序逻辑电路的设计方法;3. 通过实验验证了数字逻辑电路的功能,提高了动手能力和分析问题能力。
数字逻辑实验报告数字逻辑实验报告引言数字逻辑是计算机科学中的重要基础知识,通过对数字信号的处理和转换,实现了计算机的高效运算和各种复杂功能。
本实验旨在通过实际操作,加深对数字逻辑电路的理解和应用。
实验一:二进制加法器设计与实现在这个实验中,我们需要设计一个二进制加法器,实现两个二进制数的加法运算。
通过对二进制数的逐位相加,我们可以得到正确的结果。
首先,我们需要将两个二进制数输入到加法器中,然后通过逻辑门的组合,实现逐位相加的操作。
最后,将得到的结果输出。
实验二:数字比较器的应用在这个实验中,我们将学习数字比较器的应用。
数字比较器可以比较两个数字的大小,并输出比较结果。
通过使用数字比较器,我们可以实现各种判断和选择的功能。
比如,在一个电子秤中,通过将待测物品的重量与设定的标准重量进行比较,可以判断物品是否符合要求。
实验三:多路选择器的设计与实现在这个实验中,我们需要设计一个多路选择器,实现多个输入信号中的一路信号的选择输出。
通过使用多路选择器,我们可以实现多种条件下的信号选择,从而实现复杂的逻辑控制。
比如,在一个多功能遥控器中,通过选择不同的按钮,可以控制不同的家电设备。
实验四:时序电路的设计与实现在这个实验中,我们将学习时序电路的设计与实现。
时序电路是数字逻辑电路中的一种重要类型,通过控制时钟信号的输入和输出,实现对数据的存储和处理。
比如,在计数器中,通过时序电路的设计,可以实现对数字的逐位计数和显示。
实验五:状态机的设计与实现在这个实验中,我们将学习状态机的设计与实现。
状态机是一种特殊的时序电路,通过对输入信号和当前状态的判断,实现对输出信号和下一个状态的控制。
状态机广泛应用于各种自动控制系统中,比如电梯控制系统、交通信号灯控制系统等。
实验六:逻辑门电路的优化与设计在这个实验中,我们将学习逻辑门电路的优化与设计。
通过对逻辑门电路的布局和连接方式进行优化,可以减少电路的复杂性和功耗,提高电路的性能和可靠性。
一、实验名称数字逻辑实验二、实验目的1. 理解和掌握数字逻辑的基本概念和基本电路。
2. 学会使用逻辑门进行逻辑运算。
3. 掌握组合逻辑电路的设计方法。
4. 通过实验加深对数字逻辑理论知识的理解。
三、实验原理数字逻辑是研究数字信号及其处理的理论,主要内容包括逻辑门、组合逻辑电路、时序逻辑电路等。
本实验主要围绕组合逻辑电路展开,通过实验加深对组合逻辑电路的理解。
四、实验仪器及材料1. 数字逻辑实验箱2. 逻辑门芯片(如74LS00、74LS04等)3. 逻辑开关4. 逻辑灯5. 逻辑测试笔6. 连接线7. 实验指导书五、实验内容及步骤1. 组合逻辑电路的设计与验证(1)设计一个简单的组合逻辑电路,如异或门、与门、或门等。
(2)根据设计要求,选择合适的逻辑门芯片。
(3)将逻辑门芯片插入实验箱,连接输入端和输出端。
(4)使用逻辑开关设置输入信号,观察逻辑灯的输出情况,验证电路的正确性。
2. 译码器和数据选择器的设计与验证(1)设计一个译码器,将输入的二进制信号转换为输出信号。
(2)设计一个数据选择器,根据输入信号选择相应的输出信号。
(3)根据设计要求,选择合适的译码器和数据选择器芯片。
(4)将芯片插入实验箱,连接输入端和输出端。
(5)使用逻辑开关设置输入信号,观察逻辑灯的输出情况,验证电路的正确性。
3. 组合逻辑电路的应用(1)设计一个交通灯控制器,控制红、黄、绿三个信号灯的亮灭。
(2)设计一个密码锁,输入正确的密码后,输出信号使门锁打开。
(3)根据设计要求,选择合适的逻辑门芯片。
(4)将芯片插入实验箱,连接输入端和输出端。
(5)使用逻辑开关设置输入信号,观察逻辑灯的输出情况,验证电路的正确性。
六、实验结果与分析1. 组合逻辑电路的设计与验证通过实验,成功设计并验证了异或门、与门、或门等基本组合逻辑电路。
在实验过程中,了解了逻辑门的工作原理,掌握了组合逻辑电路的设计方法。
2. 译码器和数据选择器的设计与验证成功设计并验证了译码器和数据选择器电路。
竭诚为您提供优质文档/双击可除数字逻辑实验报告百度文库篇一:数字逻辑实验报告哈尔滨师范大学数字逻辑实验报告姓名:学号:年级:班级:专业:学期:计算机科学与信息工程学院实验报告学生姓名:学号:指导教师:实验1基本门电路的功能和特性及组合逻辑电路实验【实验名称】基本门电路的功能和特性及组合逻辑电路实验【实验学时】4学时【实验目的】掌握常用集成门电路的逻辑功能与特性掌握各种门电路的逻辑符号了解集成电路的外引线排列及其使用方法学习组合逻辑电路的设计及测试方法【实验内容】部分TTL门电路逻辑功能验证组合逻辑设计之全加器或全减器【实验设备】数字逻辑实验箱双踪示波器(记录波形时,应注意输入、输出波形的时间相位关系,在座标中上下对齐。
)集成电路:7400、7404、7432、7486【实验步骤】1)在实验箱上插入相应的门电路,并把输入端接实验箱的逻辑开关,输出端接发光二极管,接好电源正负极,即可进行逻辑特性验证实验。
将其逻辑特性制成表格。
2)用7400连接的电路如图1.1所示,其中m端输入hZ 级的连续脉冲,n端输入KhZ级的连续脉冲,x和Y接逻辑开关,在xY的四种输入组合下,用示波器观测A、b及F点的波形,并记录下来,写出F=f(m、n、x、Y)的逻辑表达式。
3)实验电路如图1.2所示,在x端加入KhZ级的数字信号,逻辑开关Ab为00、01、10、11四种组合下,用示波器观察输入输出波形,解释Ab对信号的控制作用。
4)用7486和7400搭出全加器或全减器电路,画出其电路图,并按照其真值表输入不同的逻辑电平信号,观察输出结果和进位/借位电平,记录下来。
思考题:第二题用7486和7400设计一个可控制的半加/半减电路,控制端x=0时,为半加器,x=1时为半减器。
搭出电路并验证其运算是否正确。
【实验原理】1)组合逻辑电路的分析:对已给定的组合逻辑电路分析其逻辑功能。
步骤:(1)由给定的组合逻辑电路写函数式;(2)对函数式进行化简或变换;(3)根据最简式列真值表;(4)确认逻辑功能。
数字逻辑实验报告心得数字逻辑是数字电路逻辑设计的简称,其内容是应用数字电路进行数字系统逻辑设计。
电子数字计算机是由具有各种逻辑功能的逻辑部件组成的,这些逻辑部件按其结构可分为组合逻辑电路和时序逻辑电路。
下面是本店铺带来的有关数字逻辑实验报告心得,希望大家喜欢数字逻辑实验报告心得1数字电路中,最基本的逻辑门可归结为与门、或门和非门。
实际应用时,它们可以独立使用,但用的更多的是经过逻辑组合组成的复合门电路。
目前广泛使用的门电路有TTL门电路和CMOS门电路。
1、TTL门电路TTL门电路是数字集成电路中应用最广泛的,由于其输入端和输出端的结构形式都采用了半导体三极管,所以一般称它为晶体管-晶体管逻辑电路,或称为TTL电路。
这种电路的电源电压为+5V,高电平典型值为3.6V(≥2.4V合格);低电平典型值为0.3V(≤0.45合格)。
常见的复合门有与非门、或非门、与或非门和异或门。
有时门电路的输入端多余无用,因为对TTL电路来说,悬空相当于“1”,所以对不同的逻辑门,其多余输入端处理方法不同。
(1)TTL与门、与非门的多余输入端的处理如图1-1为四输入端与非门,若只需用两个输入端A和B,那么另两个多余输入端的处理方法是:并联悬空通过电阻接高电平请点击输入图片描述图1-1 TTL与门、与非门多余输入端的处理并联、悬空或通过电阻接高电平使用,这是TTL型与门、与非门的特定要求,但要在使用中考虑到,并联使用时,增加了门的输入电容,对前级增加容性负载和增加输出电流,使该门的抗干扰能力下降;悬空使用,逻辑上可视为“1”,但该门的输入端输入阻抗高,易受外界干扰;相比之下,多余输入端通过串接限流电阻接高电平的方法较好。
(2)TTL或门、或非门的多余输入端的处理请点击输入图片描述如图1-2为四输入端或非门,若只需用两个输入端A和B,那么另两个多余输入端的处理方法是:并联、接低电平或接地。
并联低电平或接地请点击输入图片描述图1-2 TTL或门、或非门多余输入端的处理(3)异或门的输入端处理异或门是由基本逻辑门组合成的复合门电路。
数字逻辑实验报告姓名:学号:专业:实验一:SSI 组合逻辑电路分析与设计一、实验目的1. 掌握用SSI ( 小规模数字集成电路) 构成的组合逻辑电路的分析与测试方法;2. 掌握组合逻辑电路的设计方法。
二、预习要求1. 熟悉门电路工作原理及相应的逻辑表达式;2. 熟悉数字集成块的引线位置及引线用途;3. 预习组合逻辑电路的分析与设计步骤。
三、实验原理组合逻辑电路是最常见的逻辑电路之一, 其特点是在任一时刻的输出信号仅取决于该时刻的输入信号, 而与信号作用前电路原来所处的状态无关。
组合逻辑电路的设计步骤如图1所示。
图1 组合逻辑电路的设计步骤四、实验内容1、设有一个监视交通信号灯工作状态的逻辑电路如表1 表1 交通灯真值表所示,图中用R 、Y 、G 分别表示红、黄、绿三个灯,并规定灯亮时为1,不亮时为0 。
用L表示故障信号,正常工作时L 为0, 发生故障时L 为 1 。
按图2接线,验证理论分析结果, 并记入表1中。
五、仿真数据表2 在线仿真结果图2 电路原理图仿真结果如下图2所示。
六、仿真实验现象分析附:所用芯片引脚图7404引脚图7400引脚图7420引脚图实验二:集成触发器一、实验目的1. 熟悉并验证触发器的逻辑功能及相互转换的方法。
2.掌握集成JK 触发器逻辑功能的测试方法。
3. 复习触发器的基本类型及其逻辑功能。
4. 进一步熟悉用双踪示波器测量多个波形的方法。
二、预习要求1.复习触发器的基本类型及其逻辑功能。
2. 掌握JK触发器的逻辑功能及相互转换的方法。
三、实验原理按触发器的逻辑功能分,有RS触发器,JK触发器,D触发器,T触发器,T‘触发器。
按触发脉冲的触发形式分, 有高电平触发、低电平触发、上升沿触发和下降沿触发以及主从触发器的脉冲触发等。
各种触发器之间的转换:四、实验内容及原理图1. 验证触发器的逻辑功能。
2. 将JK触发器转换成D触发器,并验证功能3. 将两个JK触发器连接起来, 即第二个触发器的J K 端连接在一起, 接到第一个触发器的输出端,输入分别观察和记录CP,1Q,2Q的波形, 理解二分频, 四分频的概念。
数字电路与逻辑设计实验报告 题目: 点阵赛车游戏 姓 名 学 院 信息与通信工程学院 专 业 通信工程 班 级 学 号 班内序号
2012年 11月 题目六: 点阵赛车游戏 一. 设计课题的任务要求 (一) 实验目的 1. 熟练掌握 VHDL 语言和QuartusII 软件的使用; 2. 理解状态机的工作原理和设计方法; 3. 掌握利用 EDA 工具进行自顶向下的电子系统设计方法;
(二)实验要求 (1)基本要求: 1. 用8×8点阵进行5秒倒计时显示。 2. 当5秒倒计时结束后,点阵显示下图所示的赛道和赛车的初始位置,赛车游戏开始,并开始计时,用两个数码管显示时间。图中的红色表示赛道,黄色表示赛车的初始位置,箭头表示赛车行进的方向。 3. 用BTN1~BTN3三个按键分别控制赛车的左移、前进、右移,最终使赛车在不碰撞赛道的情况下走完全程(即图2中的绿色位置),游戏结束,点阵显示“V”图案,数码管显示走完全程所耗费的时间。 4. 当游戏时间超过59秒,或者赛车在行进过程中碰撞赛道,游戏失败,点阵显示“X”图案。 5. 通过按键BTN0进行复位,控制点阵返回到图1所示的初始状态。 (2)提高要求: 1. 有多种游戏赛道可选,5秒倒计时显示后赛道随机出现。 2. 赛车的初始位置随机出现。 3. 在赛车行进过程中,赛道中随机出现障碍物(用8×8点阵中的一个LED表示),通过BTN1~BTN3三个按键的控制躲避障碍物,走完全程。若赛车碰到障碍物和赛道,则游戏失败。 二.系统设计(包括设计思路、总体框图、分块设计) (一)设计思路 (1)赛车移动: 利用有限状态机描绘出赛车的状态转移图,设置控制赛车行列坐标的信号ROW,COL,赛车运动通过行列坐标控制,并且以赛道和障碍物的行列坐标为判断条件,判断是否游戏失败。通过复位信号RESET控制回到初始状态。 (2)点阵显示: 点阵的显示通过行扫描的方式进行,这样防止二极管亮度不均匀。定义两个8维向量控制点阵的行列信号。54321和障碍物所用的时钟为1Hz,赛车和赛道扫描赛用1KHz。 (3)伪随机序列发生器: 由于硬件无法实现真正的随机数产生,故采用比较通用的M序列伪随机数发生器,通过伪随机数发生器产生伪随机数控制障碍物,赛道编号以及赛车初始位置。
(二)总体框图 1. 系统结构框图 2. 模块划分框图 3. 控制模块流程图 4. 状态转移图
(三)分模块设计 在VHDL设计中,采用多进程的设计思路。 1. 根据硬件设计,设置如下端口: 外部时钟信号:CLOCK; 方向键:BUTTON_RESET,BUTTON_RIGHT,BUTTON_UP,BUTTON_LEFT; 点阵行:ROW; 点阵列:COL_RED, COL_GREEN; 数码管序列:SEG_CON; 数码管7段信号:SEG; 2. 在实体中根据功能不同划分多个进程。 主分频模块:由于外部时钟为50MHZ,而实际我们需要的内部时钟频率分别为1HZ,1KHZ,5KHZ,所以我们需要一个分频模块。 输入端口:CLOCK外部时钟。 输出信号:内部需要的时钟信号。 计时模块:由于赛车游戏时限为60秒,所以该模块完成对游戏时间的计时并且译码在数码管上显示。 输入端口:CLK_5K时钟信号,T_LOW,T_HIGH,START. 输入信号:数码管七段译码SEG。 伪随机序列发生器模块:由于游戏需要随机产生赛道,赛车初始位置以及障碍物都要随机产生,而硬件无法实现真正的随机序列发生器,故采用伪随机序列发生器近似满足随机要求。 输入端口:CLK_1K时钟。 输出信号:BANDX,BANDY,BAR1,BAR2四个伪随机数。 赛车控制模块:游戏有三个方向键,需要判断赛车是否碰到障碍物以及赛道。 输入端口: 方向键:BUTTON_RESET,BUTTON_RIGHT,BUTTON_UP,BUTTON_LEFT。 输出信号:赛车坐标SX,SY。 点阵显示模块:点阵采取行扫描的方式防止二极管发光不均匀。 输入端口:赛车坐标SX,SY;赛道坐标数组WY,WX;WY1,WX1;WY2,WX2,时钟信号CLK_5K。 输出信号:点阵行列信号。
三.仿真波形及波形分析
四.源程序(注释) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY RACE IS PORT( CLOCK:IN STD_LOGIC; ——输入时钟 BUTTON_RESET,BUTTON_RIGHT,BUTTON_UP,BUTTON_LEFT:IN STD_LOGIC; ——方向键 ROW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ——点阵行 COL_RED:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);——点阵列_红 COL_GREEN:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);——点阵列_绿 SEG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); ——七段数码管译码 SEG_CON:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)——数码管编号 ); END RACE;
ARCHITECTURE CAR OF RACE IS SIGNAL CLK_1,CLK_5K,CLK_1K,CLK_CLK_100,CLK_CLK_200:STD_LOGIC; ——时钟分频 SIGNAL NUM:INTEGER RANGE 0 TO 20; ——计数 SIGNAL T_HIGH: INTEGER RANGE 0 TO 5; ——时间高位 SIGNAL T_LOW: INTEGER RANGE 0 TO 9; ——时间低位 ——分频计数 SIGNAL COUNT200: INTEGER RANGE 0 TO 250000; SIGNAL COUNT: INTEGER RANGE 0 TO 50000000; SIGNAL COUNT1: INTEGER RANGE 0 TO 10000; SIGNAL COUNT2: INTEGER RANGE 0 TO 4999; SIGNAL COUNT_CLK_100:INTEGER RANGE 0 TO 500000; SIGNAL TMP1,TMP2,TMP3,TMP4,TMP5,TMP6,TMP7,TMP8:STD_LOGIC; SIGNAL CNT,CNT1: INTEGER RANGE 0 TO 1000; SIGNAL FAIL,SUCCESS,TIME_UP:STD_LOGIC; ——状态信号 SIGNAL START : INTEGER RANGE 0 TO 6; ——开始信号 SIGNAL TIMES : INTEGER RANGE 0 TO 7; ——时间信号
SIGNAL SEL: STD_LOGIC_VECTOR(2 DOWNTO 0); ——方向信号 SIGNAL RST,DIRECTION_LEFT,DIRECTION_RIGHT,DIRECTION_UP: STD_LOGIC; TYPE DIAN IS ARRAY(INTEGER RANGE <>) OF INTEGER RANGE 0 TO 7; ——赛车坐标 SIGNAL SX,SY : INTEGER RANGE 0 TO 7; ——3种赛道坐标 CONSTANT WY:DIAN(0 TO 18):=(0,0,0,1,2,3,3,3,4,4,4,5,6,7,7,7,4,5,6); CONSTANT WX:DIAN(0 TO 18):=(0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,7,7);
CONSTANT WY2:DIAN(0 TO 18):=(2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,3,4,5); CONSTANT WX2:DIAN(0 TO 18):=(0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,7,7);
CONSTANT WY3:DIAN(0 TO 18):=(1,1,1,1,1,2,2,2,5,5,5,5,5,6,6,6,3,4,5); CONSTANT WX3:DIAN(0 TO 18):=(0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,7,7); SIGNAL STATE: INTEGER RANGE 0 TO 1; TYPE FIGURE IS ARRAY(INTEGER RANGE <>) OF INTEGER RANGE 0 TO 9; SIGNAL SHOW:FIGURE(9 DOWNTO 0); SIGNAL N: INTEGER RANGE 0 TO 6; ——随机数 SIGNAL RANDOM1: STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL RANDOM2: STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL RANDOM3: STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL BAR1: INTEGER RANGE 0 TO 7; SIGNAL BAR2: INTEGER RANGE 0 TO 7;
SIGNAL BANDX,BANDY: INTEGER RANGE 0 TO 7; BEGIN ——分频模块 P0:PROCESS(CLOCK) BEGIN IF CLOCK'EVENT AND CLOCK='1' THEN IF TIMES=0 THEN N<=N; ELSE IF N=6 THEN N<=0; ELSE N<=N+1; END IF; END IF; END IF; END PROCESS;
P1:PROCESS(CLOCK) BEGIN IF CLOCK'EVENT AND CLOCK='1' THEN COUNT<=COUNT+1; COUNT1<=COUNT1+1; COUNT_CLK_100<=COUNT_CLK_100+1; COUNT200<=COUNT200+1; IF COUNT<=24999999 THEN CLK_1<='1'; ELSIF COUNT>24999999 AND COUNT<=49999999 THEN CLK_1<='0'; ELSIF COUNT=50000000 THEN COUNT<=0;