FPGA 数字秒表的设计.docx
《FPGA 数字秒表的设计.docx》由会员分享,可在线阅读,更多相关《FPGA 数字秒表的设计.docx(12页珍藏版)》请在三一办公上搜索。
1、FPGA 数字秒表的设计学院 FPGA设计实践报告 题目: 数字秒表的设计 院系: 计算机与信息工程学院 专业: 电子科学与技术 年级 姓名: 学号: 指导老师: 一、课程设计目的: 本课程的授课对象是电子科学与技术专业本科生,是电子类专业的一门重要的实践课程,是理论与实践相结合的重要环节。本课程有助于培养学生的数字电路设计方法、掌握模块划分、工程设计思想与电路调试能力,为以后从事各种电路设计、制作与调试工作打下坚实的基础。 二、课程设计要求: l. 设计用于体育比赛用的数字秒表, 要求: 计时精度应大于l/100S, 计时器能显示1/100S的时间, 提供给计时器内部定时的时钟脉冲频率应大于
2、l00Hz, 这里选用 1kHz 。 计时器的最长计时时间为l小时, 为此需要一个6位的显示器, 显示的最长时间为59分59.99秒。 2. 设置有复位和起/停开关 复位开关用来使计时器清零, 并作好计时准备。 起/停开关的使用方法与传统的机械式计时器相同, 即按一下起/停开关, 启动计时器开始计时, 再按一下起/停开关计时终止。 复位开关可以在任何情况下使用, 即使在计时过程中, 只要按一下复位开关, 计时进程立刻终止, 并对计时器清零。 3. 复位和起/停开关应有内部消抖处理。 4. 采用VHDL语言用层次化设计方法设计符合上述功能要求的数字秒表。 5. 对电路进行功能仿真, 通过有关波形
3、确认电路设计是否正确。 6. 完成电路全部设计后, 通过系统实验箱下载验证设计课题的正确性。 三、系统组成与工作原理: 数字秒表框图: 1、电路原理图 : 2、工作原理: l.计时控制器作用是控制计时。计时控制器的输入信号是启动、暂停和清零。为符合惯例, 将启动和暂停功能设置在同一个按键上, 按一次是启动, 按第二次是暂停, 按第三次是继续。所以计时控制器共有2个开关输入信号, 即启动/暂停和清除。计时控制器输出信号为计数允许/保持信号和清零信号。 2. 计时电路的作用是计时, 其输入信号为lkHz 时钟、计数允许/保持和清零信号, 输出为l0ms、l00ms、s 和 min 的计时数据。 3
4、. 时基分频器是一个l0分频器, 产生l0ms周期的脉冲, 用于计时电路时钟信号。 4. 显示电路为动态扫描电路, 用以显示十分位、min、10s、s、100ms 和10ms 信号。 三、系统设计的实现: 要满足数字秒表的精度,首先应该获得精确的计时基准信号,这里的系统精度要求为l/100S, 计时器能显示1/100S的时间, 提供给计时器内部定时的时钟脉冲频率应大于l00Hz, 这里选用1kHz,因此每来1000个外界输入脉冲就输出一个频率,该频率的时间周期正好为0.01S,即先将外界脉冲进行1MHz100Hz的分频。 0.1s、1s、1min等计时单位之间的进位转换可以通过十进制与六进制计
5、数器来实现。每位计数器均能输出相应计时单位计数结果,其中十进制计数器可以实现0.01s、0.1s、1s和1min单位单元的计数;六进制可以实现10s、10min为单位的计数。由于秒表需要具有异步清零和启动/暂停功能,因此可以将每个计数器都设置异步清零和启动/暂停输入端口,再将各计数器进行级联,即可同步显示不同量度单位的计时内容,如图所示 图中,U0模块用于将外界脉冲进行1MHz100Hz的分频,从而得到0.01s的脉冲信号,U1用于实现0.1s的脉冲信号,U2用于实现1s的脉冲信号,U3和U4用于实现1min的脉冲信号,U5和U6用于实现1H的脉冲信号。除U0外,U1U6的CQ可驱动显示带译码
6、器的七段LED进行数字显示。 通过上述分析可知,数字秒表的构成实际上依赖于三个基本模块,即1MHz100Hz的分频模块、十进制计数器模块和六进制计数器模块,然后使用一个顶层模块将这些基本模块通过元件调用与映射的关系进行有机的结合。 总体流程图如下: Start 程序初始化 1、顶层模块程序 由于十进制计数器模块和六进制计数器模块会产生计数溢出信号,而这些溢出信号有可能作为下一计数器的时钟输入脉冲,因此在顶层模块程序结构体中需要定义相应的暂存计数溢出信号。顶层模块程序编写如下: -数字秒表的顶层模块程序miaobiao.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1
7、164.ALL; ENTITY miaobiao IS PORT(CLR:IN STD_LOGIC; -定义清零输入端 CLK:IN STD_LOGIC; -定义外界时钟脉冲输入端 ENA:IN STD_LOGIC; -定义启动/暂停输入端 DOUT:OUT STD_LOGIC_VECTOR(23 DOWNTO 0); -定义秒表显示输出端 END miaobiao; ARCHITECTURE ART OF miaobiao IS COMPONENT CLKGEN -定义3MHz到100Hz的分频计数器元件 PORT(CLK:IN STD_LOGIC; -定义3MHz到100Hz的分频计数器所
8、使用的端口 NEWCLK:OUT STD_LOGIC); END COMPONENT; COMPONENT CNT10 -定义十进制计数器元件 PORT(CLK,CLR,ENA:IN STD_LOGIC; -定义十进制计数器所使用的端口 CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC); END COMPONENT; COMPONENT CNT6 -定义六进制计数器元件 PORT(CLK,CLR,ENA:IN STD_LOGIC; -定义六进制计数器所使用的端口 CQ:OUT STD_LOGIC_VECTOR(3 DOW
9、NTO 0); CARRY_OUT:OUT STD_LOGIC); END COMPONENT; SIGNAL NEWCLK:STD_LOGIC; SIGNAL CARRY1:STD_LOGIC; SIGNAL CARRY2:STD_LOGIC; -暂存计数溢出信号 SIGNAL CARRY3:STD_LOGIC; SIGNAL CARRY4:STD_LOGIC; SIGNAL CARRY5:STD_LOGIC; BEGIN -使用元件例化语句,通过基本模块的级联实现数字秒表 U0:CLKGEN PORT MAP(CLK=CLK,NEWCLK=NEWCLK); U1:CNT10 PORT MA
10、P(CLK=NEWCLK,CLR=CLR,ENA=ENA, CQ=DOUT(3 DOWNTO 0),CARRY_OUT=CARRY1); U2:CNT10 PORT MAP(CLK=CARRY1,CLR=CLR,ENA=ENA, CQ=DOUT(7 DOWNTO 4),CARRY_OUT=CARRY2); U3:CNT10 PORT MAP(CLK=CARRY2,CLR=CLR,ENA=ENA, CQ=DOUT(11 DOWNTO 8),CARRY_OUT=CARRY3); U4:CNT6 PORT MAP(CLK=CARRY3,CLR=CLR,ENA=ENA, CQ=DOUT(15 DOWN
11、TO 12),CARRY_OUT=CARRY4); U5:CNT10 PORT MAP(CLK=CARRY4,CLR=CLR,ENA=ENA, CQ=DOUT(19 DOWNTO 16),CARRY_OUT=CARRY5); U6:CNT6 PORT MAP(CLK=CARRY5,CLR=CLR,ENA=ENA, CQ=DOUT(23 DOWNTO 20); END ART; 顶层仿真波形: 2、 50MHz1kHz分频模块程序 50MHz1kHz分频模块程序流程图如图所示,使用VHDL编写程序时,在实体中应定义1kMHz的时钟频率输入端和100Hz的时钟脉冲输出端。 1KHz时钟输入 每来一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 数字秒表的设计 数字 秒表 设计
链接地址:https://www.31ppt.com/p-3157256.html