基于Verilog_HDL语言的整点智能响铃系统设计_第1页
基于Verilog_HDL语言的整点智能响铃系统设计_第2页
基于Verilog_HDL语言的整点智能响铃系统设计_第3页
基于Verilog_HDL语言的整点智能响铃系统设计_第4页
基于Verilog_HDL语言的整点智能响铃系统设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 长沙理工大学计算机组成原理课程设计报告 学 院 计算机与通信工程 专 业 网络工程 班 级 11-01 学 号 学生姓名 指导教师 陈沅涛 课程成绩 完成日期 2014年1月10日课程设计任务书 计算机与通信工程 学院 网络工程 专业课程名称计算机组成原理课程设计时间20132014学年第一学期1819周学生姓名指导老师陈沅涛题 目基于Verilog_HDL语言的整点智能响铃系统设计主要内容:本课程设计要求设计一个整点智能响铃系统,要求如下:(1)整点智能响铃系统要具有时、分、秒计数显示功能,以24小时循环计时(2)时钟计数显示时有LED灯的花样显示(3)具有调节小时、分钟及清零的功能以及整

2、点报时功能。    要求:(1)要求能独立地运用基于Verilog_HDL语言、EDA相关知识和Max Plus II仿真软件,编制一个简单的课程设计。(2)学生按要求编写课程设计报告书,能正确阐述设计和实验结果。(3)通过课程设计培养学生严谨的科学态度和团队协作精神。(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现,给出个人分析、设计以及实现。应当提交的文件:(1)课程设计报告。(2)课程设计附件(源程序、各类图纸、实验数据、仿真截图等实证材料)。课程设计成绩评定学 院 计通学院 专 业 网络工程 班 级 11-01班 学 号 学

3、生姓名 指导教师 陈 沅 涛 完成日期 2014年1月10日 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 年 月 日基于Verilog_HDL语言的整点智能响铃系统设计学生姓名: 指导老师:陈沅涛 摘 要:本设计主要利用Verilog_HDL语言在EDA平台上设计整点响铃系统。整点智能响铃系统走时精度高,稳定性好,实用方便,不需要经常调教,这种响铃具有时、分、秒计数显示功能,以24小时循环计时,时钟计数显示时有LE

4、D灯的花样显示,具有调节小时、分钟及清零的功能以及整点报时功能。这次设计以Verilog_HDL语言和MAX+PLUS II为工具,实现整点智能报时。系统分模块进行分析和设计,并给出相应的设计原理图和Verilog_HDL源程序,通过仿真实现预定功能。 关键词:;整点智能响铃系统;EDA;Verilog_HDL;MAX +plusBased on Verilog_HDL language intelligentalarm system design of the hourStudent Name: Supervisor: Chen YuantaoAbstract: This design ma

5、inly use Verilog_HDL language on EDA platform design hourly alarm system. The hour walking intelligent alarm system of high precision, good stability, convenient and practical, don't need often set-up, this ring has when, minutes and seconds count display function, with 24-hour cycle time, count

6、ing clock display LED lights of the pattern, according to adjust the hours, minutes and reset function and the hour of the function. The design to Verilog_HDL language and MAX + PLUS II is the tool, realize intelligent tell the time of the hour. Points module system for analysis and design, and give

7、s the corresponding design principle diagram and Verilog_HDL source program, reservation function was achieved by the simulation.Key words: Intelligent alarm system design of the hour;EDA;Verilog_HDL; MAX +plus 目录1 引 言71.1 课题背景及意义71.2课程设计目的81.3课程设计内容82 理论基础92.1 Verilog HDL语言概述92.2 MaxplusII简介103 整点智

8、能响铃系统的设计方案123.1设计功能及分析123.2 系统总体框架结构124 系统模块的设计与仿真134.1秒计数器模块134.1.1模块的具体实现及功能介绍:134.1.2秒计数器模块仿真:134.2 分钟计数器模块:144.2.1模块的具体实现及功能介绍:144.2.2分钟计数器模块的仿真图:144.3时钟计数器模块:154.3.1模块的具体实现及功能介绍:154.3.2小时计数器模块的仿真图:154.4整点报时模块164.4.1模块的具体实现及功能介绍:164.4.2整点报时模块的仿真图:165整点智能响铃系统的仿真与实现176小结207.致谢21参考文献22附录:整点智能响铃系统设计

9、源程序清单231引 言现在,人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。本设计主要利用Verilog_HDL语言在EDA平

10、台上设计整点响铃系统。整点智能响铃系统走时精度高,稳定性好,实用方便,不需要经常调教,这种响铃具有时、分、秒计数显示功能,以24小时循环计时,时钟计数显示时有LED灯的花样显示,具有调节小时、分钟及清零的功能以及整点报时功能。总的程序由几个各具不同功能的元模块程序拼接而成,其中包括秒计数器模块,分钟计数器模块,小时计数器模块和整点报时模块并且使用MaxplusII软件进行电路波形仿真,下载到EDA实验箱进行验证。1.1 课题背景及意义随着EDA1仿真技术的发展,数字系统的设计技术和设计工具发生了深刻的变化。利用硬件描述语言(VHDL)2对数字系统的硬件电路进行描述是EDA的关键技术之一。VHD

11、L语言是目前主流的硬件描述语言,它具有很强的电路描述和建模能力,具有与具体电路无关和与设计平台无关的特性,在语言易读性和层次化结构方面表现出强大的生命力和应用潜力。 随着科学的日益进步,我们对数字钟的需求也越来越大。因为人们也越来越忙,时刻都在受着时间的影响,我们。我们采用了先进的EDA技术,MAX +plus工作平台和VHDL语言3,设计了多功能数字钟系统,并对系统进行了仿真验证。通过仿真及验证的结果分析,完全适应智能化发展要求。不但实现的报时定时各种的功能,大大提高了时间的准确度,而且提高了系统的先进性和可靠性。能实现控制器的系统编程。采用这种器件开发的数字系统其升级与改进非常方便。这一控

12、制电路,结构简单、性能稳定、操作方便、抗干扰能力强。将它应用于校园与各地,稳定性高,准确性强。1. 2课程设计目的作为网络专业的学生,通过这次EDA方面的课程设计,可以提高我们对EDA领域及通信电路设计领域的认识,有利于培养我们在通信电路EDA方面的设计能力。同时可以促使我们独立地运用Verilog_HDL语言、EDA相关知识和Maxplus2仿真软件编制一个简单的课程设计。设计过程的复杂加老师的严格要求有益于培养我们严谨的工作作风。本次课题是计算机组成原理的课程设计,旨在通过对所需功能芯片的设计与实现来巩固以前所学的计算机硬件基础知识,同时也提高动手实践的能力,还有为将来进行更大规模更复杂的

13、开发积累经验。1.3课程设计内容本次设计以智能打铃为主,实现时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分60进制计数,即从0到59循环计数,时钟24进制计数,即从0到23循环计数,以及时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位蜂鸣器在整点时有报时信号产生,蜂鸣器报警,产生“滴答.滴答”的报警声音。LED

14、灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。2 理论基础2.1 Verilog HDL语言概述Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言。Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言。Verilogs是由Gateway设计自动化公司的工程师于1983年末创立的。该公司的菲尔·莫比(Phil Moorby)完成了Verilog的主要设计工作。1990年,Gateway设计自动化被Cade

15、nce公司收购。1990年代初,开放Verilog国际组织(即现在的Accellera)成立,Verilog面向公有领域开放。1992年,该组织寻求将Verilog纳入电气电子工程师学会标准 。最终,Verilog成为了电气电子工程师学会1364-1995标准,即通常所说的Verilog-95。设计人员在使用这个版本的Verilog的过程中发现了一些可改进之处。促使Verilog进行了修正和扩展,这部分内容后来被提交给电气电子工程师学会。后来被称为电气电子工程师学1364-2001标准,即通常所说的Verilog-2001。Verilog-2001是对Verilog-95的一个重大改进版本,它

16、具备一些新的实用功能,例如敏感列表、多维数组、生成语句块、命名端口连接等。目前,Verilog-2001是Verilog的最主流版本,被大多数商业电子设计自动化软件包支持。2005年,Verilog再次进行了更新,即电气电子工程师学会1364-2005标准。该版本只是对上一版本的细微修正。这个版本还包括了一个相对独立的新部分,即Verilog-AMS。这个扩展使得传统的Verilog可以对集成的模拟和混合信号系统进行建模。2009年,IEEE 1364-2005和IEEE 1800-2005两个部分合并为IEEE 1800-2009,成为了一个新的、统一的SystemVerilog硬件描述验证

17、语言(hardware description and verification language, HDVL)。Verilog HDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把Verilog HDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。 Verilog HDL既是一种行为描述语言,也是一种结构描述语言。如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互连的结构模块。这意味着利用Verilog语言所提供的功

18、能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。Verilog HDL 硬件描述语言在电子设计自动化中扮演着重要的角色,他是EDA 技术研究的重点之一。 下面列出的是Verilog语言的主要功能: · 可描述顺序执行或并行执行的程序结构; · 用延迟表示式或事件表达式来明确地控制过程的启动时间; · 通过命名的事件来触发其他过程里的激活行为或停止行为; · 提供了条件和循环等程序结构; · 提供了可带参数且非零延续时间的任务程序结构; · 提供了可定义新的操作符的函数结构; · 提供

19、了用于建立表达式的算术运算符、逻辑运算符和位运算符; · 提供了一套完整的表示组合逻辑基本元件的原语; · 提供了双向通路和电阻器件的描述; · 可建立MOS器件的电荷分享和衰减模型; · 可以通过构造性语句精确地建立信号模型;2.2 MaxplusII简介Max+plusII(或写成Maxplus2,或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:QuartusII,主要用于设计新器件和大规模CPLD/FPGA).使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设计工

20、具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。其设计速度非常快。对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件,特别适合初学者使用。通常可将Maxplus2设计流程归纳为以下7个步骤:(1)使用文本编辑器输入设计源文件。在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自90年代初,Verilog、VHDL、AHDL等硬件描述语言的输入方

21、法在大规模设计中得到了广泛应用。(2)前仿真(功能仿真)。设计的电路必须在布局布线前验证电路功能是否有效。(3)设计编译。设计输入之后就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。(4)优化。对于上述综合生成的网表,根据布尔方程功能等效的原则,用更小更快的综合结果代替一些复杂的单元,并与指定的库映射生成新的网表,这是减小电路规模的一条必由之路。(5)布局布线。(6)后仿真(时序仿真)需要利用在布局布线中获得的精确参数再次验证电路的时序。(7)生产。布线和后仿真完成之后,就可以开始ASCI或PLD芯片的

22、投产。Max Plus II的设计流程可以用如下图2.1所示。图形成VHDL编辑器编译网表提取数据库建立逻辑综合逻辑分割匹配延时网表提取编辑文件汇编编辑器图2.1Max Plus II 设计流程从图2.1可清晰了解到Max Plus II提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。他包括设计输入编辑、编译网表提取、数据库建立、逻辑综合、逻辑分割、适配、延时网表提取、编辑文件汇编以及编程下载9个步骤。3 整点智能响铃系统的设计方案3.1设计功能及分析本系统主要具有以下两大点功能:1.能够进行时钟计数:具体要求有:(1) 完成时、分、秒的正确计时并且显示所计的

23、数字;(2) 对秒、分60进制计数,即从0到59循环计数;对时钟24进制计数,即从0到23循环计数。 2、时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间由上述的具有的功能可知,本系统主要需要四大模块组成,分别是秒计数器模块、分钟计数器模块、小时计数器模块、整点报时模块。3.2 系统总体框架结构系统设计:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用Verilog HDL语言设计,顶层文件用原理图的设计方法。整点智能响铃系统的电路组成方框图3.1所示。数字时钟控

24、制单元时调整分调整使能端信号CLK信号时显示分显示秒显示24进制60进制60进制LED显示整点报时花样显示 图3.1 响铃系统流程图4.系统模块的设计与仿真4.1秒计数器模块4.1.1模块的具体实现及功能介绍: 模块的具体实现如图4.1:图4.1秒计数器模块CLK是系统的时钟周期;RESET是复位信号,低电平有效,即高电平时正常循环计数,低电平清零;SETMIN是分钟设置信号,当低电平有效,即当SETMIN是低电平时,可以进行分钟的设置;ENMIN是分钟进位信号,当秒计数模块计数到59时,再来一个时钟脉冲则产生进位输出;DAOUT是输出信号。4.1.2秒计数器模块仿真: 用MAX+PLUS2软

25、件进行秒计数模块的仿真,结果如图4.2所示 图4.2 秒表计数器仿真波形分析:利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enmin=1;reset作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。4.2 分钟计数器模块:4.2.1模块的具体实现及功能介绍: 模块的具体实现如图4.3: 图4.3分钟计数器模块CLK1是系统的时钟周期;CLK是秒计数器模块产生的进位信号;RESET是复位信号,低电平有效,即高电平时正常循环计数,低电平清零;SETHOUR是小时设置信号,当低电平有效,即当SETHOUR是低电平时,可以进行小时的设置

26、;ENHOUR是小时进位信号,当分钟计数模块计数到59时,再来一个时钟脉冲则产生进位输出;DAOUT是输出信号。4.2.2分钟计数器模块的仿真图:用MAX+PLUS2软件进行分钟计数模块的仿真,结果如图4.4所示图4.4分钟计数器模块仿真波形分析:分钟计数模块利用60进制计器,通过秒钟的进位信号的输入可实现从00到59的循环计数。4.3时钟计数器模块:4.3.1模块的具体实现及功能介绍: 模块的具体实现如图4.5:图4.5时钟计数器模块CLK是系统的时钟周期; RESET是复位信号,低电平有效,即高电平时正常循环计数,低电平清零;DAOUT是输出信号。4.3.2小时计数器模块的仿真图:用MAX

27、+PLUS2软件进行时钟计数模块的仿真,结果如图4.6所示图4.6时钟计数器模块仿真波形分析:小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。4.4整点报时模块4.4.1模块的具体实现及功能介绍:模块的具体实现如图4.7: 图4.7整点报时模块CLK是系统的时钟周期;SPEAK是响铃信号;LAMP2.0是亮灯信号,有时钟脉冲时lamp显示灯就闪烁轮续点亮;DAIN是输入信号,当分钟计数器计数到59时,再来一个时钟脉冲则产生进位输出,报时模块进行报时4.4.2整点报时模块的仿真图:用MAX+PLUS2软件进行整点计数模块的仿真,结果如图4.8所示图4.8整点

28、报时模块仿真波形分析:由图知对于整点报时模块,当分钟计数至59时来一个时钟脉冲则产生一个进位信号,分钟计数到00,此时产生报警信号持续一分钟。当有时钟脉冲时lamp显示灯就闪烁轮续点亮。5整点智能响铃系统的仿真与实现要实现的功能:可产生秒计数,分钟计数,小时计数,整点报时四种信号,能够实现信号的转换(select)并且频率可调。主要由三部分组成:地址指针控制模块,四种信号数据存储模块,D/A转换模块。前面2个模块在Max+plusII中实现,该部分的实现框图如图5.1所示。图5.1实现功能框图该模块的功能采用Verilog HDL来描述,程序请见附件。根据各个模块将其连线可得总连线图,如图5.

29、2所示:图5.2系统总连线图该部分功能验证的波形仿真结果如图5.3、图5.4所示。 图5.3整点智能响铃系统总体仿真图1图5.4整点智能响铃系统总体仿真图2波形分析:输出信号second6.0表示:秒计数模块,利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enmin=1;reset作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。输出信号min6.0表示:分钟计数模块,小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。输出信号hour5.0表示:小时计数模块,小时计数模块利用24进制计数器,通过

30、分钟的进位信号的输入可实现从00到23的循环计数。输入信号lamp2.0表示:整点报时模块,当分钟计数至59时来一个时钟脉冲则产生一个进位信号,分钟计数到00,此时产生报警信号持续一分钟。当有时钟脉冲时lamp显示灯就闪烁轮续点亮。6小结本次课程设计要求编写一个基于Verilog HDL语言的整点能响铃系统,并用Max Plus II软件进行仿真。根据搜索相关资料及自我理解,本次的设计以智能打铃为主,实现时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分60进制计数,即从0到59循环计数,时钟24进制计数,即从0到23循环计数,并且在数码管上显示数值。以及时间设置:手动调节分钟、小

31、时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位蜂鸣器在整点时有报时信号产生,蜂鸣器报警,产生“滴答.滴答”的报警声音。并且通过WORD文档将原理图画出来。为期两周的课程设计结束了,在此次课程设计中,我收获了许多,在学习方面、动手能力方面、团结合作能力等方面都有了一定的成就。学习方面,虽然之前在计算机组成原理这一门课程中接触过Verilog HDL这一门语言,但并不是很了解,在这次课程设计中,我对Verilog HDL语言有了深入的了解,通过在网上搜索资料,去图书馆借阅书籍,我自

32、己学习到了许多关于Verilog HDL语言语言和EDA的知识,为我顺利完成课程设计打下了良好的基础。 在动手能力方面,这次课程设计对我来说挑战很大,因为之前没有系统的学习过Verilog HDL语言和EDA,只是在嵌入式实验基地时做过PCB板的布线,所以这次我也利用在实验室所学到的技能来设计这次课程设计,对我的动手能力有很大要求,通过一次次的实验,重新编程,我终于能制作出符合要求的系统,对我的动手能力有了很大的提升,而且在一定程度上加强了自己的自信心。在团结合作能力方面,虽然每个人有每个人的题目,但是我们还是充分发挥了我们的团结合作能力,因为之前都没有用过MAXPlus这个软件,所以有些同学

33、在进行实际操作的时候还是有些困难,虽然课程设计的时间很紧,但大家还是会相互帮助。而且,对于Verilog HDL和VHDL这两种语言对我们来说还是相对陌生,所以有同学在编程有问题的时候,大家还会一起帮忙纠错,共同使其完成的更好,这一点,我感到我们真的是一个团结的集体在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。同时,也再次体会到了团结合作的快乐。7.致谢通过为期两周的课程设计,我顺利完成了基于Verilog HDL整点智能响铃系统的设计。在这次课程设计中,非常感谢陈沅涛老师的指导

34、,在老师的身上学到的不仅仅是知识的层面,更重要的是老师追求知识的热情,还重要的是老师对学生的尊重和关爱,却又不失老师本身工作的严谨的态度,他的工作作风以及对生活的态度让我受益匪浅。我在课程设计中碰到的很多个人困难,老师都能给予很大的体谅与帮助。在设计中遇到的试验的客观条件方面,老师也给予最大力度的协助,让我有更好的设计学习环境,在这里,同时感谢在长沙理工大学计算机组成原理实验室和机房所提供的试验条件,老师对工作的那份热情对我们产生了很大的影响,让我们在遇到困难的时候敢于前进。同样也感谢同学们的相互帮助,正是因为有了这些,我才能很好的顺利的完成我的这次课程设计。参考文献1 张振荣,晋明武等.MC

35、S-51单片机原理及实用技术M.北京:人民邮电出版社,2000.2王金明Verilog HDL程序设计教程北京:人民邮电出版社,2004.13 张亦华,延明,肖冰数字逻辑设计实验技术与EDA工具北京:邮电大学出版社 2003.14 潘松,黄继业EDA技术实用教程M 北京:科学出版社,2002.105 江国强EDA技术与应用M 北京:电子工业出版社,2004.86阎石.数字电子技术基础M. 北京: 电子工业出版社, 2006.210-216.7刘君, 常明. 硬件描述语言设计基础M. 北京: 高等教育出版社, 2006.64-78.8曹昕燕, 周凤臣. EDA技术实验与课程设计M. 北京: 清华

36、大学出版社, 2006.72-86.9 王长宏. VerilogHDL设计实例及其仿真与综合D10 陈书开,王毅,熊江.计算机组成与系统结构M.武汉:华中科技大学出版社,2010附录:整点智能响铃系统设计源程序清单程序名称:基于Verilog HDL语言的整点智能响铃系统设计程序作者:文晨宇最后修改日期:2014-01-101) 秒计数器module second (clk, reset, setmin, enmin, daout); input clk; input reset; input setmin; output enmin; wire enmin; output6:0 daout;

