




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华东交通大学课程设计摘 要本次课程设计为通过EDA仿真软件QuartusII设计一个电子钟,进行试验设计和仿真调试,包含以下主要功能:计时功能、整点报时功能、秒表功能、显示日期和重置时间功能。电子钟实际上是一个对标准频率(10Hz)进行计数的计数电路。振荡器产生的时钟信号经过分频器形成秒脉冲信号,秒脉冲信号输入计数器进行计数,并把累计结果以“时”、“分”、“秒”的数字显示出来。秒计数器电路计满60后触发分计数器电路,分计数器电路计满60后触发时计数器电路,当计满24小时后又开始下一轮的循环计数。一般由分频器、计数器、译码器、数码显示器等几部分组成。设计时采用了层次设计思想,功能逐级递加。关键词:QuartusII 电子钟 仿真 AbstractThe curriculum design for through the EDA simulation software QuartusII design an electronic clock, test design and simulation debugging, contains the following main functions: timing function, the integral point time function, stopwatch function, display the date and reset time function. Electronic clock is actually a standard frequency (10 hz) to count the counting circuit. Oscillator clock signal produced by frequency divider form second pulse signal, the second pulse signal input counter to count, and the cumulative results to hours, points , seconds digital display. Second counter circuit meter full after sixty trigger points counter circuit, points counter circuit meter full after sixty when triggered counter circuit, when the meter with 24 hours after began to the next round of cycle count. Generally the frequency divider, counter, decoder, digital display and so on several parts. The design of the hierarchical design ideas, function step by step increase gradually.Keywords:QuartusII electronic clock simulation目 录摘 要1Abstract2目 录3第一章 绪论41.1 历史背景41.2 EDA技术简介51.2.1 EDA技术的概念51.2.2 EDA技术的基本特征51.2.3 EDA技术的发展61.3 QuartusII仿真软件的使用简介71.3.1 设计工作流程71.3.2 设计输入71.3.3 编译81.3.4 仿真9第二章 各个模块的设计原理112.1 整体设计思路112.2 各模块设计思路12第三章 仿真波形143.1毫秒计数器仿真波形143.2秒计数器仿真波形143.3分计数器仿真波形153.4时计数器仿真波形153.5星期计数器仿真波形163.6日计数器模块仿真波形163.7月计数器模块仿真波形173.8年计数器仿真波形17第四章 总结18谢辞19参考文献20附录21第一章 绪论1.1 历史背景三十多年来,EDA技术经历了计算机辅助设计CAD(Computer Assist Design) 、计算机辅助工程设计CAE(Computer Assist Engineering Design)和电子系统设计自动化ESDA(Electronic System Design Automation)三个发展阶段。 20世纪70年代,随著中小规模集成电路的出现和应用,传统的手工制图设计PCB和IC的方法已无法满足设计精度和效率的要求,人们开始借助计算机二维平面图形编辑与分析工具进行IC版图编辑和PCB布局布线,从而产生了CAD的概念。受当时计算机工作平台的制约,CAD所支持的设计工作有限且性能比较差。 20世纪80年代为CAE阶段。与CAD相比,CAE增加了电路功能设计和结构设计,并且通过电气连接网表将两者结合在一起,以实现工程设计。其主要功能包括原理图输入、逻辑仿真、电路分析、自动布局布线以及PCB後分析。但是,大部分从原理图出发的EDA工具仍然不能适应复杂电子系统设计的要求,而且具体化的元件图形制约著优化设计。20世纪90年代为ESDA阶段。尽管CAD/CAE技术取得了巨大的成功,但在整个设计过程中,自动化和智能化程度不高。各种EDA软件互不兼容,直接影响到设计环节间的衔接。於是,设计师逐步从使用硬件转向设计硬件,从电路级电子产品开发转向系统级电子产品开发。ESDA工具便是以系统级设计为核心,包括系统行为级描述与结构级综合、系统仿真与测试验证、系统划分与指标分配、系统决策与文件生成等一整套的电子系统设计自动化工具。ESDA技术的出现,极大地提高了系统设计的效率,使设计师摆脱了大量的辅助设计工作,把精力集中於创造性的方案与概念构思上,从而极大地提高了设计效率,并缩短了产品的研制周期。1.2 EDA技术简介1.2.1 EDA技术的概念Electronic Design Automation即电子设计自动化。以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程器件的开发软件及实验开发系统为设计工具,自动完成用软件方式描述的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门多学科融合的新技术。EDA技术的广义定义范围包括:1、半导体工艺设计自动化;2、可编程器件设计自动化;3、电子系统设计自动化;4、印刷电路板设计自动化;5、仿真与测试、故障诊断自动化;6、形式验证自动化。 以上各部分统称为EDA工程。1.2.2 EDA技术的基本特征EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。下面介绍与EDA基本特征有关的几个概念。 1“自顶向下”的设计方法10年前,电子设计的基本思路还是选用标准集成电路“自底向上”地构造出一个新的系统,这样的设计方法就如同一砖一瓦建造金字塔,不仅效率低、成本高而且容易出错。 2ASIC设计现代电子产品的复杂度日益提高,一个电子系统可能由数万个中小规模集成电路构成,这就带来了体积大、功耗大、可靠性差的问题。解决这一问题的有效方法就是采用ASIC芯片进行设计。ASIC按照设计方法的不同可分为全定制ASIC、半定制ASIC和可编程ASIC(也称为可编程逻辑器件)。3.硬件描述语言硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行“A=BC”即可。而且VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL为硬件描述语言标准(IEEESTD1076)。4EDA系统框架结构EDA系统框架结构(Framework)是一套配置和使用EDA软件包的规范。目前主要的EDA系统都建立了框架结构,如Cadence公司的DesignFramework,Mentor公司的FalconFramework,而且这些框架结构都遵守国际CFI组织制定的统一技术标准。框架结构能将来自不同EDA厂商的工具软件进行优化组合,集成在一个易于管理的统一的环境之下,而且还支持任务之间、设计师之间以及整个产品开发过程中的信息传输与共享,是并行工程和自顶向下设计方法的实现基础。 1.2.3 EDA技术的发展 1、早期电子CAD(Computer Aided Design)阶段20世纪70年代,属EDA技术发展初期。利用计算机、二维图形编辑与分析的CAD工具,完成布图布线等高度重复性的繁杂工作。典型设计软件如Tango布线软件。2、计算机辅助工程设计CAE阶段 20世纪80年代初,出现了低密度的可编程逻辑器件(PAL_Programmable Array Logic 和GAL_Generic Array Logic),相应的EDA开发工具主要解决电路设计没有完成之前的功能检测等问题。 80年代后期,EDA工具已经可以进行初级的设计描述、综合、优化和设计结果验证。 3、电子设计自动化(EDA)阶段20世纪90年代,可编程逻辑器件迅速发展,出现功能强大的全线EDA工具。具有较强抽象描述能力的硬件描述语言(VHDL、Verilog HDL)及高性能综合工具的使用,使过去单功能电子产品开发转向系统级电子产品开发(即SOC_ System On a Chip:单片系统、或片上系统集成)。开始实现“概念驱动工程”(Concept Driver Engineering, CDE )的梦想。1.3 QuartusII仿真软件的使用简介Quautus II是Altera 公司的综合性PLD开发软件,支持原理图、VHDL、Verilog-HDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整的PLD设计流程。它支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对EDA第三方工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。1.3.1 设计工作流程Quartus II 的设计流程图如图所示设计输入设计编译功能仿真时序仿真硬件配置与验证图1.1 设计流程图用户首先对所做项目进行设计,明确设计目的、设计要求。然后利用原理图输入方式或文本输入方式进行设计输入。输入完成后进行编译,若编译过程中发现错误,则应检查设计输入以修改错误,直至没有错误产生。编译完成后进行仿真,检查是否达到了设计要求,若未达到要求,需重新检查设计输入及编译过程,不断迭代、收敛直至满足设计要求。最后将设计配置到目标器件中进行硬件验证与测试。1.3.2 设计输入Quartus II 支持多种设计输入方法,既允许用户使用多种方法描述设计,常用的设计输入方式有:原理图输入、文本输入和第三方EDA工具输入。输入方法不同,生成的文件格式也不同。QuartusII5.0版本软件中的设计输入支持的文件格式有:VHDL、Verilog-HDL、AHDL、Block Design File(原理图输入)、EDIF(网表文件输入)。本例中主要介绍文本输入方法和原理图输入方法。l VHDL(.vhd文件):IEEE标准描述语言。有美国国防部的逻辑描述标准发展而来,因而系统性、结构性较好。支持从系统级到门级的描述方式,是目前最常用的HDL描述语言之一,可移植性较好。l Verilog-HDL(.v文件):IEEE标准描述语言。拥有和C语言类似的格式和语法,在ASIC设计领域应用广泛。支持行为级描述并在门级描述方面拥有独特的优势,也是目前最常用的HDL描述语言之一,可移植性较好。l AHDL(.tdf文件):Altera 公司自有的HDL描述语言。在Altera公司的软件工具及提供的设计资源中应用广泛。虽然并不是主流的HDL描述方式,可移植性也不是很好(只能用于Altera的综合器),但是使用它在描述一些逻辑尤其是与Altera器件底层相关的设计时结合的很好。l Block Design File(.bdf文件):原理图输入方式。几乎所有的EDA工具都会提供原理图输入方式,这种方式简单易用而且非常直观,缺点时直观的图形背后调用的模块库不兼容导致了这种描述方式的可移植性不好。值得一提的是,Quartus II的原理图输入方式实现了从原理图模块到HDL描述语言的双向自动转换功能,即可以实现原理图和HDL的混合输入,这在进行大型设计时是相当有意义的。l EDIF Netlist(.edf文件):网表文件输入。网表记录的是设计的组成以及连接方式,由第三方综合工具产生或者IP供应商提供。这种输入方式与上述四种的层次是不同的,可以理解为是已经综合完成的设计,Quartus II会根据网表的描述进行布局布线将设计具体部署到确定的Altera器件中。1.3.3 编译在标准PLD设计流程中,编译(Compilation)包括综合(Synthesis)和布局布线(Place&Route)两个阶段。在综合阶段,综合器将HDL语言描述翻译成基本的逻辑门、存储器、触发器等基本逻辑单元的连接关系,称为网表(Netlist)。在这个过程中,综合器会根据用户的约束与本身的算法优化生成网表,目的是让生成的设计拥有更快的速度并占有更好的资源。完成综合后需要根据目标器件进行布局布线,利用芯片内的可用逻辑资源最终将设计在物理层次上实现。Quartus II将编译划分为Analysis & Synthesis、Fitters、Assembler和Timing Analyzer 4个阶段。其中Analysis & Synthesis就是综合,Fitters为布局布线;后面的Assembler用于生成编译输出文件,而Timing Analyzer是时序分析流程。用户可以分别进行编译的这4个阶段,也可以直接执行完全编译让Quartus II自动完成整个编译工作。1.启动编译在Quartus II界面上执行菜单ProcessingStart Compilation或者使用CtrlL快捷键启动Quartus II的完全编译。可以在状态窗口中看到当前编译的运行状态。在编译的过程中Quartus II会在消息框中显示编译中的警告、错误和消息,并在编译结束后给出完成的综合报告。遇到编译错误,Quartus II会立即终止编译流程,并给出错误信息,双击错误名称,Quartus II会自动在HDL代码等设计源描述中定位出错位置。2.完成编译编译完成后,Quartus II会给出对话框提示,并给出编译报告。其中包括了设计的资源占有信息、时序分析报告等综合信息,用户可以通过阅读这个报告了解Quartus II的编译结果。3.查看RTL试图通过执行ToolRTL Viewer菜单命令可以观察到设计的RTL试图。在Quartus II中,执行完Analysis and Elaboration流程后即可以观察RTL电路图,所以RTL电路图是在综合及布局布线前生成的,并非设计的最终电路结构。RTL试图是设计的寄存器传输级展现,作为设计输入最忠实的体现,RTL试图的主要作用是帮助设计者检查设计输入中的问题。1.3.4 仿真对工程的编译通过后,必须对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。再把设计配置到器件之前,可以通过仿真对设计进行全面测试,保证设计是在各种条件下都能有正确的响应。仿真分为功能仿真和时序仿真,功能仿真仅仅测试设计的逻辑功能;而时序仿真不仅测试逻辑功能,而且测试设计的目标器件处在最差情况下的时序关系。1) 新建波形文件 在Quartus II界面中,执行FileNew菜单命令,在弹出的新建对话框中选择Other File选项卡,选择Vector Waveform File项目,点击【OK】按钮,可以看到Quartus II创建的名为Waveform1.vmf的仿真波形文件,使用FileSave As命令将其另存。2) 添加仿真信号在进行仿真之前必须添加仿真信号,即仿真中的激励以及所要观察的信号。在Quartus II中添加仿真信号有多种方法,这里可以通过执行EditInset Node or Bus菜单命令打开Insert Node or Bus对话框,在Name栏中填入设计中需要观察的端口信号,Quartus II会自动给出其输入输出类型与其他参数,点击【OK】即可将其添加到波形文件中。3) 设置仿真激励Quartus II提供了多种方式来设置信号的仿真激励,选中所需要的信号后点击鼠标右键,在弹出的快捷菜单中打开Value子菜单,便可以看到Quartus II提供的仿真激励类型。除了使用快捷菜单还可以直接使用工具栏进行仿真激励的设置。4) 启动仿真 执行Quartus II菜单中的ProcessingStart Simulation命令或者CtrlI快捷键即可启动仿真。Quartus II会在状态窗口显示仿真的运行状态,并在消息窗口给出仿真过程中出现的警告、错误和信息。在完成仿真后Quartus II会自动弹出仿真报告,如果没有自动弹出也可以执行PrecessingSimulation Report手动打开。需要注意的是,Quartus II并不允许直接在仿真报告的波形图中修改仿真激励,如果用户进行了修改,Quartus II会弹出编辑输入向量对话框。该对话框提供两个单选框解释如下:(1)I want to overwrite:使用仿真报告波形窗口中的内容覆盖仿真文件窗口中的波形。(2)I dont want to overwrite:跳回仿真文件窗口进行修改。第二章 各个模块的设计原理2.1 整体设计思路本次设计的电子钟计时模块有4部分构成:毫秒计时器、 秒计时器、 分计时器、 时计时器。图2.1 电子钟设计框图2.2 各模块设计思路毫秒计时器是由一个100进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,毫秒计时器清0; clk为驱动秒计时器的时钟,secm1、secm0为秒计时器的输出,co为秒计时器的进位信号,作为下一级的时钟输入信号。秒计时器是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,秒计时器清0;set1 为置数信号,当set1为0时,秒计时器置数,置sin1的值。clk为驱动秒计时器的时钟,sec1为秒计时器的输出,carry1为秒计时器的进位信号,作为下一级的时钟输入信号。分计时器是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;set2 为置数信号,当set2为0时,分计时器置数,置sin1的值。 clk为驱动分计时器工作的时钟,与carry1相连接;min1为分计时器的输出;carry2为分计时器的进位信号,作为下一级的时钟输入信号。时计时器是由一个24进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,时计时器清0;set3 为置数信号,当set3为0时,时计时器置数,置sin1的值。 clk为驱动时计时器工作的时钟,与carry2相连接;hour1为时计时器的输出;carry3为时计时器的进位信号,作为下一级的时钟输入信号。日计时器(date)是由一个30进制的计数器构成的,具有清0、和计数功能。其中reset为清0信号,当reset为0时,日计时器清1; clk为驱动时计时器工作的时钟,与carry3相连接;dat1、dat2为日计时器的输出;endate为日计时器的进位信号,作为下一级的时钟输入信号。月计时器(month)是由一个12进制的计数器构成的,具有清0、和计数功能。其中reset为清0信号,当reset为0时,月计时器清1; clk为驱动时计时器工作的时钟,与count相连接;month为月计时器的输出;count为月计时器的进位信号,作为下一级的时钟输入信号。年计时器(year):具有清0、和计数功能。其中reset为清0信号,当reset为0时,年计时器清2012; clk为驱动时计时器工作的时钟,与count相连接;year为年计时器的输出。 报时模块(alarm):clk为驱动报时工作的时钟,与carry2相连接;q为报时模块第三章 仿真波形3.1毫秒计数器仿真波形3.2秒计数器仿真波形3.3分计数器仿真波形3.4时计数器仿真波形3.5星期计数器仿真波形3.6日计数器模块仿真波形3.7月计数器模块仿真波形3.8年计数器仿真波形第四章 总结本次课程设计使得我们对这个学期学习的EDA课程得到了巩固和近一步的深入了解。之前做实验的时候我们用的仿真软件是Max-Plus 2,而这次课设我们则是学习了Quartus 2仿真软件的使用,开始时有点困难,后面熟悉后便习惯了。在做课程设计的时候,总是会犯一些错误,经过不停的改错不停的编译才得到正确的程序。后来我发现在编程的时候,使用结构化的思想,对检查程序会十分方便,只要一个模块一个模块的进行调就可以了。通过这次设计,我积累了一定的经验,现在当我面对一次次错误的时候,我已经可以耐心的去解决它。我相信这将对我以后从事集成电路设计工作会有一定的帮助。这次课设十分有意义,之中锻炼了我们自己的实际操作,寻找问题,改正错误的能力。也将一些我们在课堂上学习的知识的运用到了实验中,一起有些不理解的理论知识,都能通过实验得到验证。遇到困难的时候,也会上网去查找资料,也会寻求老师和同学的帮助,通过这次EDA的课程设计,我进一步加深了对EDA的了解。谢辞本次EDA课程设计在课设过程中运用到了许多老师上课讲到的内容。自己也体会到老师所讲的不断在实际动手操作中开拓思路,对待问题要举一反三,敢于提出问题和创新的思想,这些对于帮助我解决问题起到了很大的作用。在这里要感谢老师。在课设过程中也会向身边的同学寻求帮助,她们也都细心的跟我一起讨论,我们也会互相交流自己遇到的问题,比如编程中出现的问题,比如软件的使用等等。感谢身边的同学给我的帮助。参考文献1 潘松EDA技术实用教程 科学出版社2 徐志军CPLD/FPGA的开发与应用 电子工业出版社3 潘松、黄继业EDA技术与Verilog HDL清华大学出版社4 /html/85/t-113885.html5 附录顶层文件:Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity topclock is Port(clk,reset,set1,set2,set3,stop:in std_logic; sec,min,hourm:out std_logic_vector(7 downto 0); sin1:in STD_LOGIC_VECTOR(7 DOWNTO 0); secm1,secm0,monthm:out std_logic_vector(3 downto 0);-weekm data1,data2:out std_logic_vector(3 downto 0); yearm:out std_logic_vector(15 downto 0); alarm:out std_logic);End;Architecture one of topclock is Component MINSECONDb port(clk,clrm,stop:in std_logic; secm1,secm0:out std_logic_vector(3 downto 0); co:out std_logic);End Component; Component second PORT(clk,reset,set:IN STD_LOGIC; sec1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); sin:in STD_LOGIC_VECTOR(7 DOWNTO 0); carry1:OUT STD_LOGIC);End Component; Component minute PORT(clk,reset,set:IN STD_LOGIC; min1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); sin:in STD_LOGIC_VECTOR(7 DOWNTO 0); carry2:OUT STD_LOGIC); End Component; Component hour PORT(clk,reset,set:IN STD_LOGIC; hour1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); sin:in STD_LOGIC_VECTOR(7 DOWNTO 0); carry3:OUT STD_LOGIC);End Component; Component alertport(clk:in std_logic; q:out std_logic);End Component; Component year PORT(clk,reset:IN STD_LOGIC; year:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);End Component; Component monthPORT(clk,reset:IN STD_LOGIC; month:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); count:out std_logic);End Component; Component week PORT(clk,reset:IN STD_LOGIC; week:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); count:out std_logic);End Component; Component date1 Port ( clkd,reset : in std_logic; dat2,dat1 : out std_logic_vector(3 downto 0); endate : out std_logic); End Component;signal ens,enm,enh,enda:std_logic;signal enw,enmon,endat:std_logic; beginu1:minsecondb port map(clrm=reset,stop=stop,clk=clk,secm1=secm1,secm0=secm0,co=ens);u2: second port map(reset=reset,set=set1,sin=sin1,clk=ens,sec1=sec,carry1=enm);u3: minute port map(reset=reset,set=set2,sin=sin1,clk=enm,min1=min,carry2=enh);u4: hour port map(reset=reset,set=set3,sin=sin1,clk=enh,hour1=hourm,carry3=enda);u5: alert port map(clk=enh,q=alarm);u6:date1 port map(reset=reset,clk=enda,dat1=data1,dat2=data2,endate=endat);-u6:week port map(reset=reset,clk=enda,week=weekm,count=enw);u7:month port map(reset=reset,clk=endat,month=monthm,count=enmon);u8:year port map(reset=reset,clk=enmon,year=yearm);end one;毫秒计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINSECONDb isport(clk,clrm,stop:in std_logic; secm1,secm0:out std_logic_vector(3 downto 0); co:out std_logic);end MINSECONDb;architecture SEC of MINSECONDb issignal clk1,DOUT2:std_logic;beginprocess(clk,clrm)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clrm=1 thencnt1:=0000;cnt0:=0000;elsif clkevent and clk=1 then if stop=1 then cnt0:=cnt0; cnt1:=cnt1;elsif cnt1=1001 and cnt0=1000 thenco=1;cnt0:=1001;elsif cnt01001 thencnt0:=cnt0+1;-elsif cnt0=1001 then-clk1=not clk1;elsecnt0:=0000;if cnt11001 thencnt1:=cnt1+1;elsecnt1:=0000;co=0;end if;end if;end if;secm1=cnt1;secm0=cnt0;end process;end SEC; 秒计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second IS PORT(clk,reset,set:IN STD_LOGIC; sec1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); sin:in std_logic_vector(7 downto 0); carry1:OUT STD_LOGIC);END second;ARCHITECTURE rt1 OF second IS SIGNAL sec1_t,sec2_t:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,reset,set) BEGIN IF reset=1 THEN sec1_t=0000; sec2_t=0000; elsIF clkevent AND clk=1 THENif set=1 then sec1_t=sin(3 downto 0); sec2_t=sin(7 downto 4); elsIF sec1_t=1001 THEN sec1_t=0000; IF sec2_t=0101 THEN sec2_t=0000; ELSE sec2_t=sec2_t+1; END IF; ELSE sec1_t=sec1_t+1; END IF; IF sec1_t=1001 AND sec2_t=0101 THEN carry1=1; ELSE carry1=0; END IF; END IF; sec1=sec2_t&sec1_t; END PROCESS;END rt1;分计算器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute IS PORT(clk,reset,set:IN STD_LOGIC; min1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); sin:in std_logic_vector(7 downto 0); carry2:OUT STD_LOGIC); END minute;ARCHITECTURE rt1 OF minute IS SIGNAL min1_t,min2_t:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,reset,set) BEGIN IF reset=1 THEN min1_t=0000; min2_t=0000; ELSIF clkevent AND clk=1 THENIF set=1then min1=sin;min1_t=sin(3 downto 0); min2_t=sin(7 downto 4); elsIF min1_t=1001 THEN min1_t=0000; IF min2_t=0101 THEN min2_t=0000; ELSE min2_t=min2_t+1; END IF; ELSE min1_t=min1_t+1; END IF; IF min1_t=1001 AND min2_t=0101 THEN carry2=1; ELSE carry2=0; END IF; END IF; min1=min2_t&min1_t; END PROCESS;END rt1;时计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour IS PORT(clk,reset,set:IN STD_LOGIC; hour1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);sin:in std_logic_vector(7 downto 0); carry3:OUT STD_LOGIC);END hour;ARCHITECTURE rt1 OF hour IS SIGNAL hour1_t:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL hour2_t:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,reset,set) BEGIN IF reset=1 THEN hour1_t=0000; hour2_t=0000; ELSIF clkevent AND clk=1 THEN if set=1then hour1=sin;hour1_t=sin(3 downto 0);hour2_t=sin(7 downto 4); elsIF hour1_t=0011 AND hour2_t=0010 THEN hour1_t=0000; hour2_t=0000; ELSE IF hour1_t=1001 THEN hour1_t=0000; IF hour2_t=0010 THEN hour2_t=0000; ELSE hour2_t=hour2_t+1; END IF; ELSE hour1_t=hour1_t+1; END IF; END IF; IF hour1_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年“十八项医疗核心制度”培训考试试题及答案
- 林业三清安全培训课件
- 血透透析护理常规试题及答案
- 2025年中心血站考试试题及答案
- DB6103T 61-2024 宝鸡特色饮食制作规程 烤全羊
- 家园安全知识培训课件
- UPVC排水管安装方案
- 李清照生平课件
- ZARA品牌2025年全球市场布局优化策略研究报告
- 2025年理线器项目提案报告
- 工程造价咨询绿色施工支持措施
- 大模型时代:生成式AI发展与科技创新范式
- 法律法规师德师风培训内容
- 江苏欧立可化工新材料有限公司年产10万吨石油添加剂N-甲基苯胺项目环评资料环境影响
- 黄浦区2024-2025学年六年级下学期期末考试数学试卷及答案(上海新教材沪教版)
- 《中国尖锐湿疣临床诊疗指南(2021版)》解读
- 2025安全注射培训
- 建筑垃圾处理技术标准(CJJT 134-2019)
- 《职业素养》课件全套 模块1-8 职业认知与职业道德 -职业发展素养
- 五年级美术素养测评模拟测试
- 销售流程与管理制度
评论
0/150
提交评论