ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:2.21MB ,
资源ID:2462302      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2462302.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(数字钟VHDL设计报告(EDA).doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数字钟VHDL设计报告(EDA).doc

1、数字钟VHDL设计报告(EDA) ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 设 计

2、 报 告 课程名称 在系统编程技术 任课教师 周泽华 黄慧 设计题目 数字钟 班级 11级电子信息工程(1) 姓名 童亚强 学号 1105011025 日期 2013/12/29

3、 15 目 录 摘要: 1 关键词:数字钟 EDA VHDL语言 1 一、设计目的 1 二、设计内容 1 三、设计原理 2 1、数字钟的基本工作原理: 2 2、数字钟设计的电路原理图 3 3、VHDL 设计 3 四、设计仪器、设备 4 五、设计步骤 5 1、用VHDL程序设计 5 步骤1:为本项设计建立文件夹 5 步骤2:输入设计项目和存盘 5 步骤3:选择目标器件并编译 6 步骤4:时序仿真 6 步骤5:引脚锁定 9 步骤6:编程下载 9 2、实验箱显示 10 六、总结 11 参考文献 11 附录: 11

4、 摘要: 20世纪90年代,国际上电子和计算机技术较为先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展.个人收集整理,勿做商业用途个人收集整理,勿做商业用途 EDA技术就是以计算机为工具,设计者在EDA软件平台上

5、用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作.EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒,另外还具有校时功能和闹钟功能。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼

6、接程序模块.并且使用QUARTUS  II软件进行电路波形仿真,下载到EDA实验箱进行验证。 关键词:数字钟 EDA VHDL语言 一、设计目的 1、熟练地运用数字系统的设计方法进行数字系统设计; 2、能进行较复杂的数字系统设计; 3、按要求设计一个数字钟. 二、设计内容 1、要求显示秒、分、时,显示格式如下: 图2.1 显示格式 2、可清零、可调时,具有整点报时功能。 三、设计原理 1、数字钟的基本工作原理: 数字钟以其显示时间的直观性、走时准确性作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。数字钟的基本原

7、理方框图如下: 数字时钟 控制单元 时调整 分调整 使能端信号 CLK信号 时显示 分显示 秒显示 24进制 60进制 60进制 LED显示 整点报时 花样显示 图3.1数字钟实现原理框图 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分 ——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能.我们可以

8、通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位. 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答。滴答"的报警声音。 5)LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样"信号。 根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语

9、言设计,顶层文件用原理图的设计方法.显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。 2、数字钟设计的电路原理图 图3。3 24进制数字钟的电路图 3、VHDL 设计 LIBRARY IEEE; USE IEEE。STD_LOGIC_1164.ALL; USE IEEE。STD_LOGIC_UNSIGNED。ALL; ENTITY alert IS PORT(clk:IN STD_LOGIC; dain:IN STD_LOGIC_VECTOR(6 DOWNTO 0); speak:OUT STD_LOGIC;

10、 lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END alert; ARCHITECTURE fun OF alert IS SIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL count1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN speaker:PROCESS(clk) BEGIN IF(clk'event and clk='1’)THEN IF(dain=”0000000”)

11、THEN speak〈=count1(1); IF(count1>=”10")THEN count1〈=”00";-—count1为三进制加法计数器 ELSE count1<=count1+1; END IF ; END IF ; END IF ; END PROCESS speaker; lamper:PROCESS(clk) BEGIN

12、 IF(rising_edge(clk))THEN IF(count<="10”)THEN IF(count="00”)THEN lamp〈=”001”;—-循环点亮三只灯 ELSIF(count="01”)THEN lamp〈="010"; ELSIF(count=”10")THEN lamp〈="100";

13、 END IF; count〈=count+1; ELSE count〈="00"; END IF; END IF; END PROCESS lamper; END fun; 注:详细的VHDL文件见附录 四、设计仪器、设备 PC机一台、GW48教学实验系统一台、下载电缆一根USB接入方式(已接好) 五、设计步骤 1、用VHDL程序设计 步骤1:为本项设计建立文件夹 任何一项设计都是一

14、项工程,都必须首先为此工程建立一个放置与此工程相关的所有的文件夹,在此文件夹被EDA软件默认为工作库。一个设计项目可以包含多个设计文件,一般不同的设计项目最好放在不同的文件夹中. 注意:文件名不能使用中文,且不能带空格。 步骤2:输入设计项目和存盘 1) 打开QUARTUS||,单击“file”菜单,将鼠标移到New Project Wizard 选项单击则显示如下图内容,在其中建立项目名和实体名,项目名和实体必须保持一致,最后点击finish完成 图5.1 建立 New Project 2) 在其中点击file→new,选择原理图编辑器,在这里我们建立VHDL文件,点击确定则显

15、示下图情况,可以在里面键入程序,如下图. 图6.2 输入程序 步骤3:选择目标器件并编译 1)在Assign选项的下拉菜单中选择器件选择项Device,如图所示。在Device Family(器件序列栏)中选定目标器件对应的序列名,EPF10K10对应的是FLEX10K系列.为了选择EPF10K10LC84—4器件,应将此栏下方标有Show only Fastest Speed Grades的勾消去,以便显示出所有速度级别的器件。完成器件选择后,按OK键。 注意:所选器件必须与目标板的器件型号完全一致. 选择Cyclone Package:TQ

