首页 EDA数字秒表设计

EDA数字秒表设计

举报
开通vip

EDA数字秒表设计EDA数字秒表设计 《EDA技术实用教程》 课程实习报告 题目: 数字秒表设计 专业: 电子信息工程 班级: 信息09-1 指导教师: 蔡靖 完成时间: 2011年11月11日 姓名:黄凌伟(9)、李超逸(10)、李辉(11)、李培军(12) - - 1 - - 内 容 摘 要 应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。我们尝试利用VHDL为开发工具设计数字秒表。 秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、12500的分频器、...

EDA数字秒表设计
EDA数字秒 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 设计 《EDA技术实用教程》 课程实习报告 题目: 数字秒表设计 专业: 电子信息工程 班级: 信息09-1 指导教师: 蔡靖 完成时间: 2011年11月11日 姓名:黄凌伟(9)、李超逸(10)、李辉(11)、李培军(12) - - 1 - - 内 容 摘 要 应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。我们尝试利用VHDL为开发工具设计数字秒表。 秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、12500的分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止及启动。 秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。开关设置秒表报警器,每10秒钟,蜂鸣器鸣响1声,发光二极管闪烁。当计时达60分钟后,蜂鸣器鸣响10声。 关键词:VHDL、数据选择器、计数器、显示器 - - 2 - - 目 录 一、 系统组成框图……………………………………………………5 二、 各模块原理及其程序……………………………………………5 1、 六进制计数器……………………………………………………6 2、 十进制计数器 …………………………………………………6 3、 蜂鸣器 ………………………………………………………7 4、 译码器…………………………………………………………8 5、 控制器…………………………………………………………9 三、 系统仿真 ………………………………………………………10 1、 六进制计数器 …………………………………………………10 2、 十进制计数器 …………………………………………………10 3、 蜂鸣器 ………………………………………………………10 4、 译码器 ………………………………………………………10 5、 控制器 ………………………………………………………10 四、心得体会 ……………………………………………………11 - - 3 - - 课程设计任务书 课题名称 数字秒表设计 完成时间 11.10 指导教师 蔡靖 学生姓名 黄凌伟、李超逸、李辉、李培军 班 级 信息09-1 总体设计要求和技术要点 总体设计要求: 通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。 技术要点: (1) 数字秒表的计时范围是0秒—59分59.99秒,显示的最长时间为59 分59秒。 (2) 数字秒表的计时精度是10ms。 (3) 复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复 位开关,计时器就清零,并做好下次计时的准备。 (4) 具有启/停开关,即按一下启/停开关,启动计时器开始计时,再按一 下启/停开关则停止计时。 (5) 有置位功能,置位数可调。 创新之处 , 给秒表设计定点报时,报时开关可以自己控制。 , 在秒表计时时在开发板上加了流水灯,看起来更加漂亮。 , 除了分钟之外我们还加了小时 。 课程设计成果 1(与设计内容对应的软件程序 2(课程设计报告书 3(成果使用说明书 4(设计工作量要求 - - 4 - - 设计过程 一(系统组成框图 数字秒表 计时控制电路 计时电路 显示电路 控制状态机 分频电路 计数器 扫描电路 八段译码 器 十进制计数器 六进制计数器 系统组成框图 二(各模块及的原理及其程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MIAOBIAO IS PORT(CLK,RST,EN,LOAD,LOADN,SW:IN STD_LOGIC; DATA1:IN STD_LOGIC;DATE1:IN STD_LOGIC; DATA2:IN STD_LOGIC;DATE2:IN STD_LOGIC; DATA3:IN STD_LOGIC;DATE3:IN STD_LOGIC; DATA4:IN STD_LOGIC;DATE4:IN STD_LOGIC; DATA5:IN STD_LOGIC;DATE5:IN STD_LOGIC; DATE6:IN STD_LOGIC;NAO:IN STD_LOGIC; DOUT1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT3:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT4:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT5:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT6:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); - - 5 - - DOUT7:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); zout:OUT STD_LOGIC_VECTOR(19 DOWNTO 0); COUT:OUT STD_LOGIC ); END MIAOBIAO; ARCHITECTURE behav OF MIAOBIAO IS SIGNAL HZ:INTEGER RANGE 0 TO 262143; SIGNAL HZ1:INTEGER RANGE 0 TO 14000000; SIGNAL X1:INTEGER RANGE 0 TO 9; SIGNAL X2:INTEGER RANGE 0 TO 9; SIGNAL SEC1:INTEGER RANGE 0 TO 5; SIGNAL SEC2:INTEGER RANGE 0 TO 9; SIGNAL MIN1:INTEGER RANGE 0 TO 5; SIGNAL MIN2:INTEGER RANGE 0 TO 9; SIGNAL HOU1:INTEGER RANGE 0 TO 2; SIGNAL HOU2:INTEGER RANGE 0 TO 9; BEGIN PROCESS (CLK,RST,EN,LOAD,LOADN,DATA1,DATA2,DATA3,DATA4,DATA5, DATE1,DATE2,DATE3,DATE4,DATE5,DATE6,NAO) VARIABLE X:INTEGER RANGE 0 TO 99; VARIABLE SEC:INTEGER RANGE 0 TO 59; VARIABLE MIN:INTEGER RANGE 0 TO 59; VARIABLE HOU:INTEGER RANGE 0 TO 23; VARIABLE MINN:INTEGER RANGE 0 TO 59; VARIABLE HOUN:INTEGER RANGE 0 TO 23; VARIABLE p : STD_LOGIC_VECTOR(19 DOWNTO 0); VARIABLE JIO:STD_LOGIC; BEGIN IF RST='0' THEN MIN:=0; SEC:=0; X:=0; HOU:=0; - - 6 - - X1<=X/10; X2<=X REM 10; SEC1<=SEC/10; SEC2<=SEC REM 10; MIN1<=MIN/10; MIN2<=MIN REM 10; HOU1<=HOU/10; HOU2<=HOU REM 10; zout <="00000000000000000000"; p:="00000000000000000000"; ELSIF NAO='0' THEN X:=0; SEC:=0; X1<=X/10; X2<=X REM 10; SEC1<=SEC/10; SEC2<=SEC REM 10; MIN1<=MINN/10; MIN2<=MINN REM 10; HOU1<=HOUN/10; HOU2<=HOUN REM 10; ELSIF LOADN='0' THEN zout <="00000000000000000000"; X:=0; SEC:=0; MINN:=0; HOUN:=0; IF(DATA1='1')THEN HOUN:=HOUN+1;END IF; IF(DATA2='1')THEN HOUN:=HOUN+2;END IF; IF(DATA3='1')THEN HOUN:=HOUN+4;END IF; IF(DATA4='1')THEN HOUN:=HOUN+8;END IF; IF(DATA5='1')THEN HOUN:=HOUN+16;END IF; IF HOUN>23 THEN HOUN:=0;END IF; IF(DATE1='1')THEN MINN:=MINN+1;END IF; IF(DATE2='1')THEN MINN:=MINN+2;END IF; - - 7 - - IF(DATE3='1')THEN MINN:=MINN+4;END IF; IF(DATE4='1')THEN MINN:=MINN+8;END IF; IF(DATE5='1')THEN MINN:=MINN+16;END IF; IF(DATE6='1')THEN MINN:=MINN+32;END IF; IF MINN>59 THEN MINN:=0;END IF; X1<=X/10; X2<=X REM 10; SEC1<=SEC/10; SEC2<=SEC REM 10; MIN1<=MINN/10; MIN2<=MINN REM 10; HOU1<=HOUN/10; HOU2<=HOUN REM 10; ELSIF LOAD='0' THEN MIN:=0; HOU:=0; IF(DATA1='1')THEN HOU:=HOU+1;END IF; IF(DATA2='1')THEN HOU:=HOU+2;END IF; IF(DATA3='1')THEN HOU:=HOU+4;END IF; IF(DATA4='1')THEN HOU:=HOU+8;END IF; IF(DATA5='1')THEN HOU:=HOU+16;END IF; IF HOU>23 THEN HOU:=0;END IF; IF(DATE1='1')THEN MIN:=MIN+1;END IF; IF(DATE2='1')THEN MIN:=MIN+2;END IF; IF(DATE3='1')THEN MIN:=MIN+4;END IF; IF(DATE4='1')THEN MIN:=MIN+8;END IF; IF(DATE5='1')THEN MIN:=MIN+16;END IF; IF(DATE6='1')THEN MIN:=MIN+32;END IF; IF MIN>59 THEN MIN:=0;END IF; X1<=X/10; X2<=X REM 10; SEC1<=SEC/10; SEC2<=SEC REM 10; MIN1<=MIN/10; MIN2<=MIN REM 10; - - 8 - - HOU1<=HOU/10; HOU2<=HOU REM 10; ELSIF CLK'EVENT AND CLK='1' THEN HZ<=HZ+1;IF HZ=262143 THEN HZ<=0; IF EN='1'THEN if P<595999 then P:=P+1; else P :=(others=>'0'); end if; zout <=P; IF X<99 THEN X:=X+1; ELSIF X=99 THEN X:=0; IF SEC<59 THEN SEC:=SEC+1; ELSIF SEC=59 THEN SEC:=0; IF MIN<59 THEN MIN:=MIN+1; ELSIF MIN=59 THEN HOU:=HOU+1; ELSIF HOU>23 THEN MIN:=0; SEC:=0; X:=0; END IF; END IF; END IF; END IF; X1<=X/10; X2<=X REM 10; SEC1<=SEC/10; SEC2<=SEC REM 10; MIN1<=MIN/10; MIN2<=MIN REM 10; HOU1<=HOU/10; HOU2<=HOU REM 10; END IF; END IF; IF CLK'EVENT AND CLK='1' THEN HZ1<=HZ1+1;IF HZ1=14000000 THEN JIO:=NOT JIO; END IF;END IF; - - 9 - - IF JIO='1' THEN IF SW='1' AND HOU=HOUN AND MIN=MINN THEN COUT<='1'; ELSE COUT<='0';END IF; ELSE COUT<='0'; END IF; END PROCESS; WITH HOU1 SELECT DOUT1 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, "11111111" WHEN OTHERS; WITH HOU2 SELECT DOUT2 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, "10110000" WHEN 3, "10011001" WHEN 4, "10010010" WHEN 5, "10000010" WHEN 6, "11111000" WHEN 7, "10000000" WHEN 8, "10010000" WHEN 9, "11111111" WHEN OTHERS; WITH MIN1 SELECT DOUT8 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, "10110000" WHEN 3, "10011001" WHEN 4, "10010010" WHEN 5, "11111111" WHEN OTHERS; WITH MIN2 SELECT DOUT7 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, - - 10 - - "10110000" WHEN 3, "10011001" WHEN 4, "10010010" WHEN 5, "10000010" WHEN 6, "11111000" WHEN 7, "10000000" WHEN 8, "10010000" WHEN 9, "11111111" WHEN OTHERS; WITH SEC1 SELECT DOUT6 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, "10110000" WHEN 3, "10011001" WHEN 4, "10010010" WHEN 5, "11111111" WHEN OTHERS; WITH SEC2 SELECT DOUT5 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, "10110000" WHEN 3, "10011001" WHEN 4, "10010010" WHEN 5, "10000010" WHEN 6, "11111000" WHEN 7, "10000000" WHEN 8, "10010000" WHEN 9, "11111111" WHEN OTHERS; WITH X1 SELECT DOUT4 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, "10110000" WHEN 3, "10011001" WHEN 4, "10010010" WHEN 5, - - 11 - - "10000010" WHEN 6, "11111000" WHEN 7, "10000000" WHEN 8, "10010000" WHEN 9, "11111111" WHEN OTHERS; WITH X2 SELECT DOUT3 <= "11000000" WHEN 0, "11111001" WHEN 1, "10100100" WHEN 2, "10110000" WHEN 3, "10011001" WHEN 4, "10010010" WHEN 5, "10000010" WHEN 6, "11111000" WHEN 7, "10000000" WHEN 8, "10010000" WHEN 9, "11111111" WHEN OTHERS; END behav; 三(系统仿真 (1)六进制 (2)十进制 - - 12 - - 四(心得体会 开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。 在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。 - - 13 - - - - 14 - - - - 15 - -
本文档为【EDA数字秒表设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_266065
暂无简介~
格式:doc
大小:103KB
软件:Word
页数:16
分类:其他高等教育
上传时间:2017-10-16
浏览量:56