EDA设计报告
EDA课程实验设计报告
《EDA课程实验设计报告》洗衣机自动控制器设计一实验要求:1、由一个按键控制洗衣机的启动、暂停。
2、洗衣机洗涤一定时间后,能自动停止,由一个LED灯闪烁提示,并发出报警提示。
3、洗涤时间能用数码管显示,暂停时时间停止,暂停后时间在停止的时间基础上继续计时。
4、用至少四个LED指示灯的流动表示洗衣机的正转和反转。
即当正转20秒时,四个指示灯从右向左循环移动;反转20秒时,四个指示灯从右向左循环移动。
5、暂停10秒时,四个指示灯闪烁来表示电机停止转动。
二.设计总体思路,基本原理1.设计总体思路从课程设计要求来看,要求实现电机的正传、反转、暂停,用四个LED灯的状态来表示,当显示时间前20秒正传、暂停10秒、反转20秒、再暂停10秒,如此一来,周期恰好是60秒,理所当然的分钟计数器、秒计数器是一定要有的。
接下来脉冲是一定的了,但是有分钟计数器和秒钟计数器还要考虑是不是要60分频器,就我们所学过的来说实现循环有移位寄存器;还有个问题,当洗涤时间到了,报警还要一个报警电路,根据要求,报警的蜂鸣器不可以长时间的叫,要有个合理的时间,我们可以用一个单稳态电路来实现。
方案为:直接从数值上进行提取信号来控制一个可以实现循环的74LS194来实现。
2.基本原理首先,从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进行清零,这时用户置入洗涤时间,并按开始按钮,洗衣机开始工作。
当秒计数器变为零的时候,去分钟计数器上面借数;与此同时,从十秒位转化出来的信号进入移位寄存器后,LED灯表示出电机运转状态;当用户设定的洗涤时间结束后,电路报警并清零。
三.单元电路设计1.一百进制分计数器和六十秒计数器的设计(1)分、秒计数器的设计分、秒计数器我们都用74192片,74192上升沿触发,由UP,DOWN两管脚控制加减计数,有异步置数端LOAR和异步复位端CLR,BO’和CO’分别输出高电平表示加进位和减进位。
由于74192没有保持脚,故需要外围电路实现保持功能。
EDA-实验报告
实验一五人表决器设计一、实验目的1 加深对电路理论概念的理解3 加深计算机辅助分析及设计的概念4 了解及初步掌握对电路进行计算机辅助分析的过程二、实验要求制作一个五人表决器,共五个输入信号,一个输出信号。
若输入信号高电平数目多于低电平数目,则输出为高,否则为低。
三、实验原理根据设计要求可知,输入信号共有2^5=32种可能,然而输出为高则有15种可能。
对于本设计,只需一个模块就能完成任务,并采用列写真值表是最简单易懂的方法。
四、计算机辅助设计设A,B,C,D,E引脚为输入引脚,F为输出引脚。
则原理图如1所示图1.1 五人表决器原理图实验程序清单如下:MODULE VOTEA,B,C,D,E PIN;F PIN ISTYPE 'COM';TRUTH_TABLE([A,B,C,D,E]->[F])[0,0,1,1,1]->[1];[0,1,1,1,0]->[1];[0,1,0,1,1]->[1];[0,1,1,0,1]->[1];[1,0,1,1,1]->[1];[1,1,0,1,1]->[1];[1,1,1,0,1]->[1];[1,1,1,1,0]->[1];[1,1,1,0,0]->[1];[1,1,0,1,0]->[1];[1,1,1,1,1]->[1];[1,1,0,0,1]->[1];[1,0,0,1,1]->[1];[1,0,1,0,1]->[1];[1,0,1,1,0]->[1];END五、实验测试与仿真根据题目要求,可设输入分别为:0,0,0,0,0;1,1,1,1,1;1,0,1,0,0;0,1,0,1,1。
其测试程序如下所示:MODULE fivevoteA,B,C,D,E,F PIN;X=.X.;TEST_VECTORS([A,B,C,D,E]->[F])[0,0,0,0,0]->[X];[1,1,1,1,1]->[X];[1,0,1,0,0]->[X];[0,1,0,1,1]->[X];END测试仿真结果如图1.2所示:图1.2 五人表决器设计仿真图可知,设计基本符合题目要求。
EDA课程设计报告--EDA数字抢答器
学生课程设计报告课程名称:EDA数字抢答器目录一、课程设计目的 (3)二、课程设计题目描述和要求 (3)三、课程设计报告内容 (4)四、结论 (21)五、结束语 (22)六、参考书目 (22)一、课程设计目的.设计一个可容纳4组参赛的数字式抢答器。
通过此次设计熟练掌握VHDL 语言,并掌握设计所用的软件。
二、课程设计题目描述和要求在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。
同时,还可以设置计分、犯规及奖惩计录等多种功能。
本设计的具体要求是:(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
(2) 电路具有第一抢答信号的鉴别和锁存功能。
(3) 系统具有计分电路。
(4) 系统具有犯规电路。
系统设计方案:系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮可以用如TA、TB表示;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口可用如LEDA、LEDB、LEDC、LEDD表示,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
整个系统至少有三个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块,其他功能模块(犯规警告模块,输出显示模块)。
三、课程设计报告内容按照要求,我们可以将整个系统分为四个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块;译码显示模块。
对于需显示的信息,需要增加或外接译码器,进行显示译码。
考虑到实验开发平台提供的输出显示资源的限制,我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。
整个系统的大致组成框图如图2.1所示。
图2.1 LED A LED B LED C LED D3.1抢答鉴别模块3.1.1抢答鉴别模块的功能抢答队伍共分为四组A,B,C,D。
EDA课程设计报告
EDA课程设计报告•相关推荐EDA课程设计报告在我们平凡的日常里,报告的使用成为日常生活的常态,报告中涉及到专业性术语要解释清楚。
那么报告应该怎么写才合适呢?以下是小编为大家整理的EDA课程设计报告,希望对大家有所帮助。
EDA课程设计报告1实训任务:一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和dp?51pro。
net单片机仿真器、编程器、实验仪三合一综合开发平台的使用。
(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。
(4)了解掌握单片机芯片的烧写方法与步骤。
(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。
(6)掌握利用protel 99 se绘制电路原理图及pcb图。
(7)了解pcb板的制作腐蚀过程。
二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?51pro。
net单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。
(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。
(6)制板。
首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。
(7)焊接。
将所给元器件根据原理图一一焊至pcb板相应位置。
(8)调试。
先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。
eda课程设计报告
eda课程设计报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件进行电路设计与仿真,理解并掌握数字电路的设计原理。
3. 学生了解并掌握基础的硬件描述语言(如VHDL/Verilog),能完成简单的数字系统设计。
技能目标:1. 学生通过EDA软件的操作,培养电子电路设计、仿真与验证的实际操作能力。
2. 学生通过小组合作完成设计项目,提高团队协作与沟通技巧。
3. 学生能够运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生在EDA课程学习中,培养对电子科学技术的兴趣和探究精神。
2. 学生通过课程实践,增强自信心和成就感,激发进一步学习的动力。
3. 学生在学习过程中,树立正确的工程伦理观念,认识到技术发展对社会的责任和影响。
课程性质:本课程为电子信息工程及相关专业高年级学生的专业核心课程,旨在通过理论与实践相结合的教学,提高学生的电子设计能力。
学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和实践欲望,对新技术和新工具充满好奇心。
教学要求:结合学生特点,注重培养实际操作能力,鼓励学生创新思维,提高解决实际问题的能力。
通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面成长。
后续教学设计和评估将以此为基础,关注学生的学习成果。
二、教学内容根据课程目标,教学内容分为以下三个模块:1. EDA基本概念与工具使用- 教材章节:第一章 EDA技术概述,第二章 EDA工具简介- 内容列举:EDA发展历程,常用EDA软件介绍,软件安装与配置,基本操作流程。
2. 数字电路设计与仿真- 教材章节:第三章 数字电路设计基础,第四章 仿真技术- 内容列举:数字电路设计原理,EDA软件电路设计流程,仿真参数设置,波形分析与验证。
3. 硬件描述语言与数字系统设计- 教材章节:第五章 硬件描述语言,第六章 数字系统设计实例- 内容列举:硬件描述语言基础,VHDL/Verilog语法要点,简单数字系统设计方法,设计实例分析与实操。
电子行业EDA课程设计报告
电子行业EDA课程设计报告1. 引言本文档是电子行业EDA课程的设计报告,旨在介绍课程的设计目标、内容、实施过程以及所取得的成果。
EDA(Electronics Design Automation)是指电子设计自动化,是电子行业中一种重要的设计和开发方法。
本课程旨在培养学生掌握EDA的基本概念、流程和工具,从而提高他们在电子行业中的设计能力和竞争力。
2. 设计目标本课程的设计目标如下:1.培养学生掌握EDA的基本概念和原理。
2.培养学生熟练掌握EDA工具的使用和应用。
3.培养学生具备独立进行EDA项目设计和开发的能力。
4.提高学生的团队合作和沟通能力。
3. 课程内容本课程的内容主要包括以下几个方面:3.1 EDA基础知识在本节课程中,学生将学习EDA的基本概念和原理,包括电子设计流程、硬件描述语言、电路仿真和验证等方面的知识。
3.2 EDA工具的使用本节课程将介绍常用的EDA工具,包括电路设计工具、电路仿真工具和电路布局工具等。
学生将学习如何使用这些工具进行电路设计、仿真和验证。
3.3 EDA项目设计与开发在本节课程中,学生将进行一个EDA项目的设计与开发实践。
学生将根据给定的项目需求,使用所学的EDA工具进行电路设计、仿真和验证,并最终提交一个完整的EDA项目报告。
3.4 团队合作与项目管理本节课程将讲解团队合作和项目管理的基本原理和方法,包括任务分配、进度管理和沟通协作等方面的内容。
学生将通过分组合作,在完成EDA项目的过程中提高团队合作和沟通能力。
4. 实施过程本课程的实施过程主要包括以下几个阶段:4.1 阶段一:知识讲解在此阶段,教师将讲解EDA的基本概念、流程和工具使用方法。
学生将通过课堂听讲和课后阅读相关资料,对EDA的基础知识进行学习和理解。
4.2 阶段二:工具练习在此阶段,学生将通过实际操作,熟悉常用的EDA工具的使用方法。
教师将提供实验环境和相关实验指导,学生将利用课余时间进行工具的练习和实践。
eda课程设计报告速度表设计
eda课程设计报告速度表设计一、课程目标知识目标:1. 学生能理解速度表的基本原理和设计理念,掌握速度的计算公式。
2. 学生能了解并运用电子设计自动化(EDA)软件进行速度表电路的设计与仿真。
3. 学生掌握速度表在实际应用中的相关技术参数和性能指标。
技能目标:1. 学生能够运用EDA软件进行电路图绘制,具备基本的电路设计能力。
2. 学生能够通过小组合作,进行速度表的设计、搭建与调试,培养实际操作能力。
3. 学生能够运用所学知识解决实际生活中的速度测量问题,提高创新能力。
情感态度价值观目标:1. 学生通过本课程的学习,培养对电子设计自动化技术的兴趣,激发创新精神。
2. 学生在小组合作中,培养团队协作意识,提高沟通与交流能力。
3. 学生能够认识到速度表在交通安全中的作用,增强社会责任感和遵守交通规则的意识。
本课程针对学生年级特点,注重理论与实践相结合,以EDA软件为工具,培养学生电子设计能力。
课程目标具体、可衡量,旨在使学生在掌握基本知识的同时,提高实际操作和创新能力,培养良好的团队协作意识和价值观。
二、教学内容1. 速度表原理及计算公式:讲解速度表的基本工作原理,引导学生掌握速度的计算公式,理解速度与时间、路程的关系。
2. EDA软件应用:介绍EDA软件的基本功能与操作方法,使学生能够运用软件进行电路设计与仿真。
3. 速度表电路设计:依据教材相关章节,指导学生进行速度表电路的绘制,包括传感器、放大器、显示电路等组成部分。
4. 电路搭建与调试:学生分组进行速度表的搭建和调试,掌握电路故障排查方法,提高实际操作能力。
5. 速度表在实际应用中的案例分析:分析速度表在交通安全、运动监测等领域的应用案例,让学生了解速度表的实际意义。
教学内容安排和进度:第一课时:速度表原理及计算公式第二课时:EDA软件应用与电路设计第三课时:速度表电路搭建与调试第四课时:案例分析及总结教学内容与课本紧密关联,注重科学性和系统性。
EDA设计报告
乐曲演奏电路设计一、题目分析1、原理分析产生音乐的两个因素是音乐频率和音乐的持续时间,以纯硬件完成演奏电路比利用微处理器来实现乐曲演奏要复杂的多,如果不凭借EDA 工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
乐曲硬件演奏电路系统主要有数控分频器和乐曲存储模块组成。
数控分频器对FPGA 的基准频率进行分频,得到与各个音阶对应的频率输出。
乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。
乐曲演奏电路的结构框图如下:2、总体方框图图1.1 乐曲演奏电路结构框图乐曲硬件演奏电路的设计主要就是由四个部分组成的,首先为了实现音乐的演奏必须得得到音阶的频率和节拍,这主要就是由音乐节拍发生器和数控分频模块完成的,完了就是译码查表电路是由音符译码电路模块产生的,乐曲硬件演奏电路可分为四个模块,音乐节拍发时钟电路 查符查表电路 音乐节拍产生电路 数控分频器 基准时钟模式选择生器模块,音符译码电路模块,数控分频模块。
该系统由四个模块组成:分别是NoteTabs模块,ToneTaba模块,Speakera 模块和SEG7 模块(七段译码器)。
3、性能指标及功能(1)能够播放“梁祝”乐曲。
(2)能够通过LED显示音阶。
二、选择方案1、可利用的方案方案一:VHDL语言设计方法由上面的分析可知,本系统由Note Tabs模块、Ton Taba模块、Speakera 模块和SEG7 模块组成。
所以采用自顶向下的设计方法,可以利用VHDL语言设计设计方法。
将各个模块统一用VHDL语言设计。
方案二:VHDL语言和原理图设计方法相结合的设计方法由上面的分析可知,本系统由Note Tabs模块、Ton Taba模块、Speakera 模块、SEG7 模块和一个顶层文件构成。
采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。
eda课程设计报告
eda课程设计报告本篇课程设计报告旨在介绍我所参加的EDA课程设计项目。
在这个项目中,我们学习了EDA(Electronic Design Automation)的基本概念和工具,并且设计了一个基于RTL(Register Transfer Level)的数字电路。
以下是具体内容:一、课程设计背景EDA是指用计算机辅助设计来协助电子设计工程师进行电子系统的设计、验证和实现。
EDA已经成为了电子工程领域中不可或缺的工具。
本次课程设计旨在让我们熟悉EDA工具的使用,理解数字电路设计和验证的基本原理。
二、课程设计内容我们采用了Verilog语言来描述数字电路,使用Xilinx Vivado 作为开发工具。
我们首先学习了Verilog的基本语法和编写方法,然后根据老师提供的案例,设计了一个基于RTL的数字电路——多功能计数器。
多功能计数器由三个模块组成:计数模块、比较模块和控制模块。
其中计数模块负责计数,比较模块负责比较计数器的值和一个给定的阈值,控制模块负责根据比较结果控制计数器的计数和清零。
我们使用Xilinx Vivado中的IP核生成器来构建这些模块,并将它们组合成一个完整的数字电路。
三、课程设计效果通过本次课程设计,我们掌握了EDA工具的基本使用和数字电路设计的基本原理。
我们通过自己的实践,加深了对Verilog语言的理解,并且学会了如何使用Xilinx Vivado来开发数字电路。
最终,我们成功实现了一个多功能计数器,并且对其进行了测试和验证,达到了预期效果。
四、总结EDA课程设计为我们打下了坚实的数字电路设计基础,使我们更加熟练地使用EDA工具,同时也为我们今后的学习和工作奠定了基础。
我们将继续探索EDA工具的应用,深入了解数字电路设计的原理和方法,为电子工程领域做出更多的贡献。
eda课程设计实训报告
eda课程设计实训报告一、教学目标本课程的教学目标分为知识目标、技能目标和情感态度价值观目标。
知识目标:学生通过本课程的学习,能够掌握eda的基本概念、原理和应用。
技能目标:学生能够熟练使用eda工具,进行电子系统设计和仿真。
情感态度价值观目标:培养学生对科技创新的兴趣和热情,提高学生解决实际问题的能力。
二、教学内容根据课程目标,本课程的教学内容主要包括eda基本概念、eda工具的使用和电子系统设计实例。
教学大纲如下:1.第一章:eda概述学习eda的基本概念、发展历程和应用领域。
2.第二章:eda工具介绍学习主流eda工具的使用方法和技巧。
3.第三章:电子系统设计实例通过具体实例,学习如何使用eda工具进行电子系统设计和仿真。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
1.讲授法:用于讲解eda的基本概念和原理。
2.讨论法:用于引导学生探讨和解决问题。
3.案例分析法:通过分析具体案例,让学生掌握eda工具的使用方法和技巧。
4.实验法:让学生动手实践,提高实际操作能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的eda教材作为主要学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣。
4.实验设备:保障实验课程的顺利进行,让学生充分实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试。
1.平时表现:通过课堂参与、提问和讨论等方式评估学生的学习态度和理解程度。
2.作业:布置适量的作业,评估学生的掌握情况和应用能力。
3.考试:进行期中和期末考试,全面评估学生的知识掌握和运用能力。
评估方式要求客观、公正,能够全面反映学生的学习成果。
六、教学安排教学进度安排如下:1.第一章:eda概述(2课时)2.第二章:eda工具介绍(4课时)3.第三章:电子系统设计实例(6课时)教学时间安排为每周2课时,共计12课时。
EDA课程设计报告
EDA课程设计报告一、设计任务模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯操纵器。
能达到的要求:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时刻;(2)交通灯红变绿是直截了当进行的,没有间隔时刻;(3)主干道上的绿灯时刻为40秒,支干道的绿灯时刻为20秒;(4)在任意时刻,显示每个状态到该状态终止所需的时刻。
支干道主干道图1 路口交通治理示意图二、设计原理1、设计目的:学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯操纵系统,交通灯操纵系统要紧是实现都市十字交叉路口红绿灯的操纵2、设计讲明在红绿灯交通信号系统中,大多数情形是通过自动操纵的方式指挥交通的。
因此为了幸免意外事件的发生,电路必须给一个稳固的时钟(clock)才能让系统正常运作。
模块讲明:系统输入信号:Clk: 由外接信号发生器提供256的时钟信号;系统输出信号: full:产生每秒一个脉冲的信号;(2)第二模块:计数秒数选择电路计数电路最要紧的功能确实是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。
模块讲明:系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:tm:产生显示电路状态转换信号tl:倒计数值秒数个位变化操纵信号th:倒计数值秒数十位变化操纵信号(3)第三模块:红绿灯状态转换电路本电路负责红绿灯的转换。
模块讲明:系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号;tm: 接收计数秒数选择电路状态转换信号;系统输出信号:comb_out: 负责红绿灯的状态显示。
本电路负责红绿灯的计数时刻的显示。
模块讲明:系统输入信号:tl:倒计数值秒数个位变化操纵信号;th:倒计数值秒数十位变化操纵信号;系统输出信号:led7s1: 负责红绿灯的显示秒数个位。
led7s2:负责红绿灯的显示秒数十位。
EDA课程设计报告
EDA课程设计报告题目:#1——串口通信姓名:学号:班级:组员:串口通信一、设计要求设计一个全双工串口收发控制程序,速率为1200b/s、9600b/s、19200b/s可选,其中数据帧格式为:1位起始位+8位数据+1位奇偶校验位+1位停止位。
二、系统组成FPGA UART由3个子模块组成: 波特率发生器; 接收模块; 发送模块。
方框图如图1 所示。
波特率发生器比较接收模块发送模块图 1 UART 模块组成三、模块设计1. 顶层模块异步收发器的顶层模块由波特率发生器、UART接收和UART发送器构成。
UART 发送器的用途是将准备输出的并行数据按照基本UART 帧格式转为TXD 信号串行输出。
UART接收器接收RXD 串行信号, 并将其转化为并行数据。
波特率发生器就是专门产生一个远远高于波特率的本地时钟信号对输入RXD 不断采样, 使接收器与发送器保持同步。
电路图如图2所示。
2.波特率发生器波特率发生器实际上就是一个分频器。
可以根据给定的系统时钟频率(晶振时钟) 和要求的波特率算出波特率分频因子, 算出的波特率分频因子作为分频器的分频数波特率分频因子可以根据不同的应用需要更改。
本设计有三档,通sel[1..0]端口选择,模式一为1200b/s,模式二9600b/s,为模式三为19200b/s。
3.UART接收器由于串行数据帧和接收时钟是异步的, 由逻辑1 转为逻辑0 可以被视为一个数据帧的起始位。
然而, 为了避免毛刺影响, 能够得到正确的起始位信号, 必须要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0 才可认定接收到的是起始位。
由于内部采样时钟bclk 周期(由波特率发生器产生) 是发送或接收波特率时钟频率的16 倍, 所以起始位需要至少8 个连续bclk 周期的逻辑0 被接收到, 才认为起始位接收到, 接着数据位和奇偶校验位将每隔16 个bclk 周期被采样一次(即每一个波特率时钟被采样一次) 。
EDA实验设计报告
EDA实验设计报告一、实验名称基于FPGA的数字时钟二、实验目的初步掌握EDA设计环节,通过设计一个数字时钟,加深FPGA的工作原理和开发流程,加强硬件描述语言V erilog的编程能力,为后续学习和竞赛打好基础。
通过设计扩展部分,进一步提高FPGA的设计能力,同时了解软硬件接口的设计,建立起系统设计的概念。
三、实验内容1、数字时钟(1)基本要求用同步时序电路设计实现时、分、秒计数的数字钟,并在数码管上正确显示。
(2)扩展要求1、可以按键清。
;2、支持年月日显示功能,用按键进行年月日和时分秒间显示切换。
3、可对显示内容进行修改,用按键键值代替显示内容,按键键值可自行定义。
2、秒表设计内容:利用5个数码管完成秒表显示功能。
要求:1、精度达100ms;2、可以清零;3、可暂停;4、最大计时为999.9s。
3、跑马灯设计实现8个发光二极管以不同频率(2Hz,1Hz,0.5Hz)循环进行左滚动、右滚动、向中间滚动、向两边滚动、闪动等效果,不同频率显示用按键进行切换。
4、VGA显示设计1、分辨率为1024*768/60Hz、1024*768/75Hz、800*600/60Hz三种。
2、红绿蓝单色、彩色棋盘格、圆等图形以1Hz的速率切换显示;3、8级灰度呈条状递增显示。
四、实验仪器Altera公司:Cyclone II EP2C20Q240 FPGA 及实验箱USB-BLASTER 下载线Quartus II 11.0 开发环境外围电路五、实验内容1、硬件系统图学校实验箱系统图:自制显示电路图:4段数码管X2 74LS138VGA接口电路数码管电路led灯电路2、软件部分顶层设计文件bdf原理图输出模块组成。
控制模块:控制功能模块的开启和关闭,同时控制系统选择输出输出相应模块的信号。
系统选择输出模块:因为实验箱数码管和led灯共用8个端口,由三片锁存器控制,所以该模块可根据控制模块的信号选择开启相应模块的输出和锁存控制端。
(完整word版)EDA实验报告完整版
数字系统设计基础实验报告实验名称: 1.组合电路设计___2.失序电路设计___3.计数器的设计___4.原理图设计加法器学号: ___ ********__ ____**: ___ **_______班级: __ 计科09-1班_____老师: __ ______中国矿业大学计算机学院2011年10月27日一.实验一: 组合电路的设计二.实验目的三.熟悉QuartusⅡ的VHDL文本设计流程全过程, 学习简单组合电路的设计、仿真和硬件测试。
四.实验任务任务1: 利用QuartusⅡ完成2选1多路选择器的文本编辑输入和仿真测试等步骤, 得出仿真波形。
最后在试验系统上进行硬件测试, 验证本项设计的功能。
五.任务2: 将此多路选择器看成是一个元件mux21a, 利用元件例化语句描述电路图, 并将此文件放在同一目录中。
六.对于任务中的例子分别进行编译、综合、仿真, 并对其仿真波形作出分析说明。
七.实验过程1.新建一个文件夹, 取名CNT10。
2.输入源程序。
3.文件存盘, 文件名为cnt10, 扩展名为.vhd。
八.创建工程, 按照老师要求对软件进行设置。
九.进行失序仿真, 得到仿真图形。
十.实验程序任务1:entity CNT10 ISport (a,b,s:in bit;y:out bit);end entity CNT10;architecture one of CNT10 isbeginprocess (a,b,s)if s='0' then y<=a; else y<=b;end if;end process;end architecture one;任务2:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUXK ISPORT (s0,s1: in STD_LOGIC;a1,a2,a3: in STD_LOGIC;outy: out STD_LOGIC );END ENTITY MUXK;ARCHITECTURE double OF MUXK ISSIGNAL tmpout,tmp:STD_LOGIC;BEGINu1: PROCESS(s0,a2,a3,tmp)BEGINIF s0='0' then tmp<=a2;else tmp<=a3;END IF ;END PROCESS u1 ;u2: PROCESS(s1,a1,tmp,tmpout)BEGINIF s1='0' then tmpout<=a1;else tmpout<=tmp; END IF ;END PROCESS u2 ;outy<=tmpout;END ARCHITECTURE double;十一.实验结果任务1:任务2:十二.实验体会在课堂上对于“EDA与VHDL”这门课的用处及用法一直一知半解, 课上对于一些编程也是学的很模糊, 因为学习过模拟电路与数字电路, 所以总认为器件仿真要用电脑模拟器件或者直接用实物, 但是通过本次实验对QuartusⅡ的初步接触, 了解了其功能的强大。
电子设计(EDA)实验报告(4位二进制加法器)
电子设计(EDA)实验报告(4位二进制加法器)一、实验名称4位二进制加法器二、实验目的掌握输入编辑原理图文件的方法;掌握编译原理图文件的方法;掌握仿真原理图文件的方法;理解Quartus 2 器件编程的方法三、实验环境计算机与Quartus 2 工具软件四、实验原理图、源程序entity halfadd isport(a1,b1:in bit;s1,c1:out bit);end ;architecture a of halfadd isbeginprocess(a1,b1)begins1<=a1 xor b1 after 10ns;c1<=a1 and b1 after 10ns;end process;end a;entity orgate isport(a,b:in bit;o:out bit);end orgate;architecture a of orgate isbegino<=a or b;end a;entity fulladd isport(i1,i2,c_in:in bit;fs,c_out:out bit);end ;architecture a of fulladd issignal temp_s,temp_c1,temp_c2:bit; component halfaddport(a1,b1:in bit;s1,c1:out bit);end component;component orgate port(a,b:in bit;o:out bit);end component;beginu0:halfadd port map(i1,i2,temp_s,temp_c1);u1:halfadd port map(temp_s,c_in,fs,temp_c2); u2:orgate port map(temp_c1,temp_c2,c_out); end a;entity add4 isport(a,b:in bit_vector(3 downto 0);cin:in bit;fs:out bit_vector(3 downto 0);cout:out bit);end add4;architecture a of add4 issignal temp_co0,temp_co1,temp_co2:bit; component fulladd isport(i1,i2,c_in:in bit;fs,c_out:out bit);end component;beginu0:fulladd port map(a(0),b(0),cin,fs(0),temp_co0);u1:fulladd port map(a(1),b(1),temp_co0,fs(1),temp_co1);u2:fulladd port map(a(2),b(2),temp_co1,fs(2),temp_co2);u3:fulladd port map(a(3),b(3),temp_co2,fs(3),cout);end a;五、实验波形图及分析延迟12.08ns。
EDA实验报告
EDA实验报告一、实验目的本次 EDA 实验的主要目的是熟悉电子设计自动化(EDA)软件的使用,掌握数字电路的设计、仿真和实现流程,提高对数字逻辑电路的理解和设计能力。
二、实验设备与环境1、计算机一台2、 EDA 软件(如 Quartus II 等)三、实验原理1、数字逻辑基础数字电路中的基本逻辑门包括与门、或门、非门、与非门、或非门等。
通过这些基本逻辑门的组合,可以实现各种复杂的数字逻辑功能。
2、组合逻辑电路组合逻辑电路的输出仅取决于当前的输入,不存在存储单元。
常见的组合逻辑电路有加法器、编码器、译码器等。
3、时序逻辑电路时序逻辑电路的输出不仅取决于当前的输入,还与电路的过去状态有关。
常见的时序逻辑电路有计数器、寄存器等。
四、实验内容1、设计一个简单的加法器使用基本逻辑门设计一个两位加法器,输入为两个两位的二进制数A 和 B,输出为它们的和 S 以及进位 C。
2、设计一个 4 位计数器实现一个 4 位的计数器,能够在时钟信号的上升沿进行计数,计数范围为 0 到 15。
3、设计一个数码管显示译码器将输入的 4 位二进制数转换为数码管的 7 段显示编码,实现数字 0 到 9 的显示。
五、实验步骤1、加法器设计(1)打开 EDA 软件,创建一个新的项目。
(2)使用原理图输入方式,绘制出加法器的逻辑电路图,包括两个半加器和一个或门。
(3)对设计进行编译,检查是否存在语法错误。
(4)创建仿真文件,设置输入信号的激励,进行功能仿真,观察输出结果是否符合预期。
2、计数器设计(1)在项目中新建一个模块,使用 Verilog HDL 语言描述计数器的功能。
(2)编写测试代码,对计数器进行仿真验证。
(3)将计数器下载到硬件开发板上,通过观察实际的输出结果验证其功能。
3、数码管显示译码器设计(1)同样使用原理图输入方式,设计数码管显示译码器的逻辑电路。
(2)进行编译和仿真,确保译码器的功能正确。
(3)将译码器与计数器连接起来,实现数码管的动态显示。
EDA设计报告
目录一绪论 (1)1.1 EDA技术 (1)1.2 数字系统 (2)1.3 数字系统的设计方法 (3)1.4 现代数字系统的设计模型及过程 (4)二交通灯控制系统介绍 (4)2.1 交通灯控制系统的功能及设计 (5)2.2 交通灯控制系统的基本组成模块 (5)2.4 交通灯控制器状态 (6)2.5 程序流程图 (6)三交通灯控制系统的设计 (6)3.1 交通灯控制器功能描述及设计方法 (6)3.2 设计要求 (7)3.3 交通灯系统的程序 (8)3.4 交通灯系统的仿真 (11)3.5 程序下载 (13)3.5.1 引脚配置 (13)3.5.2 编程下载 (14)四总结 (14)参考文献 (15)一绪论1.1 EDA技术EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
电子设计技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。
EDA 技术是伴随着计算机、集成电路、电子系统设计的发展, 经历了计算机辅助设计(CAD) 、计算机辅助工程设计(CAE) 和电子系统设计自动化( ESDA) 三个发展阶段。
20 世纪70 年代为CAD 阶段, 这一阶段人们开始用计算机辅助进行IC 版图编辑和PCB 布局布线, 取代了手工操作。
ESDA 的出现, 使设计师开始实现“概念驱动工程”的梦想, 从而摆脱了大量的辅助设计作, 把精力集中在创造性的方案与概念构思上, 极大地提高了系统的效率, 缩短了产品的研制周期。
eda课程设计实验报告
eda课程设计实验报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用所学知识,设计并实现基本的数字电路。
3. 学生了解数字电路的设计流程,掌握设计规范,具备初步的电路分析能力。
技能目标:1. 学生能独立操作EDA软件,完成电路的原理图绘制、仿真和布局布线。
2. 学生通过实验报告的撰写,提高实验数据分析、总结归纳的能力。
3. 学生在小组合作中,提高沟通协调能力和团队协作能力。
情感态度价值观目标:1. 学生培养对电子科学的兴趣,激发创新意识,增强实践能力。
2. 学生在实验过程中,形成严谨的科学态度,提高问题解决能力。
3. 学生通过课程学习,认识到科技发展对国家和社会的重要性,增强社会责任感。
课程性质:本课程为实践性较强的电子设计课程,旨在培养学生的实际操作能力、创新意识和团队合作精神。
学生特点:六年级学生具有一定的电子知识基础,好奇心强,喜欢动手实践,但需加强对理论知识的理解和应用。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力和创新能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. EDA基本概念与工具介绍- 电子设计自动化原理简介- 常用EDA软件功能与操作方法2. 数字电路设计基础- 数字电路基本元件及功能- 原理图绘制与仿真分析3. 布局布线与PCB设计- PCB设计流程与方法- 布局布线技巧与规范4. 实验报告撰写- 实验数据整理与分析- 实验总结与反思教学大纲安排如下:第一周:- EDA基本概念与工具介绍- 数字电路基本元件及功能第二周:- 原理图绘制与仿真分析第三周:- 布局布线与PCB设计第四周:- 实验报告撰写教学内容与教材关联性:本教学内容与教材《电子技术基础与实践》第六章“电子设计自动化”相关章节紧密相连,确保了教学内容的科学性和系统性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA实验报告多功能数字钟的设计学院院系:物理学与电子技术学院课程名称:EDA技术专业班级:2011级微电子学生姓名:李盛鹏指导教师:田茂设计时间:2013年12月17日一:有关介绍数字钟是一种用数字电路技术实现时、分、秒计时的装置。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,数字钟可以手动调整时间,整点报时,以及附加秒表功能。
数字钟的设计方法主要是基于Quartus II软件进行逻辑电路的设计并借助于可编程逻辑器件进行硬件实现,最终本设计实现24小时的时钟计时、整点报时功能,时间重置功能以及秒表功能。
二:实验目的1.了解数字钟的工作原理;2.熟悉用VHDL语言编写驱动七段数码管显示的代码;3.进一步熟悉Quartus II软件;4.秒/分/时/小数点的通过数码管依次显示并正确计数;5.实现整点报时,扬声器发出报时声音;6.时间设置,即手动调时功能:当认为时钟不准确时,可以分别对分/时进行调整;7.秒表功能,即可手动控制秒表的复位、暂停以及开始;三:实验原理多功能数字钟应该具有的功能有:显示时-分-秒、整点报时、小时和分钟可调等基本功能。
首先要知道钟表的工作机理,整个钟表的工作应该是在1Hz 信号的作用下进行,这样每来一个时钟信号,秒增加 1 秒,当秒从59 秒跳转到00 秒时,分钟增加1 分,同时当分钟从59 分跳转到00 分时,小时增加1 小时,但是需要注意的是,小时的范围是从0~23时。
整个秒表的工作应该是在100hz信号的作用的进行,这样每来一个时钟信号,10毫秒位增加 1 秒,当10毫秒位从99 秒跳转到00 秒时,秒增加 1 秒,同时当秒从59 分跳转到00 分时,分钟增加 1 分钟,但是需要注意的是,分钟的范围是从0~59分。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD 码)显示个位,对于小时因为它的范围是从0~23 ,所以可以用一个2 位的二进制码显示十位,用4 位二进制码(BCD 码)显示个位。
实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz 时钟信号,但是由于黑金开发板的晶振输出的频率是20Mhz,因此为了得到准确的1Hz 信号,必须对输入的系统时钟进行分频。
而为了实现蜂鸣器的正常工作,需要用到1khz的时钟信号,以及秒表所需的100Hz的时钟信号及时和分调整时所需的2khz的信号,必须对时钟信号再一次分频。
对于整点报时功能,用户可以根据系统的硬件结构和自身的具体要求来设计。
本实验设计的是进行整点的闹铃提醒,让蜂鸣器发出蜂鸣声来实现整点报时,即每当到达整点时,蜂鸣器自动发出5秒蜂鸣声来作为提醒。
四:实验内容本实验的任务就是设计一个多功能数字钟,要求显示格式为小时-分钟-秒钟,整点报时,用蜂鸣器实现5秒的蜂鸣报时。
系统时钟选择时钟模块的20MHz,要得到1Hz 时钟信号,必须对系统时钟进行20000000 次分频。
调整模式的的按键用按键模块的KEY-OK 调节模式,KEY-UP调节时间以及控制秒表的暂停,KEY-LIFT控制秒表的复位,KEY-DOWN 控制时间的暂停,没有按下KEY-OK时,时钟正常工作;按下一次,数码管黑屏;按下两次,切换到调整秒模式,若此时每按下一次KEY-UP,则秒增加一秒;按下三次,切换到调整分钟模式,若此时每按下一次KEY-UP,则分增加一分;按下四次,切换到调整小时模式,若此时每按下一次KEY-UP,则小时增加一小时;按下五次,切换到调整秒表模式,若按下一次KEY-UP,则秒表暂停,再按一次KEY-UP,则秒表继续工作,若按下KEY-LIFT,则此时秒表复位;若按下五次KEY-OK,则数字钟又回到时分秒的正常工作状态下。
五:实验设计(1)顶层实体(如下图):(2)分频模块:系统时钟选择时钟模块的频率为20MHZ,而实际我们所需要的为1HZ的时钟信号,因此要对系统时钟进行20000000次分频,本实验通过两个分频子程序实现此功能,实现方案如下:VHDL子程序:原理图:如右图.library ieee;use ieee.std_logic_1164. all;entity fre isport(clk ,sel: in std_logic;clk1hz,clk100hz,clk1khz,clk2khz:out std_logic);end fre;architecture beh of fre issignal data1khz,data100hz,data2khz,data1hz : std_logic := '0';beginclk1hz <= data1hz;clk100hz <= data100hz;clk1khz <= data1khz;clk2khz <= data2khz;clk1khz_pro : process(clk) --产生1khz信号variable cnt : integer range 0 to 9999;beginif clk'event and clk='1' thenif cnt = 9999 thencnt := 0 ; data1khz <= not data1khz;elsecnt := cnt + 1;end if;end if;end process clk1khz_pro;clk100hz_pro : process(clk) --产生100hz信号variable cnt : integer range 0 to 99999;beginif clk'event and clk='1' thenif sel='0' then cnt:=0;else if cnt = 99999 thencnt := 0 ; data100hz <= not data100hz;elsecnt := cnt + 1;end if;end if;end if;end process clk100hz_pro;clk2khz_pro : process(clk) --产生2khz信号variable cnt : integer range 0 to 4999;beginif clk'event and clk='1' thenif cnt = 4999 thencnt := 0 ; data2khz <= not data2khz;elsecnt := cnt + 1;end if;end if;end process clk2khz_pro;clk1hz_pro : process(data1khz) --产生1hz 信号variable cnt : integer range 0 to 499;beginif data1khz'event and data1khz='1' thenif sel='0' then cnt:=0;else if cnt = 499 thencnt := 0 ;data1hz <= not data1hz ;elsecnt := cnt + 1;end if;end if;end if;end process clk1hz_pro;end beh;(3)按键部分原理图:如右图.VHDL子程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity key_press isport( set ,mode: in std_logic;clk1khz,clk1hz: in std_logic;secout,minout: in std_logic;clk_change,clk2hz_en:out std_logic ;sel,s_ce,m_ce,h_ce,mb_ce:out std_logic;s_en,m_en,h_en,mb_en:out std_logic );end key_press;architecture beh of key_press issignal key1,key2:std_logic;signal sce_reg, mce_reg ,hce_reg,mb_reg:std_logic ;signal ssl,ssen,mmen,hhen,mben:std_logic;signal con : integer range 0 to 5 :=0;--按键按下(延时)beginkey_press2 : process(set,clk1khz)variable cnt :integer range 0 to 999;beginif set='0' thenif clk1khz'event and clk1khz='1'thenif cnt=50 and set='0' thencnt :=cnt+1; key2 <= '1';else cnt:=cnt+1;key2 <= '0';end if;end if;elsecnt:=0; key2<='0';end if;end process key_press2;key_press1 : process(mode,clk1khz)variable cnt :integer range 0 to 999;beginif mode='0' thenif clk1khz'event and clk1khz='1'thenif cnt=50 and mode='0' thencnt :=cnt+1; key1 <= '1';else cnt:=cnt+1;key1 <= '0';end if;end if;elsecnt:=0; key1<='0';end if;end process key_press1;count : process(key1,key2)beginif key1'event and key1='1' thenif con=5 thencon<=0;elsecon<=con+1;end if;end if;end process count;con_pro : process(con)begincase con iswhen 0 => ssl<='1';sce_reg <= '0';ssen <='1';mce_reg <= '0';mmen <='1';hce_reg <= '0';hhen <='1';mb_reg <= '0';mben <='0';clk2hz_en <='0';when 1 => ssl<='0';sce_reg <= '0';ssen <='1';mce_reg <= '0';mmen <='1';hce_reg <= '0';hhen <='1';mb_reg <= '0';mben <='0';clk2hz_en <='1';when 2 => ssl<='0';sce_reg <= '1';ssen <='1';mce_reg <= '0';mmen <='0';hce_reg <= '0';hhen <='0';mb_reg <= '0';mben <='0';clk2hz_en <='1';when 3 => ssl<='0';sce_reg <= '0';ssen <='0';mce_reg <= '1';mmen <='1';hce_reg <= '0';hhen <='0';mb_reg <= '0';mben <='0';clk2hz_en <='1';when 4 => ssl<='0';sce_reg <= '0';ssen <='0';mce_reg <= '0';mmen <='0';hce_reg <= '1';hhen <='1';mb_reg <= '0';mben <='0';clk2hz_en <='1';when 5 => ssl<='0';sce_reg <= '1';ssen <='1';mce_reg <= '1';mmen <='1';hce_reg <= '1';hhen <='1';mb_reg <= '1';mben <='1';clk2hz_en <='0';when others => ssl<='0';sce_reg <= '0';ssen <='1';mce_reg <= '0';mmen <='1';hce_reg <= '0';hhen <='1';mb_reg <= '0';mben <='0';clk2hz_en <='0';end case;end process con_pro;sel_pro : process(ssl)begincase ssl iswhen '0'=> s_ce<=sce_reg;m_ce<=mce_reg;h_ce<=hce_reg;mb_ce<=mb_reg;clk_change<=key2;when '1'=> s_ce<=ssen;m_ce<=mmen;h_ce<=hhen;mb_ce<=mben;clk_change<=clk1hz;when others=> s_ce<=ssen;m_ce<=secout;h_ce<=minout;clk_change<=clk1hz;end case;end process sel_pro;sel<=ssl;s_en<=ssen;m_en<=mmen;h_en<=hhen;mb_en<=mben;end beh;(4)数字钟部分原理图:VHDL子程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;entity shuzizhong isport(clk_change : in std_logic;s_en,m_en,h_en:in std_logic;sel:in std_logic;secout,minout,hourout :out std_logic;sl,sh,ml,mh,hl,hh:out std_logic_vector(3 downto 0);a:out std_logic_vector(15downto 0));end shuzizhong;architecture behav of shuzizhong issignal low_rega,high_rega,low_regb,high_regb,low_regc,high_regc :std_logic_vector(3 downto 0):="0000";signal sout,mout,hout :std_logic :='0';begin--秒的60进制进制counter_sec_l : process(clk_change,s_en)beginsl<=low_rega;sh<=high_rega;ml<=low_regb;mh<=high_regb;hl<=low_regc;hh<=high_regc;if clk_change'event and clk_change='1' thenif s_en='1' thenif low_rega="1001" thenlow_rega <= "0000";elselow_rega <= low_rega+'1';end if;end if;end if;end process counter_sec_l;counter_sec_h : process(clk_change,s_en,low_rega)beginif clk_change'event and clk_change='1' thenif s_en='1' thenif low_rega="1001" thenif high_rega ="0101"thenhigh_rega <= "0000";elsehigh_rega <= high_rega+'1';end if;end if;end if;end if;end process counter_sec_h;sout <= '1' when low_rega="1001" and high_rega="0101" else '0';----分钟的60进制设置counter_min_l : process(clk_change,m_en)beginif clk_change'event and clk_change='1' thenif m_en='1' thenif sout='1'or sel='0' thenif low_regb="1001" thenlow_regb <= "0000";elselow_regb <= low_regb+'1';end if;end if;end if;end if;end process counter_min_l;counter_min_h : process(clk_change,m_en,low_regb)beginif clk_change'event and clk_change='1' thenif sout='1'or sel='0' thenif m_en='1' thenif low_regb="1001" thenif high_regb ="0101"thenhigh_regb <= "0000";elsehigh_regb <= high_regb+'1';end if;end if;end if;end if;end if;end process counter_min_h;mout <= '1' when low_regb="1001" and high_regb="0101"and sout='1' else '0';--小时的24进制设置counter_hour_l : process(clk_change,h_en)beginif clk_change'event and clk_change='1' thenif h_en='1' thenif mout='1'or sel='0' thenif low_regc="1001"or hout='1' thenlow_regc <= "0000";elselow_regc <= low_regc+'1';end if;end if;end if;end if;end process counter_hour_l;counter_hour_h : process(clk_change,h_en,hout)beginif clk_change'event and clk_change='1' thenif mout='1'or sel='0' thenif h_en='1' thenif hout='1' thenhigh_regc<="0000";else if low_regc="1001" thenhigh_regc <= high_regc+'1';end if;end if;end if;end if;end if;end process counter_hour_h;hout <= '1' when low_regc="0011" and high_regc="0010" else '0';secout<=sout;minout<=mout;hourout<=hout;a<=high_regb&low_regb&high_rega&low_rega ;end behav;(5)秒表部分原理图:VHDL子程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;entity miaobiao isport(clk_100hz,clk1khz: in std_logic;set1 : in std_logic;s_en,m_en,h_en,mb_en:in std_logic;sel:in std_logic;sl0,sh0,ml0,mh0,hl0,hh0:out std_logic_vector(3 downto 0);clk_change:in std_logic);end miaobiao;architecture behav of miaobiao issignal low_rega,high_rega,low_regb,high_regb,low_regc,high_regc :std_logic_vector(3 downto 0):="0000";signal sout,mout,hout :std_logic :='0';signal key2:std_logic;signal con : integer range 0 to 1 :=0;beginprocess(clk1khz)beginif clk_change'event and clk_change='1' thenif mb_en='1' thenif con = 0 thencon <= 1;else con <=0;end if;end if;else con <= con;end if;end process;-- process(con)-- begin-- case con is-- when 0 =>-- when 1 =>-- when others =>-- end case;-- end process;key_press2 : process(set1,clk1khz)variable cnt :integer range 0 to 500;beginif set1='0' thenif clk1khz'event and clk1khz='1'thenif cnt=20 and set1='0' thencnt :=cnt+1; key2 <= '1';else cnt:=cnt+1;key2 <= '0';end if;end if;elsecnt:=0; key2<='0';end if;end process key_press2;--1/100秒的60进制进制counter_sec_l : process(clk_100hz,s_en,key2,clk1khz)beginsl0<=low_rega;sh0<=high_rega;ml0<=low_regb;mh0<=high_regb;hl0<=low_regc;hh0<=hig h_regc;if (key2='1') then low_rega <= "0000";elseif clk_100hz'event and clk_100hz='1' thenif con = 1 thenif s_en='1' thenif low_rega="1001" thenlow_rega <= "0000";elselow_rega <= low_rega+'1';end if;end if;end if;end if;end if;end process counter_sec_l;counter_sec_h : process(clk_100hz,s_en,low_rega)beginif (key2='1') then high_rega <= "0000";elseif clk_100hz'event and clk_100hz='1' thenif s_en='1' thenif con = 1 thenif low_rega="1001" thenif high_rega ="1001"thenhigh_rega <= "0000";elsehigh_rega <= high_rega+'1';end if;end if;end if;end if;end if;end process counter_sec_h;sout <= '1' when low_rega="1001" and high_rega="1001" else '0';--60miao jinzhi counter_min_l : process(clk_100hz,m_en)beginif (key2='1') then low_regb <= "0000";elseif clk_100hz'event and clk_100hz='1' thenif m_en='1' thenif con = 1 thenif sout='1'thenif low_regb="1001" thenlow_regb <= "0000";elselow_regb <= low_regb+'1';end if;end if;end if;end if;end if;end if;end process counter_min_l;counter_min_h : process(clk_100hz,m_en,low_regb)beginif (key2='1') then high_regb <= "0000";elseif clk_100hz'event and clk_100hz='1' thenif sout='1' thenif con = 1 thenif m_en='1' thenif low_regb="1001" thenif high_regb ="0101"thenhigh_regb <= "0000";elsehigh_regb <= high_regb+'1';end if;end if;end if;end if;end if;end if;end process counter_min_h;mout <= '1' when low_regb="1001" and high_regb="0101"and sout='1' else '0';--60fen jinzhicounter_hour_l : process(clk_100hz,h_en)beginif (key2='1') then low_regc <= "0000";elseif clk_100hz'event and clk_100hz='1' thenif h_en='1' thenif mout='1' thenif con = 1 thenif low_regc="1001" thenlow_regc <= "0000";elselow_regc <= low_regc+'1';end if;end if;end if;end if;end if;end if;end process counter_hour_l;counter_hour_h : process(clk_100hz,h_en,hout)beginif (key2='1') then high_regc <= "0000";elseif clk_100hz'event and clk_100hz='1' thenif mout='1' thenif h_en='1' thenif con = 1 thenif low_regc="1001" thenif high_regc ="0101" thenhigh_regc <="0000";elsehigh_regc <= high_regc+'1';end if;end if;end if;end if;end if;end if;end if;end process counter_hour_h;hout <= '1' when low_regc="1001" and high_regc="0101" else '0';end architecture;(6)动态刷新数码管部分原理图:VHDL子程序:library ieee;use ieee.std_logic_1164.all;entity scan isport(clk1khz : in std_logic;sl,sh,ml,mh,hl,hh : in std_logic_vector(3 downto 0);sl0,sh0,ml0,mh0,hl0,hh0 : in std_logic_vector(3 downto 0);clk2hz_en : in std_logic;mb_en : in std_logic;s_ce,m_ce,h_ce : in std_logic;en_out : out std_logic_vector(5 downto 0);dataout : out std_logic_vector(3 downto 0);dian : out std_logic);end scan;architecture beh of scan issignal cnt : integer range 0 to 5;signal en : std_logic_vector(5 downto 0); signal clk2hz : std_logic;signal h_ce_reg,m_ce_reg,s_ce_reg : std_logic;beginh_ce_reg <= not h_ce;m_ce_reg <= not m_ce;s_ce_reg <= not s_ce;cnt_pro : process(clk1khz)beginif clk1khz'event and clk1khz='1' thenif cnt = 5 thencnt <= 0;elsecnt <= cnt + 1;end if;end if;end process cnt_pro;clk2hz_pro :process(clk1khz)variable c : integer range 0 to 499 := 0;beginif clk1khz'event and clk1khz='1' thenif clk2hz_en ='1' thenif c =499 thenc := 0 ; clk2hz <= not clk2hz;elsec := c + 1;end if;elseclk2hz <= '0';end if;end if;end process clk2hz_pro;scan_pro : process(cnt,sl,sh,ml,mh,hl,hh,sl0,sh0,ml0,mh0,hl0,hh0) beginif mb_en='0' thencase cnt iswhen 0 => dataout <= sl;en <= "111110";dian<='0';when 1 => dataout <= sh;en <= "111101";dian<='0';when 2 => dataout <= ml;en <= "111011";dian<='1';when 3 => dataout <= mh;en <= "110111";dian<='0';when 4 => dataout <= hl;en <= "101111";dian<='1';when 5 => dataout <= hh;en <= "011111";dian<='0';when others => null;end case;elsecase cnt iswhen 0 => dataout <= sl0;en <= "111110";dian<='0';when 1 => dataout <= sh0;en <= "111101";dian<='0';when 2 => dataout <= ml0;en <= "111011";dian<='1';when 3 => dataout <= mh0;en <= "110111";dian<='0';when 4 => dataout <= hl0;en <= "101111";dian<='1';when 5 => dataout <= hh0;en <= "011111";dian<='0';when others => null;end case;end if;end process scan_pro;en_out <= en or ((clk2hz & clk2hz) or (h_ce_reg & h_ce_reg)) & ((clk2hz & clk2hz) or (m_ce_reg & m_ce_reg)) & ((clk2hz & clk2hz) or (s_ce_reg & s_ce_reg));end beh;(7)显示数码管部分原理图:VHDL子程序:library ieee;use ieee.std_logic_1164.all;entity display isport(datain : in std_logic_vector(3 downto 0);dataout : out std_logic_vector(7 downto 0);dianin : in std_logic);end display;architecture duan of display isbeginprocess(datain)begincase dianin & datain iswhen "00000" => dataout <="11000000"; --dp,g,f,e,d,c,b,awhen "00001" => dataout <="11111001";when "00010" => dataout <="10100100";when "00011" => dataout <="10110000";when "00100" => dataout <="10011001";when "00101" => dataout <="10010010";when "00110" => dataout <="10000010";when "00111" => dataout <="11111000";when "01000" => dataout <="10000000";when "01001" => dataout <="10010000";when "01010" => dataout <="10111111";when "01011" => dataout <="10000011";when "01100" => dataout <="10100111";when "01101" => dataout <="10100001";when "01110" => dataout <="10000110";when "01111" => dataout <="10001110";when "10000" => dataout <="01000000"; --dp,g,f,e,d,c,b,awhen "10001" => dataout <="01111001";when "10010" => dataout <="00100100";when "10011" => dataout <="00110000";when "10100" => dataout <="00011001";when "10101" => dataout <="00010010";when "10110" => dataout <="00000010";when "10111" => dataout <="01111000";when "11000" => dataout <="00000000";when "11001" => dataout <="00010000";when "11010" => dataout <="00111111";when "11011" => dataout <="00000011";when "11100" => dataout <="00100111";when "11101" => dataout <="00100001";when "11110" => dataout <="00000110";when "11111" => dataout <="00001110";when others => null;end case;end process;end ;(8)整点报时部分原理图:VHDL子程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;--整点报时entity baoshi isport(a:in std_logic_vector(15 downto 0);d:out std_logic);end baoshi;architecture zhong of baoshi issignal beep : std_logic;beginprocess(beep)beginif a<"0000000000000101" then beep<='0';else beep<='1';end if;end process ;d<=beep ;end zhong ;(9)LED灯循环闪烁部分原理图:VHDL子程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY led ISPORT(clk:IN STD_LOGIC;lamp:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END led;ARCHITECTURE fun OF led ISSIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(clk)BEGINIF(rising_edge(clk))THENIF(count<="11")THENIF(count="00")THENlamp<="0001";--循环点亮三只灯ELSIF(count="01")THENlamp<="0010";ELSIF(count="10")THENlamp<="0100";ELSIF(count="11")THENlamp<="1000";END IF;count<=count+1;ELSEcount<="00";END IF;END IF;END PROCESS ;END fun;六:仿真结果七:实验问题(已解决&有待解决)1:刚开始测试时,发现整点时蜂鸣器不能整点报时,检查程序,修改错误,发现原来是程序逻辑有点问题,因而发生了该错误现象。