16、FP PIN:144 Speed grade:8 图6.3 选择目标板器件型号 3) 输入完程序以后点击工具栏右方一个紫色的三角符号“”,然后运行程序,如果程序出现错误在改正。 步骤4:时序仿真 1.建立波形文件:选择File-〉New,选择Vector Waveform File,单击OK。 图6.4 建立波形文件 2.选择Edit—〉End Time选项,如图6。6所示,设定仿真时间宽度。 图6.5 设置仿真时间 3.双击Name下的空白处,弹出Insert Nod or Bus对话框,单击Node Finder。

17、 图6。6 选择添加结点设置 4.如图6.7所示选定各个选择项。 图6.7 选择结点 5.单击OK,完成引脚输入。 图6.8 6.加上输入信号后波形文件存盘。 图6。9 波形 7.运行仿真器。在Processing菜单下选择StartSimulation项,直到Simulator was successful出现,仿真结束。完成波形如图所示。 步骤5:引脚锁定 选择Assign®Pin\Location\Chip,在跳出的窗口中的Node Name栏中用键盘输入半加器的端口名,如a、b等。如果输入的端口名正确,在右侧的Pin Type栏将显示该信

18、号的属性。输入以后如下图,设定完成以后再运行一次程序。 图6。11 引脚锁定 步骤6:编程下载 1)首先将下载线把计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源 2)下载方式设定.选择MAX+plusII®Programmer选项,跳出下图左侧所示的编程器窗口,然后选择Options®Hardware Setup硬件设置选项,其窗口图中左侧所示.在其下拉菜单中选ByteBlaster(MV)编程方式。此编程方式对应计算机的并行口下载通道,“MV”是混合电压的意思,主要指对ALTERA的各类芯核电压(如5V、3。3V、2。5V与1.8V等)的FPGA/CPLD都能由此下

19、载。此项设置只在初次装软件后第一次编程前进行,设置确定后就不必重复此设置了 图6。12 下载编译 最后点击start按钮,进入下载模式,等待下载完成以后在试验箱上进行调试检测是否正确. 2、实验箱显示 (1)任意设置时间,让其从这一时间开始显示 图6。13 设置时间 (2)时间显示为24进制,当时间显示到大23:59:59后将会从00:00:00开始显示 图6.14 数字钟为24进制显示 图6.15 时间跳变到00 00 00 六、总结 经过几周EDA实验的学习,使我受益匪浅.这不仅增强了我对EDA设计的兴趣,更掌握了基本的电路设计流程、方法以及技巧。具

20、备了这些基本知识,为今后的自主学习奠定了良好的基础。在编写时可以相互借鉴,这样可以节省一定的时间,尤其是24进制的处理上,我们采用了简单的方法即可完成多个功能的顺利实现。此次设计不足之处是不能进行定时闹钟,这是有待改进的地方,当然我们也可以在闹钟的时候采用音乐提醒,可以和乐曲硬件演奏电路设计相结合,这样数字钟的功能才算是完美. 在设计中还是需要注意一些常见的问题,比如实体名、项目名等,还有在编写VHDL文件时,一些文件名也是需要注意的。 最后感谢周泽华周泽华周泽华周泽华周泽华周泽华周泽华周泽华老师对我们的指导,以及同学们对我的帮助,使得实验能够顺利完成! 参考文献 1、潘松 黄继业编著

