基于Verilog HDL的闹钟设计.docx
- 文档编号:5748769
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:24
- 大小:365.49KB
基于Verilog HDL的闹钟设计.docx
《基于Verilog HDL的闹钟设计.docx》由会员分享,可在线阅读,更多相关《基于Verilog HDL的闹钟设计.docx(24页珍藏版)》请在冰豆网上搜索。
基于VerilogHDL的闹钟设计
封面删除~你懂的
摘要
随着微电子技术、计算机技术、半导体技术的发展,很多传统的数字门电路的设计已经被可编程逻辑器件替代。
而对于传统的模拟控制技术,也被数字控制系统所取代。
数字系统在各个领域显示出了无穷的魅力与优势,如今已经被广泛应用于实际工程中。
本文利用VerilogHDL语言自顶向下的设计方法设计多功能数字钟,实现时、分、秒的计时和校时,以及整点报时和闹钟的功能。
突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过ModelSimSE6.5完成综合、仿真。
通过VerilogHDL语言完成数字钟的层次化设计。
关键词:
数字电子时钟,有限状态机,功能仿真
Abstract
Asthemicroelectronics,computertechnology,semiconductortechnology,manytraditionaldesignofdigitalgateprogrammablelogicdevicehasbeenreplaced.Asforthetraditionalanalogcontrol,digitalcontrolsystemshavealsobeenreplaced.Digitalsystemsinvariousfieldshasshowninfinitecharmandadvantages,andnowhasbeenwidelyusedinpracticalprojects.Inthispaper,VerilogHDL,thedesignoftop-downmulti-functionaldigitalclockdesignedtoachievethehours,minutes,seconds,timeandschool,aswellasthewholepointtimekeepingandalarmfunctions.Highlightedasahardwaredescriptionlanguage,goodreadability,portabilityandeaseofunderstanding,etc.,andthroughtheModelSimSE6.5completethecomprehensive,simulation.CompletedbyVerilogHDL,thelevelofthedigitalclockdesign.
朗读
显示对应的拉丁字符的拼音
字典
Keywords:
Digitalelectronicclock,finitestatemachine,functionalsimulation
显示对应的拉丁字符的拼音
字典
.
目录
第1章绪论......................................................................................................................................1
1.1时钟的发展简史..................................................................................................................1
1.2设计目的………………………………..............................................................................1
1.3VerilogHDL硬件描述语言.................................................................................................2
1.4Modelsim仿真工具.............................................................................................................5
第2章数字电路设计方法..............................................................................................................7
2.1数字系统设计简介..............................................................................................................7
2.2有限状态机..........................................................................................................................9
第3章数字钟的层次化设计…....................................................................................................13
3.1功能要求………………………........................................................................................13
3.2数字钟系统的工作原理....................................................................................................13
3.3模块的设计……………….………….............................................................................13
3.4程序设计...........................................................................................................................14
第4章功能仿真…….……..........................................................................................................19
4.1仿真前准备......................................................................................................................19
4.2功能仿真..........................................................................................................................20
第5章总结...................................................................................................................................23
参考文献.........................................................................................................................................26
第1章绪论
1.1时钟的发展简史设计目的
公元1300年以前,人类主要是利用天文现象和流动物质的连续运动来计时。
例如,日晷是利用日影的方位计时;漏壶和沙漏是利用水流和沙流的流量计时。
东汉张衡制造漏水转浑天仪,用齿轮系统把浑象和计时漏壶联结起来,漏壶滴水推动浑象均匀地旋转,一天刚好转一周,这是最早出现的机械钟。
北宋元祜三年(1088)苏颂和韩公廉等创制水运仪象台,已运用了擒纵机构。
1350年,意大利的丹蒂制造出第一台结构简单的机械打点塔钟,日差为15~30分钟,指示机构只有时针;1500~1510年,德国的亨莱思首先用钢发条代替重锤,创造了用冕状轮擒纵机构的小型机械钟;1582年前后,意大利的伽利略发明了重力摆;1657年,荷兰的惠更斯把重力摆引入机械钟,创立了摆钟。
1660年英国的胡克发明游丝,并用后退式擒纵机构代替了冕状轮擒纵机构;1673年,惠更斯又将摆轮游丝组成的调速器应用在可携带的钟表上;1675年,英国的克莱门特用叉瓦装置制成最简单的锚式擒纵机构,这种机构一直沿用在简便摆锤式挂钟中。
1695年,英国的汤姆平发明工字轮擒纵机构;1715年,英国的格雷厄姆又发明了静止式擒纵机构,弥补了后退式擒纵机构的不足,为发展精密机械钟表打下了基础;1765年,英国的马奇发明自由锚式擒纵机构,即现代叉瓦式擒纵机构的前身;1728~1759年,英国的哈里森制造出高精度的标准航海钟;1775~1780年,英国的阿诺德创造出精密表用擒纵机构。
18~19世纪,钟表制造业已逐步实现工业化生产,并达到相当高的水平。
20世纪,随着电子工业的迅速发展,电池驱动钟、交流电钟、电机械表、指针式石英电子钟表、数字式石英电子钟表相继问世,钟表的日差已小于0.5秒,钟表进入了微电子技术与精密机械相结合的石英化新时期。
1.2设计目的
1.掌握各类计数器及将他们相连的方法
2.掌握多个数码管动态显示的原理与方法
3.掌握用FPGA技术的层次化设计方法
4.进一步掌握用Verilog硬件描述语言的设计思想
5.了解相关数字系统的设计
1.3VerilogHDL硬件描述语言
1.3.1VerilogHDL的发展过程与编程特点
VerilogHDL是一种硬件描述语言(HDL:
HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。
1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得VerilogHDL迅速得到推广应用。
VerilogHDL充分保留了C语言简洁、高效的编程风格,其中有许多语句和C语言中的语句十分相似,如if语句、case语句等。
1.3.2VerilogHDL的基本结构
1)模块的基本结构
模块是VerilogDHL语言的基本单元。
一个模块可以大道代表一个完整的系
统,也可以小到仅代表最基本的逻辑单元。
模块内部具体行为的描述或实现方式的改变,并不会影响该模块与外部之间的连接关系。
一个Verilog模块可被任意多个其他模块所调用,但由于VerilogHDL所描述的是具体的硬件电路,一个模块代表具有特定功能的一个电路块,每当它被某个其他模块调用一次,则在该模块内部,被调用的模块将原原本本的复制一次。
一个完整的VerilogHDL模块由以下五部分组成。
(1)模块定义行。
这一行以module开头,接着给出所定义模块的模块名,模块名是模块唯一的标识符;之后的括号内给出的是端口名列表,端口名列表是由模块的各个输入、输出和双向端口组成的一张端口列表,这些端口用来与其他模块进行连接;最后以分号结束。
当无端口名列表时,括号可省去。
(2)端口类型说明
接在模块定义行后面的是对端口类型的说明,凡是出现在端口名列表中的端口,都必须显示说明其端口类型。
(3)数据类型说明
VerilogHDL支持的数据类型有连线类和寄存器类两个大类,每个大类有细分为多种具体的数据类型。
数据类型定义部分用来指定模块内用到的数据对象为寄存器型或连线型,除了1位宽的wire类可缺省外,其他将在后面的描述中出现的变量都应给出相应的数据类型说明。
(4)描述部分
本部分具体展开对模块功能的描述。
(5)结束行
结束行是用关键词endmodule标志模块定义的结束。
2)模块的描述
在模块的功能描述中,可用下述方式描述一个设计:
数据流方式;行为方式;结构方式;上述描述方式的混合。
下面分别介绍模块的这几种描述方式。
(1)数据流描述方式
数据流型描述主要用来描述组合功能,具体由“assign”连续赋值语句来实现。
(2)行为描述方式
行为描述时一种高级语言使用到的方法,Verilog中的行为描述方式具有很强的通用性。
行为描述是通过行为语句来实现的,行为功能可使用下述过程语句结构描述。
Initial语句:
此语句只执行一次。
Always语句:
此语句循环执行。
(3)结构描述方式
结构描述方式是通过实例进行描述的方法。
它将Verilog中预定义的基本元件实例嵌入到语言中,监控实例的输入,一但其中任何一个发生变化,便重新运算并输出。
(4)混合型描述方式
在模块中,用户可以混合使用以上几种描述方式,也就是说,模块中可以包含门的实例、模块实例语句、连续赋值语句、always语句和initial语句以及它们的混合语句,并且它们之间可以相互包含。
1.3.3VerilogHDL的层次设计实现过程
用VerilogHDL进行硬件设计的过程实质上是把构成硬件系统的各功能模块进行Verilog描述,也可以使结构描述,前者侧重刻画模块所具有的行为特征,后者侧重反映模块内部的具体构造。
通常一个硬件系统是由多个不同的功能模块所组成的,因而总会存在这样一个模块,他用结构描述的方法,将构成硬件系统的所有功能模块连接起来,这个模块就是系统的顶层模块。
相对于顶层模块,其他的模块就是低一层次的模块。
在对低一层次的模块进行描述时,如果有必要,可以同样用结构描述的方法,把模块的内部结构进一步具体的刻画出来,相对于顶层模块而言,用于构造低一层次模块的结构单元就属于更低一个层次。
因而随着设计过程的展开,一个硬件系统的构造逐渐由顶层走向底层,各个功能模块的内部结构逐渐得到深化和细化,整个设计过程因而被称之为一个自顶向下的分级设计过程。
在这个自顶向下的设计过程的任何阶段,都可以利用仿真工具对处于设计过程中的系统描述进行性能评估与正确性检测。
在自顶向下的设计过程中,对于上层模块来说,只需要知道某个模块的名称与端口类型,就可把它作为自己的一个下层模块进行调用。
至于下层模块的具体实现方式,或者从一种实现方式转换到另一种实现方式,都不会对上层模块的描述产生任何影响。
这是自顶向下设计方法一个突出的优点。
在设计过程中,通过仿真测试,如果发现性能不够理想,或者发现任何错误,只需对存在问题的低层的描述或实现方式进行修改或调整,而不必对上层结构进行任何改变。
所谓的顶层和底层都是相对的。
在实际设计过程中,总是把当前正在实现的模块作为一个局部的顶层模块,在完成描述后,先单独对他进行仿真测试,在验证其正确性后在加入需要调用它的模块中,而成为整个系统设计中某一个层次的功能模块,一个大的电子系统设计就是这样从顶层到底层,边设计,边仿真,并依据仿真结果,反复调整或优化的过程。
1.4Modelsim仿真工具
ModelSim是业界最优秀的HDL语言仿真器。
它提供最友好的调试环境,是唯一的单内核支持VHDL和Verilog混合仿真的仿真器。
是作FPGA/ASIC设计的RTL级和门级电路仿真的首选,它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段。
全面支持VHDL和Verilog语言的IEEE标准,支持C/C++功能调用和调试。
ModelSim专业版,具有快速的仿真性能和最先进的调试能力,全面支持UNIX(包括64位)、Linux和Windows平台。
主要特点:
RTL和门级优化,本地编译结构,编译仿真速度快;单内核VHDL和Verilog混合仿真;源代码模版和助手,项目管理;集成了性能分析、波形比较、代码覆盖等功能;数据流ChaseX;SignalSpy;C和Tcl/Tk接口,C调试。
是业界唯一单一内核支持VHDL、VerilogHDL和SystemC混合仿真的仿真器同时也支持业界最广泛的标准如Verilog2001、SystemVerilog等,内部集成了用于C/C++,PLI/FLI和SystemC的集成C调试器。
支持众多的ASIC和FPGA厂家库,可以用于FPGA和ASIC设计的RTL级和门级电路仿真。
下面图1.1为modelsim的主界面。
图1.1modelsim主界面
ModelSim最大的特点是其强大的调试功能:
先进的数据流窗口,可以迅速追踪到产生不定或者错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备;多种模式的波形比较功能;先进的SignalSpy功能,可以方便地访问VHDL或者VHDL和Verilog混合设计中的底层信号;支持加密IP;可以实现与Matlab的Simulink的联合仿真。
ModelSim分几种不同的版本:
SE、PE、LE和OEM,其中SE是最高级的版本
而集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。
SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSimXE为例,对于代码少于40000行的设计,ModelSimSE比ModelSimXE要快10倍;对于代码超过40000行的设计,ModelSimSE要比ModelSimXE快近40倍。
以下列表介绍了OEM版本(以Xilinx公司提供的ModelSimXE版本为例)与ModelSimSE版本之间的差异。
ModelSimSE支持PC、UNIX和LINUX混合平台;提供全面完善以及高性能的验证功能;全面支持业界广泛的标准;MentorGraphics公司提供业界最好的技术支持与服务。
第2章数字电路设计方法
2.1数字系统设计简介
2.1.1数字系统
从概念上讲,凡是利用数字技术处理和传输信息的系统都可以称为数字系统。
通常把门电路、触发器等称为逻辑器件。
将由逻辑器件构成,能执行某单一功能的电路,如计数器、译码器、加法器等称为逻辑功能部件,把有逻辑功能部件组成的能实现复杂功能的数字电路称为数字系统。
复杂的数字系统可以分割称为若干个子系统,例如,计算机就是一个内部结构相当复杂的数字系统。
近几年来,IC技术的发展日新月异,而最具有代表性的IC芯片主要包括以下几类:
微控制芯片(MCU);可编程逻辑器件(PLD);数字信号处理器(DSP);大规模存储芯片(RAM&ROM)。
这几类器件在最近20年均取得了长足的发展,无论是芯片的规模还是性能都有了巨大的提高,构成了现代数字系统的基石。
2.1.2数字系统设计方法
数字系统一般由控制电路、多个受控电路、输入/输出电路、时基电路等几部
分构成,如图2.1所示。
图2.1数字系统设计方法构成图
一般来说,电子系统的设计有两种思路,一种是自下而上的设计思路,一种
自上而下的设计思路。
(1)自下而上的设计
自下而上的设计,也可称为自底向上的设计,过程从最底层设计开始。
设计系统硬件时,首先选择具体的元器件,用这些元器件通过逻辑电路设计,完成系统中各独立功能模块的设计,再把这些功能模块连接起来,总装成完整的硬件系统。
(2)自上而下的设计
自上而下的设计,也可称为自顶向下的设计。
它是目前常用的数字系统
设计方法,也是基于芯片的系统设计的主要方法。
它在功能划分、任务分配及设计管理上有一定的长处。
2.1.3数字系统设计流程
数字系统的设计可分为四个层次,即系统级设计、电路级设计、芯片级设计和电路板级设计。
相应的,从提出设计要求到完成系统成品,数字系统设计可分为以下几个步骤:
系统设计、电路设计、芯片设计、PCB设计、结构设计及电路调试和系统调试,如图2.2所示。
图2.2数字系统设计流程图
2.1.4数字系统设计准则
进行数字系统设计时,通常需要考虑多方面的条件和要求。
如设计的功能和
性能要求,元器件的资源分配和设计工具的可实现性,系统的开发费用和成本等。
虽然具体设计的条件和要求千差万别,实现方法也个各相同,但数字系统设计还是具备一些共同的方法和准则。
1)分割准则
自顶向下设计方法或其他层次化设计方法需要对系统功能进行分割,然后用
逻辑语言进行描述。
分割过程中,若分割过粗,则不易用逻辑语言表达;若分割过细,则会带来不必要的充分和繁琐。
因此,分割合适与否对系统设计是否方便有着至关重要的影响。
2)系统的可观测性
一个系统除了引脚上的信号外,系统内部的状态也是需要测试的内容。
因此,
在系统设计中,应该同时考虑功能检查和性能的测试,即系统观测性的问题。
3)系统的稳定性
设计时应注意采取措施避免竞争和增加系统稳定性。
4)最优化设计
设计中常见的最优化目标有:
(1)器件资源利用率最高;
(2)系统工作速度最快,即延时最小;(3)布线最容易。
2.2有限状态机
2.2.1有限状态机简介
有限状态机(FSM)又称为有限状态自动机或简称状态机,是表示有限个状态以及这些状态之间的转移和动作的数学模型。
一般来说,除了输入部分和输出部分外,状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,他们常被称为状态寄存器。
其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合和逻辑又可分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。
在实际应用中,根据有限状态机的输出信号是否与输入信号有关,将其分为Moore(莫尔)型有限状态机和Mealy(米里)型有限状态机两种类型。
Moore型状态机输出信号仅与当前状态有关,如图2.3。
即可以把Moore型有限状态的输出看成是当前状态的函数。
Mealy型状态机输出信号不仅与当前状态有关,而且还与输入信号有关,如图2.4即可以把Mealy型状态机的输出看成是当前状态和输入信号的函数。
图2.3Moore函数图
输出
当前状态
激励
输入
时钟信号
图2.4Mealy函数图
需要注意的是Mealy型状态机的输出是当前状态和输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。
而Moore型状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Verilog HDL的闹钟设计 基于 Verilog HDL 闹钟 设计