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适用于时序逻辑电路)。
- 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为低电平用于万年历的自动倒换模式。