数字逻辑电路实验报告
数字逻辑实验报告实验

一、实验目的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.掌握基本的数字逻辑电路设计方法;2.熟悉数字逻辑电路的布线和调试方法;3.学会使用EDA软件进行数字逻辑电路的仿真和验证。
实验器材•FPGA开发板•EDA软件实验过程实验一:逻辑门的基本控制本实验采用FPGA开发板进行实验,以下是逻辑门的基本控制步骤:1.打开EDA软件,新建工程;2.选择FPGA开发板型号,并进行相应配置;3.在原理图设计界面上,依次放置与门、或门、非门和异或门,并连接输入输出引脚;4.面向测试向量实现逻辑门的控制和数据输入;5.运行仿真并进行调试。
实验二:数字逻辑电路实现本实验以4位全加器为例,进行数字逻辑电路的实现,以下是实验步骤:1.打开EDA软件,新建工程;2.选择FPGA开发板型号,并进行相应配置;3.在原理图设计界面上,放置输入引脚、逻辑门和输出引脚,并进行连接;4.根据全加器的真值表,设置输入信号,实现加法运算;5.运行仿真并进行调试。
实验三:数字逻辑电路的串联与并联本实验旨在通过对数字逻辑电路的串联与并联实现,加深对逻辑门的理解与应用。
以下是实验步骤:1.打开EDA软件,新建工程;2.选择FPGA开发板型号,并进行相应配置;3.在原理图设计界面上,放置多个逻辑门,并设置输入输出引脚;4.进行逻辑门的串联与并联连接;5.根据逻辑门的真值表,设置输入信号,进行运算;6.运行仿真并进行调试。
实验结果经过实验测试,实验结果如下:1.实验一:逻辑门的基本控制–与门的功能得到实现;–或门的功能得到实现;–非门的功能得到实现;–异或门的功能得到实现。
2.实验二:数字逻辑电路实现–4位全加器的功能得到实现;–正确进行了加法运算。
3.实验三:数字逻辑电路的串联与并联–逻辑门的串联与并联功能得到实现;–通过逻辑门的串联与并联,实现了复杂的逻辑运算。
数字逻辑实验报告解析

一、实验背景数字逻辑是电子技术与计算机科学的基础课程,它研究数字电路的设计与实现。
为了加深对数字逻辑电路的理解,我们进行了本次实验,通过实际操作和仿真,验证数字逻辑电路的理论知识,并掌握数字逻辑电路的设计与实现方法。
二、实验目的1. 理解数字逻辑电路的基本原理和组成。
2. 掌握逻辑门电路、组合逻辑电路和时序逻辑电路的设计方法。
3. 通过实验验证数字逻辑电路的功能,提高动手能力和分析问题能力。
三、实验内容1. 逻辑门电路实验(1)实验目的:学习分析基本的逻辑门电路的工作原理,掌握与门、或门、非门等基本逻辑门电路的逻辑功能。
(2)实验步骤:①按照实验指导书的要求,连接实验电路;②根据输入信号,观察输出信号,验证逻辑门电路的逻辑功能;③记录实验结果,分析实验现象。
(3)实验结果与分析:实验结果显示,与门、或门、非门等基本逻辑门电路的逻辑功能符合预期。
通过实验,我们加深了对逻辑门电路工作原理的理解。
2. 组合逻辑电路实验(1)实验目的:掌握组合逻辑电路的设计方法,验证组合逻辑电路的功能。
(2)实验步骤:①根据实验要求,设计组合逻辑电路;②按照实验指导书的要求,连接实验电路;③根据输入信号,观察输出信号,验证组合逻辑电路的功能;④记录实验结果,分析实验现象。
(3)实验结果与分析:实验结果显示,设计的组合逻辑电路功能符合预期。
通过实验,我们掌握了组合逻辑电路的设计方法,提高了逻辑思维能力。
3. 时序逻辑电路实验(1)实验目的:掌握时序逻辑电路的设计方法,验证时序逻辑电路的功能。
(2)实验步骤:①根据实验要求,设计时序逻辑电路;②按照实验指导书的要求,连接实验电路;③根据输入信号,观察输出信号,验证时序逻辑电路的功能;④记录实验结果,分析实验现象。
(3)实验结果与分析:实验结果显示,设计的时序逻辑电路功能符合预期。
通过实验,我们掌握了时序逻辑电路的设计方法,提高了逻辑思维能力。
四、实验总结通过本次实验,我们完成了以下任务:1. 理解了数字逻辑电路的基本原理和组成;2. 掌握了逻辑门电路、组合逻辑电路和时序逻辑电路的设计方法;3. 通过实验验证了数字逻辑电路的功能,提高了动手能力和分析问题能力。
数字逻辑电路实验报告