21、EDA技术实用教程 北京:科学出版社 2、崔建明主编,电工电子EDA仿真技术 北京:高等教育出版社,2004 3、李衍编著,EDA技术入门与提高王行 西安:西安电子科技大学出版社 4、侯继红, 李向东主编,EDA实用技术教程 北京:中国电力出版社 5、侯伯亨等,VHDL硬件描述语言与数字逻辑电路设计 西安:西安电子科技大学出版 附录: VHDL设计程序 1、秒 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164。ALL; USE IEEE.STD_LOGIC_UNSIGNED。ALL; ENTITY second IS PORT(

22、clk,reset,setmin:IN STD_LOGIC; enmin:OUT STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END ENTITY second; ARCHITECTURE fun OF second IS SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL enmin_1,enmin_2:STD_LOGIC; -—enmin_1为59秒时的进位信号 BEGIN

23、 —-enmin_2由clk调制后的手动调分脉冲信号串 daout<=count; enmin_2〈=(setmin and clk); -—setmin为手动调分控制信号,高电平有效 enmin<=(enmin_1 or enmin_2); ——enmin为向分进位信号 PROCESS(clk,reset,setmin) BEGIN IF(reset='0')THEN count〈="0000000”; ——若reset为0,则异步清零 ELSIF(clk ’event and clk=’1')then -

24、—否则,若clk上升沿到 IF(count(3 downto 0)=”1001")then --若个位计时恰好到"1001"即9 IF(count〈16#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,即

25、作”加6校正" END IF; ELSE —-若count不小于16#60#(即count等于或大于16#60#) count<=”0000000”; ——count复0 END IF; —-END IF(count<16#60#) ELSIF(count〈16#60#)then —-若个位计数未到"1001”则转此句再判 count〈=count+1; --若count〈16#60#则count加1

26、 enmin_1〈='0’after 100 ns; -—没有发生进位 ELSE --否则,若count不小于16#60# count〈="0000000"; —-则count复0 END IF; ——END IF(count(3 DOWNTO 0)="1001") END IF; -—END IF(reset='0') END PROCESS; END fun; 2、分 LIBRARY IE

27、EE; 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 OF minute IS SIGNAL co

28、unt :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)

29、BEGIN IF(reset='0') THEN —-若reset为0,则异步清零 count〈=”0000000"; ELSIF(clk'event 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-—又若已到59

30、D 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;

31、 ——END IF(count<16#60#) ELSIF (count <16#60#) THEN count〈=count+1; ——若count<16#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)=”

32、1001”) END IF; -—END IF(reset='0') END process; END fun; 3、时 LIBRARY IEEE; use IEEE.STD_LOGIC_1164。ALL; USE IEEE。STD_LOGIC_UNSIGNED。ALL; ENTITY hour IS PORT(clk,reset:IN STD_LOGIC; daout:out STD_LOGIC_VECTOR(5 DOWNTO 0)); END ENTITY hour; ARCHITECTURE fun OF hour IS

33、SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN daout<=count; PROCESS(clk,reset) BEGIN IF(reset=’0’)THEN count<="000000"; ——若reset=0,则异步清零 ELSIF(clk'event and clk='1')THEN ——否则,若clk上升沿到 IF(count(3 DOWNTO 0)=”1001")THEN -—若个位计时恰好到”1001"即9

34、 IF(count<16#23#)THEN —-23进制 count<=count+7; —-若到23D则 else count<="000000"; --复0 END IF; ELSIF (count<16#23#)THEN --若未到23D,则count进1 count〈=count+1; ELSE

35、 --否则清零 count〈="000000”; END IF; -—END IF(count(3 DOWNTO 0)="1001") END IF; --END IF(reset='0’) END PROCESS; END fun; 4、主程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164。ALL; USE IEEE.STD_LOGIC_UNSIGNED。ALL; ENTITY alert IS PORT(clk:IN

36、STD_LOGIC; dain:IN STD_LOGIC_VECTOR(6 DOWNTO 0); speak:OUT STD_LOGIC; lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END alert; ARCHITECTURE fun OF alert IS SIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL count1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN speaker:PROCESS(clk)

37、 BEGIN —-speak<=count1(1); IF(clk'event and clk='1’)THEN IF(dain=”0000000")THEN speak〈=count1(1); IF(count1>="10”)THEN count1〈=”00";—-count1为三进制加法计数器 ELSE count1〈=count1+1; END I

38、F ; END IF ; END IF ; END PROCESS speaker; lamper:PROCESS(clk) BEGIN IF(rising_edge(clk))THEN IF(count〈="10”)THEN IF(count="00”)THEN lamp<=”001”;—-循环点亮三只灯 ELSIF(count="01")THEN

39、 lamp<=”010”; ELSIF(count=”10”)THEN lamp<=”100”; END IF; count〈=count+1; ELSE count〈=”00”; END IF; END IF; END PROCESS lamper; END fun;

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服