VHDL数字秒表设计.docVIP

  • 8
  • 0
  • 约5.54千字
  • 约 12页
  • 2019-12-09 发布于浙江
  • 举报
课程 课程设计(综合实验)报告 1 课程设计(综合实验)报告 ( 2014-- 2015 年度第 1 学期) 名 称:VHDL语言与数字系统设计 题 目: 电子秒表 院 系: 班 级: 学 号: 学生姓名: 指导教师: 陈晓梅 设计周数: 2周 成 绩: 日期:2015年1月23日 目录 TOC \o 1-3 \h \z \u 一、课程设计(综合实验)的目的与要求 1 二、设计(实验)正文 2 三、课程设计(综合实验)总结或结论 5 四、参考文献 6 附录(设计流程图、程序、表格、数据等) 7 课程 课程设计(综合实验)报告 11 一、课程设计(综合实验)的目的与要求 目的 1.1学习使用VHDL语言,以及EDA芯片的下载仿真。 1.2掌握较为复杂的逻辑设计和调试。 1.3学习用原理图+VHDL语言设计逻辑电路。 1.4掌握Quartues软件的使用方法。 实验要求 2.1设计一块电子秒表,能够精确反映计时时间。 2.2秒表计时的最大范围为1小时,精度为0.01秒,秒表可得到计时时间的分、秒、0.1秒等量度。 2.3当复位清零有效时,秒表清零并做好计时准备。 2.4设置秒表的启动/停止开关 二、设计(实验)正文 设计过程 1十进制计数器 十进制计数器就是输入一个时钟脉冲计一个数,技术当前值通过4位输出端口输出。当计数到九且再来一个脉冲时计数输出清零,且进位端给出高电平。再来脉冲继续计数,进位端清零。计数只有在使能端为1时有效,否则保持。 部分源程序及说明: BEGIN --当clk,clr,ena信号发生变化时,启动计数功能 IF clr=1 THEN --复位清零信号有效 tmp=0000; --任何时刻都将计数器清零 ELSIF clkEVENT AND clk=1 THEN --时钟上升沿 IF ena=1 THEN --允许计数 IF tmp=1001 THEN --计数器满 tmp=0000; ELSE tmp=tmp+1; --计数器加1 eND IF; END IF; END IF; END PROCESS; PROCESS(tmp) --当计数器发生变化时,启动输出功能 BEGIN IF tmp=0000THEN --计数器状态为0时 co=1; --进位输出信号有效 ELSE co=0; --否则,为0 END IF; END PROCESS; q=tmp; --输出计数器的值 END rtl; 2六进制计数器 六进制计数器就是输入一个时钟脉冲计一个数,技术当前值通过4位输出端口输出。当计数到六且再来一个脉冲时计数输出清零,且进位端给出高电平。再来脉冲继续计数,进位端清零。计数只有在使能端为1时有效,否则保持。 部分源程序及说明: PROCESS(clk,clr,ena) BEGIN IF clr=1 THEN tmp=0000; ELSIF clkEVENT AND clk=1 THEN IF ena=1 THEN IF tmp=0101 THEN --计数器到6,计数器满 tmp=0000; ELSE tmp=tmp+1; END IF; END IF; END IF; END PROCESS; 3顶层模块设计 将十进制计数模块与六进制模块通过例化,级联在一起,得到电子秒表 例化程序说明: BEGIN --原件例化语句,通过计数器的级联实现数字秒表 U1:cnt10 PORT MAP (clk0,clr0,en,dataout(3 downto 0),co1); U2:cnt10 PORT MAP (co1,clr0,en,dataout(7 downto 4),co2); U3:cnt10 PORT MAP (co2,clr0,en,dataout(11 downto 8),co3); U4:cnt6 PORT MAP (co3,

文档评论(0)

1亿VIP精品文档

相关文档