数字逻辑电路实验报告数字逻辑电路实验报告引言:数字逻辑电路是现代电子科技中的重要组成部分,它广泛应用于计算机、通信、控制系统等领域。
本实验旨在通过实际操作,加深对数字逻辑电路原理的理解,并通过实验结果验证其正确性和可靠性。
实验一:基本逻辑门的实验在本实验中,我们首先学习了数字逻辑电路的基本组成部分——逻辑门。
逻辑门是数字电路的基本构建单元,它能够根据输入信号的逻辑关系,产生相应的输出信号。
我们通过实验验证了与门、或门、非门、异或门的工作原理和真值表。
以与门为例,当且仅当所有输入信号都为高电平时,与门的输出信号才为高电平。
实验中,我们通过连接开关和LED灯,观察了与门的输出变化。
实验结果与预期相符,验证了与门的正确性。
实验二:多位加法器的设计与实验在本实验中,我们学习了多位加法器的设计和实现。
多位加法器是一种能够对多位二进制数进行加法运算的数字逻辑电路。
我们通过实验设计了一个4位全加器,它能够对两个4位二进制数进行相加,并给出正确的进位和和结果。
实验中,我们使用逻辑门和触发器等元件,按照电路图进行布线和连接。
通过输入不同的二进制数,观察了加法器的输出结果。
实验结果表明,多位加法器能够正确地进行二进制数相加,验证了其可靠性。
实验三:时序电路的实验在本实验中,我们学习了时序电路的设计和实验。
时序电路是一种能够根据输入信号的时间顺序产生相应输出信号的数字逻辑电路。
我们通过实验设计了一个简单的时序电路,它能够产生一个周期性的脉冲信号。
实验中,我们使用计数器和触发器等元件,按照电路图进行布线和连接。
通过改变计数器的计数值,观察了脉冲信号的频率和周期。
实验结果表明,时序电路能够按照设计要求产生周期性的脉冲信号,验证了其正确性。
实验四:存储器的设计与实验在本实验中,我们学习了存储器的设计和实现。
存储器是一种能够存储和读取数据的数字逻辑电路,它在计算机系统中起到重要的作用。
我们通过实验设计了一个简单的存储器,它能够存储和读取一个4位二进制数。
数字逻辑实验报告

数字逻辑实验报告数字逻辑实验报告引言数字逻辑是计算机科学中的重要基础知识,通过对数字信号的处理和转换,实现了计算机的高效运算和各种复杂功能。
本实验旨在通过实际操作,加深对数字逻辑电路的理解和应用。
实验一:二进制加法器设计与实现在这个实验中,我们需要设计一个二进制加法器,实现两个二进制数的加法运算。
通过对二进制数的逐位相加,我们可以得到正确的结果。
首先,我们需要将两个二进制数输入到加法器中,然后通过逻辑门的组合,实现逐位相加的操作。
最后,将得到的结果输出。
实验二:数字比较器的应用在这个实验中,我们将学习数字比较器的应用。
数字比较器可以比较两个数字的大小,并输出比较结果。
通过使用数字比较器,我们可以实现各种判断和选择的功能。
比如,在一个电子秤中,通过将待测物品的重量与设定的标准重量进行比较,可以判断物品是否符合要求。
实验三:多路选择器的设计与实现在这个实验中,我们需要设计一个多路选择器,实现多个输入信号中的一路信号的选择输出。
通过使用多路选择器,我们可以实现多种条件下的信号选择,从而实现复杂的逻辑控制。
比如,在一个多功能遥控器中,通过选择不同的按钮,可以控制不同的家电设备。
实验四:时序电路的设计与实现在这个实验中,我们将学习时序电路的设计与实现。
时序电路是数字逻辑电路中的一种重要类型,通过控制时钟信号的输入和输出,实现对数据的存储和处理。
比如,在计数器中,通过时序电路的设计,可以实现对数字的逐位计数和显示。
实验五:状态机的设计与实现在这个实验中,我们将学习状态机的设计与实现。
状态机是一种特殊的时序电路,通过对输入信号和当前状态的判断,实现对输出信号和下一个状态的控制。
状态机广泛应用于各种自动控制系统中,比如电梯控制系统、交通信号灯控制系统等。
实验六:逻辑门电路的优化与设计在这个实验中,我们将学习逻辑门电路的优化与设计。
通过对逻辑门电路的布局和连接方式进行优化,可以减少电路的复杂性和功耗,提高电路的性能和可靠性。
数字逻辑实验报告

