基于VHDL的电子计时器的设计
基于VHDL的秒表
内容1、总体设计要求具有启动停止功能;计时器能显示0.01s的时间;计时器最长计时时间为24h;具有复位功能在任何情况下按复位键秒表无条件清零;2、系统功能描述本次课程设计通过VHDL做的秒表主要有以下的功能:(1)在下载到实验箱后,打开开始开关才能开始计时;(2)在开始开关打开后,能够通过另一个开关进行暂停;(3)再按下清零键后能够清零,并且是在任何条件下都能清零;(4)能够精确到0.01秒,更加精确的计时3、系统设计方案论述,画出顶层电路图及功能分割图,并说明之间的联系或功能。
先是将100进制计数器、60进制计数器、60进制计数器和24进制计数器连接,将100进制计数器的进位接到60进制计数器的CLK输入端上,然后将60进制的进位连接到另一个60进制的CLK输入端上,然后将已将连接进位的60进制计数器的几位连接到24进制计数器的输入端口CLK上,24进制的仅为端悬空,这就是秒表的主体。
当100进制计数器进位端口为1时,与之相连的60进制计数器开始工作,当进位为0时停止工作,剩余两个计数器的工作原理与之相同。
将100进制计数器、两个60进制计数器和24进制计数器的en端口相连并连接到input得输入端口上,并且将他们的cir连接到一起也连接到input 的输入端口上,这样就实现了暂停和清零的功能,并且秒表的精确度为0.01。
在100进制的输入端口处还剩下一个clk端口,将两个输入端口通过一个与门与之相连,其中一个接入clk信号,而另一个就可当做一个开关,实现开始的功能,并且能够暂停。
将100进制计数器、两个60进制的计数器和24进制计数器的输出端分别接到8选1的数据选择器的输入端上,并且按高低位接好,而八进制的选择功能是通过一个8进制的不管计数来实现的,所以在8选1的数据选择器的sel 输入端端口接到8进制计数器的输出端上,而八进制的输入端口上,通过两个输入端input,一个接扫描频率,另一个通过一个开关来控制8进制的工作,并且清零端接1使它的清零作用失效。
基于vhdl数字闹钟设计说明书
毕业设计(论文)论文题目:基于VHDL的数字闹钟设计所属系部:指导老师:职称:学生姓名:班级、学号:专业:毕业设计(论文)任务书题目:基于VHDL的数字闹钟设计任务与要求:设计一个带闹钟功能的24小时计时器。
完成功能:1.计时功能:每隔1分钟计时1次,并在显示屏上显示当前时间。
2.闹钟功能:如果当前时间与设置的闹钟时间相同,扬声器发出蜂鸣声。
时间:年月日至年月日共周所属系部:学生姓名:学号:专业:指导单位或教研室:指导教师:职称:毕业设计(论文)进度计划表本表作评定学生平时成绩的依据之一。
基于VHDL的数字闹钟设计【摘要】随着EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
本文介绍了基于VHDL硬件描述语言设计的多功能数字闹钟的思路和技巧。
在Quartus 11开发环境中编译和仿真了所设计的程序,并逐一调试验证程序的运行状况。
仿真和验证的结果表明,该设计方法切实可行,该数字闹钟可以实现调时定时闹钟功能具有一定的实际应用性。
关键词:数字闹钟 FPGA VHDL Quartus IIAbstract: With the EDA technology development and expansion of application fields and in-depth, EDA technology in the electronic information, communication, automatic control and computer applications of growing importance. EDA technology is dependent on a powerful computer, the software platform in the EDA tools for the hardware description language VHDL description for the system logic means completed design documents, automatically complete the test logic optimization and simulation, electronic circuit set up to achieve the system functionality. This article describes the VHDL hardware description language based on multi-function digital alarm clock design ideas and techniques. In the Quartus 11 compiler and development environment designed to simulate the process, and one by one to debug verification process operating conditions. Simulation and verification results show that the design method is feasible, digital alarm clock can adjust the time when the alarm clock to play music with some practical application.Key words: Alarm Clock FPGA VHDL Quartus II目录1 选题背景 (6)1.1选题研究内容 (6)1.2课题研究功能课题研究功能 (6)1.3课题相关技术应用 (6)2 FPGA 简介 (8)2.1FPGA概述 (8)2.2FPGA编程原理 (8)2.3FPGA设计流程 (9)3 总体设计思想 (10)3.1基本原理 (10)3.2设计框图 (10)4 设计步骤和调试过程 (11)4.1总体设计电路 (11)4.2模块设计和相应模块程序 (12)4.3仿真及仿真结果分析 (14)4.4实验调试结果 (15)结束语 (16)文献 (17)1 选题背景1.1 选题研究内容设计一个 24 小时的闹钟,该闹钟由显示屏、数字键、TIME 键、ALARM 键、扬声器组成。
基于VHDL的99小时定时器设计及实现
第3 期
电 子 元 器 件 盔 用
El cr n cCo e to i mpo e t& De ieApp iains nn vc lc t o
V0.2 No3 】1 .
Ma . 2 0 r 01
2 1年 3 0 0 月
d i O3 6 0i n1 6 - 7 5 0 0 3 1 o: .9 9 . s.5 3 4 9 . 1 . . 4 l s 2 00
31 控 制/ 时 模 块 。 定
A A控 制/ 时模 块 是 该定 时器 的 核心 部 分 , A 定 该模 块 的程序 流程 图如 图4 所示 。 当S A T 高 电平 时 ,该定 时 器将 进 入倒 计 TR为
功能定 义和计 时 的逻辑定 义 。显 示模块 则包 括 片
选模块 、位扫描模块 和数码 管译码模块 。
设 计 时可 将 秒 信 号输 入 控 制/ 时模 块 .此 定 时系统 将 输 出六 个 四位B D , 以分 别 表示 时 、 C码 分 、秒位 。在预 置数时 .计数 器可 以秒 的速度 递 增 ,从 而 实现 逐位 预 置数 :而 在定 时倒 计 数时 ,
M a .2 0 r 01
St( e 置数 键) :用 于设 置选 定 位 的具 体 数值 ; Sat :用 于设 定 好 时 间 后 启 动 秒 表 计 时 。 t 键 r
可 通过 软 件 使s r 键 经 过 锁存 器 后 进 入AA tt a按 A模 块 。Sat 发后 可产生 持续 的高 电平 ; t 触 r AM( L 扬声 器) :可在计 时 结束 时发 声报警 ;
i7 . 7
. .
.
.
…
.
.
vhdl数字电子钟的设计与实现
基于VHDL数字电子钟的设计与实现摘要:本课程设计完成了数字电子钟的设计,数字电子钟是一种用数字显示秒、分、时的计时装置,由于数字集成电路技术的发展和采用了先进的石英技术,它使数字钟具有走时准确、性能稳定、携带方便等优点。
数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活带来极大的方便。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路的能力。
关键词:电子钟;门电路及单次按键;琴键开关目录第一章引言----------------------------------------------------------------11.1 课题的背景、目的------------------------------------------11.2 课程设计的内容------------------------------------------1 第二章EDA与VHDL简介--------------------------------------------------22.1 EDA的介绍---------------------------------------------22.2 VHDL的介绍--------------------------------------------32.2.1 VHDL的用途与优点-----------------------------------------------------------------32.2.2 VHDL的主要特点----------------------------------------------------------------------2.2.3 用VHDL语言开发的流程------------------------------------------------------------ 第三章数字电子钟的设计方案------------------------------------------63.1秒脉冲发生器--------------------------------------------73.2可调时钟模块--------------------------------------------83.3校正电路------------------------------------------------83.4闹铃功能------------------------------------------------103.5日历系统------------------------------------------------11 第四章结束语---------------------------------------------------------------134.1致谢----------------------------------------------------144.2参考文献------------------------------------------------151引言随着科学技术的不断发展,人们对时间计量的精度要求越来越高。
用Verilog HDL语言编写的电子秒表
module jian_kong(rest,kon,clk001,clk001out);//开始与暂停按键的控制电路 input rest; input kon; input clk001; output clk001out; wire k; wire d; assign d=~k; assign clk001out=k&clk001; D_FF D_FF0(rest,kon,d,k); endmodule module D_FF(rest,clk,d,q); input rest; input clk; input d; output q; reg q; always@(posedge rest or posedge clk) if(rest==1'b1) begin q<=1'b0; end else begin q<=d; end endmodule //到此程序全部结实
Module shumaguan(a_to_g,A_TO_D,clk,qian,bai,shi,ge);//数码管驱动 output reg [6:0]a_to_g; output reg [3:0]A_TO_D; input wire clk; input wire [3:0]qian; input wire [3:0]bai; input wire [3:0]shi; input wire [3:0]ge; reg [3:0]duan; reg [1:0]wei; reg a; reg [16:0]q; always@(posedge clk) begin if(q==49999) begin q<=0; a<=~a; end else q<=q+1; end
always@(*)//4位位选译码 case(wei) 3:begin A_TO_D=4'b1110; duan=qian; end 2:begin A_TO_D=4'b1101; duan=bai; end 1:begin A_TO_D=4'b1011; duan=shi; end 0:begin A_TO_D=4'b0111; duan=ge; end default:A_TO_D=4'b1110; endcase always@(posedge a)//四个状态循环 if(wei==3) wei<=0; else wei<=wei+1; endmodule //到此数码管驱动模块结束
一种基于VHDL语言的频率计的设计与实现
图 2频 率计 系统 方 块 图
2 防抖 电路 . 1 测信号的计数功能 。 在此电路 中,令时钟周期大于欲滤去的窄 3仿真波形 脉冲宽度 , 经过 电路处理 , 只有宽脉 冲被识 别 , 仿真波形 图如 图 3 所示。 窄脉冲滤去。 2 . 2显示 模
块
显 示 模 块 采 用 分 时 复 用 的方 式 逐 个 扫 描, 对几 个显示 模 块 逐 个 扫 描 进行 显示 , 显示 图 3 仿 真 波 形 图 模块的选择信号通过模四计数器来实现。 4FG P A实现 23 .分频模块 本设计选用 At a l r 公司的 E M 18 L 8 e P 72sC4 P A芯 片实现 , 率计 只 占该芯片部分资 频 由于所选时钟信 号为 2 M z 0 H 时钟信号 , 通 6 F G 过分频电路产生片选信号 ,防抖动电路周期信 源 , 资源作为它用。 其余 结语 号, 闸门信 号。 所谓 的分频器实际上就是一个计
—
图 1频 率 计 设 计 的 总体 框 图 2设计思路 在设计 考虑中将 时钟分 到 5 z H ,形成一个 固定的 0 s . 的闸门时间, 2 被测 信号通过 0 s . 的 I 闸门进入计数器进行计数 , 而在 01 的低电平 . s 内不计数 , 将计数器清零 , 下一次计数。为 以便
满足题意, 被测信号为几十千赫兹( H ) , K Z 时 显 示 # . k z被测信号 为几百 千赫兹( H ) , # #H ; # k z时 显示 # . H ; 槲 # z 被测 信号 为几千 千赫兹( H ) k k Z
时, 显示 堋# 非Hz 。采用时分复用 的方法控制 4 个数码管的显示。 该 系统共有 5 个模块组成 ,分别为分频模 块 DVD F E 、 I I E R 4 防抖 电路 D B U C 、 E O N E 计数 模块 FEET R T S 、锁 存 器模 块 F E A C 和 R L TH
电子秒表设计VHDL
一、设计题目:基于VHDL语言的电子秒表设计(可调时,有闹钟、定时功能)二、设计目的:⑴掌握较复杂的逻辑设计和调试⑵学习用原理图+VHDL语言设计逻辑电路⑶学习数字电路模块层次设计⑷掌握QuartusII软件及Modelsim软件的使用方法三、设计内容:(一)设计要求1、具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。
2、设计精度要求为1S。
(二).系统功能描述1 . 系统输入:系统状态及校时、定时转换的控制信号为k、set、ds;时钟信号clk,采用实验箱的50MHz;系统复位信号为reset。
输入信号均由按键产生。
系统输出:8位LED七段数码管显示输出,蜂鸣器声音信号输出。
多功能数字钟系统功能的具体描述如下:2. 计时:set=1,ds=1工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。
3. 校时:在set=0,ds=0状态下,按下“k键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒校准”状态,之后如此循环。
1)“小时”校准状态:在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。
2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。
3)“秒”复零状态:在“秒复零”状态下,显示“分”的数码管以1Hz的频率递增计数。
4. 整点报时:蜂鸣器在“59”分钟的第50—59,以1秒为间隔分别发出1000Hz,500Hz的声音。
5. 显示:采用扫描显示方式驱动8个LED数码管显示小时、分、秒。
闹钟:闹钟定时时间到,蜂鸣器发出交替周期为1s的1000Hz、500Hz的声音,持续时间为一分钟;6. 闹钟定时设置:在set=0,ds=1状态下,按下“k”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k 键”则进入“秒”设置状态, 之后如此循环。
1)闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管以1Hz 的频率递增计数。
基于verilog语言编程的数字秒表设计
数字秒表设计系别:电子通信工程系专业:电子信息工程班级:学号:姓名:数字秒表(基于verilong语言编程)课程设计一、设计要求用verilong语言编写程序,结合实际电路,设计一个4位LED数码显示“秒表”,显示时间为99.9~00.0秒,每秒自动减一,精度为0.1。
另设计一个“开始”按键和一个“复位”按键。
再增加一个“暂停”按键。
按键说明:按“开始”按键,开始计数,数码管显示从99.9开始每秒自动减一;按“复位”按键,系统复位,数码管显示99.9;按“暂停”按键,系统暂停计数,数码管显示当时的计数。
二、设计目的1、通过本次课程设计加深对verilong语言课程的全面认识、复习和掌握,对EPM7064芯片的应用达到进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将软硬件结合起来,对程序进行编辑,调试。
使其能够通过电脑下载到芯片,正常工作。
4、实际操作Quartus II软件,复习巩固以前所学知识。
三、总体设计本秒表系统具有复位、暂停、秒表计时等功能。
clk为系统工作时钟,采用Altera DE2上的50M时钟信号,经过分频器产生秒表计时周期为0.01s的时钟,再经过计数器,分别对秒表的百分位、十分位、秒、秒十位、分、分十位进行计数。
onoff为启动/暂停控制信号,当它为0时,启动计时,当它为1时,计时暂停。
clr为复位信号,当该信号有效时,计数器和译码清零,此时数码管显示输出为00:00:00。
在总体电路图中,根据设计要求,需要两个输入控制信号onoff和clr。
由于开发板上除了拨动开关就是瞬时的按键开关,且按键开关平时都呈高电平,按一下为低电平。
故在实际测试时采用了拨动开关SW0来控制秒表的启动/暂停,通过KEY0来控制秒表的清零。
四、设计思路描述该实验要求进行计时并在数码管上显示时间,通过相关软件Quartus II编译,利用JTAG 下载电路到核心芯片,驱动硬件工作。
基于verilog HDL计时器和倒计时的系统设计
实验报告2019 -2020 学年第2学期开课单位电子信息学院适用年级、专业2017级电子信息科学与技术Z 课程名称FPGA技术及应用-课内实验主讲教师课程序号BS6222003X3-03课程代码BS6222003X3实验名称计时器和倒计时的系统设计实验学时2学时学号姓名实验五计时器和倒计时的系统设计①掌握用Verilog HDL文本输入法设计计时电路的方法,并通过电路仿真和硬件验证,进一步了解计时器的功能和特性。
②掌握用Verilog HDL文本输入法设计倒计时电路的方法,并通过电路仿真和硬件验证,进一步了解倒计时电路的功能和特性。
二、实验原理1.计时器24小时计时器的电路框图如图8.1所示。
图8.1 24小时计时器的电路框图24小时计时器由2个60进制加计数器和1个24进制加计数器构成,输入CLK为1HZ(秒)的时钟,经过60进制加计数后产生1分钟的进位时钟信号,再经过60进制加计数后产生1小时的进位时钟信号送给24进制加计数器进行加计数,当加计数到达23:59:59后,再来-一个秒脉冲,产生时的进位输出。
将两个60进制加计数器和一个24进制加计数器的输出送数码管显示,得到计时器的显示结果。
其中,秒脉冲由EDA实调仪上的20MHz晶振分频得到。
2.倒计时器24小时倒计时器的电路框图如图8.2所示。
图8.2 24 小时倒计时器的电路框图24小时倒计时器由2个60进制减计故器和1个24进制减计数器构成,输入CLK为1Hz(秒)的时钟,经过60进制减计数后产生1分钟的借位时钟信号,再经过60进制减计数后产生I小时的借位时钟信号送给24进制减计数器进行减计数,当减计数到达00:00:00后,产生时的借位输出,同时24小时倒计时器停止倒计时,并发出提醒信号。
将两个60进制减计数器和一个24进制减计数器的输出送数码管显示,得到倒计时的显示结果。
其中,秒脉冲由EDA实训仪上的20MHz晶振分频得到。
三、实验设备①EDA实调仪1台。
EDA秒表设计 实验报告
EDA课程设计报告——基于VHDL语言的秒表设计课程名称:EDA技术院系:地球物理及信息工程学院专业班级:电子信息工程08级2班学生姓名:学号:指导老师:完成时间:2011年5月18日秒表设计一. 设计要求利用EDA实验箱,通过VHDL语言进行编程,设计一个简单的秒表,并用EDA实验箱进行实现,具体设计要求如下:(1)有使能、暂停、继续、秒表计数功能;(2)带有异步复位功能;(3)显示分、秒信息,若需要,显示秒表信息。
二. 设计的作用、目的在本次设计中,可以简单的了解EDA技术的应用以及VHDL语言编写的方法。
通过设计一个秒表,可以掌握用VHDL设计多位加法计数器的方法,尤其是调整时钟使得每过一秒就改变一个数,达到设计的要求。
三. 设计的具体实现1.系统概述本次系统设计主要分三个部分,一是通过VHDL语言设计一个八位的加法计数器,来实现秒表的计时功能;二是通过调整时钟使秒表计数为每秒改变一个数;三是加入一些控制按键,实现使能、暂停、继续等功能。
2.程序具体设计秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。
设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。
为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100Hz。
为此,本设计采用3MHz的时钟频率通过分频得到100Hz的时钟频率,再送给控制时钟以得到比较精确的CLK信号。
具体程序设计见附录。
引脚定义如下:其中,时钟信号CLK为3MHz的时钟频率,分频后得到的时钟为CLK2,输出引脚CLK2和输入引脚CLK2在外部相连,实现将分频后的时钟送入。
3.调试应用MAX+plus II软件编译调试实验控制程序, 仿真运行结果如下:(1)给时钟后,实现开始功能:开始键按下(STA=‘1’)后,秒表计数开始。
(2)给时钟后,实现暂停功能:从上图可以看出暂停键按下后(POS=‘1’),输出(CQ)保持不变,直到暂停键再次按下(POS=‘0’),输出才继续计数,从而实现了暂停的功能。
vhdl计数器实验报告
vhdl计数器实验报告《VHDL计数器实验报告》摘要:本实验利用VHDL语言设计了一个简单的计数器电路,并通过FPGA实现了该计数器。
实验结果表明,VHDL计数器能够准确地实现计数功能,具有较高的稳定性和可靠性。
引言:计数器是数字电路中常见的一种基本电路,用于实现对输入信号的计数和统计。
在本次实验中,我们利用VHDL语言设计了一个简单的计数器电路,并通过FPGA实现了该计数器。
本实验旨在通过实际操作和观察,加深对VHDL语言和计数器电路的理解,提高实验者的实际动手能力和问题解决能力。
实验内容:1. VHDL语言设计计数器电路2. 在FPGA上实现计数器电路3. 调试和测试计数器电路实验步骤:1. 设计计数器电路的VHDL代码,包括计数器的输入输出端口、计数器的计数规则和状态转换规则等。
2. 将VHDL代码综合成逻辑门电路,并下载到FPGA开发板上。
3. 运行FPGA开发板,观察计数器电路的工作情况,调试和测试计数器电路。
实验结果:经过实验,我们成功设计了一个简单的4位二进制计数器,能够准确地实现计数功能。
在FPGA开发板上实现该计数器电路后,我们观察到计数器能够按照预期的规则进行计数,并且在每个计数值上能够稳定地输出正确的结果。
在不同的输入条件下,计数器电路都能够正常工作,具有较高的稳定性和可靠性。
结论:通过本次实验,我们深入了解了VHDL语言的基本语法和计数器电路的设计原理,掌握了VHDL语言设计数字电路的方法和技巧。
同时,我们通过实际操作和观察,加深了对计数器电路的理解,提高了实际动手能力和问题解决能力。
本次实验取得了良好的实验效果,为今后的数字电路实验和项目设计奠定了良好的基础。
vhdl计时器课程设计
vhdl计时器课程设计一、课程目标知识目标:1. 学生能理解VHDL的基本概念,掌握计时器的原理和设计方法;2. 学生能运用VHDL语言编写简单的计时器程序,并了解其功能模块;3. 学生了解数字电路的设计流程,掌握VHDL在数字系统设计中的应用。
技能目标:1. 学生能运用所学知识,独立完成一个简单的VHDL计时器设计;2. 学生能够通过分析问题,合理划分计时器的功能模块,并进行编程实现;3. 学生能够运用仿真工具对设计的计时器进行功能验证和性能分析。
情感态度价值观目标:1. 学生通过课程学习,培养对数字电路设计的兴趣,增强学习动力;2. 学生在团队协作中,培养沟通与协作能力,提高解决问题的信心;3. 学生认识到科技发展对社会的重要性,增强创新精神和责任意识。
课程性质:本课程为数字电路设计方向的实践课程,结合理论知识,培养学生的实际操作能力。
学生特点:学生具备一定的电子技术基础和VHDL语言知识,对数字电路设计有一定了解,但实际操作经验不足。
教学要求:通过本课程的学习,使学生能够将理论知识与实际操作相结合,提高其解决实际问题的能力。
教学过程中,注重启发式教学,引导学生主动思考,培养学生独立分析和解决问题的能力。
同时,关注学生的情感态度价值观的培养,提高其综合素质。
二、教学内容1. 计时器原理及VHDL基础回顾- 数字电路基础知识- 计时器工作原理- VHDL基本语法与结构2. 计时器设计方法及步骤- 计时器设计需求分析- 功能模块划分- VHDL编程规范3. VHDL计时器设计实践- 时钟信号生成模块设计- 计数器模块设计- 显示模块设计4. 计时器功能验证与性能分析- 仿真工具使用方法- 功能验证方法与步骤- 性能分析指标5. 教学案例分析- 分析实际计时器设计案例- 课堂讨论与问题解答教学内容安排与进度:第一周:回顾数字电路基础知识,学习计时器工作原理,掌握VHDL基本语法与结构;第二周:学习计时器设计方法及步骤,进行功能模块划分;第三周:编写VHDL代码,完成计时器设计;第四周:进行计时器功能验证与性能分析,讨论教学案例。
基于VHDL的简易公用电话计时计费系统设计
言 V L为 主 要 表 达 方 式 ,以 Q a u l开 发 软 件 和 G 8 D 开 发 HD u r sI t W4 E A 系 统为 设 计 工 具 进 行 公 用 电 话 计 时 计 费 系 统 的 设 计 。
ia = n 0 1tej h =1; l x < e di f l 0ada =) nf < e ej h =0;n ; ( h x s f f es a = n 0 1 hn / 一 分 钟 之 外 时 , 秒 和 3 l i fl3a da = ) e / ef t 当 叭 1秒
计 费
y
es b = + ;/ 余 每 次 金 额 加 1角 l e < b1 / 其
目 n
ib 8te / f >) n / ( h 保证 十元 、 、 元 角三位都满足十进制计数关系 b =’ 0 ”c = + ;f > ) e c = 00 ” d = + ; < ’0 0 ; < c 1 ic 8t n < ”0 0; < d 1 0 ( h id 8 h n < ”0 0 : f > ) e d = 0 0 ” ( t
j h =l; l x< ' f < es j h =0; x ef
e d i; ndi; n fe f
. 1 能 够 根 据 通 话 时 间 , 算 费 用 。计 费 模 式 有 两 种 市 话 和 长 途 。市 34 计 费 模 块 . 2 计 计 费 模 块 需 要 完 成 两 种 计 费 模 式 的 计 费 。 计 时 模 块 中 产 生 了 计 在 话 一 分 钟 内收 费 02元 , 过 一 分 钟 的 , 3 . 超 每 0秒 收 01元 ; 途 一分 钟 . 长 费 时 钟 信 号 。 费 时钟 信 号 每次 上 升 沿 计 费 。 于 计 费 方 式 的 不 同 , 计 由 在 内收 费 0 . , 过一分钟的 , 3 4元 超 每 0秒 收 02元 。 . 程 序 中 需 要 用 两 个 P oes进 程 分 别 完 成 市 话 和 长 途 计 费 。市 话 在 一 rcs 1 具 有 手 动 复 位 功 能 和 通 话 结束 后 的声 响 提 醒 功 能 。 . 3 分 钟 之 内计 02元 . 过一 分 钟 的 每 半 分 钟 计 01元 , 足 半 分 钟 以 半 . 超 . 不
EDA课程设计——基于VHDL语言的数字时钟设计(可编辑)
EDA课程设计——基于VHDL 语言的数字时钟设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)一、设计要求 0二、设计原理及框图 01、设计原理 02、结构框图 0三、设计过程 (1)1、模块化设计 (1)2、顶层文件生成 (2)四、仿真调试过程 (3)1、各模块时序仿真图 (3)2、仿真过程中遇到的问题 (4)五、设计体会及收获 (4)一、设计要求1、稳定的显示时、分、秒。
2、当电路发生走时误差时,要求电路有校时功能。
3、电路有整点报时功能。
报时声响为四低一高,最后一响高音正好为整点。
二、设计原理及框图1、设计原理系统框图由六个模块组成,分别为:秒、分、时计数模块,整点报时模块,LED动态显示扫描模块,调时控制模块组成。
其工作原理是:基准脉冲输入信号同时加到秒、分、时、分隔符的脉冲输入端,采用并行计数的方式,秒的进位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到时的使能端上,完成秒、分、时和分隔符的循环计数。
整点报时是根据分的A、B输出同时为0时,整点报时模块输出高电平控制报时。
LED显示扫描模块根据输入的扫描信号CKDSP轮流选通秒、分、时、分隔符的8位八段数码管,LED显示译码器完成计数器输出的BCD的译码。
2、结构框图三、设计过程1、模块化设计(1)秒计时模块秒计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Setmin:分钟设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(2)分计时模块分计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk、clk1:计时时钟信号Reset:异步清零信号Sethour:小时设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(3)时计时模块时计时模块由24位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Daout[6:0]:BCD码输出(4)显示模块系统时间输出由六个七段数码管显示。
VHDL电子时钟的设计
目录第一章数字电子钟功能简介 (3)第二章数字电子钟原理介绍 (3)2.1数字电子钟基本原理 (3)2.2数字电子钟电路组成 (3)第三章利用QuartusII设计数字电子钟 (7)3.1按键去抖动模块 (7)3.2分频电路模块 (9)3.3选择器模块 (13)3.4计数模块 (14)3.5分位电路模块 (18)3.6数码管动态显示扫描模块 (21)3.7数码管动态显示模块 (22)第四章仿真与实现 (25)第一章数字电子钟功能简介计时功能:这是本计时器设计的基本功能,可进行时、分、秒计时,并显示在6个七段数码管上。
调时功能:当需要校时,可通过实验箱上的按键控制,按下对应的按键,可调整对应的时、分状态。
第二章数字电子钟原理简介2.1数字电子钟基本原理数字钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,计数器清零,重新开始计时。
秒计数器的计数时钟CLK为1Hz的标准信号,可以由27MHz信号通过分频得到。
当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号。
时、分、秒的计时结果通过6个数码管来动态显示。
数字钟除了能够正常计时外,还应能够对时间进行调整。
可通过模式选择信号控制数字钟的工作状态,即控制数字钟,使其分别工作于正常计时,调整分、时和设定分、时状态。
当数字钟处于计时状态时,3个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位, 分的进位;当数字钟处于调整时间状态时,被调的分或时会一秒一秒地增加。
2.2数字电子钟电路组成本实验数字电子钟的设计电路主要由七个模块组成,分别是:按键去抖动模块、分频电路模块、选择器模块、计数模块、分位电路模块、数码管动态显示扫描模块、数码管动态显示模块。
按键去抖动模块如图2-1所示图2-1分频电路模块如图2-2所示图2-2选择器模块如图2-3所示图2-3计数模块如图2-4所示图2-4分位电路模块如图2-5所示图2-5数码管动态显示扫描模块如图2-6所示图2-6数码管动态显示模块如图2-7所示图2-7电路图整体设计如图2-8所示图2-8第三章利用QuartusII设计数字电子钟3.1按键去抖动模块按键去抖动模块的元件设计如图3-1所示图3-1按键去抖动的VHDL语言设计如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity debounce isport(clk:in std_logic;qcin:in std_logic;qcout:out std_logic);end debounce;architecture behave of bounce is type state is (S0,S1,S2);signal current: state;Beginprocess(clk,qin)beginif(clk'event and clk = '1') then case current iswhen S0 => qcout <= '1';if(qcin = '0') thencurrent <= S1;elsecurrent <= S0;end if;when S1 => qcout <= '1';if(qcin = '0') thencurrent <= S2;elsecurrent <= S0;end if;when S2 => qcout <= '0';if(qcin = '0') thencurrent <= S2;elsecurrent <= S0;end if;when others => qcout <= '1';current <= S0;end case;end if;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////3.2分频电路模块分频电路模块元件设计如图3-2所示:图3-2分频模块VHDL语言设计如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity clk1kHz isgeneric(N: integer:=50000);port(clk: in std_logic;clk1kHz: out std_logic);end clk1kHz;architecture behave of clk1kHz issignal cnt: integer range 0 to N/2-1;signal temp: std_logic;Beginprocess(clk)beginif(clk'event and clk='1') thenif(cnt=N/2-1) thencnt <= 0;temp <= NOT temp;elsecnt <= cnt+1;end if;end if;end process;clk1KHz <= temp;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity clk1Hz isgeneric(N: integer:=50000000);port(clk: in std_logic;clk1Hz: out std_logic);end clk1Hz;architecture behave of clk1Hz issignal cnt: integer range 0 to N/2-1;signal temp: std_logic;Beginprocess(clk)beginif(clk'event and clk='1') thenif(cnt=N/2-1) thencnt <= 0;temp <= NOT temp;elsecnt <= cnt+1;end if;end if;end process;clk1Hz <= temp;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity clk10Hz isgeneric(N: integer:=20000000);port(clk: in std_logic;clk10Hz: out std_logic);end clk10Hz;architecture behave of clk10Hz issignal cnt: integer range 0 to N/2-1;signal temp: std_logic;Beginprocess(clk)beginif(clk'event and clk='1') thenif(cnt=N/2-1) thencnt <= 0;temp <= NOT temp;elsecnt <= cnt+1;end if;end if;end process;clk10Hz <= temp;end behave;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////3.3选择器模块选择器模块元件设计如图3-3所示:图3-3选择器模块VHDL与颜色合计如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xzq isport(sel: in std_logic;date0,date1:in std_logic;dcout:out std_logic);end xzq;architecture behave of xzqisbeginwith sel selectdcout <=date0 when '0',date1 when others;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////3.4计数模块计数模块元件设计如图3-4所示:图3-4计数器模块VHDL语言设计如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count60s isport(clk:in std_logic;clk10:in std_logic;set: in std_logic:='1';change: out std_logic;qcout: buffer integer range 0 to 59:=0);end count60s;architecture behave of count60s issignal temp:integer range 0 to 59;signal temp1:std_logic;beginprocess(clk,set,clk10)beginif(set='0') thentemp <= 0;elsif(clk'event and clk='1') thenif(qcout=59) thentemp <= 0;temp1 <= '1';elsetemp <= temp+1;temp1 <= '0';end if;end if;qcout <= temp;change <= temp1;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count60m isport(clk:in std_logic;change: out std_logic;qcout: buffer integer range 0 to 59:=0;set:in std_logic:='1');end count60m;architecture behave of count60m issignal temp:integer range 0 to 59;signal temp1:std_logic;beginprocess(clk)beginif(clk'event and clk='1') thenif(qcout=59) thentemp <= 0;temp1 <= '1';elsetemp <= temp+1;temp1 <= '0';end if;end if;qcout <= temp;if(set = '1') thenchange <= car;end if;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count24h isport(clk:in std_logic;qcout: buffer integer range 0 to 23:=0);end count24h;architecture behave of count24h issignal temp:integer range 0 to 23;beginprocess(clk)beginif(clk'event and clk='1')thenif(qcout=23) thentemp <= 0;elsetemp <= temp+1;end if;end if;qcout <= temp;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////3.5分位电路模块分位电路模块元件设计如图3-5所示图3-5分位电路模块VHDL语言设计如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity decircuit isport(cnt: in integer range 0 to 59;ge: out integer range 0 to 9;shi: out integer range 0 to 9);end decircuit;architecture behave of decircuit isbegin--fenwei circuitprocess(cnt)variable shi_temp:integer;beginge <= cnt mod 10;shi <= cnt / 10;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity decircuit isport(cnt: in integer range 0 to 59;ge: out integer range 0 to 9;shi: out integer range 0 to 9);end decircuit;architecture behave of decircuit isbeginprocess(cnt)variable shi_temp:integer;beginge <= cnt mod 10;shi <= cnt / 10;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity decircuit2 isport(cnt: in integer range 0 to 23;ge: out integer range 0 to 9;shi: out integer range 0 to 9);end decircuit2;architecture behave of decircuit2 isbegin--fenwei circuitprocess(cnt)variable shi_temp:integer;beginge <= cnt mod 10;shi <= cnt / 10;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////3.6数码管动态显示扫描模块图3-6元件设计如图3-6所示:图3-6数码管动态显示扫描模块VHDL语言设计如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dyn_display_count isport(clk1kHz: in std_logic;qout: out integer range 0 to 7);end dyn_display_count;architecture behave of dyn_display_count issignal temp:integer range 0 to 7 :=0;Beginprocess(clk1kHz)beginif(clk1kHz'event and clk1kHz = '1') thenif(temp=7) thentemp <= 0;elsetemp <= temp + 1;end if;end if;qout <= temp;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////3.7数码管动态显示模块数码管动态显示模块元件设计如图3-7所示:图3-7数码管动态显示模块VHDL语言设计如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity display isport(qcnt: in integer range 0 to 7;secshi,secge,minshi,minge,hshi,hge:in integer range 0 to 9;seg: out std_logic_vector(6 downto 0);scan: out std_logic_vector(7 downto 0));end display;architecture behave of display issignal data: integer range 0 to 10;beginprocess(qcnt,secshi,secge,minshi,minge,hshi,hge)begincase qcnt iswhen 0 => scan <= "11111110";data <= secge;when 1 => scan <= "11111101";data <= secshi;when 2 => scan <= "11111011";data <= 10;when 3 => scan <= "11110111";data <= minge;when 4 => scan <= "11101111";data <= minshi;when 5 => scan <= "11011111";data <= 10;when 6 => scan <= "10111111";data <= hge;when 7 => scan <= "01111111";data <= hshi;when others => scan <= "11111111";data <=0;end case;end process;process(data)begincase data iswhen 0 => seg <= "0111111";when 1 => seg <= "0000110";when 2 => seg <= "1011011";when 3 => seg <= "1001111";when 4 => seg <= "1100110";when 5 => seg <= "1101101";when 6 => seg <= "1111101";when 7 => seg <= "0000111";when 8 => seg <= "1111111";when 9 => seg <= "1100111";when 10 => seg <= "1000000";when others => seg <= "0111111";end case;end process;end behave;///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ////第四章仿真与实现硬件仿真结果如图4-1所示图4-1。
VHDL计时秒表实验报告
可编程逻辑器件应用项目报告书项目名称:计时秒表指导老师:姓名:学号:(以后写报告要包含以下一些内容:)一、设计要求--------------------------------------------------------------------------------二、设计目的--------------------------------------------------------------------------------三、设计方案--------------------------------------------------------------------------------四、设计程序---------------------------------------------------------------------------------五、管脚分配---------------------------------------------------------------------------------六、硬件下载实现现象描述------------------------------------------七、体会、对设计工作的总结与展-------------------------------------------一、设计要求:计时秒表是我们经常见的,在体育运动上也应用非常广的一种工具。
譬如我们在进行50米、100米短跑运动中,需要一个计时非常经准的秒表来测速。
在这里,我们需设计一个计时秒表,具有以下功能:①有启/停开关,用于开始/结束计时操作;②用六个七段数码管显示计时数;③秒表计时长度为59.59.59,超过计时长度,有溢出则报警;④设置复位开关,在任何情况下,只要按下复位开关,秒表都要无条件地进行复位清0操作。
三、设计方案:(1)时钟源使用频率为1Hz的连续脉冲。
「基于VHDL语言的出租车计费器设计」
「基于VHDL语言的出租车计费器设计」出租车计费器是一种广泛应用于出租车行业的设备,用于计算车辆的费用并实时显示给乘客。
本文将基于VHDL语言设计一个简单的出租车计费器。
设计一个出租车计费器需要考虑以下几个方面:车辆里程计算、时间计费、费用显示和控制。
首先,我们将从车辆里程计算开始设计。
假设出租车的速度传感器每隔一段时间测量一次速度,我们可以通过速度传感器数据和时间信息计算车辆的里程。
这里我们可以设计一个有限状态机来记录车辆的行驶状态和位置信息,并计算里程。
可以使用计算机存储器来存储车辆位置信息,并使用计数器来记录总里程。
接下来,我们需要设计时间计费模块。
假设每分钟的计费费率为X元,我们可以使用一个计数器来记录车辆行驶的时间,并将计数器的值与X元相乘得到计费金额。
我们还可以通过设置计数器的初始值和最大值来控制计费的时间间隔和最长计费时间。
费用显示模块是出租车计费器的核心功能之一、我们可以使用七段数码管或LCD显示屏来实时显示费用信息。
设计费用显示模块需要确定费用显示的格式,例如小数点位置、位数等。
我们还可以设计一个使费用显示模块能够显示不同运行状态下的附加信息的控制模块。
最后,我们需要设计一个控制模块来实现出租车计费器的整体控制。
这个模块可以通过读取车辆速度和时间计费器的值,并将这些值传递给里程计算器和时间计费器。
此外,控制模块还可以实现一些功能,如启动和停止计费器、调整计费费率、重置里程和时间等。
综上所述,基于VHDL语言的出租车计费器设计涉及到车辆里程计算、时间计费、费用显示和控制等多个方面。
我们可以使用VHDL语言来实现这些功能模块,并通过模块化设计方法将它们组合在一起,实现一个功能完善的出租车计费器。
这个设计不仅可以提高出租车行业的计费效率,还可以为乘客提供准确的费用信息,提升用户体验。
基于VHDL秒表设计
摘要:在科技高度发展的今天,集成电路和计算机应用得到了高速发展。
尤其是计算机应用的发展。
它在人们日常生活已逐渐崭露头角。
大多数电子产品多是由计算机电路组成。
而且将来的不久他们的身影将会更频繁的出现在我们身边。
各种家用电器多会实现微电脑技术。
电脑各部分在工作时多是一时间为基准的。
本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表。
秒表在很多领域充当一个重要的角色。
在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。
关键字EDA 秒表设计 VHDL语言引言:1、VHDL语言VHDL(Very High Speed Integrated Circuit Hardw are Description Language,超高集成电路硬件描叙语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics)的一种工业标准硬件描叙语言。
VHDL主要用于描述数字系统的结构、行为、功能和接口,非常适合用于可编程逻辑芯片的应用设计。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。
VHDL的程序特点是将一项工程设计,或称为设计实体(可以是个元件、电路模块或一个系统)分成外部(或称可示部分,即端口)和内部(或称为不可视部分,即结构体)两部分,外部负责对设计实体和端口引脚命名和说明,内部负责对模块功能和算法进行描述。
在对一个设计实体定义了外部界面后,一旦其内部结构、功能开发完成,即可生成共享功能模块,这就意味着,在顶层综合或其他设计中可以直接调用这个实体模块。
VHDL具有较强的行为描述能力,可避开具体的器件结构,从逻辑功能和行为上进行描述和设计。
2、QuartusⅡ6.0简介Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。
秒计时控制器vhdl
1/100秒计时控制器1. 系统说明图1是1/100秒计时控制器的方框图。
图1 1/100秒计时控制器方框图⑴ 功能要求● 计时精度为1/100s ,最长计时时间为1h 。
● 直接驱动共阴极7段数码显示时间。
● 能够支持计时器启动/停止和复位操作。
在任何情况下,按一下复位键,计时器就清零并作好计时准备;然后按一下启动/停止键,计时器就开始计时;再按一下启动/停止键,计时器停止计时。
⑵ 端口定义● RST :系统复位信号,高电平有效。
● CLK :1KHz 的系统时钟。
● RST_KEY :复位按键产生的复位信号,每按一次按键就产生一个正脉冲。
1/100s 计时控制器CLKRST7段LED 显示器分 秒 1/100秒RST_KEYSTART_STOP_KEYV CCV CC 启动/停止 按钮复位 按钮7SEGCOM6●START_STOP_KEY:启动/停止按键产生的启动/停止信号,每按一次按键就产生一个正脉冲。
●SEG:LED显示器的7段(abcdefg)显示驱动信号,高电平有效。
●COM:7段数码管的公共端控制信号。
2. 系统的总体方案、系统划分和算法设计图2是1/100秒计时控制器的总体结构框图,系统主要由时钟产生模块(CLK_GEN)、控制模块(CONTROLLER)、按键同步消抖动模块(KEY_IN)、计时模块(TIMER)和显示模块(DISPLAY)构成。
图2 1/100秒计时控制器的总体结构框图⑴时钟产生模块(CLK_GEN)时钟产生模块的作用是对输入的1kHz时钟信号CLK进行分频,输出一个25Hz 的时钟KEY_CLK和一个100Hz的时钟CNT_CLK。
时钟产生信号的结构图如图3所示。
图3 时钟产生信号的结构图时钟产生模块由两个同步加法计数器模块(COUNTER )构成,1kHz 的时钟信号CLK 先经10分频后得到100Hz 的CNT_CLK ,再经4分频后得到25Hz 的计数脉冲KEY_CLK 。
基于vhdl计时抢答器设计说明书
摘要抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,是竞赛问答中一种常用的必备装置,从原理上讲,它是一种典型的数字电路,电路结构形式多种多样,可以利用简单与非门构成,也可以利用触发器构成,也可以利用单片机来完成。
本设计是基于VHDL语言控制的八路抢答器,通过分析抢答器的工作原理,设计包括抢答程序及在相应的器件平台上完成输入、编译、综合应用等不同功能的单元模块,并具体介绍了每一单元模块的具体设计思路与结构,利用单片机的定时器或计时器定时和计数的原理,将软硬件有机的结合起来,使得系统它能够正确的计时,同时使数码管能够正确的显示时间。
且在设计完成后给出仿真来增强设计的真实感。
关键词:VHDL语言;抢答器;仿真AbstractThe contest as a kind of electronic products, has long been widely applied in all kinds of intelligence and knowledge competition situation, is a kind of common competition q&a necessary device, from the principle of speaking, it is a kind of typical digital circuit, the circuit structure form varied, can use simple sr and form, also can use a flip-flop, also can use single chip microcomputer to complete. The design is based on VHDL language control for 8 vies to answer first, through the analysis of the working principle of vies to answer first, design including vies to answer first program and in the corresponding device platform complete input, compilation, comprehensive application and so on the different function of the unit module, and introduced the each unit of the specific module design and structure, of the microcontroller timer or timer timing and count principle, software and hardware organic combine, the system can be correctly it time, at the same time make digital tube can be correctly show time. And after the completion of the design are given in the design of the realism to strengthen.Keywords: VHDL language; Digital time vies to answer first device; The simulation目录第一章引言 (1)1.1背景 (1)1.2VHDL语言简介 (1)第二章设计的基本要求与要点 (2)2.1八路数字计时抢答器的设计要求 (2)2.2系统设计要点 (2)第三章八路数字计时抢答器设计 (3)3.1工作原理 (3)3.2硬件设计中各模块的设计 (4)3.2.1概述 (4)3.2.2抢答器鉴别模块 (4)3.2.3译码模块 (4)3.2.4定时器模块 (4)3.2.5报警模块 (5)3.3单元电路VHDL设计 (5)3.3.1VHDL实体设计 (5)3.3.2关于VHDL构造体的设计部分 (5)3.3.3译码模块VHDL程序 (7)3.3.4定时模块VHDL程序 (7)3.3.5报警模块VHDL程序 (9)第四章仿真验证 (11)4.1仿真验证 (11)4.2设计电路各模块仿真图 (11)4.2.1抢答鉴别模块仿真及元件图 (11)4.2.2译码模块仿真及元件图 (11)4.2.3计数模块仿真及元件图 (11)4.2.4报警模块仿真及元件图 (11)第五章心得与体会 (14)参考文献 (15)第一章引言1.1 背景抢答器是举办各种娱乐活动、开展智力竞赛时常用的一种设备。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA技术及应用课程设计题目:基于VHDL的数字计时器班级:电气1202班姓名:***学号:***********指导老师:**(课程设计时间:2015年1月5日——2015年1月9日)华中科技大学武昌分校目录1引言 (1)1.1 EDA简介 (1)1.2 VHDL简介 (2)1.3 VHDL的特点 (3)1.4 VHDL的设计结构 (4)1.5 VHDL的设计步骤 (4)2设计主要内容 (5)3内部各功能模块 (6)3.1六十进制计数模块 (6)3.2二十四进制计数模块 (8)3.3分频器模块 (10)3.4LED显示模块 (11)4顶层系统联调 (15)5结语 (21)6参考文献 (22)7附录 (23)1.引言随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。
集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展。
基于这种情况,可编程逻辑器件的出现和发展大大改变了传统的系统设计方法。
可编程逻辑器件和相应的设计技术体现在三个主要方面:一是可编程逻辑器件的芯片技术;二是适用于可逻辑编程器件的硬件编程技术,三是可编程逻辑器件设计的EDA开发工具,它主要用来进行可编程逻辑器件应用的具体实现。
在本实验中采用了集成度较高的FPGA 可编程逻辑器件, 选用了VHDL硬件描述语言和MAX + p lusⅡ开发软件。
VHDL硬件描述语言在电子设计自动化( EDA)中扮演着重要的角色。
由于采用了具有多层次描述系统硬件功能的能力的“自顶向下”( Top - Down)和基于库(L ibrary - Based)的全新设计方法,它使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短了产品的研制周期。
MAX + p lusⅡ是集成了编辑器、仿真工具、检查/分析工具和优化/综合工具的这些所有开发工具的一种集成的开发环境,通过该开发环境能够很方便的检验设计的仿真结果以及建立起与可编程逻辑器件的管脚之间对应的关系。
1.1 EDA简介20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
1.2 VHDL简介硬件描述语言HDL(HardwareDescriptionLanguage)诞生于1962年。
HDL是用形式化的方法描述数字电路和设计数字逻辑系统的语言。
主要用于描述离散电子系统的结构和行为。
与SDL(SoftwareDescriptionLanguage)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言(HDL)的过程。
VHDL翻译成中文就是超高速集成电路硬件描述语言,他诞生于1982年。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
1993年,IEEE对VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,(即IEEE标准的1076-1993版本)主要是应用在数字电路的设计中。
现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
目前,它在中国的应用多数是用FPGA/CPLD/EPLD 的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
1.3 VHDL的特点应用VHDL进行系统设计,有以下几方面的特点。
(一)功能强大VHDL具有功能强大的语言结构。
它可以用明确的代码描述复杂的控制逻辑设计。
并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。
VHDL是一种设计、仿真和综合的标准硬件描述语言。
(二)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。
它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。
此外,通过更换库再重新综合很容易移植为ASIC设计。
(三)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。
设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。
程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。
(四)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。
(五)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。
使其在任何大系统的设计中,随时可对设计进行仿真模拟。
所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。
1.4 VHDL的设计结构VHDL描述数字电路系统设计的行为、功能、输入和输出。
它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。
VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。
当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。
所以,内部和外部的概念对系统设计的VHDL是十分重要的。
外部的实体名或连接由实体声明Entity来描述。
而内部的实体算法或实现则由结构体Architecture来描述。
结构体可以包含相连的多个进程process或者组建component等其他并行结构。
需要说明的是,它们在硬件中都是并行运行的。
1.5 VHDL的设计步骤采用VHDL的系统设计,一般有以下6个步骤。
1)要求的功能模块划分;2)VHDL的设计描述(设计输入);3)代码仿真模拟(前仿真);4)计综合、优化和布局布线;5)布局布线后的仿真模拟(后仿真);6)设计的实现(下载到目标器件)。
2.设计主要内容设计一个电子计时器,给定时钟信号为512HZ,要求系统达到以下功能:(1)用6个数码管分别显示时、分、秒,计时范围为00:00:00~23:59:59。
(2)计时精度是1s。
(3)具有启/ 停开关, 复位开关。
图1总体方框图3.内部各功能模块本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能, 输入信号是512Hz,通过分频后为1Hz,时钟信号是1Hz作为计时器的秒输入,秒为60进制计数器,分也为60进制计数器,小时采用二十四进制计数器, 各级进位作为高位的使能控制。
3.1 六十进制计数器模块设计一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0]、rco,分别为低4位输出、高4位输出和进位位。
图2 六十进制计数器示图3秒计数器的仿真波形图波形分析利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enmin=1;reset作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。
因为这种60进制的VHDL语言是很好写的,它并不复杂,再说我们必须要学会这些基本的硬件语言的描写。
图4分钟计数器的仿真波形图3)波形分析小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。
该模块部分VHDL 源程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count60 ISPORT( en,Reset,clk: in STD_LOGIC;qa: out STD_LOGIC_VECTOR(3 DOWNTO 0);qb: out STD_LOGIC_VECTOR(3 DOWNTO 0);rco: OUT STD_LOGIC);END count60;ARCHITECTURE a OF count60 ISBEGINprocess(clk)variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0);variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0);beginIf Reset ='0'then tma:="0000"; tmb:="0000";elsif clk'event and clk='1' thenif en='1' thenrco<=tmb(2)and tmb(0)and tma(3)and tma(0);if tma="1001" then tma:="0000";if tmb="0101" then tmb:="0000";else tmb:=tmb+1;end if;else tma:=tma+1;end if;end if;end if;qa<=tma;qb<=tmb;end process;END a;3.2 二十四进制计数器模块设计一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0],分别为低4位输出、高4位输出。