欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数字时钟的设计EDA.docx

    • 资源ID:7018067       资源大小:172.96KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字时钟的设计EDA.docx

    1、数字时钟的设计EDA设 计 报 告课程名称 在系统编程技术 任课教师 XXX 设计题目 数字时钟的设计 班级 自动化 姓名 XX 学号 XXXXXXXX 日期 XXXXX 摘要 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计、计算机辅助制造、计算机辅助测试和计算机辅助工程的概念发展而来的。计算机技术电路在电子技术设计领域,可编程逻辑器件的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一

    2、切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。关键字:设计 数字钟 实验 仿真 Abstract EDA is an electronic design automation (Electronic Design Automation) acronym,

    3、in the mid 1960s from computer-aided design, computer aided manufacturing, computer-aided testing and computer-aided engineering concepts evolved. Computer technology, electronic technology circuit design, programmable logic device applications, has been widely spread, these devices as digital syste

    4、ms design brings great flexibility. These devices can be programmed by software and hardware structure and working methods of its reconstructed, so that the design of the hardware as software design can be as quick and easy. All this has greatly changed the traditional digital system design methods,

    5、 design process and design concepts, and promote the rapid development of EDA technology.EDA technology is the computer as a tool, designers in the EDA software platform, complete with a hardware description language VHDL design files, and then be done automatically by the computer logic compiler, s

    6、implification, segmentation, synthesis, optimization, placement, routing and simulation, until for a specific target chip adapter compilation, logical mapping and programming download work. EDA technology, greatly improves the efficiency of the circuit design and operability, reducing the labor inte

    7、nsity of designers.Keywords: design digital clock simulation experiments3.3.1工程建立及存盘.-4-四、课程设计总结 .-8-六、附录.-14-一丶课程设计任1.1 课程设计要求 1)具有时、分、秒计数显示功能,以24小时循环计时。2)具有调节小时、分钟及清零的功能。3)具有整点报时功能。4)时钟计数显示时有LED灯的花样显示。1.2 课程设计分析 数字钟是计数器的综合应用,数字钟由十分之一秒、秒钟、分钟、时钟组成,十分之一秒由十进制计数器组成,秒钟由六十进制计数器构成,分钟由六十进制计数器,时钟由十二进制计数器构成。

    8、 该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL文本设计及原理图设计。 输入端clk是连续脉冲,clrn是高电平系统复位,en是高电平使能端,输出端是十分之一秒位、秒钟个位、秒钟十位、分钟个位、分钟十位、时钟个位、时钟十位,最后由7个数码管显示各位的值。该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL文本设计及原理图设计。二、整体设计思想2.1性能指标及功能设计 根据系统设计要求,系统设计采用自顶向下设计方法,由时钟分频部分、计时

    9、部分、按键部分调时部分和显示部分五个部分组成。这些模块都放在一个顶层文件中。 1)时钟计数: 首先下载程序进行复位清零操作,电子钟从00:00:00计时开始。sethour可以调整时钟的小时部分, setmin可以调整分钟,步进为1。由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于1Hz,这里取100Hz。CLK端连接外部10Hz的时钟输入信号clk。对clk进行计数,当clk=10时,秒加1,当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。 用6位数码管分别显示“时”、“分”、“秒”,通过OUTPUT( 6 DOWNTO 0 )上的信

    10、号来点亮指定的LED七段显示数码管。 2)时间设置: 手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键1和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3)清零功能: Reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。2.2总体方框图 三、总体设计方案 本数字系统实现数字钟的基本的计时功能,输入8Hz的时钟,通过分频产生1Hz的时钟信号,采用24小时制计时,60进制记分、秒,能显示时、分、秒。本系统还具有校正功能,可以进行时分的校时,当计时

    11、器运行到59分59秒开始报时。 本数字钟实际上是一个对频率(1Hz)进行计数的计数电路。由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时分频后的1Hz时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。3.1数字时钟的基本组成:本数字钟的实现可分为以下几个模块: (1) 秒计数模块:秒计数,在频率为1Hz的时钟下以60次为循环计数,并产生进位信号影响分计数; (2) 分计数模块:分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数; (3) 时计数模块:时计数,在分进位信号为高电平时,计数一次,以24次为一个循

    12、环计数; (4) 频率产生模块:产生8Hz的计数频率 ,通过分频得到1Hz频率; (5) 时间显示模块:数码管通过动态显示,同时进行一定频率的扫描显示时,分,秒; (6) 时间设置模块:设置调试使能端,可以调时,分。基本功能是在使能端为低电平时,可以使时、分和秒循环计数; (7) 整点报时模块:在秒计数到59秒时,同时分计数到59分开始,蜂鸣器产生四个时钟周期的鸣叫,到整点是产生两个时钟周期的鸣叫。一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生器、“时”,“分”,“秒”计数器、译码器及显示器、电路组成。3.2 数字时钟功能模块1)分频器电

    13、路:通常,数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频。通常实现分频器的电路是计数器电路,当计数满时则产生相应的跳变,从而得到想要的的分频后频率。 2)时间计数单元:时间计数单元有时计数、分计数和秒计数等几个部分。时计数单元为24进制计数器,分、秒计数单元为60进制计数器。3)译码驱动及显示单元:计数器实现了对时间的累计以8421BCD码形式输出,为了将计数器输出的8421BCD码显示出来。试验箱上有几种模式可供选择,选择模式7则自带有显示译码器,代码中就可以直接送四位bcd码给相应端口就行。 4)校时电源电路:当重新接通电源或走时出现误差时都需要

    14、对时间进行校正。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数将高电平信号加到需要校正的计数单元的输入端,相应的时分秒数值随着时钟脉冲信号跳变,校正好后,再按下使能键变为高电平,转入正常计时状态。5)整点报时电路:一般时钟都应具备整点报时电路功能,即在时间出现整点时,数字钟会自动报时,以示提醒。其作用方式是发出连续的或有节奏的音频声波,较复杂的也可以是实时语音提示。3.3设计步骤3.3.1工程建立及存盘1打开 Quartus,单击“File”菜单,选择 FileNew Project Wizard,对话框如下:分别输入项目的工作路径、项目名和实体名,单击Finish。

    15、 2.单击“File”菜单,选择New,弹出小对话框,双击“VHDL File,即选中了文本编辑方式。在出现的“Vhdl1.vhd”文本编辑窗中键入VHDL程序,输入完毕后,选择FileSave As,即出现“Save As”对话框。选择自己建立好的存放本文件的目录,然后在文件名框中键入文件名,按“Save”按钮。3. 建立工程项目,在保存VHDL文件时会弹出是否建立项目的小窗口,点击“Yes”确定。即出现建立工程项目的导航窗口,点击“Next”,最后在出现的屏幕中分别键入新项目的工作路径、项目名和实体名。注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但VHDL程序文本存盘的文件

    16、名必须与文件的实体名一致,输入后,单击“Finish”按钮。4.本设计原理图: 3.3.2工程项目的编译 单击工具条上的编译符号开始编译,并随着进度不断变化屏幕,编译完成直至成功。3.3.3目标芯片的选择 选择菜单 Assignments 选项的下拉菜单中选择器件 Device 。在弹出的对话框中的 Family(器件序列栏)对应的序列名,EP1C3 对应的是 Cyclone 系列。在 Available Devices里选择 EP1C3T144-C8 (有时需要把 Show advanced devices的勾消去,以便显示出所有速度级别的器件)。注意:所选器件必须与目标板的器件型号完全一致

    17、。在图中,单击“Device and Pin Options”,在弹出的“Device and Pin Options”窗口中,单击“Unused Pins”标签。选择“As output driving an unspecified signal ”(由于学习机的“FPGA”具有很多功能,为了避免使用引脚对其它器件造成影响,保证本系统可靠工作,将未使用引脚设定为输出不定状态)后,单击确定后,无误后单击“OK”。3.3.4时序仿真 建立波形文件:选择 FileNew,在New窗中选中“Other File”标签。在出现的屏幕中选择“Vector Waveform File”项出现一新的屏幕。在

    18、出现的新屏幕中,双击“Name”下方的空白处,弹出“Insert Nod or Bus”对话框,单击该对话框的“Node Finder”。在屏幕中的 Filter 中选择 Pins,单击“List”。而后,单击“”,所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚,也可以只选其中的的一部分,根据实际情况决定。然后单击屏幕右上脚的 “OK”。在出现的小屏幕上单击“OK”。 设定仿真时间宽度。选择 Edit End time选项,在End time选择窗中选择适当的仿真时间域,以便有足够长的观察时间。波形文件存盘。选择FileSave as 选项,直接存盘即可。运行仿真器。在菜单中选

    19、择项,直到出现,仿真结束。 3.3.5引脚锁定 将设计编程下载进选定的目标器件中,如EPF10K10,作进一步的硬件测试,将设计的所有输入输出引脚分别与目标器件的EPF10K10的部分引脚相接,操作如下:1选择 Assignments Assignments Editor ,即进入 Assignments Editor编辑器。在Category 栏选择 Pin,或直接单击右上侧的 Pin 按钮。2双击 TO 栏的new,在出现的的下拉栏中选择对应的端口信号名(如 D0);然后双击对应的栏的new,在出现的下拉栏中选择对应的端口信号名的期间引脚号。3最后存储这些引脚锁定信息后,必须再编译(启动

    20、)一次,才能将引脚锁定信息编译进编程下载文件中。3.3.6硬件测试实验硬件:GW48实验系统 cyclone EP1C3T144C8测试模式:NO.7测试方式:clock选用clock0,短路帽选4HZ;键8控制reset,键7控制sethour,键4控制setminute;D8、D7、D6显示花样灯lamp;数码管8、7用作小时显示,高位是小时的十位,低位是小时的个位;数码管5、4用作分钟显示,高位是分钟的十位,低位是分钟的个位;数码管2、1用作秒钟显示,高位是秒钟的十位,低位是秒钟的个位;测试过程:灯亮为高电平,灯灭为低电平;reset低电平清零复位,按键8使灯亮则时钟开始从00-00-0

    21、0计时,秒钟计时到59时向分钟进1,分钟计时到59时向小时进1;键7用做调小时每来一个脉冲调一次调节范围00-23;键4用做调分钟每来一个脉冲调一次调节范围0059;lamp灯显的三个灯轮回亮;当时钟为00则蜂鸣器开始整点报时一分钟。下面是硬件电路:3.3.7实验结果 实验箱使用模式7,键8为复位按键,键8为1时正常工作。键4设置小时,键1设置分钟。 下载成功后,按下键8,及使六个LED复位清零,显示数秒的自动计时,可以通过4键设置小时数,1键设置分钟数。当秒数满60则进一位,分钟数满60进一位,当显示为23:59:59时,秒数在加一则显示00:00:00,之后从新计时。时间每到整点时,蜂鸣器

    22、报警。四、课程设计总结 从一开始接触EDA这门实验课开始,通过每一次的实验,我都觉得自己学到很多基础方面的知识。当然,这些也为本次的设计实验奠定了基础。让我感受很深的是,实验可以通过软件的方式来控制,并以硬件的方式显示出结果。其整个过程都让我觉得很不可思议,也让我对这门实验产生了很大的兴趣。通过这次设计实验,使得我对层次化结构化设计有了更深的了解。在设计中将设计任务分成了几个子模块,完成各子模块的设计功能,然后再将各模块合起来联试,加深了层次化设计概念。通过实验加深了对软件的元件管理的含义的理解,学会将不同目录下的设计题目融合在同一个文件夹中进行总体集成。通过仿真和硬件测试,让我认识到调试和硬

    23、件测试手段的多样化,对于同一功能的电路可以采用多种模式进行硬件测试,但要选择一个最佳方案,从而进行信号引脚的锁定并与相应功能块的硬件电路接口相连。感谢实验老师的细心指导,在做前面的每一次实验的时候,我都会犯一些细节方面的错误,然后问老师,老师都很细心的给我指导。我相信,只要努力好学,终究会学有所成的!五、参考文献:1 EDA技术使用教程vhdl 潘松版20062 电路设计与仿真 20033 电子设计自动化 王振宇版.20074 硬件描述语言Verilog 清华大学出版社,2001六、附录源程序代码:1、顶层实体描述ENTITY alert IS PORT(clk:IN STD_LOGIC; d

    24、ain:IN STD_LOGIC_VECTOR(6 DOWNTO 0); speak:OUT STD_LOGIC; lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END alert;2、秒钟计数器VHDL语言源程序(底层文件)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT( clk,reset,setmin:STD_LOGIC; enmin:OUT STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(6

    25、 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为手动调分控制信号,高电平有效 enmin=(enmin_1 or enmin_2); enmin为向分进位信号 PROCESS(clk,rese

    26、t,setmin) BEGIN IF(reset=0)THEN count=0000000; 若reset为0,则异步清零 ELSIF(clk event and clk=1)then 否则,若clk上升沿到 IF(count(3 downto 0)=1001)then 若个位计时恰好到“1001” IF(count16#60#)then 又若count小于16#60#,即60H IF(count=1011001)then 又若已到59D enmin_1=1;count=0000000;则置进位为1及count复0 ELSE 未到59D count=count+7; 则加7,而+7=+1+6,

    27、即作“加6校正” END IF; ELSE 若count不小于16#60#(即count等于或大于16#60#) count=0000000; count复0 END IF; END IF(count16#60#) ELSIF(count16#60#)then 若个位计数未到“1001”则转此句再判 count=count+1; 若count16#60#则count加1 enmin_1=0after 100 ns; 没有发生进位 ELSE 否则,若count不小于16#60# count=0000000; 则count复0 END IF; END IF(count(3 DOWNTO 0)=“1

    28、001”) 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 minute IS PORT(clk,clk1,reset,sethour:IN STD_LOGIC; enhour:OUT STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY minute ;ARCHITECTURE fun

    29、OF minute IS SIGNAL 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); sethour为手动调时控制信号,高电平有效 enhour= (enhour_1 or enhour_2); PROCESS(clk,reset,sethour) BEGIN IF(reset=0) THEN 若reset为

    30、0,则异步清零 count=0000000; ELSIF(clkevent and clk=1)THEN 否则,若clk上升沿到 IF(count (3 DOWNTO 0) =1001)THEN若个位计时恰好到“1001”即9 IF(count 16#60#) THEN 又若count小于16#60#,即60 IF(count=1011001) THEN又若已到59D enhour_1=1; 则置进位为1 count=0000000; count复0 ELSE count=count+7; 若count未到59D,则加7,即作“加6校正” END IF; 使前面的16#60#的个位转变为8421BCD的容量 ELSE count=0000000;count复0(有此句,则对无效状态电路可自启动) END IF; END IF(count16#60#) ELSIF (count 16#60#) THEN count=count+1; 若count16#60#则count加1 enhour_1=0 after 100 ns; 没有发生进位 ELSE count=0000000; 否则,若count不小于16#60# count复0 END IF; END IF(count(3 DOWNTO 0)=“1001”) END IF; END IF(reset


    注意事项

    本文(数字时钟的设计EDA.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开