数字逻辑实验报告数字逻辑实验报告引言:数字逻辑是计算机科学中的基础知识,它研究的是数字信号的处理与传输。
在现代科技发展的背景下,数字逻辑的应用越来越广泛,涉及到计算机硬件、通信、电子设备等众多领域。
本实验旨在通过设计和实现数字逻辑电路,加深对数字逻辑的理解,并掌握数字逻辑实验的基本方法和技巧。
实验一:逻辑门电路设计与实现逻辑门是数字电路的基本组成单元,由与门、或门、非门等构成。
在本实验中,我们设计了一个4位全加器电路。
通过逻辑门的组合,实现了对两个4位二进制数的加法运算。
实验过程中,我们了解到逻辑门的工作原理,掌握了逻辑门的真值表和逻辑方程的编写方法。
实验二:多路选择器的设计与实现多路选择器是一种常用的数字逻辑电路,它可以根据控制信号的不同,从多个输入信号中选择一个输出信号。
在本实验中,我们设计了一个4位2选1多路选择器电路。
通过对多路选择器的输入信号和控制信号的设置,实现了对不同输入信号的选择。
实验过程中,我们了解到多路选择器的工作原理,学会了多路选择器的真值表和逻辑方程的编写方法。
实验三:时序逻辑电路的设计与实现时序逻辑电路是一种能够存储和处理时序信息的数字逻辑电路。
在本实验中,我们设计了一个简单的时序逻辑电路——D触发器。
通过对D触发器的输入信号和时钟信号的设置,实现了对输入信号的存储和传输。
实验过程中,我们了解到D触发器的工作原理,掌握了D触发器的真值表和逻辑方程的编写方法。
实验四:计数器电路的设计与实现计数器是一种能够实现计数功能的数字逻辑电路。
在本实验中,我们设计了一个4位二进制计数器电路。
通过对计数器的时钟信号和复位信号的设置,实现了对计数器的控制。
实验过程中,我们了解到计数器的工作原理,学会了计数器的真值表和逻辑方程的编写方法。
结论:通过本次实验,我们深入了解了数字逻辑的基本原理和应用方法。
通过设计和实现逻辑门电路、多路选择器、时序逻辑电路和计数器电路,我们掌握了数字逻辑实验的基本技巧,并加深了对数字逻辑的理解。
逻辑电路实验实验报告

一、实验名称逻辑电路实验二、实验目的1. 掌握基本的数字逻辑电路设计方法。
2. 理解并掌握常用的逻辑门及其组合电路。
3. 提高实验操作技能和观察能力。
4. 培养团队协作精神。
三、实验原理数字逻辑电路是构成数字系统的基本单元,主要由逻辑门、触发器等基本元件组成。
逻辑门是数字电路的基本单元,它按照一定的逻辑规则实现基本的逻辑运算。
本实验主要涉及以下逻辑门及其组合电路:1. 与门(AND):当所有输入信号都为高电平时,输出信号才为高电平。
2. 或门(OR):当至少一个输入信号为高电平时,输出信号才为高电平。
3. 非门(NOT):将输入信号取反。
4. 异或门(XOR):当输入信号不同时,输出信号为高电平。
四、实验器材1. 逻辑门实验板2. 逻辑笔3. 万用表4. 逻辑分析仪5. 示波器6. 计时器五、实验内容1. 与门、或门、非门、异或门的逻辑功能测试2. 组合逻辑电路设计3. 电路仿真与验证六、实验步骤1. 与门、或门、非门、异或门的逻辑功能测试(1)按照实验指导书,连接与门、或门、非门、异或门实验板。
(2)使用逻辑笔和万用表,测试各个逻辑门的输入、输出信号。
(3)记录测试结果,与理论值进行对比,分析实验误差。
2. 组合逻辑电路设计(1)根据设计要求,选择合适的逻辑门,绘制电路图。
(2)使用实验板,搭建组合逻辑电路。
(3)测试电路功能,验证设计是否正确。
3. 电路仿真与验证(1)使用逻辑分析仪或示波器,观察电路的输入、输出信号波形。
(2)分析波形,验证电路功能是否符合预期。
七、实验结果与分析1. 与门、或门、非门、异或门的逻辑功能测试实验结果如下:与门:当所有输入信号都为高电平时,输出信号才为高电平。
或门:当至少一个输入信号为高电平时,输出信号才为高电平。
非门:将输入信号取反。
异或门:当输入信号不同时,输出信号为高电平。
2. 组合逻辑电路设计(1)设计一个4位二进制加法器,包括两个输入端(A、B)和两个输出端(S、C)。
数字逻辑实验报告至诚

