已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深深 圳圳 大大 学学 实实 验验 报报 告告 课程名称 课程名称 基于基于 VHDL 编程的编程的 FPGA 设计设计 实验名称 实验名称 多功能秒表计数器多功能秒表计数器 学院 学院 信息工程学院信息工程学院 专业 专业 电子信息工程电子信息工程 班级 班级 20102010 级电子级电子 2 2 班班 组号 组号 指导教师指导教师 报告人 报告人 学号学号 实验时间 实验时间 2012 年年 11 月月 16 日日 星期星期 三三 实验地点实验地点 南区南区 N411 实验报告提交时间 实验报告提交时间 2012 11 28 实验要求 题目 多功能秒表计数器多功能秒表计数器 基本基本要求要求 必选 必选 设计一个秒表 它具有计时功能 此秒表有两个按键 reset start 按下 reset 键 后 秒表清零 按下 start 键后 开始计时 再次按下 start 键后 停止计时 用 FPGA 开发板上的两 个七段数码管显示时间 以秒为单位 计时由 0 到 99 循环 高级要求 可选 高级要求 可选 实现基本要求的前提下 增加一个按键 select 用于轮流切换两个七段数码管分 别显示百分之一秒 秒 或对于 Nexys2 和 Nexy3 开发板 按下 select 键之后 四个七段数码管同时显 示秒和百分之一秒 规格说明 规格说明 1 通过按下 reset 键 将秒表清零 准备计时 等检测到 start 键按下并松开后 开始计时 如果再 次检测到 start 键按下并松开后 停止计时 通过不断检测 start 键 来确定秒表是否开始计时 2 在秒表计时时 七段数码管能够循环的由 00 99 00 99 3 开始默认两个七段数码管显示秒 在检测到 select 键按下并松开后 数码管切换到显示百分之一秒 当再次检测到 select 键按下并松开后 数码管切换到重新显示秒 4 在秒表停止时 数码管依然能够正常切换显示秒 百分之一秒 5 本实验使用 FPGA 开发板 Nexys2 或 Nexys3 或旧板 建 project 时 需要选择该芯片的型号 实验内容 A VHDLA VHDL 程序代码 library IEEE use IEEE STD LOGIC 1164 ALL entity Counter is Generic N integer 250000 Port clk reset start sel in std logic ANO out std logic vector 3 downto 0 digit out std logic vector 7 downto 0 end Counter architecture Behavioral of Counter is signal Clk 1hz std logic 0 signal Clk 1Hhz std logic 0 signal Clk 1Khz std logic 0 signal digit3 integer range 0 to 10 0 signal digit2 integer range 0 to 10 0 signal digit1 integer range 0 to 10 0 signal digit0 integer range 0 to 10 0 signal R flag integer range 0 to 10 0 signal S flag integer range 0 to 10 0 signal X flag integer range 0 to 10 0 begin 分频器 process clk variable count0 integer range 0 to 25000000 0 variable count1 integer range 0 to 25000000 0 variable count2 integer range 0 to 25000000 0 begin if clk event and clk 1 then count0 count0 1 count1 count1 1 count2 count2 1 频率 秒 if count0 24999999 then Clk 1hz not Clk 1hz count0 0 end if 频率 秒 频率 白分秒 if count1 249999 then Clk 1Hhz not Clk 1Hhz count1 0 end if 频率 白分秒 频率 数码管 if count2 24999 then Clk 1Khz not Clk 1Khz count2 0 end if 频率 数码管 end if end process 分频器 reset 按键 process clk reset variable count integer range 0 to 25000000 0 begin if clk event and clk 1 then if reset 1 then 消抖处理 if count N then count 0 else count count 1 end if if count N 1 then 消抖处理 if reset 1 then R flag 1 end if end if else R flag 0 end if end if end process reset 按键 start 按键 process clk start begin if start event and start 0 then S flag S flag 1 if S flag 2 then S flag 0 end if end if end process start 按键 select 按键 process clk sel begin if sel event and sel 0 then X flag X flag 1 if X flag 1 then X flag digit3 digit3 digit2 digit2 digit1 digit1 digit0 digit0 digit0 1 if digit0 9 then digit0 0 digit1 digit1 1 if digit1 9 then digit1 0 digit2 digit2 1 if digit2 9 then digit2 0 digit3 digit3 1 if digit3 9 then digit3 NULL end case end if end process 按键处理 数码管显示处理 process Clk 1Khz variable Tdigit std logic vector 7 end if end process select 按键 按键处理 process clk Clk 1Hhz variable Model integer range 0 to 10 1 begin if R flag 1 then Model 1 elsif S flag 0 then Model 2 elsif S flag 1 then Model 3 end if if Clk 1Hhz event and Clk 1Hhz 1 then case Model is when 1 digit3 0 digit2 0 digit1 0 digit0 Tdigit 00000011 when 1 Tdigit 10011111 when 2 Tdigit 00100101 when 3 Tdigit 00001101 when 4 Tdigit 10011001 when 5 Tdigit 01001001 when 6 Tdigit 01000001 when 7 Tdigit 00011111 when 8 Tdigit 00000001 when 9 Tdigit 00001001 when others NULL end case end if ANO TANO digit Tdigit end process 数码管显示处理 end Behavioral D flag 3 TANO 1111 Temp digit0 end if end if B VHDLB VHDL 测试代码 LIBRARY ieee USE ieee std logic 1164 ALL ENTITY Test IS END Test ARCHITECTURE behavior OF Test IS Component Declaration for the Unit Under Test UUT COMPONENT Counter PORT clk IN std logic reset IN std logic Inputs signal clk std logic 0 signal reset std logic 0 signal start std logic 0 signal sel std logic 0 Outputs signal ANO std logic vector 3 downto 0 signal digit std logic vector 7 downto 0 period definitions constant clk period time 10 ns constant reset period time 500 ns constant start period time 1000 ns constant sel period time 1500 ns BEGIN start IN std logic sel IN std logic ANO OUT std logic vector 3 downto 0 digit OUT std logic vector 7 downto 0 END COMPONENT begin reset 0 wait for reset period 2 reset 1 wait for reset period 2 end process start process definitions start process process begin start 0 wait for start period 2 start 1 wait for start period 2 end process sel process definitions sel process process begin sel 0 wait for sel period 2 sel clk reset reset start start sel sel ANO ANO digit digit Clock process definitions clk process process begin clk 0 wait for clk period 2 clk 1 wait for clk period 2 end process reset process definitions reset process process wait for sel period 2 end process Stimulus process stim proc process begin hold reset state for 100 ns wait for 100 ns wait for clk period 10 insert stimulus here wait end process END 综合后的仿真波形 仿真波形 布局布线后的仿真波形 仿真波形 实验图片 实验图片 ASMASM 图图 实验过程分析 一 代码分析 I I 时钟分频器分析 时钟分频器分析 秒表共用到两个时钟频率 100hz 和 1000hz FPGA 板子上提供的是 50Mhz 的时钟频率 采用分频器 的 思想可将其分为 100hz 和 1000hz 供时钟计数和数码管扫描使用 II II 按键标志分析 按键标志分析 对 复位键 开始 停止键 选择键 进行状态标志 以便在另一个 Process 中对标志进行处理 III III 按键处理分析 按键处理分析 对于按键标志的状态进行处理 分别列出不同状态下的 Model 值 再采用 case 语句进行条件分析 并 作出不同的功能操作 IV IV 数码管显示处理分析 数码管显示处理分析 采用 1000hz 的频率对数码管进行扫描输出 其中包括对 选择键 的判断 即数码管以两位显示 还 是以四位显示 V V 按键消抖分析 按键消抖分析 通过计数延时的方法进行按键消抖操作 2 仿真分析与实验结果对照 通过仿真图像的分析以及实验结果的对照 满足了设计的要求 做到了通过按下 reset 键 将秒表清零 准备计时 等检测到 start 键按下并松开后 开始计时 如果再次检测到 start 键按下并松开后 停止 计时 通过不断检测 start 键 来确定秒表是否开始计时 在秒表计时时 七段数码管能够循环的由 00 99 00 99 开始默认两个七段数码管显示秒 在检测到 select 键按下并松开后 数码管切换到 显示百分之一秒 当再次检测到 select 键按下并松开后 数码管切换到重新显示秒 在秒表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年施工员之装饰施工专业管理实务通关提分题库(考点梳理)
- 2020-2025年企业人力资源管理师之三级人力资源管理师考前冲刺试卷A卷含答案
- 2026年医院院内生态堆肥示范项目合同
- 2026年建筑项目分包合同
- DB11∕T 1374-2016 公路动态车辆称重设备技术要求及检验方法
- 出国延期入学申请书模板
- 初创项目入驻申请书
- 舞蹈专业要毕业论文么
- 船舶碰撞赔偿申请书模板
- 大二学生实习面试技巧
- 《新闻学概论》试题及参考答案
- 2026年高考数学一轮复习三维设计创新-微突破 嵌套函数的零点问题
- 传染病防治法课件讲解
- 一科一品胸外科护理
- 新媒体文案写作教程(第二版)课件 项目七 直播文案写作 课件
- 高中英语3500词汇表
- 2025年康复治疗技术考试题库及答案
- 2025年学习宪法知识竞赛试题100题及答案
- 《矿产资源开发利用方案编制指南》
- 全国大学生职业规划大赛《能源动力类》专业生涯发展展示
- 电气识图与CAD制图课件:常用电气元件的识图与制图
评论
0/150
提交评论