EDA技术及应用实训报告
EDA技术与应用__万年历的实现_实训报告
《EDA技术及其应用》实训报告班级 **级通信一班姓名 * * *学号 *********指导教师 * * *2010 年* 月* 日******学院机械电子工程系目录一课程设计的目的及意义 (1)1.0设计目的 (1)1.1设计意义 (2)1.2设计要求 (2)二设计流程: (2)2.0 万年历原理 (2)2.1 原理框图 (2)2.2原理框图中各子模块的VHDL语言表述及生成模块框图 (3)2.3 VHDL设计流程 (3)三VHDL程序 (3)3.0 60进制计数器 (4)3.1 24进制计数器 (4)3.2 天计数模块 (5)3.3 月计数模块 (6)3.4 年计数模块 (7)3.5 秒分时和日月年分组输出控制模块...............................................错误!未定义书签。
3.6秒分时和日月年分两种模式切换和调整模块..................................错误!未定义书签。
3.7下载到试验箱上实现其功能..............................................................错误!未定义书签。
四总结 (10)4.0 (10)一课程设计的目的及意义1.0设计目的本次设计的目的就是在掌握计算机组成原理理论的基础上,了解EDA技术,掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原理中的数控分频器基础之上的,通过本课程设计,达到巩固和综合运用计算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决计算机实际问题的能力。
进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤1.1设计意义巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。
eda技术应用实训报告
EDA技术应用实训报告1. 引言探索性数据分析(Exploratory Data Analysis,简称EDA)是一种数据分析方法,旨在通过可视化和统计技术来了解数据集的特征、检查数据的质量,并发现其中隐藏的模式和关系。
EDA在数据科学领域应用广泛,为后续的数据建模和预测提供了基础。
本报告旨在应用EDA技术来分析一个实际数据集,并展示其中的步骤和方法。
2. 数据集介绍2.1 数据来源本实训使用的数据集来自于某电子商务网站的用户行为日志。
数据包括用户ID、时间戳、用户行为类型、商品ID等信息。
2.2 数据预处理在进行EDA之前,我们进行了一些数据预处理的步骤,包括:•去除重复值•处理缺失值•日期格式转换和处理•数据类型转换等经过预处理后,我们得到了干净的数据集用于后续的EDA分析。
3. EDA方法和步骤本次实训的EDA分析过程包括以下几个步骤:3.1 数据探索与可视化首先,我们对数据集进行了整体的数据探索,包括数据的基本统计特征、数据的分布情况等。
我们使用了Python中的pandas库和matplotlib库进行数据可视化,绘制了柱状图、散点图、箱线图等,以便更好地理解数据集的特征。
3.2 关联分析在数据探索的基础上,我们进行了关联分析,以了解不同变量之间的相关性。
我们使用了Python中的seaborn库和corr函数来计算变量之间的相关系数,并绘制了热力图来展示相关性。
通过关联分析,我们发现了一些变量之间显著的相关性,这对于后续的特征选择和建模有很大的帮助。
3.3 异常值检测在进行EDA之前,我们对数据集进行了异常值检测。
我们使用了Python中的箱线图和散点图等可视化方法来检查数据中存在的异常值。
通过这些方法,我们成功识别出了一些数据集中的异常值,并对其进行了处理。
3.4 特征工程在对数据集进行了基本的探索和分析后,我们进行了一些特征工程的操作,以提取和构造新的特征。
我们使用了Python中的numpy库和pandas库来进行特征工程操作,包括特征选择、特征缩放、特征变换等。
eda实训总结
EDA实训总结随着科技的飞速发展,电子设计自动化(EDA)技术在当今的电子工程领域中扮演着越来越重要的角色。
为了提高我们的实践能力和对EDA技术的深入理解,学校为我们安排了为期一个月的EDA实训课程。
以下是我对这次实训的详细总结和心得体会。
一、实训目的与意义EDA实训的主要目的是让我们通过实际操作,掌握EDA工具的使用方法,了解电子设计的流程,培养我们的实践能力和创新思维。
这对我们未来从事电子工程相关工作具有重要的指导意义。
在实训过程中,我们不仅学习了EDA工具的基本操作,还通过完成各种设计任务,锻炼了我们的团队协作能力、问题解决能力和创新思维。
这些能力对于我们未来的职业发展都是非常重要的。
二、实训内容与过程实训内容主要包括EDA工具的学习和使用,以及基于这些工具完成实际的设计任务。
我们使用的EDA工具主要包括原理图设计工具、PCB设计工具、电路仿真工具等。
在实训初期,我们首先学习了这些工具的基本操作方法,包括原理图的绘制、元件的封装、电路板的布局布线等。
通过不断的练习,我们逐渐掌握了这些工具的使用技巧。
接下来,我们开始进行实际的设计任务。
我们分组进行,每组负责完成一个不同的设计项目。
在设计过程中,我们遇到了很多问题和挑战。
例如,原理图的绘制需要精确到每个元件的引脚连接,稍有差错就可能导致整个电路无法正常工作。
此外,电路板的布局布线也是一项非常考验耐心和技巧的工作。
我们需要根据元件的尺寸和连接方式,合理安排它们的位置,同时确保信号的传输路径尽可能短且不受干扰。
在面对这些问题时,我们通过查阅资料、请教老师和同学讨论等方式,逐步找到了解决问题的方法。
最终,我们成功完成了设计任务,并进行了电路板的制作和测试。
三、实训收获与体会通过这次EDA实训,我收获颇丰。
首先,我掌握了EDA工具的基本操作方法,为今后的学习和工作打下了坚实的基础。
其次,我通过实际的设计任务,锻炼了自己的团队协作能力和问题解决能力。
这些能力对于我未来的职业发展都是非常重要的。
EDA技术及应用实训报告
EDA技术及应用实训报告
1.设计自动化技术
设计自动化技术(Design Automation)是一项将新科技与新技术结合在一起的实际工程学科,它将工程设计和制造过程的各个方面进行自动建模、自动仿真、自动集成,从而实现对制造技术的模拟和控制,实现优化系统设计和提高设计效率的目的。
设计自动化是达到设计自动化的途径之一,它强调了“从设计中抽象出规则、流程、模型和算法”,并对它们进行自动化,从而克服了手动设计中的过程繁琐、重复劳动的缺点,为设计师提供了更快、更准、更节劳的方法。
2、EDA技术
EDA(电子设计自动化)是在电子产品设计的整个流程中使用计算机软件和硬件工具来实现设计自动化的过程,也称之为电子产品设计自动化(EDA)。
EDA技术已经发展到成熟阶段,&&主要用于电路板设计、电路仿真、CAD/CAM设计、电路布线和测试等领域。
EDA实训报告范文
EDA实训报告范文实训报告一、背景介绍本次实训的数据集是某电商平台的用户行为数据集,包括用户在平台上的浏览、搜索、点击、购买等行为。
数据集主要包括用户ID、时间戳、商品ID、行为类型、商品类目ID、品牌ID等字段。
二、目标通过对数据集进行EDA(探索性数据分析),了解用户行为的特征、用户购买行为的规律,为后续的用户行为预测和推荐系统构建提供参考。
三、数据预处理1. 缺失值处理:检查数据集中是否存在缺失值,若存在则根据缺失值的数量和特征的重要程度进行处理,常见的处理方式包括删除缺失值、用均值或中位数填充缺失值等。
2. 异常值处理:检查数据集中是否存在异常值,如超出合理范围的数值或不符合业务规则的数据等,对异常值进行处理,常见的处理方式包括删除异常值、修正异常值等。
3. 数据类型转换:将数据集中的时间戳字段转换为日期格式,方便进行时间序列分析。
四、数据分析1. 用户行为分析:统计不同行为类型的用户数量,分析用户在平台上不同行为的比例和趋势,如浏览、搜索、点击和购买的比例和变化趋势。
2. 用户购买行为分析:统计用户购买行为的频次和金额,分析用户的购买习惯,如平均购买频次、平均购买金额等。
3. 商品类目分析:统计不同商品类目的销量和点击量,分析用户对不同类目商品的偏好程度,如热门类目和冷门类目的情况。
4. 品牌分析:统计不同品牌的销量和点击量,分析用户对不同品牌的偏好程度,如热门品牌和冷门品牌的情况。
五、数据可视化为了更直观地展示数据分析的结果,可以使用各种图表进行数据可视化,例如柱状图、折线图、饼图等。
数据可视化可以帮助我们更清楚地了解数据的分布、趋势和关联性。
六、结论通过对数据集的分析,可以得出以下结论:1. 用户在平台上的浏览行为最多,购买行为最少。
2. 用户的购买频次和金额平均较低,说明用户对平台的忠诚度和消费力有待提高。
3. 部分商品类目和品牌受欢迎程度高,可以加大推广和宣传力度。
4. 需要进一步分析用户行为和购买行为的关系,挖掘用户购买的动机和推荐系统的改进点。
EDA实验报告完结版
EDA实验报告完结版一、实验目的本次 EDA 实验的主要目的是通过实际操作和设计,深入理解和掌握电子设计自动化(EDA)技术的基本原理和应用。
具体而言,包括熟悉 EDA 工具的使用方法,学会运用硬件描述语言(HDL)进行逻辑电路的设计与描述,以及通过综合、仿真和实现等流程,将设计转化为实际的硬件电路,并对其性能进行评估和优化。
二、实验环境本次实验所使用的 EDA 工具为_____,该工具提供了丰富的功能模块和强大的设计支持,包括原理图编辑、HDL 代码编写、综合、仿真和下载等。
实验所使用的硬件平台为_____开发板,其具备多种接口和资源,便于对设计的电路进行实际验证和测试。
三、实验内容1、基本逻辑门电路的设计与实现使用 HDL 语言(如 Verilog 或 VHDL)设计常见的基本逻辑门电路,如与门、或门、非门等。
通过编写代码,对逻辑门的输入输出关系进行描述,并进行综合和仿真,验证设计的正确性。
2、组合逻辑电路的设计与实现设计并实现较为复杂的组合逻辑电路,如加法器、减法器、编码器、译码器等。
运用 HDL 语言描述电路的功能,进行综合和仿真,确保电路在各种输入情况下的输出结果符合预期。
3、时序逻辑电路的设计与实现设计常见的时序逻辑电路,如计数器、寄存器、移位寄存器等。
在设计过程中,考虑时钟信号、同步复位和异步复位等因素,通过仿真验证时序逻辑的正确性,并对电路的性能进行分析。
4、有限状态机(FSM)的设计与实现设计一个有限状态机,实现特定的功能,如交通信号灯控制器、数字密码锁等。
明确状态转移条件和输出逻辑,通过编写 HDL 代码实现状态机,并进行综合和仿真,验证其功能的准确性。
5、综合与优化对设计的电路进行综合,生成门级网表,并通过优化工具对电路进行面积、速度等方面的优化,以满足特定的设计要求。
6、硬件实现与测试将综合后的设计下载到硬件开发板上,通过实际的输入输出信号,对电路的功能进行测试和验证。
观察电路在实际运行中的表现,对出现的问题进行分析和解决。
eda技术与实验报告
eda技术与实验报告
EDA技术与实验报告
近年来,EDA技术在电子设计领域发挥着越来越重要的作用。
EDA(Electronic Design Automation)技术是指利用计算机软件和硬件工具来设计、验证和生成
电子系统的过程。
它涵盖了从电路设计到芯片制造的整个流程,包括逻辑设计、物理设计、验证和仿真等各个环节。
在实验报告中,我们将重点介绍EDA技术在电子设计中的应用和优势。
首先,EDA技术可以大大提高设计效率和质量。
利用EDA工具,设计师可以快速完成
电路设计和验证,大大缩短了产品的上市时间。
其次,EDA技术可以帮助设计
师发现和解决潜在的设计问题,提高了设计的可靠性和稳定性。
此外,EDA技
术还可以实现自动化设计和优化,从而降低了设计成本和风险。
在实验中,我们使用了一款先进的EDA工具来设计和验证一个数字电路。
通过
该实验,我们深刻体会到了EDA技术的强大功能和优势。
在设计过程中,我们
可以通过EDA工具快速搭建电路原型,并进行逻辑仿真和时序分析,从而验证
设计的正确性和性能。
此外,EDA工具还提供了丰富的库元件和模型,可以大
大简化设计过程和提高设计的可靠性。
总的来说,EDA技术在电子设计领域发挥着不可替代的作用。
它不仅提高了设
计效率和质量,还为设计师提供了强大的工具和支持。
随着科技的不断发展,EDA技术将继续发挥着重要的作用,推动电子设计领域的进步和发展。
希望通
过本次实验报告的分享,可以让更多的人了解和认识EDA技术的重要性和价值。
昆明理工大学EDA技术与应用实训报告
实训成绩批阅教师日期实训报告课程名称EDA技术与应用实训专业班级电信1311学号 2学生姓名杨幼周指导教师胡寅实训地点明虹楼6021.可编程逻辑器件GAL16V8功能介绍专用集成电路ASIC是一种专门为某一应用领域或为专门用户需要而设计制造的LSI或VLSI电路。
可编程逻辑器件(PLD)是ASIC的一个重要分支,厂家生产半定制电路,用户利用软、硬件开发工具对器件进行设计和编程,使之实现所需要的逻辑功能。
可编程器件按集成度分有低密度PLD ( LDPLD)和高密度PLD (HDPLD)两类。
LDPLD主要产品有PROM、现场可编程逻辑阵列(FPLA )、可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)等。
可编程通用阵列逻辑(GAL)是在PAL基础上发展起来的新一代逻辑器件,它继承了PAL的与或阵列结构,又利用灵活的输出逻辑宏单元OLMC来增强输出功能。
(1)GAL的基本结构可编程通用阵列逻辑器件GAL16V8内部逻辑结构及相应引脚分布。
(2)GAL16V8内部逻辑结构由5部分组成①8个输入缓冲器(引脚2-9作为输入)。
②8个输出缓冲器(引脚12-19作为输出缓冲器的输出)。
③8个反馈/输入缓冲器(将输出反馈给与门阵列,或将输出端用作为输入端)。
④可编程与门阵列(由8×8个与门构成,形成64个乘积项,每个与门有32个输入,其中16个来自输入缓冲器,另16个来自反馈/输入缓冲器)。
⑤8个输出逻辑宏单元(OLMC12-19,或门阵列包含其中)。
除以上5个组成部分外,该器件还有一个系统时钟CK的输入端(引脚1)、一个输出三态控制端OE(引脚11)、一个电源VCC端(引脚20)和一个接地端(引脚10)。
(3) GAL的每一个输出端都对应有一个输出逻辑宏单元OLMC 。
OLMC主要由4部分组成:①或门阵列(8输入或门阵列,其中一个输入受控制。
②异或门(异或门用于控制输出信号极性,XOR(n)= 0输出低电平有效,XOR(n)=1输出高电平效,n为输出引脚号)③正边沿触发的D触发器(锁存或门输出状态,使GAL适用于时序逻辑电路)。
《EDA技术》实验报告
《EDA技术》实验报告
本次实验报告是关于EDA技术的研究和应用。
EDA技术全称电子设计自动化技术,能
够实现电子设计的自动化和优化。
首先,我们讨论了EDA技术的应用范围。
EDA技术主要应用于现代集成电路的设计和
制造,目的是提高电路的性能,并减少设计和制造的成本和时间。
EDA技术可用于设计各
种电路,包括数字电路、模拟电路、混合信号电路和射频电路等。
其次,我们介绍了EDA技术的主要工具。
EDA技术工具包括原理图编辑器、电路模拟器、布局编辑器和综合工具等。
这些工具可以协同工作,在电路设计的不同阶段对电路进
行分析和优化。
接着,我们描述了EDA技术的设计流程。
EDA技术的设计流程分为四个主要阶段:设计,模拟,综合和布局。
在设计阶段,设计师使用原理图编辑器和其他工具来设计电路。
在模拟阶段,设计师将电路模型装入电路模拟器中,并进行仿真以验证电路的功能和性能。
在综合阶段,设计师使用综合工具将电路转换为特定的逻辑网表文件。
在布局阶段,设计
人员使用布局编辑器来设置电路的物理布局。
最后,我们讨论了EDA技术的优缺点。
EDA技术的主要优点是提高电路设计的效率和
准确性,并减少了设计和制造的成本和时间。
然而,EDA技术也存在一些缺点,例如,设
计人员需要具备高水平的技术和知识,否则可能出现算法错误或设计缺陷。
综上所述,EDA技术在现代电子设备设计和制造中起着非常重要的作用,技术的发展
将会极大程度上促进电子设备的设计和制造的进步和发展。
EDA技术及应用实训报告
桂林电子科技大学信息科技学院《EDA技术及应用》实训报告学号1252100301姓名指导教师:覃琴2014年4 月29 日实训题目:数字日历电路1 系统设计1.1 设计要求1.1.1 设计任务(1)用Verilog HDL语言设计出能够在EDA实训仪的I/O设备和PLD芯片实现的数字日历。
(2)数字日历能够显示年、月、日、时、分和秒。
(3)用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(如20140101),然后在另一时间段内显示时、分、秒(如010101099),两个时间段能自动倒换。
(4)数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时。
(5)体现创新部分1.1.2 性能指标要求1)数字电路能够在一定的时间内显示切换的功能,并且能手动校准年月日和时分秒2)具有复位和进位的功能3)能起到提示的作用,如闹钟或亮彩灯等。
1.2 设计思路及设计框图1.2.1设计思路如图1.2.2所示1) EDA实训箱上的功能有限,可以用到的有8支数码管和12个lED灯。
年、月、日和时、分、秒可以通过数码管显示,年月日和时分秒的切换可以通过拨动开关控制,校正可以通过按键实现。
2)输入的秒脉冲由DEA实训仪上的20MHZ晶振经过分频得到,秒脉冲经过60分频后产生1分钟脉冲信号,在经过60分频后产生1小时的脉冲信号,最后进行24分频,得到1天的脉冲送24进制的 cout输出。
在将两个60分频和一个24分频的输出送到送到数码管的译码器输入端,得到24小时的计时显示结果。
由此得到数字日历的计时器模块。
1.2.2设计框图cout cout秒脉冲图1.2.2数字钟的原理框图2 各个模块程序的设计2.1图1 1HZ秒脉冲的分频模块元件符号2.1输入的秒脉冲由EDA实训仪上的20MHZ晶振经过分频得到,设计一个输出频率为1HZ的秒脉冲。
《EDA技术与应用》实训报告
《EDA技术与应用》实训报告学号姓名指导教师:2010 年11 月16 日实训题目:交通灯控制电路的设计1.系统设计1.1 设计要求1.1.1 设计任务用EDA实训仪实现交通灯控制电路设计,用LED显示东西、南北方向红灯、绿灯和黄灯情况,并在数码管上显示倒计时时间,整个控制电路符合实际交通道路控制要求。
1.1.2 技术要求①用EDA实训仪上的2只八段数码管分别显示道路东西和南北通行和禁止的倒计时时间。
②能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒。
③交通灯用红、绿、黄三种发光二极管(LED)显示控制的结果。
④红、绿、黄灯显示的次序应符合实际交通道路控制的要求。
1.2 方案论证1.2.1 总体思路总体设计思路框图:CLK时钟分频模块控制模块倒计时模块LED显示数码管根据交通灯控制要实现的功能,使用设计一个清零键实现清零恢复到初始状态,设计一个使能键实现对交通灯的运行和停止。
一个方向的3种等灯按如下顺序点亮,并往复循环:绿灯——黄灯——红灯。
为了实现黄灯亮时可以闪烁,专门设计控制黄灯的程序。
每种灯亮的时间采用一个减法计数器进行计数,计数器用与执法设计,这样只需改变预置数据就能改变计数器的模。
倒计时用2个数码管分别交替显示数据。
1.2.2 设计方案2.各个模块程序的设计①分频器的设计该模块将2kH z的脉冲信号进行分频,产生1s的方波,作为系统的时钟计时脉冲信号。
②控制电路该模块主要是整个电路控制系统,通过使能端接受信号开始工作,初始化后接受来自数码管输出的反馈进行下一次灯亮,并控制数码管显示倒计时以及对交通灯初始化的控制。
③黄灯闪烁控制电路为了使黄灯实现闪烁功能特将黄灯单独设置一个模块,将情况分为3种,实现东西、南北方向黄灯闪烁和全灭。
④倒计时电路根据控制信号,驱动交通信号以及倒计时数码管的显示以及使能控制。
3.制作与调试过程打开QuartusⅡ软件,对程序编译成功后下载到EDA试验箱。
《EDA技术与应用》实训报告
桂林电子科技大学信息科技学院《EDA技术与应用》实训报告学号姓名指导教师:2012 年6 月20 日数字日历电路的设计1.系统设计1.1 设计要求①通过编程下载至实训箱实现万年历的设计制作;②数字日历能够显示年、月、日和时、分和秒;③用EDA实训仪上的8只八段数码管显示年、月、日和时、分、秒,每过8秒分别现实两个时间段能自动倒换;④数字日历具有复位和校准年、月、日、时、分、秒的按钮,有锁定时分秒的按键,同时加了一个现实闹钟的程序,即在设置的时间,LED显示一分钟,按键可以暂停。
1.1.1 设计任务设计并制作一台数字日历,添加闹钟功能。
1.1.2 技术要求基于Verilog HDL 编写电路设计2.总体思路根据学校EDA实验设备的输入/输出接口的容限,本设计采用8只七断数码管分时完成时,分,秒,年,月,日的显示。
设计电路的计时器模块用于完成一天中24小时计时;年月日模块接受24小时计时器模块送来的“天”脉冲进行计数,得到日,月,年的显示结果;控制模块产生控制信号K,控制数码显示器显示年月日,和时分秒的显示或自动切换显示。
校时选择模块在k信号的控制下,选择将j1,j2,j3这三个校时按钮产生的信号是送到计时器模块的校秒,校时,校分的输入端,还是送到年月诶模块的校天,校月,校年输入端;显示选择模块在k信号的控制下,选择是将24小时模块信号,还是将年月日模块信号送到数码显示器显示。
闹钟模块用于在设置时间用LED代替真正的闹钟,灯光一闪一闪表示闹钟响,加一按键,用于控制闹钟的灭。
24小时计数器电路图分频模块控制模块控制模块24小时计时模块 年月日模块闹钟模块校时模块显示模块译码器系统流程图整个系统电路里模块有主要有年月日模块,24小时计数器模块,闹钟模块,显示模块,信号k控制模块,校时选择模块,还原选择模块;而24小时计数器模块中又分有分频模块,六十进制计数器模块,二十四进制计数器模块。
2.1 设计方案2.1.1各个模块程序的设计1:分频器module gen (clk,cout);input clk;reg[24:0] q;output reg cout;always @(posedge clk) beginif(q==20000000-1) q=0; else q=q+1;if(q==20000000-1) cout=1; else cout=0;endendmodule module gen_mb(clk,cout); input clk;reg[24:0] q;output reg cout;always @(posedge clk) beginif(q==200000-1) q=0; else q=q+1;if(q==200000-1) cout=1; else cout=0;endendmodule2:六十进制计数器模块module cnt60(clk,clrn,j,q,cout);input clk,clrn,j;2千万分频20万分频output reg[7:0] q;output reg cout;always @(posedge clk^j or negedge clrn) beginif(~clrn) q=0;else beginif(q=='h59) q=0;else q=q+1;if(q[3:0]=='ha)beginq[3:0]=0; q[7:4]=q[7:4]+1;endif(q=='h59) cout=1;else cout=0;endendendmodule3:二十四进制计数器模块module cnt24(clk,clrn,j,q,cout);input clk,clrn,j;output reg[7:0] q;output reg cout;always @(posedge clk^j or negedge clrn) beginif(~clrn) q=0;else beginif(q=='h23) q=0;else q=q+1;if(q[3:0]=='ha)beginq[3:0]=0; q[7:4]=q[7:4]+1;endif(q=='h23) cout=1;else cout=0;endendendmodule4:100进制计数器模块module cnt100(clk,clrn,j,q,cout);input clk,clrn,j;output reg[7:0] q;output reg cout;reg[7:0] flay;always @(j)beginif(j) flay=0;else flay=1;endalways @(posedge clk or negedge clrn) beginif(~clrn) q=0;else if(flay==0) beginif(q==99) q=0;else q=q+1;if(q[3:0]=='hff)beginq[3:0]=0; q[7:4]=q[7:4]+1;endif(q==99) cout=1;else cout=0;endendendmodule5:年月日模块module nyr2009(clrn,clk,jn,jy,jr,qn,qy,qr); input clrn,clk,jn,jy,jr;output [15:0] qn;output [7:0] qy,qr;reg [15:0] qn;reg [7:0] qy,qr;reg clkn,clky;reg [7:0] date;reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;endinitial begin qn='h2000;qy=1;qr=1;endalways @(posedge (clk^jr) or negedge clrn)beginif (~clrn) qr=1;else beginif (qr==date) qr=1;else qr=qr+1;if (qr[3:0]=='ha) beginqr[3:0]=0; qr[7:4]=qr[7:4]+1;endif (qr==date) clky = 1;else clky = 0;endendalways @(posedge clky^jy or negedge clrn)beginif (~clrn) qy=1;else beginif (qy=='h12) qy=1;else qy=qy+1;if (qy[3:0]=='ha) beginqy[3:0]=0;qy[7:4]=qy[7:4]+1;endif (qy=='h12) clkn = 1;else clkn = 0;endendalwaysbegincase (qy)'h01: date='h31;'h02: beginif ((qn%4==0)&(qn%100 != 0)|(qn%400==0)) date='h29;else date='h28; end'h03: date='h31;'h04: date='h30;'h05: date='h31;'h06: date='h30;'h07: date='h31;'h08: date='h31;'h09: date='h30;'h10: date='h31;'h11: date='h30;'h12: date='h31;default :date='h30;endcaseendalways @(posedge (clkn^jn) or negedge clrn ) beginif (~clrn) qn[3:0]=0;else begin if(qn[3:0]==9) qn[3:0]=0;else qn[3:0]=qn[3:0]+1;if (qn[3:0]==9) clkn1=0;else clkn1=1;endendalways @(posedge clkn1 or negedge clrn ) beginif (~clrn) qn[7:4]=0;else begin if(qn[7:4]==9) qn[7:4]=0;else qn[7:4]=qn[7:4]+1;if (qn[7:4]==9) clkn2=0;else clkn2=1;endendalways @(posedge clkn2 or negedge clrn ) beginif (~clrn) qn[11:8]=0;else begin if(qn[11:8]==9) qn[11:8]=0;else qn[11:8]=qn[11:8]+1;if (qn[11:8]==9) clkn3=0;else clkn3=1;endendalways @(posedge clkn3 or negedge clrn ) beginif (~clrn) qn[15:12]=2;else if(qn[15:12]==9) qn[15:12]=0;else qn[15:12]=qn[15:12]+1;endendmodule6:信号k控制模块module contr(clk,k1,k2,k);input clk,k1,k2;output reg k;reg [3:0] qc;reg rc;always @(posedge clk)begin qc=qc+1;if (qc<8) rc=0;else rc=1;case ({k1,k2})0:k=rc;1:k=0;2:k=1;3:k=rc;endcaseendendmodule7:校时选择模块module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3,); input j1,j2,j3;input k;output reg jm,jf,js,jr,jy,jn;alwaysbeginif(k==0) {jm,jf,js}={j1,j2,j3};else {jr,jy,jn}={j1,j2,j3};endendmodule8:24小时计数器module cnt24(clrn,clk,q,j,cont);input clrn,clk,j;output reg [7:0] q;output reg cont;always @(posedge clk^j or negedge clrn)beginif(~clrn) q=0;else beginif(q=='h23) q=0;else q=q+1;if(q[3:0]=='ha) begin q[3:0]=0;q[7:4]=q[7:4]+1;end if(q=='h23) cont=1;else cont=0;endendendmodule9:.显示器选择器module mux_16(k,qm,qf,qs,qr,qy,qn,q);input k;input[7:0] qm,qf,qs,qr,qy;input[15:0] qn;output reg [31:0] q;alwaysbeginif(k==0) beginq[31:24]=0;q[23:0]={qs,qf,qm};endelse q={qn,qy,qr};endEndmodule10:闹钟模块naozhong(qs,qf,led,zt);input zt;input[7:0] qs,qf;output led;reg led;alwaysbeginif (qs=='h06&&qf=='h01)led=1;elseled=0;if(zt==1) led=0;endendmodule3.制作与调试过程在实验中参考上课中学的万年历,在原有的基础上添加了一个闹钟功能,用LED代替实际的闹钟,在设置的时间内闪烁1分钟,又添加姨暂停按键,实现闹钟关闭功能,由于能力有限,没能加上其他功能的创新,是此次实训设计的缺憾,在调试过程中也比较顺利,在经过一段时间的调试后,基本就能实现功能,而主要时间用在了对原来的程序理解上。
EDA技术及应用实验报告
EDA技术及应用实验报告摘要:EDA(Electronic Design Automation),即电子设计自动化,是一种用于半导体芯片设计的计算机辅助设计工具。
本实验通过对EDA技术的学习和应用,了解了EDA在电路设计中的重要性和实际应用。
1.引言电子设计自动化(EDA)是为了提高电子电路设计的效率和质量而发展的一种计算机辅助设计工具。
本实验通过学习EDA技术的相关知识和应用实例,深入了解EDA在电路设计中的应用及其优势。
2.EDA技术的基本原理EDA技术是通过计算机辅助分析、合成和验证电路的工具。
它包括电路仿真、布局布线、逻辑综合等多个方面。
其中,电路仿真是通过计算机模拟电路的工作原理和特性;布局布线是将电路逻辑设计映射为实际的物理设计;逻辑综合是将逻辑电路转换为门级或者布尔级电路。
3.EDA技术在电路设计中的应用3.1电路仿真电路仿真是一个重要的EDA技术应用,通过仿真可以验证电路的运行情况,提前发现并解决潜在的问题,从而降低设计风险和成本。
3.2布局布线布局布线是指将逻辑电路映射为物理电路的过程。
通过EDA工具的自动布局布线功能,可以将逻辑电路转换为最优的电路布线,减少电路面积和功耗,并提高电路的稳定性和性能。
3.3逻辑综合逻辑综合是将高级语言描述的逻辑电路转换为可实现的门级或布尔级电路。
通过EDA工具的逻辑综合功能,可以快速生成电路的逻辑结构,避免手工设计过程中的错误和繁琐性。
4.实验设计及结果本实验选取了一款集成电路芯片设计作为实验对象,使用EDA工具进行电路仿真、布局布线和逻辑综合三个方面的实验。
4.1电路仿真实验在电路仿真实验中,我们首先通过EDA工具搭建了待仿真的电路原理图,然后设置仿真条件和参数,运行仿真,并得到了仿真结果。
仿真结果显示,电路工作正常,符合预期。
4.2布局布线实验在布局布线实验中,我们将电路的逻辑设计转换为物理设计,通过EDA工具的自动布局布线功能进行布局布线。
EDA技术及应用实验报告
一、实验目的
1.在掌握可控脉冲发生器的基础上了解正负脉宽数调制信号发生的原理
2.熟练的运用示波器观察试验箱上的探测点波形
3.掌握时序电路设计的基本思想
二、实验内容:
本实验的任务是设计一个正负脉宽数控调制信号发生器。要求能够输出正负脉宽数控的脉冲波,正脉冲调制的脉冲波和负脉冲调制的脉冲波。试验中的时钟信号选择模块的1MHz信号。用拨档开关K1~K8作为正脉冲脉宽的输入,用S1~S8作为负脉冲脉宽的输入,可在Quartus II中查看仿真图,或查看时序仿真图。
C,对仿真软件很不熟悉。本实验用到了元件例化,要将四位全加器的.VHD文件复制到八位全加器的文件夹里。最开始的时候不知道这一点,所以八位全加器在运行是出错。通过老师的帮助知道了应该如何正确的操作,完成了实验。
五、实验心得。
第一次上机实验让我学会了如何使用Quartus II仿真软件,这个软件和以前用到的软件都不一样,它在计算机上完成管脚的绑定,然后通过下载线下载到芯片上就可以实现需要的功能。通过这次实验,也让我对元件例化有了更好的了解。基本掌握了全加器的工作原理,对VHDL编程语言有了更深入的理解。
实验二
姓 名:学 号:班 级:
指导老师:日 期:
一、实验目的
1.了解数字秒表的工作原理
2.进一步熟悉用VHDL语言编写驱动七段码管显示的代码
3.掌握VHDL编写中的一些小技巧
二、实验内容:
本实验的任务就是设计一个秒表,系统时钟选择时钟模块的1MHz,由于计时时钟信号为100Hz ,因此需要对系统时钟进行10000分频才能得到,因为七段码管需要扫描显示,本实验选择1MHz。另外为了控制方便,需要一个复位开关,使能计时按键,分别使用拨档开关K1,K2,拨动K1系统复位,所有寄存器全部清零。拨动K2秒表启动计时;如果再次拨动K2,秒表停止计时,除非拨动K1,系统才能复位,显示全部为00-00-00。
EDA实习报告
篇一:eda实习报告中国地质大学(武汉)实习名称:专业:班级序号:姓名:指导教师:实验一 3/8 译码器的实现一.实验目的1.学习quartusⅱ的基本操作;2.熟悉教学实验箱的使用;3.设计一个3/8 译码器;4.初步掌握vhdl语言和原理图的设计输入,编译,仿真和调试过程;二.实验说明.本次实验要求应用vhdl语言实现一个3/8 译码器。
3/8 译码器的逻辑功能如下:本实验要求使用vhdl语言描述3/8译码器,并在实验平台上面实现这个译码器。
描述的时候要注意vhdl语言的结构和语法,并熟悉quartusⅱ的文本编辑器的使用方法。
尝试使用不同的vhdl语言描述语句实现3/8译码器,并查看其rtl结构区别,理解不同描述方法对综合结果的影响。
将程序下载到实验箱上分别用按键和led作为输入和输出对结果进行验证,进一步熟悉所用eda实验箱系统。
所用器件eda实验箱、ep1k10tc100-3器件。
三.实验步骤按照教学课件《quartus ii 使用方法》,学习quartusⅱ软件的使用方法:1.在windows 界面双击quartusⅱ图标进入quartusⅱ环境;2.单击file 菜单下的new project wizard: introduction 按照向导里面的介绍新建一个工程并把它保存到自己的路径下面。
)3.单击file 菜单下的new,选择vhdl file,后单击ok,就能创建一个后缀名为.vhd (*.bdf)的文本(原理图)文件。
此vhd文件名必须与设计实体名相同。
另外,如果已经有设计文件存在,可以按file 菜单里面的open 来选择你的文件。
4. 输入完成后检查并保存,编译。
5. 改错并重新编译;6. 建立仿真波形文件并进行仿真。
单击 file 菜单下的 new,选择 vector waveformfile,单击 ok,创建一个后缀名为*.vwf 的仿真波形文件,按照课件上的方法编辑输入波形,保存,进行仿真,验证仿真结果是否正确;7. 选择器件及分配引脚,重新编译;8. 根据引脚分配在试验箱上进行连线,使用 led 进行显示;9. 程序下载,观察实验结果并记录;四.实验要求1.用vhdl语言编写3/8译码器;2.编写3/8译码器模块的源程序;3.在quartusii 平台上仿真;4.在实验板上面实现这个3/8译码器。
EDA技术及应用实验报告(完整版纯手打)
《EDA技术及应用》实验报告系部:指导教师:学号:姓名:实验一点亮LED设计一、实验目的通过此实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及Verilog HDL的编程方法。
本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用,从而快速入门并激起读者对EDA技术的兴趣。
二、实验容SmartSOPC实验箱上有8个发光二极管LED1~8,并分别与FPGA的50、53~55、176和47~49引脚相连。
本实验的容是建立可用于控制LED亮/灭的简单硬件电路,要求点亮SmartSOPC实验箱上的4个发光二极管(LED1、LED3、LED5和LED7)。
三、实验原理FPGA器件同单片机一样,为用户提供了许多灵活独立的输入/输出I/O口(单元)。
FPGA每个I/O口可以配置为输入、输出、双向I/O、集电极开路和三态门等各种组态。
作为输出口时,FPGA的I/O口可以吸收最大为24mA的电流,可以直接驱动发光二极管LED等器件。
所以只要正确分配并锁定引脚后,在相应的引脚上输出低电平“0”,就可以实现点亮该发光二级管的功能。
四、实验步骤1、启动Quarters II建立一个空白工程,命名为led_test.qpf。
然后分别建立图形设计文件,命名为led_test.bdf,以及文本编辑文件led1.v,将他们都添加进工程中。
2、对工程进行设计。
在led1.v中输入程序代码,并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。
从设计文件中创建模块,由led1.v生成名为led1.bsf的模块符号文件。
在led_test.bdf中任意空白处双击鼠标左键,将symbol对话框中libraries:project下的led1模块添加到图形文件led_test.bdf中,加入输入、输出引脚,双击各管脚符号,进行管脚命名。
完整的顶层模块原理图如下图所示。
基于eda的实训心得_eda实训报告怎么写(精选17篇)
基于eda的实训心得_eda实训报告怎么写(精选17篇)基于eda的实训心得_eda实训报告怎么写篇1不到一周的EDA实训就这样结束了,虽然时间有些短暂,学习的有些仓促,但是这次实训我是认真的。
我没有像以往一样单一的照猫画虎,没有等待着参考别人的成果,而是一边画电路图,一边分析原理,遇到不会的,自己先勇于尝试,然后与同学交流。
虽然有很多地方仍然不是很明白,但是自己至少尽心尽力了。
初次使用Multisim软件,加之又是英文版的,会很吃力,我们可能找不准元器件,可能因不懂它的属性而用错,像这样的问题不是没出现过,就在完成实训第一题目时这些错误就出现了。
当时因为用错电阻的属性,导致仿真出的波形与别人不同,然而这个问题在当时困扰了我和同学很久,一直找不出问题出在哪里,后来还好有老师的指导,才找出问题的所在(我们用的是电流型电阻)。
实训内容包括了对电路、模拟电子、数字电路的简单操作,我们通过Multisim软件画出电路图,用虚拟的仪表对电路参数进行测量,用虚拟示波器对电路输入输出波形进行观测,这不仅让我们熟悉使用该软件,同时体验软件仿真在电路分析中的重要作用,利用该软件不仅可以准确测量各参量,还可帮助我们测试电路的性能。
它确实很方便实用。
虽然有了这种强大软件的帮助,但是对于我们这些初学者来说,必须学会自己分析电路原理,来判断测试结果。
电路、模电、数电是一年前学的,或许是因时间长,好多知识点被遗忘了,或许是当时就没将这三门功课学好,对知识点的生疏,导致实训的进行并不是很顺利,有时半天分析不出一个原理图。
实训时间很短,该软件的学习过程还很长,我不希望自己因实训结束而停止对其的认识和学习。
写到这,我想起前几天一位留学回国的姐说过的话:“你现在所学的那些专业软件,你必须深入了解和学习;就学校进行一到两礼拜的学习是远远不够的,自己课后必须加强学习”。
之前的实训机会已经被荒废了,现在的机会自己应该好好珍惜。
大学的美好时光所剩不多,如果觉得自己之前没有尽心尽力,那么接下来的时间自己好好珍惜吧。
EDA技术及应用实践》课程设计报告
《EDA技术及应用实践》课程设计报告目录1.电子密码锁整体设计 (3)1.1 设计要求 (3)1.2 设计思路 (3)1.2.1输入模块 (3)1.2.2控制模块 (3)1.3设计结构总图 (4)1.4整体设计的仿真结果 (5)2、各个功能模块的设计 (6)2.1按键输入模块 (6)2.1.1按键输入与对应的编码输出之间的关系 (6)2.1.2输入模块程序 (7)2.1.3输入模块仿真结果 (8)2.1.4生成元件 (8)2.2系统控制模块 (9)2.2.1控制模块程序 (10)2.2.2控制模块仿真结果 (13)2.2.3生成元件 (13)3、下载与硬件测试 (14)4、课程设计感想 (14)5、参考文献 (15)电子密码锁设计随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
本次课程设计采用VHDL语言,利用Maxplus软件完成相应的电子密码锁功能设计。
1、电子密码锁整体设计1.1设计要求:设计一个电子密码锁,在锁开的状态下输入密码,密码共4位,用数据开关K1~K10分别代表数字1、2、…、9、0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。
可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。
用一位输出电平的状态代表锁的开闭状态。
为保证密码锁主人能打开密码锁,设置一个万能密码,在主人忘记密码时使用。
1.2设计思路:总的来说,设计成2个模块,即输入模块,控制模块,最后显示管静态显示。
1.2.1输入模块:在输入模块,我是用时钟脉冲clk来控制什么时候输入一位密码,即每来一个上升沿,输入一个数,且输入的数只在上升沿到来时有效,在其他时候视为无效。
eda技术及应用实训报告 -回复
eda技术及应用实训报告-回复什么是EDA技术以及其应用。
1. 介绍EDA技术EDA(Exploratory Data Analysis)技术是一种探索性数据分析方法,其主要目的是通过可视化和统计工具来揭示数据中的模式、结构和异常以及数据间的关系。
EDA技术利用统计学和数据可视化技术,帮助分析人员更好地了解数据,为后续的数据分析和模型建立提供基础。
2. EDA技术的步骤及方法- 收集数据:EDA的第一步是收集数据。
数据可以来自各种渠道,包括实验、观察、调查等。
收集到的数据应该能够代表所研究的现象,并且有一定的数据质量。
- 数据清洗:在进行EDA之前,需要对数据进行清洗,包括处理缺失值、异常值和重复值等。
清洗后的数据能够避免在分析过程中出现错误和误导性的结果。
- 描述性统计分析:描述性统计分析是EDA的核心环节之一,通过计算和可视化来描述数据的分布、中心位置和离散程度等。
常用的描述性统计方法包括均值、中位数、方差、标准差等。
- 数据可视化:数据可视化是EDA的重要手段,通过图表和图形来展现数据的特征、模式和关系。
常见的数据可视化工具包括直方图、散点图、箱线图等。
数据可视化能够帮助发现数据中的隐藏信息和趋势。
- 探索性模型:在EDA过程中,可以根据数据的模式和关系构建一些简单的模型,如线性回归模型、聚类模型等。
这些模型能够进一步帮助理解和预测数据。
- 解释和结论:最后,根据EDA的结果进行解释和结论。
通过对数据的深入理解,可以从中提取出洞察和结论,为后续的决策和行动提供依据。
3. EDA技术的应用- 数据探索:EDA技术广泛应用于数据科学领域,帮助分析人员在数据集中发现有趣的模式和关系。
它能够帮助人们了解数据,提取关键特征,并进行初步的数据调整或预处理,为后续的分析和建模提供指导。
- 故障检测:EDA技术可以用于检测数据中的异常和故障。
通过可视化方法,可以检测到异常值、离群点和数据质量问题,并及时采取纠正措施。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
桂林电子科技大学信息科技学院《EDA技术及应用》实训报告学号1252100301姓名指导教师:覃琴2014年4 月29 日实训题目:数字日历电路1 系统设计1.1 设计要求1.1.1 设计任务(1)用Verilog HDL语言设计出能够在EDA实训仪的I/O设备和PLD芯片实现的数字日历。
(2)数字日历能够显示年、月、日、时、分和秒。
(3)用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(如20140101),然后在另一时间段内显示时、分、秒(如010101099),两个时间段能自动倒换。
(4)数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时。
(5)体现创新部分1.1.2 性能指标要求1)数字电路能够在一定的时间内显示切换的功能,并且能手动校准年月日和时分秒2)具有复位和进位的功能3)能起到提示的作用,如闹钟或亮彩灯等。
1.2 设计思路及设计框图1.2.1设计思路如图1.2.2所示1) EDA实训箱上的功能有限,可以用到的有8支数码管和12个lED灯。
年、月、日和时、分、秒可以通过数码管显示,年月日和时分秒的切换可以通过拨动开关控制,校正可以通过按键实现。
2)输入的秒脉冲由DEA实训仪上的20MHZ晶振经过分频得到,秒脉冲经过60分频后产生1分钟脉冲信号,在经过60分频后产生1小时的脉冲信号,最后进行24分频,得到1天的脉冲送24进制的 cout输出。
在将两个60分频和一个24分频的输出送到送到数码管的译码器输入端,得到24小时的计时显示结果。
由此得到数字日历的计时器模块。
1.2.2设计框图cout cout秒脉冲图1.2.2数字钟的原理框图2 各个模块程序的设计2.1图1 1HZ秒脉冲的分频模块元件符号2.1输入的秒脉冲由EDA实训仪上的20MHZ晶振经过分频得到,设计一个输出频率为1HZ的秒脉冲。
图1是1HZ秒脉冲的分频模块元件符号显示器显示器显示器20MHZ晶振六十进制计数器(分)六十进制计数器(分)二十四进制计数器(时)校时电路分频器输入电路图1 1HZ秒脉冲的分频模块元件符号2.2 图2是cnt24与cnt60模块设计的元件符号图2 cnt24与cnt60模块的元件符号2.3 图3是计时器设计原理图clk秒时钟输入端,clrn清除输入端,低电平有效;jm、jf 、js分别是校秒、校分和校时的输入端,下降沿有效;qm[7..0]、qf[7..0]和qs[7..0]分别是秒、分、和时的输出端;cout是“天”脉冲输出端。
2.4数字日历电路的设计数字电路原理图包括包括计时器模块(jsq)、年月日模块(nyr2014)、控制模块(cour)、校时选择模块(xs_6)、显示选择模块(mux_16)和流水灯(LED)提示模块。
图4是数字日历设计的原理图。
图4是数字日历设计的原理图2.5控制模块的设计图5是控制模块的元件符号图5 控制模块的元件符号clk是1s时钟输入端;k1和k2是控制输入端,k是控制输出端。
k1k2=00或11时是自动显示模块,控制数码器用8s钟时间显示年月日8s显示时分秒,k1k2=01时仅控制显示时分秒,同时用j1、j2、j3校秒、校分和校时,k1k2=10时,仅显示年、月、日,同时用j1、j2、j3校年、校月和校日。
2.6校时选择模块的设计校时选择模块的元件符号如图6所示。
k是控制输入端,k=0是,控制将校时按钮j1、j2和j3的信号分别分别送到计时器模块的jm、jf、js,k=1时校时按钮j1、j2、j3的信号分别送到年月日模块的jr、jy、jn。
图6校时选择模块的元件符号2.7显示选择模块图7是显示选择模块的元件符号。
k是控制输入端,K=0时,控制将计时器模块送来的qm[7..0]、qf[7..0]、和qs[7..0]状态信号送到数码管显示。
k=1时将年月日送来的qr[7..0]、qy[7..0]、qn[7..0]状态信号送到数码管显示。
图7 显示选择模块的元件符号2.8流水灯提示模块的设计图8是流水灯提示模块的元件符号。
clk是一秒钟输入端,K是控制输入端,qy[7..0](月)、qr[7..0](日)是状态信号送到数码管显示。
qo[11..0]是输出的流水灯图8 流水灯提示模块的元件符号3 调试过程当数字日历得所有模块编译成功后我首次下载到实训箱上时,它并不能实现进位的功能,经调整。
数字日历的各基本功能通实现后,在其基础上新增了彩灯控制模块。
经过逐条编写和更正。
程序最终通过编译并能顺利下载到实训箱上进行验证。
4 功能测试4.1 测试仪器与设备EDA实训箱4.2 性能指标测试当所设定的生日到时流水灯能顺利的实现该提示功能,不过自动显示模块还是没能很准确的进行累加,该功能的延时时间超出了设计的时间。
5 实训心得体会从陌生到熟悉,我基本上的摸清了QuartusII9.0的用法。
并逐渐掌握了verilog HDL语言的规则。
并能编写简单的程序。
经过查找资料和各个老师的耐心指导。
我完成了数字日历电路的设计。
不仅添加了创新部分,还在EDA实训仪上成功实现了它的彩灯旋转功能。
并用一个拨动开关来控制灯的亮灭。
记得刚开始拿到实训课题时,我那一脸的茫然,不知从哪儿入手。
来回跑了图书馆好几趟,最后跟着舍友起步。
从编写代码开始,经编译后逐个查找错误并纠正。
几番波折,最终完成了数字日历的设计和添加了创新功能。
通过此次EDA实训我熟练的掌握了QuartusII9.0软件,并能通过波形仿真更加透彻的掌握了程序与该设计。
从编程到生成元器件再到波形仿真和成功下载,给我的最大体会是一步一个脚印,付出总会有回报的。
6 参考文献【1】EDA技术与应用江国强【2】EDA技术与verilog设计王金明冷自强附录附录1:仿真波形图(部分模块)cnt24模块仿真波形图nyr模块仿真波形图附录2:程序清单2.1 分频器模块module s_1 ( clk,cout);input clk;reg [24:0] q;output reg cout;always @(posedge clk)beginif (q==20000000-1) q=0; //1selse q=q+1;if(q<=10000000-1) cout=1; //0.5selse cout=0;endEndmodule2.2 cnt24计数器源程序module cnt24(clk,clrn,j,q,cout); //clk秒时钟输入端,clrn清除输入端,cout“天”脉冲输出端input clk,clrn,j; //j校时输入端,output reg [7:0] q;output reg cout;always @ (posedge clk^j or negedge clrn) //j与时钟输入端clk异或就可以达到校时的作用beginif (~clrn) q=0; //低电平有效else beginif (q=='h23) q=0;else q=q+1;if (q[3:0]=='ha) beginq[3:0]=0; q[7:4]=q[7:4]+1; endif (q=='h23) cout=1;else cout=0;endendendmodule2.3 cnt60计数器源程序module cnt60(clk,clrn,j,q,cout);input clk,clrn,j;output reg [7:0] q;output reg cout;always @ (posedge clk^j or negedge clrn) beginif (~clrn) q=0;else beginif (q=='h59) q=0;else q=q+1;if (q[3:0]=='ha) beginq[3:0]=0; q[7:4]=q[7:4]+1; endif (q=='h59) cout=1;else cout=0;endendendmodule2.4 年月日模块module nyr2014(clrn,clk,jn,jy,jr,qn,qy,qr); input clrn,clk,jn,jy,jr;output [15:0] qn;output [7:0]qy,qr;reg [15:0] qn;reg[7:0] qy,qr;reg clkn,clky;reg[7:0] date;reg clkn1, clkn2 , clkn3;initial begin clkn1=1; clkn2=2 ; clkn3=1;endinitial begin qn='h2000;qy=1;qr=1;endalways @ (posedge (clk^jr) or negedge clrn) beginif (~clrn) qr=1;else beginif (qr==date) qr=1;else qr=qr+1;if (qr[3:0]=='ha) beginqr[3:0]=0; qr[7:4]=qr[7:4]+1; endif (qr==date) clky=1;else clky=0;endendalways @ (posedge clky^jy or negedge clrn)beginif (~clrn) qy=1;else beginif (qy=='h12) qy=1;else qy=qy+1;if (qy[3:0]=='ha) beginqy[3:0]=0; qy[7:4]=qy[7:4]+1; endif (qy=='h12) clkn=1;else clkn=0;endendalwaysbegincase(qy)'h01: date='h31;'h02: beginif ((qn/4==0)&(qn/100!=0)|(qn/400==0)) date='h29; else date='h28;end'h03: date='h31;'h04: date='h30;'h05: date='h31;'h06: date='h30;'h07: date='h31;'h08: date='h31;'h09: date='h30;'h10: date='h31;'h11: date='h30;'h12: date='h31;default :date='h30;endcaseendalways @ (posedge (clkn^jn) or negedge clrn) beginif (~clrn) qn[3:0]=0;else begin if (qn[3:0]==9) qn[3:0]=0; else qn[3:0]= qn[3:0]+1;if (qn[3:0]==9) clkn1=0;else clkn1=1;endendalways @ (posedge clkn1 or negedge clrn)beginif (~clrn) qn[7:4]=0;else begin if (qn[7:4]==9) qn[7:4]=0; else qn[7:4]=qn[7:4]+1;if (qn[7:4]==9) clkn2=0;else clkn2=1;endendalways @ (posedge clkn2 or negedge clrn)beginif (~clrn) qn[11:8]=0;else begin if (qn[11:8]==9) qn[11:8]=0; else qn[11:8]= qn[11:8]+1;if (qn[7:4]==9) clkn3=0;else clkn3=1;endendalways @ (posedge clkn3 or negedge clrn)beginif (~clrn) qn[15:12]=2;else if (qn[15:12]==9) qn[15:12]=0;else qn[15:12]= qn[15:12]+1;endEndmodule2.5 校时选择模块module xs_6(k,jm,jf,js,jr,jy,jn,j1,j2,j3); //k是控制输入端input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;alwaysBeginif (k==0) {jm,jf,js}={j1,j2,j3};//k=0是,控制将校时按钮j1、j2和j3的信号分别分别送到计时器模块的jm、jfelse {jr,jy,jn}={j1,j2,j3};//k=1时校时按钮j1、j2、j3的信号分别送到年月日模块的jr、jy、jnendEndmodule2.6显示选择模块的设计module mux_16(k,qm,qf,qs,qr,qy,qn,q);input k; //k是控制输入端,k=1时将年月日送来的qr、qy、qn状态信号送到数码管显示input[7:0] qm,qf,qs,qr,qy;input[15:0] qn;output reg [31:0] q;alwaysbeginif(k==0) beginq[31:24]=0;q[23:0]={qs,qf,qm};endelse q={qn,qy,qr};endendmodule2.7控制模块源程序module contr(clk,k1,k2,k); //clk是1s时钟输入端;k1和k2是控制输入端input clk,k1,k2;output reg k; //k是控制输出端reg[3:0] qc;reg rc;always @(posedge clk)beginqc=qc+1;if (qc<8)rc=0;else rc=1;case({k1,k2})0:k=rc; //k1k2=00或11时是自动显示模块,控制数码器用8s钟时间显示年月日8s显示时分秒1:k=0; //k1k2=01时仅控制显示时分秒,同时用j1、j2、j3校秒、校分和校时2:k=1; //k1k2=10时,仅显示年、月、日,同时用j1、j2、j3校年、校月和校日3:k=rc; //11endcase endendmodule//在控制模块中使用了一个16分频电路,输出rc时16s的方波,即8s为高电平、8s为低电平用于万年历的自动倒换模式。