EDA数字时钟的设计资料

上传人:简****9 文档编号:25481952 上传时间:2021-07-25 格式:DOCX 页数:20 大小:228.18KB
返回 下载 相关 举报
EDA数字时钟的设计资料_第1页
第1页 / 共20页
EDA数字时钟的设计资料_第2页
第2页 / 共20页
EDA数字时钟的设计资料_第3页
第3页 / 共20页
点击查看更多>>
资源描述
摘 要 系统使用EDA技术设计了数字钟,采用硬件描述语言 VHDL块化方 式进行设计,然后进行编程,时序仿真等。利用VHD印言完成了数字钟的设计。 该数字钟能实现时、分、秒计数的显示功能,且以 24小时循环计时。整个系统 结构简单,使用方便,功能齐全,精度高,具有一定的开发价值。关键字 数字钟;EDA VHDL9目录1引言31.1 课题的背景、目的31.2 设计的内容32 EDA、VHDLM介42.1 EDA 技术42.2 硬件描述语言 一一VHDL 4V HDL的简介4V HDL语言的特点5V HDL的设计流程 53数字钟设计63.1 数字钟的工作原理 63.2 数字钟模块功能说明 74系统仿真104.1 秒计数器电路仿真图 104.2 分计数器电路仿真图 104.3 小时计数器电路仿真图 114.4 译码驱动电路仿真图 11结束语12致 谢12参考文献12附 件13随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说 是日新月异,数字钟作为计算机的一个组成也随之逐渐进入人们的生活,从先前的采用半导体技术实现的数字钟到现在广泛应用的采用高集成度芯片实现的数 字钟。数字钟正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介 绍的是一个基于超高速硬件描述语言 VHDL寸数字钟中显示电路进行编程实现。近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈 入一个崭新的阶段,具体表现在:(1)电子器件及其技术的发展将更多地趋向于 为EDA艮务;(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归 结为更加标准、规范的EDAC具和硬件描述语言VHD的运用;(4)数字系统的芯 片化实现手段已成主流。因此利用计算机和大规模复杂可编程逻辑器件进行现代 电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。1.1 课题的背景、目的本次设计的目的就是在掌握 EDA验开发系统的初步使用基础上, 了解EDA 技术,加深对硬件电路结构的理解。通过学习的 VHD印言结合电子电路的设计 知识理论联系实际,掌握所学的课程知识,学习 VHDL1本单元电路的综合设计 应用。通过对实用数字钟的设计,巩固和综合运用 EDA技术的基本理论和方法, 理论联系实际,提高IC设计能力,提高分析、解决 EDA技术实际问题的独立工 作能力。通过课程设计深入理解 EDAK术和VHD印言自顶向下设计的原理,达 到课程设计的目标。1.2 设计的内容利用VHDL设计数字钟显示电路的各个模块,并使用EDA工具对各模块进 行仿真验证。数字钟显示电路的设计分为下面几个模块: 秒计数模块、分计数模 块、小时计数模块.o完成以后把各个模块整合后,显示相应的输出状态。2 EDA、VHDL简介2.1 EDA技术EDA 是电子设计自动化(Electronic Design Automation)缩写,EDA 是以计算机为工具,根据硬件描述语言 HDL ( Hardware Description language 完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、 仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在 EDA平台上完成的针对某个系统项目的 HDL、原理图或状态图形描述,针对给 定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的 描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是 将软件描述与给定的硬件结构用一定的方式联系起来。2.2 硬件描述语言一一VHDLVHDL的简介VHDL 的英文全名是 Very-High-Speed Integrated Circuit HardwareDescription Language诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准 硬件描述语言。自IEEE公布了 VHDL的标准版本,IEEE-1076 (简称87版)之 后,各EDA公司相继推出了自己的 VHDL设计环境,或宣布自己的设计工具可 以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代 了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高 的抽象层次和系统描述能力上扩展 VHDL的内容,公布了新版本的 VHDL ,即 IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE 的工业标准硬件描述语言,又得到众多 EDA公司的支持,在电子工程领域,已 成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog 语言将承担起大部分的数字系统设计任务oVHDL语言的特点1 .用VHD战码而不是用原理图进行设计,意味着整个电路板的模型及性能可 用计算机模拟进行验证。2 .VHDE件的设计与工艺u无关,与工艺独立,方便工艺转换。3 .VHD3持各种设计方法,自顶向下、自底向上或者混合的都可以。4 .可以进行从系统级到逻辑级的描述,即混合描述。5 .VHDLM别于其他的HDL已形成标准,其代码在不同的系统中可交换建模。VHDL的设计流程1 .设计规范的定义明确这个系统有哪些设计要求,和你要想到达的目标。2 .采用VHD进行设计描述这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择及是 否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计,这个 和其他软件语言差不多。最重要还是模块划分。3 .VHDL1序仿真4 .综合、优化和布局布线综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率及减少资源的利用; 布局布线,指的是将逻辑关系转化成电路连接的方式。5 .仿真这个与VHD程序仿真不同,这个不仅是对逻辑方面的验证,还要进行时序功 能验证。6 .器件编程3数字钟设计3.1 数字钟的工作原理数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和 校分功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路和振荡器组成。主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路组成。秒信号产生器是整个系统的时基信号, 它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒 信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。 “分计数器”也采用 60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时 计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。采用 6个数码管显示。工作原理图如图 3.1所示。TT T T T T译码驱动 译码财 译码驱动 译码驱动 译码驱动 译码驱动图3.1数字钟的工作原理图3.2 数字钟模块功能说明数字时钟,A A A A A分 频 器门自顶向下分解图:dockdks(6B)resets16 ,0setmtnm(6 .0)导 ethwrm1(60M6.0h1(6.jO顶层模块图(1) Clk为1hz信号输入(2) Reset为清零输入(3) Setmin为手动调分(4) Sethour为手动调时(5) h6.0 , ,h16.0为小时数据输出(6) m6.0, m16.0为分钟数据输出(7) s6.0, s16.0为秒数据输出Clk secondReset cmin /Setmin dout6.0卜秒模块图(1) Clk为1hz信号输入(2) Reset为清零输入(3) Setmin为手动调分(4) cmin为分进位信号(5) dout6.0为数据输出Clk minute I-1Clkl choui|iResetdout6.O卜Sethour分模块图(1) Clkl为1hz信号输入(2) Reset为清零输入(3) Sethour为手动调时(4) Clk为进位脉冲(5) dout6.0为数据输出(6) chour为时进位脉冲Clk hour+JdouT(5.0, Resets时模块图(1) Clk为进位脉冲dout5.0为数据输出ledVs+JDout6,0译码器模块(1) BC则输入(2)七段共阴码输出3.3 晶体振荡器晶体振荡电路是构成数字式时钟的核心, 它保证了时钟走时准确及稳定。品 体振荡器它的作用是产生时间标准信号。数字钟的精度主要取决于时间标准信号 的频率及其稳定度。因此,一般采用石英晶体振荡器经过分频得到这一信号。晶体振荡器电路给数字钟提供一个频率稳定准确的 4MHz的方波信号,可保证数字 钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶 体振荡器电路。如图3.2所示晶体振荡电路框图。图3.2晶体振荡电路3.4 分频器分频器电路将 4M的高频方波信号经 4M次分频后得到1Hz的方波信号供秒计数器进行计 数。分频器实际上也就是计数器。本次设计是运用VHDL语言设计的分频器进行分频,分频电路可提供1HZ的方波为为后级电路输送一秒脉冲信号。Fenpin -elk dout+J114系统仿真4.1 秒计数器电路仿真图秒表计数器电路仿真图如图 4.1:将标准秒信号送入“秒计数器”,“秒计数 器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为 “分计数器”的时钟脉冲,仿真结果正确。4.2 分计数器电路仿真图分计数器电路仿真图如图4.3: “分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器。Reset为清零控制端,sethour为时进位脉冲信号,仿真结果正确。Ranter3.63 ns-15 Jimtf-otf-dreset瞰dkl*Eethour3 Mm*2chcurMasta Tim Bar)PSIB.9 的EO.E gJ6D.0 ns24D,0 作330.0 n40D.0 ns48 0 os5E0, D he64EL0 ns T2D.0 ns!厂JLrL-L-LrLrLr_r_rLrL-LLTLrLr_L_L-LLr_r_厂:Kdtmnr丁丁丁丁一 iiiiiiiiiiiiiiaiiiaiiaiiiiiiiiiiiiiiiii iiiiiiiiiiiiliiiiiiiiiiaiiiaiiiii llllllllllllllllLIlillllllllllllllll JIllllllllllllllllllllllllllHII I I I nI I J ;l i H;,;4.3 小时计数器电路仿真图时计数器电路仿真图如图4.2: “时计数器”采用24进制计时器,可实现对一 天24小时的累计。Reset为清零控制端,仿真结果正确。仃信 SLarl: 咽M礴he E比打5年 “,对他I:1 *用mIrteivatBO.Dm 160.0 ns MO ns 320.0 m O,C m 400 0 ns 9SM m 64D.Dm Tffl.Oni EOO.O uTi1,5 urnllllllllllllllllllllllllllllllllllllll| | | | | | | | | | | I j 4 I I I | III II | | | | I H | | | | | n i i i I i i i i I图4.2小时计数器电路仿真图4.4译码驱动电路仿真图译码驱动电路仿真图如图4.4:输入BCD码,输出为共阴极数码管显示码,仿 真结果正确。16.075 ns 1 * Pointer:9.4 ns Irterval:-8.6S rs StatM 己就 MTimeBdP5况1即4电 皿piiE 3aLp电4gpM 48c.p电56spm 6如非72“英a+j L .国Ai8.075 uj ; ilT 0r-i5BX 4FOZZK6DS-znocozociozXZOZTDCOGO(Z结束语通过两星期的努力,最后完成了我的设计任务一一数字钟的设计。通过 本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。 本次设计 课不仅仅培养了我们实际操作能力, 也培养了我们灵活运用课本知识,理论联系 实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会, 同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在, 从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。课程设计中要求要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就 会导致结果的不正确,而对错误的检查要求我要有足够的耐心, 通过这次设计和 设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一 定的帮助。在应用VHDLB过程中让我真正领会到了其并行运行与其他软件( C 语言)顺序执行的差别及其在电路设计上的优越性。用VHD底件描述语言的形式来进行数字系统的设计方便灵活,利用EDAC件进行编译优化仿真极大地减少 了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来 的数字系统设计中发挥越来越重要的作用。致谢感谢谭敏老师在本学期EDA技术实用教程课程上的指导和帮助!参考文献1黄继业EDA技术实用教程北京:科学出版社20062宋万杰CPLD技术及其应用西安:西安电子科技大学出版社 2000年3王金明 数字系统设计与Verilog HDL北京:北京电子工业出版社 2002年1 .秒计数器模块的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT( clk,reset,setmin:STD_LOGIC;cmin:OUT STD_LOGIC;daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enmin_1,enmin_2:STD_LOGIC; -enmin_1 为 59 秒时的进位信号BEGIN-enmin_2由clk调制后的手动调分脉冲信号用daout=count; enmin_2=(setmin and clk); -setmin为手动调分控制信号,高电平有效 cmin=(enmin_1 or enmin_2); -enmin 为向分进位信号PROCESS(clk,reset,setmin)BEGINIF(reset=1)THEN count=0000000”;-若 reset为 0,则异步清零ELSIF(clk event and clk=1)then -否则,若 clk 上升沿到IF(count(3 downto 0)=1001)then-若个位计时恰好到1001即 9IF(count16#60#)then 又若 count 小于 16#60#,即 60HIF(count=1011001)then-又若已到 59Denmin_1=1;count=0000000”;-贝U置进位为 1 及 count复 0 ELSE -未至U 59Dcount=count+7;-贝U力口 7,而+7=+1+6,即作力口 6 校正 END IF;ELSE-若count不小于16#60# (即count等于或大于16#60#)count=0000000”;-count 复 0END IF;-END IF (count16#60#)ELSIF(count16#60#)then -若个位计数未到1001则转此句再判 count=count+1;-若 count16#60#则 count 加 1enmin_1=0after 100 ns;-没有发生进位ELSE-否则,若count不小于16#60#count=0000000”;-则 count 复 0END IF;-END IF (count (3 DOWNTO 0) =1001)END IF;-END IF (reset=0)END PROCESS;END fun;2 .分计数器模块的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute ISPORT(clk,clk1, reset,sethour:IN STD_LOGIC;chour:OUT STD_LOGIC;daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY minute ;ARCHITECTURE fun OF minute ISSIGNAL count :STD_LOGIC_VECTOR (6 DOWNTO 0);SIGNAL enhour_1, enhour_2: STD_LOGIC; -enmin_1 为 59 分时的进位信号BEGIN-enmin_2由clk调制后的手动调时脉冲信万甲 daout=count; enhour_2=(sethour and clk1); -sethou凶手动调时控制信号,高电平有效chour= (enhour_1 or enhour_2);PROCESS(clk,reset,sethour)BEGINIF(reset=1) THEN -若 reset为 0,则异步清零count=0000000”;ELSIF(clkevent and clk=1)THEN -否则,若 clk 上升沿到IF(count (3 DOWNTO 0) =1001)THEN-若个位计时恰好到1001即 9IF(count 16#60#) THEN 又若 count小于 16#60#,即 60IF(count=1011001) THEN-又若已至U 59Denhour_1=1;-则置进位为 1count=0000000”; -count 复 0ELSEcount=count+7;-若 count未至U 59D,贝力口 7,即作力口 6 校正”END IF;-使前面的16#60#的个位*专变为8421BCD的容量ELSEcount=0000000”;-count复0 (有此句,则对无效状态电路可自启 动)END IF; -END IF (count16#60#)ELSIF (count 16#60#) THENcount=count+1;-若 count16#60#KU count 力口 1enhour_1=0 after 100 ns;-没有发生进位ELSEcount=0000000”;-否则,若 count 不小于 16#60# count复 0END IF; -END IF (count (3 DOWNTO 0) =1001)END IF; -END IF (reset=0)END process;END fun;3 .小时计数器模块的VHDL源程序:LIBRARY IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour ISPORT(clk,reset:IN STD_LOGIC;daout:out STD_LOGIC_VECTOR(5 DOWNTO 0);END ENTITY hour;ARCHITECTURE fun OF hour ISSIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINdaout=count;PROCESS(clk,reset)BEGINIF(reset=1)THEN count=000000”;-若 reset=0,则异步清零ELSIF(clkevent and clk=1)THEN-否则,若 clk 上升沿到IF(count(3 DOWNTO 0)=1001)THEN -若个位计时恰好到1001即 9-23进制若至ij 23D贝U-复0-若未到23D,贝U count进1-否则清零IF(count16#23#)THEN count=count+7;elsecount=000000”;END IF;ELSIF (count16#23#)THEN count=count+1;ELSE-END IF (count (3 DOWNTO 0) =1001)-END IF (reset=0)count LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7Snull;end case;end PROCESS ;END fun ;195顶层模块原理图/: wini:/:.眼.彳.: ,-X ,LE国年|10怖而_I、,/孙 i-r-r-r-r-r - r - r-r-r-r-r-r-r-r- B B B U II _ ir *fl fl r.-r.-f-f-f-i-r - r - r =4 二二二二Wi;:x i 券.山 LEEPSp.J ,疥炉_I Fl J 一.4:3 : : : : ( i-r-r-r- nr-r-r-F-r-r-r-r-r-mfl二* ,一 邛J 回?眼|;p而tiff匕3而凋BBBBBFrrrri i ,bi|bi|bib qa iaqa| rn|i|i.4|!H4: mstgi . . . i-r=kiF-r - v h-t-r-r-r-r-r - r - r-r-r-q sssiiiiiiiiiiiiiiiiii l-,:7sE.申?父” m Dj lhj?油.口,;剂隼ur己而瓜田dk dioutl?. 0| resetinst2eerrrrrrs i r r r r r r r I t y*1 m+* WB 二 h , , iiiii:二:;i萧迪I ;二二二二二:遍礼:;三:m二二二二.b5*-冈m LB附M r-. i-r-r-r-r-r-r-r-r-r-r-r-r-r-r - : a : : : iiiiiiiiiiiiiiiiiiiinstil:hsl?IMJ叩口 1邛LH网出明靖4r憎前 aihif7
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 其它学术


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!