一、实验名称数字逻辑实验二、实验目的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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字逻辑电路设计--多功能数字钟学院:计算机科学与通信工程专业:姓名:学号:指导老师:多功能数字钟-、设计任务及要求(1)拥有正常的时、分、秒计时功能。
(2)能利用实验板上的按键实现校时、校分及清零功能。
(3)能利用实验板上的扬声器做整点报时。
(4)闹钟功能(5)在MAXPLUS中采用层次化设计方法进行设计。
(6)在完成全部电路设计后在实验板上下载,验证设计课题的正确性。
二、多功能数字钟的总体设计和顶层原理图作为根据总体设计框图,可以将整个系统分为六个模块来实现,分别是计时模块、校时模块、整点报时模块、分频模块、动态显示模块及闹钟模块(1)计时模块该模块使用74LS160构成的一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。
二十四进制计数器用于计时,六十进制计数器用于计分和秒。
只要给秒计数器一个1HZ的时钟脉冲,则可以进行正常计时分计数器以秒计数器的进位作为计数脉冲。
用两个74160连成24进制的计数器,原图及生成的器件如下:iTr生成的二十四进制计数器注:禾U用使能端,时钟信号,清零以及预置数功能连成24进制。
on C 2 4_@ £> : LH------*LB------ 7 E:[M MB—CL.RUG—GkK ―75 -------------- -HD--------- »-COUT------------ 1用两个74160连成的60进制计数器,原图及生成的器件如下:(2)校时模块校时模块设计要求实现校时,校分以及清零功能。
*按下校时键,小时计数器迅速递增以调至所需要的小时位。
*按下校分键,分计数器迅速递增以调至所需要的分位。
*按下清零键,将秒计数器清零。
注意事项:①在校分时,分计数器的计数不应对小时位产生影响,因而需要屏蔽此时分计数器的进位信号以防止小时计数器计数。
②利用D触发器进行按键抖动的消除,因为D触发器是边沿触发,在除去时钟边沿到来前一瞬间之外的绝大部分时间都不接受输入,可以消除抖动。
③计时采用1HZ的脉冲驱动计数器计数,而校时则需要较高频率的信号驱动以达到快速校时的目的。
因此这两种脉冲信号就需要两路选择器进行选择,条件即为是否按键。
(3) 整点报时模块计时到59分50秒时,每两秒一次低音报时,整点时进行高音报时。
以不 同频率的脉冲信号区分低音和高音报时。
报时的条件是计数器计数至所需 要的时间点,因而需要一个比较模块,将分计数器和秒计数器的输出连至 比较模块输入端完成比较过程。
F1表示计数器分的咼位, F 0表示分的低位;M1表示秒的咼位,M0表 示秒的低位。
当时间为 59分00,02,04,06,08进行低音报时,当为整点时进 行高音报时。
SIGA 为1时低音报时,SIGB 为1时高音报时。
(4 )分频模块在这个系统中需要很多种不同频率的脉冲信号,这些均可以通过一个基准频率分频器生成。
分频器就是一个进制很大的计数器,利用计数器的分频 FJ_ C2 ・-oi.O1 S- I GiHHJ.L3 ・ -01 毎 IM<3C 3* m 01 注: w” J注:D 触发器用于按键的消抖,接更高的频率用于校时和校分,二路选择器用于区分是正常计时还是校时。
ALERT G^功能,从不同的输出位得到所需要的脉冲信号 注: 由于elk 的频率为 1024hz ,所以可以定义一个 std 」ogic_vector(9 downto 0),使它不 停地从 0000000000加到1111111111然后又返回 0000000000,由于最低位在clk 脉冲到来时从0变为1,然后又在下一个脉 冲变回0,因此最低位的时钟周期为 clk 的时钟周期的两倍,它的频率就为 clk 频率的确1/2即512hz 。
同理,次高位的频率就为 clk 频率的1/2 * 1/2 =1/4,用这种方法就可以得到各种能整除 1024的频率,从而实现分频。
(4 )动态显示模块 在6个不同的时间段分别将每组时间经过七段译码后输出到 6个数码管, 当某一组时间的七段码到达时,只点亮对应位置上的数码管,显示相应的 数字,6次一个循环,形成一个扫描序列。
利用人眼的视觉暂留则可以同步 显示6个数字。
注: CLK 为时钟信号,S 为计数器的小时,F 为分,M 为秒,SELOUT 为六路选择器,选择哪个数码管工作,SEGOUT 为七段译码器,使数 码管显示数字。
(6 )闹钟模块注意事项:①设定的闹钟的时间应使用新的计数器进行存储,与正常的计 时互不干扰。
② 与正常计时状态的显示切换。
可以设定一个按键,用于选择 是将计时时间还是将闹钟时间送至动态显示模块。
③ 应实现一个比较模块,当计时到与闹钟时间相等时,则驱动扬声器鸣叫 DrSPLAV-0^ d — 社L .址 - ShE ILCl U-r [ s . t ''S IL 7 - 勺 Oil' !■ 'F E ?, *5-IE 45 IT [ _ ・ — 7・ • 0J 器件 生成的分频器SUI TCM G£>— SE7--• ss- [ …eq n J T ■ . o]■ •尸匚■ «QiJB C7 . ■ OJ— 一・ — ■nri.習』— 41注: S 表示计时器的时,F 表示计时器的分,M 表示计数器的秒; ④ 闹钟响声应限定在一定时间内,且在这段时间内应随时可以 通过按键取消闹时状态。
闹钟调时和分以及正常计时与闹钟定时之间的选择原图及生成的器件如下:21-ux ■: ULLTPLE^PUL 他魯■— "mm注:输入端CLK 为时钟信号,SD 清零,NAOZHONG 是使计 数器正常计时和闹钟定时界面的切换, SE 调闹钟的小时,SD 调闹钟的分,输出端即为闹钟的小时和分。
闹钟界面和正常计时界面的转换器件如下: U 出D 曲匸抽orv l :—-I ----- ';■EftSS 表示闹钟的时,FF 表示闹钟的分;Q 为计时和闹钟两个界面的切换开关, ABC 为输出的时间。
正常计时时间和设定闹钟时间的比较器件如下:COMP.Ot注:S 表示正常计时的小时, F 表示闹钟的分;SS 表示闹钟的小时,FF 表示闹钟的分;Q 为闹钟的开关,D 当Q 为1时, 并且正常计时的时间和闹钟时间 相等时输出为1,否则为0。
三、心得和体会经过一个星期对数字时钟实践的制作,从中学到了很多。
首先是对EDA 的VHDL 语言的更深层次认识,本来觉得 EDA 编程语言比较麻烦,可是 接触了以后也就觉得它还是有它方便的地方,尤其是和图形编程结合的特 点。
其次,这个实践其实到目前为止应该还不是一个成功的作品,还是有 很多的仿真没有完成,原因可能也是自己的技术不到位。
但是整个制作的 过程中,它促进了同学之间的相互沟通,也让我在自己的专业知识的学习 过程中,更多的,更好的学习一门知识,用于以后的实践应用中,做这个 数字钟的设计中包含了很多不同功能的程序,让我在其中学到了一些程序 的中的思路,特别一步一步去把错误的程序改正确是一种很有成就感的事! 这样让我学到了更多的知识!特别是在做数字时钟闹钟的那个模块时,我 在网上查了好多程序,证实了好多错误的程序并从中更改出正确的程序! 相信,现在只是一个起步,以后,我会更好的努力,学习,对 EDA 孰能生[ ?・ r <5JFF t Ti * 0]附录:用VHDL 语言写的六十进制计数器如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_06 isport (clk:in std_logic;clear:in std_logic;c:out std_logic; k1,k0:out std_logic_vector(3 downto 0));end cnt60_06;architecture cnt of cnt60_06 issignal q1,q0:std_logic_vector(3 downto 0);beginprocess(clk,clear)beginif(clear='1')then q1<="0000";q0<="0000";c<='0';else if(clk'event and clk='1')then if(q1="0101" and q0="1001")then 到59q1<="0000";q0<="0000";c<='1';elsif(q1<"0101" and q0="1001")then q0<="0000";q1<=q1+'1';c<='0';elsif(q0<"1001") then q0<=q0+'1';end if;end if;end if;k1<=q1;k0<=q0;end process;end cnt;用VHDL 语言写的报时器源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity alert_06 isport(f1,f0,m1,m0:in std_logic_vector(3 downto 0); siga,sigb:out std_logic);end alert_06; architecture a of alert_06 is begin siga<='1'when(f1="0101" and f0="1001" and m1="0101" and (m0="0000" or m0="0010" or m0="0100" or m0="0110" or m0="1000"))else'0';sigb<='1'when(f1="0000" and f0="0000" and m1="0000" and m0="0000")else'0'; end a;用VHDL 语言写的分频器的源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin_06 isport (clk:in std_logic; hz512,hz256,hz64,hz4,hz1:out std_logic);end fenpin_06 ;architecture f of fenpin_06 issignal cc: std_logic_vector(9 downto 0);beginprocess(clk)beginif(clk'event and clk='1') thenif(cc="1111111111")thencc<="0000000000";elsecc<=cc+1;end if;end if;end process;hz512<=cc(0);hz256<=cc(1);hz64<=cc(3);hz4<=cc(7);hz1<=cc(9);end f;用VHDL 语言写的动态扫描的源代码如下:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity display_06 isport(clk:in std_logic;s :in std_logic_vector(7 downto 0); f :in std_logic_vector(7 downto 0); m :in std_logic_vector(7downto 0); selout:out std_logic_vector(5 downto 0); segout:out std_logic_vector(6 downto 0) );end display_06 ;architecture a of display_06 is signal number:std_logic_vector(3 downto 0); signal sel :std_logic_vector(5downto 0); signal seg :std_logic_vector(6 downto 0); signal q :std_logic_vector(2 downto 0); begina:process(clk)beginif(clk'event and clk='1')then q<=q+1;end if;end process a;process(q)begincase q is when"000"=>sel<="000001"; when"001"=>sel<="000010"; when"010"=>sel<="000100"; when"011"=>sel<="001000"; when"100"=>sel<="010000"; when"101"=>sel<="100000";when others=>sel<="000000";end case;end process;processbeginif sel ="000001"then number<=m(3 downto 0);elsif sel="000010"thennumber<=m(7 downto 4);elsif sel="000100"then number<=f(3 downto 0);elsif sel="001000"then number<=f(7 downto 4);elsif sel="010000"then number<=s(3 downto 0);elsif sel="100000"then number<=s(7 downto 4);else number<="1111";end if;end process;process(number)begincase number iswhen"0000"=>seg<="0111111"; when"0001"=>seg<="0000110"; when"0010"=>seg<="1011011"; when"0011"=>seg<="1001111"; when"0100"=>seg<="1100110"; when"0101"=>seg<="1101101"; when"0110"=>seg<="1111101"; when"0111"=>seg<="0000111"; when"1000"=>seg<="1111111"; when"1001"=>seg<="1101111"; when others=>seg<="0000000"; end case; end process;selout<=sel;segout<=seg;end a;闹钟界面和正常计时界面之间的切换源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity switch_06 isport(s:in std_logic_vector(7 downto 0); ss:in std_logic_vector(7 downto 0); f:in std_logic_vector(7 downto 0);ff:in std_logic_vector(7 downto 0);m:i n std_logic_vector(7 dow nto 0);Q:in std_logic;A:out std_logic_vector(7 dow nto 0);B:out std_logic_vector(7 dow nto 0);C:out std_logic_vector(7 dow nto 0));end switch_06;architecture a of switch_06 isbeginprocess(Q,s,ss,f,ff,m)Begi nif(Q='1') the nA<=ss;B<=ff;C<="00000000";elseA<=s;B<=f;C<=m;end if;end process;end a;正常计时时间和设定的闹钟时间之间的比较的源代码如下:library ieee;use ieee.std」o gic_1164.all;use ieee.std_logic_ un sig ned.all;en tity comp_06 is port(s,ss,f,ff:i n std_logic_vector(7 dow nto 0);d:out std_logic;Q:in std_logic);end comp_06;architecture behavior of comp_06 isbeginprocess(Q,s,ss,f,ff)beginif(risi ng_edge(Q))the nif(s=ss and f=ff)the nd<='1';else d<='0';end if;end if;end process;end behavior;。