37、 wire6:0 daout; reg6:0 count; reg enmin_1; enmin_1为59秒时的进位信号 wire enmin_2; enmin_2由clk调制后的手动调分脉冲信号串 assign daout = count ; assign enmin_2 = (setmin & clk) ; setmin为手动调分控制信号,高电平有效 assign enmin = (enmin_1 | enmin_2) ; enmin为向分进位信号 always (posedge clk or negedge reset) begin if (reset = 1'b0) b

38、egin count <= 7'b0000000 ; 若reset为0,则异步清零 end else begin否则,若clk上升沿到 if (count3:0 = 4'b1001) 若个位计时恰好到“1001”即9 begin if (count < 8'h60) 又若count小于16#60#,即60H begin if (count = 7'b1011001) 又若已到59D begin enmin_1 <= 1'b1 ; count <= 7'b0000000 ; 则置进位为1及count复0 end else未到

39、59D begin count <= count + 7 ; 则加7,而+7=+1+6,即作“加6校正” end end else 若count不小于16#60#(即count等于或大于16#60#) begin count <= 7'b0000000 ; count复0 end end END IF(count<16#60#) else if (count < 8'h60) 若个位计数未到“1001”则转此句再判 begin count <= count + 1 ; 若count<16#60#则count加1 enmin_1 <= #

