




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA试验——数字时钟实验目的熟悉在EDA平台上进行数字电路集成设计的整个流程。掌握MaxPlus软件下的简单的图形、VHDL文本等输入的设计方法。学习使用JTAG借口下载逻辑电路到可编程芯片,并能调试到芯片正常工作。实验原理本实验是实现数字电子钟,直接用数字显示时间的计时装置。分别设计出时间设置电路,走时电路,打铃控制电路,显示电路。三.实验设计(1)在这个设计中我使用VHDL设计时间设置电路:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYcontrolISPORT(reset:INSTD_LOGIC;begend:INSTD_LOGIC;keyup:INSTD_LOGIC;enter:INSTD_LOGIC;settime:OUTSTD_LOGIC;hourhset:OUThourlset:OUTminhset:OUTminlset:OUTsechset:OUTseclset:OUTENDcontrol;ARCHITECTUREarchiOFcontrolISTYPESTATEIS(sethh,sethl,setmh,setml,setsh,setsl,ini);SIGNALadjsta:STATE;SIGNALsetmark:STD_LOGIC;SIGNALseclow,minlow,hourlow:INTEGERSIGNALsechigh,minhigh:INTEGERSIGNALhourhigh:INTEGERBEGINseclset<=seclow;sechset<=sechigh;minlset<=minlow;minhset<=minhigh;hourlset<=hourlow;hourhset<=hourhigh;settime<=setmark;mark:PROCESS(begend)beginifreset='1'thensetmark<='0';elsifbegend'eventandbegend='1'thenifsetmark='1'then setmark<='0'; else setmark<='1'; endif;endif;ENDPROCESS;normal_run:PROCESS(enter,reset)BEGINIFreset='1'THENadjsta<=ini;ELSIFenter='1'ANDenter'eventTHENcaseadjstaISWHENini=>adjsta<=sethh;WHENsethh=>adjsta<=sethl;WHENsethl=>adjsta<=setmh;WHENsetmh=>adjsta<=setml;WHENsetml=>adjsta<=setsh;WHENsetsh=>adjsta<=setsl;WHENsetsl=>adjsta<=sethh;endcase;ENDIF;ENDPROCESS;time_adjust:PROCESS(keyup)BEGINifreset='1'then hourhigh<=0; hourlow<=0; minhigh<=0; minlow<=0; sechigh<=0; seclow<=0; elsifkeyup='1'ANDkeyup'eventTHEN caseadjstaIS WHENsethh=> hourhigh<=hourhigh+1; WHENsethl=> hourlow<=hourlow+1; WHENsetmh=> minhigh<=minhigh+1; WHENsetml=> minlow<=minlow+1; WHENsetsh=> sechigh<=sechigh+1; WHENsetsl=> seclow<=seclow+1; WHENini=>NULL; endcase; endif;ENDPROCESS;ENDarchi;走时电路:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityclockisport(clk:instd_logic; settime:instd_logic; hourhset:inintegerrange0to2; hourlset:inintegerrange0to9; minhset:inintegerrange0to5; minlset:inintegerrange0to9; sechset:inintegerrange0to5; seclset:inintegerrange0to9; hourhdis:outintegerrange0to2; hourldis:outintegerrange0to9; minhdis:outintegerrange0to5; minldis:outintegerrange0to9; sechdis:outintegerrange0to5; secldis:outintegerrange0to9);endclock;architecturearchiofclockis signalseclow,minlow,hourlow:integerrange0to9; signalsechigh,minhigh:integerrange0to5; signalhourhigh:integerrange0to2;begin secldis<=seclow; sechdis<=sechigh; minldis<=minlow; minhdis<=minhigh; hourldis<=hourlow; hourhdis<=hourhigh;normal_run: process(clk,settime) begin ifsettime='1'then seclow<=seclset; sechigh<=sechset; minlow<=minlset; minhigh<=minhset; hourlow<=hourlset; hourhigh<=hourhset; else ifclk='1'andclk'eventthen ifseclow=9thenseclow<=0; ifsechigh=5thensechigh<=0; ifminlow=9thenminlow<=0; ifminhigh=5thenminhigh<=0; ifhourlow=9then hourlow<=0; hourhigh<=hourhigh+1; elsifhourlow=3andhourhigh=2then hourhigh<=0; hourlow<=0; elsehourlow<=hourlow+1; endif; elseminhigh<=minhigh+1; endif; elseminlow<=minlow+1; endif; elsesechigh<=sechigh+1; endif; elseseclow<=seclow+1; endif; endif; endif; endprocess;endarchi;打铃控制电路:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityringisport(reset:instd_logic; alarm:outstd_logic; hourhdis:inintegerrange0to2; hourldis:inintegerrange0to9; minhdis:inintegerrange0to5; minldis:inintegerrange0to9; sechdis:inintegerrange0to5; secldis:inintegerrange0to9);endring;architecturearchiofringis constantre:integer:=2; constantstop:integer:=50;signalcnt:integerrange0to60;begin process(secldis) begin cnt<=sechdis*10+secldis; ifreset='1'thenalarm<='0'; elsif(minhdis=5andminldis=9)then ifcnt>stopandcnt<re+stopthenalarm<='0'; elsifcnt>re+stopandcnt<re*2+stopthenalarm<='1'; elsifcnt>2*re+stopandcnt<4*re+stopthenalarm<='0'; elsealarm<='1'; endif; elsealarm<='0'; endif; endprocess;endarchi;显示电路:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityringisport(reset:instd_logic; alarm:outstd_logic; hourhdis:inintegerrange0to2; hourldis:inintegerrange0to9; minhdis:inintegerrange0to5; minldis:inintegerrange0to9; sechdis:inintegerrange0to5; secldis:inintegerrange0to9);endring;architecturearchiofringis constantre:integer:=2; constantstop:integer:=50;signalcnt:integerrange0to60;begin process(secldis) begin cnt<=sechdis*10+secldis; ifreset='1'thenalarm<='0'; elsif(minhdis=5andminldis=9)then ifcnt>stopandcnt<re+stopthenalarm<='0'; elsifcnt>re+stopandcnt<re*2+stopthenalarm<='1'; elsifcnt>2*re+stopandcnt<4*re+stopthenalarm<='0'; elsealarm<='1'; endif; elsealarm<='0'; endif; endprocess;endarchi;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水体生态修复技术的应用与挑战
- 函数的表示讲课件
- 王英造价工程师课件下载
- 乌鸦和狐狸讲课件
- 乡村特殊教育发展的系统化治理路径分析
- 杜甫绝句教案讲课件
- 房颤介入治疗护理管理讲课件
- 2025年四川省自贡市中考物理试卷及答案
- 公司员工证书补贴管理制度
- 公司外勤销售员管理制度
- 《数学归纳法》 优秀奖 教学课件
- ANSIESD S20.202021 中英文对照版
- 投入的主要施工机械计划
- GB-T 19639.2-2014 通用阀控式铅酸蓄电池 第2部分:规格型号
- 公司财政资金财务管理办法
- 《数据采集与预处理》教学教案(全)
- 2022年《内蒙古自治区建设工程费用定额》取费说明
- DVD在线租赁的分配问题
- Q∕GDW 10799.6-2018 国家电网有限公司电力安全工作规程 第6部分:光伏电站部分
- 暴雨产流计算(推理公式_四川省)
- 焊接技能训练教案.
评论
0/150
提交评论