基于vhdl数字秒表_第1页
基于vhdl数字秒表_第2页
基于vhdl数字秒表_第3页
基于vhdl数字秒表_第4页
基于vhdl数字秒表_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 VHDLVHDL 语言的数字秒表实现语言的数字秒表实现 1 1 设计方案设计方案 1 1 1 1 系统功能要求系统功能要求 设计一块数字秒表 能够精确反映计时时间 并完成复位 计时功能 秒表 计时的最大范围为 1 小时 精度为 0 01 秒 并可显示计时时间的分 秒 0 1 秒等度量 1 具有秒表系统功能要求显示功能 用6个数码管分别显示分 秒 0 01秒 计时范围 为00 00 00 59 59 99 2 计时精度是0 01s 3 具有启 停开关 复位开关 1 1 2 2 总体框图总体框图 根据系统设计要求 系统的底层设计主要由六十进制计数器模块 二十四进制计数器 模块 分频模块 LED显示模块组成 系统顶层设计图如图所示 图中左边为三个输入信号en clk reset 分为启 停开关 时钟信号和复位开关 主要模块有 模60计数器 count60 模100计数器 count100 分频器 clk div 复位控制 control 译码器 yima 防抖模块 fdou 状态变换模块 change 右边是六个LED显示输出信号 2 2 模块功能设计模块功能设计 由模60计数器模块与模100计数器模块进行计数 实验室仪器可产生标准的1kHz的时 钟信号 通过分频器模块产生所需的100Hz的时钟信号 复位模块可进行计数器复位操作 译码器是为了将四位二进制信号转换为LED所需的七位二进制编码 防抖模块用于消除用户 按键时的抖动消除 为方便仿真 此处原始时钟信号3周期以上可产生信号 状态变换模块 是为了用户按键后信号的变换及保持 2 2 1 1 模模6060计数器计数器 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY count60 IS PORT en Reset clk in STD LOGIC qa out STD LOGIC VECTOR 3 DOWNTO 0 qb out STD LOGIC VECTOR 3 DOWNTO 0 rco OUT STD LOGIC END count60 ARCHITECTURE a OF count60 IS BEGIN process clk variable tma STD LOGIC VECTOR 3 DOWNTO 0 variable tmb STD LOGIC VECTOR 3 DOWNTO 0 begin If Reset 0 then tma 0000 tmb 0000 elsif clk event and clk 1 then if en 1 then rco tmb 2 and tmb 0 and tma 3 and tma 0 if tma 1001 then tma 0000 if tmb 0101 then tmb 0000 else tmb tmb 1 end if else tma tma 1 end if end if end if qa tma qb tmb end process END a 2 2 2 2 模模100100计数器计数器 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY count100 IS PORT en Reset clk in STD LOGIC qa out STD LOGIC VECTOR 3 DOWNTO 0 qb out STD LOGIC VECTOR 3 DOWNTO 0 rco OUT STD LOGIC END count100 ARCHITECTURE a OF count100 IS BEGIN process clk variable tma STD LOGIC VECTOR 3 DOWNTO 0 variable tmb STD LOGIC VECTOR 3 DOWNTO 0 begin If Reset 0 then tma 0000 tmb 0000 elsif clk event and clk 1 then if en 1 then rco tmb 3 and tmb 0 and tma 3 and tma 0 if tma 1001 then tma 0000 if tmb 1001 then tmb 0000 else tmb tmb 1 end if else tma tma 1 end if end if end if qa tma qb tmb end process END a 2 2 3 3 分频器模块分频器模块 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC ARITH ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY clk div IS PORT clk IN STD LOGIC clk out OUT STD LOGIC END clk div ARCHITECTURE rtl OF clk div IS SIGNAL clk temp STD LOGIC BEGIN PROCESS clk VARIABLE counter INTEGER RANGE 0 TO 15 BEGIN IF clk EVENT AND clk 1 THEN IF counter 9 THEN Counter 0 Clk out 1 ELSE Counter counter 1 Clk out 0 END IF END IF END PROCESS END rtl 2 2 4 4 复位控制复位控制 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY control IS PORT CLK RST in std logic CLK OUT out std logic END control ARCHITECTURE behav OF control IS signal clk data std logic SIGNAL CNT INTEGER 0 BEGIN PROCESS CLK BEGIN IF RST 0 THEN CNT 0 ELSIF CLK EVENT AND CLK 1 THEN IF CNT 2 THEN clk data NOT clk data CNT 0 ELSE CNT CNT 1 END IF END IF CLK OUTledledledledledledledledledledled 0000000 end case end process END a 2 2 6 6 防抖模块防抖模块 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC ARITH ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY fdou IS PORT CLK DIN IN STD LOGIC DOUT OUT STD LOGIC END ENTITY fdou ARCHITECTURE ARC OF fdou IS SIGNAL CP STD LOGIC SIGNAL JSQ INTEGER RANGE 0 TO 3 BEGIN PROCESS CLK BEGIN IF CLK EVENT AND CLK 1 THEN IF DIN 1 THEN IF JSQ 3 THEN JSQ JSQ ELSE JSQ JSQ 1 END IF IF JSQ 1 THEN CP 1 ELSE CP 0 END IF ELSE JSQ 0 END IF END IF DOUT CP END PROCESS END ARC 2 2 7 7 状态变换模块状态变换模块 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC ARITH ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY change IS PORT clk in clk IN STD LOGIC clk out OUT STD LOGIC END ENTITY change ARCHITECTURE a OF change IS SIGNAL cp STD LOGIC BEGIN PROCESS CLK BEGIN IF CLK EVENT AND CLK 1 THEN IF clk in 1 THEN cp 0 ELSE cp 1 END IF END IF clk out CP END PROCESS END a 3 3仿真波形及分析仿真波形及分析 各部分模块完成后 用Quartus 对程序编译 仿真 得到的仿真波形 各模块仿真波形及 顶层仿真波形如下 3 13 1模模6060计数器模块仿真计数器模块仿真 clk 时钟信号 rst 复位信号 低电平清零 en 置数端 低电平不让它继续计数 qb qa 分别为输出数的十位个位 qb 取值范围为 0 5 qa 取值范围为 0 9 rco 进位信号 当 qb 5 qa 9 rco 0 时 clk 上升沿来到后 qb 0 qa 0 rco 1 当 qb 0 qa 0 rco 1 时 clk 上升沿来到后 qb 0 qa 1 rco 0 3 23 2模模100100计数器模块仿真计数器模块仿真 clk 时钟信号 cst 复位信号 低电平清零 en 置数端 低电平不让它继续计数 qb qa 分别为输出数的十位个位 qb 取值范围为 0 9 qa 取值范围为 0 9 rco 进位信号 当 qb 9 qa 9 rco 0 时 clk 上升沿来到后 qb 0 qa 0 rco 1 当 qb 0 qa 0 rco 1 时 clk 上升沿来到后 qb 0 qa 1 rco 0 3 33 3分频器模块仿真分频器模块仿真 因时钟脉冲 为1khz 通过分频器分频后频率 为100hz cLK 输入分频前的时钟信号 clk out 输出分频后的时钟信号 3 43 4 复位模块仿真复位模块仿真 clk 时钟信号 clk out 输出信号 rst 复位信号 3 53 5 译码器模块仿真译码器模块仿真 num 3 0 输入标准四位二进制码 led 6 0 输出七位二进制码 控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论