40、100 1'b0 ; 没有发生进位 end else 否则,若count不小于16#60# begin count <= 7'b0000000 ; 则count复0 end END IF(count(3 DOWNTO 0)=“1001”) end END IF(reset=0) end endmodule2) 分钟计数器module minute (clk, clk1, reset, sethour, enhour, daout); input clk; input clk1; input reset; input sethour; output enhour; wire

41、 enhour; output6:0 daout; wire6:0 daout; reg6:0 count; reg enhour_1; enmin_1为59分时的进位信号 wire enhour_2; enmin_2由clk调制后的手动调时脉冲信号串 assign daout = count ; assign enhour_2 = (sethour & clk1) ; sethour为手动调时控制信号,高电平有效 assign enhour = (enhour_1 | enhour_2) ; always (posedge clk or negedge reset) begin if

42、 (reset = 1'b0) 若reset为0,则异步清零 begin count <= 7'b0000000 ; end else 否则,若clk上升沿到 begin if (count3:0 = 4'b1001) 若个位计时恰好到“1001”即9 begin if (count < 8'h60) 又若count小于16#60#,即60 begin if (count = 7'b1011001) 又若已到59D begin enhour_1 <= 1'b1 ; 则置进位为1 count <= 7'b000000

43、0 ; count复0 end else begin count <= count + 7 ; 若count未到59D,则加7,即作“加6校正” end 使前面的16#60#的个位转变为8421BCD的容量 end else begin count <= 7'b0000000 ; count复0(有此句,则对无效状态电路可自启动) end END IF(count<16#60#) end else if (count < 8'h60) begin count <= count + 1 ; 若count<16#60#则count加1 enhour_1 <= #100 1'b0 ; 没有发生进位 end else begin count <= 7'b0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论