数字跑表实验报告_第1页
数字跑表实验报告_第2页
数字跑表实验报告_第3页
数字跑表实验报告_第4页
数字跑表实验报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1 / 13 数字跑表实验报告 XXX 大 学 实 验 报 告 实 验 课 程 名 称: 院系名称: 信 专业名称:实验项目名称: 息 学 院 班级: XXX 学号: XXXX 报告人: XXXXX 实验二 数字跑表 一、实验目的: 1、学会利用 quartus的宏单元和所学的数字电路的知识,搭建复杂一点的数字电路或系统; 2、学会使用 EDA 实验箱,下载验证所设计电路。 二、实验原理: 跑表的原理图及简要说明 图一:数字跑表输入输出示意图 输入有三个信号, CLR=1时清零, CLR=0时跑表从零开始计数;时钟信号 CLK,周期为秒;当 PAUSE=0 时跑表暂停计数, PAUSE=1 时跑表从当前值继续计数。输出分别为分钟、秒钟、百分秒的 BCD 码,各用数码管显示。 三、原理图 图二:总体原理图 A 图三:总体原理图 B 2 / 13 原理图主要由 3 个计数器各自连接其译码器构成。其中两个模 60 的分别输出分钟、秒钟,还有一个模 100 的输出百分秒。全 原理图采用串行接法,外加一个总体清零端,另一个时钟信号使能端作为 PAUSE 信号输入。这个原理图缺陷上还没有接分频器。 图四:模 60计数器 模 60计数器采用串行进位,部分异步清零接法。 图五:模 100计数器 模 100计数器采用串行进位,不需要清零接法。 四、设计的仿真结果 以下均采用功能仿真。 图六:数字跑表波形仿真 A 图七:数字跑表波形仿真 B 图八:数字跑表波形仿真 C 五、设计心得 1、掌握了计数器的设计方法后,只要将计数级联或者是并联就可以实现跑表的计数。 2、如果要显示计数数字,必须接上显示译码器和数码管。 3、一个与门可以实现暂停功能。 4、特别注意所选用的计数器芯片是同步清零还是异步清零,是同步置数还是异步置数,各自有对应的方法。 5、用参数化宏单元实现更简单。 6、分层设计使原3 / 13 理图更加简洁明了。 六、思考题 1、什么是同步清零和异步清零? 答:同步清零需要时钟沿的配合,当敏感信号为有效信号时还需要等待时钟沿的到来才能清 零计数。 异步清零不需要时钟沿的配合,当敏感信号为有效信号时直接清零计数。 2、 BCD 计数器和一般二进制计数器有何差别? 答: BCD 计数器一般是模 10 的,模并不是 2 的 N 次方。 一般二进制计数器有几位输出,模就是 2的几次方。 Logo Sina:Jennifer-tth FPGA设计实践 报告 基于 FPGA 数字跑表 专 班业: 电子信息工程 级: 电子 xxx班 学生学号: xxxx 学生姓名: xxxx 指导教师: xxxx 完成时间: 2016 年 5月 8 日 数字跑表设计 4 / 13 一、设计概述 FPGA,即现场可编程门阵列,它是在PAL、 GAL、 CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 Verilog HDL 语言是在 C语言的基础上发展而来的。从语法结构上看, Verilog HDL 继承和借鉴了 C 语言的很多语法, 两者有许多的相似之处,但 Verilog HDL作为一种硬件描述语言,还是有本质的区别。即可适用于综合的电路设计,也可胜任电路和系统的仿真;能在多层次上对所设计的系统加以描述,从开关级、门级,寄存器传输级到行为级等都可以担任,而且没规模限制;灵活多变的电路描述风格,可进行行为描述,也可进行结构描述等,应用十分的广泛。 Quartus软件是 Atlera 的 CPLD/FPGA 集成开发软件,具有完善的可视化设计环境,并具有标准的 EDA工具接口,基于Quartus进行 EDA设计开发需要以下步骤 :设计输入、编译、仿真 、编程与验证等。 本次通过 Verilog HDL语言编写一个具有“百分秒、秒、分”计时功能的数字跑表,可以实现一个小时内精确至百分之一秒的计时器。数字跑表的显示可以通过编写数码管显示模块程序来实现,设计实现计数及进位的功能,通过几个 always 模块的设计实现一个特定用途的电子产品 -5 / 13 数字跑表。 二、设计功能 数字跑表是生活中常见的一种电子产品,特别应用与体育比赛中。本数字跑表是通过按键来控制计时的开始和结束,一个是复位控制按键,用于设计跑表为初始零状态;另一个则是开 始 /停止控制按键,在复位控制无效的情况下,按一下开始 /停止键则计时器开始计时,再按一下则暂停计时,再按一下则继续计时。下面是其功能图: 具体性能如下: 跑表的计时范围为,计时精度为 10ms; 具有异步复位清零、启动、计时和暂停功能; 输入时钟频率为 100Hz; 要求数字跑表的输出能够直接驱动共阴极 7 段数码管显示 . 实现要求: 分析功能要求,划分功能模 块; 编写各模块的 VerilogHDL 语言的设计程序; 在 Quartus软件上完成设计和仿真; 根据实验室 FPGA芯片,将设计生成配置文件,然后将配置文件 下载到实验装置上运行,操作实验装置上设定的功6 / 13 能按键,验 证设计功能。 三、设计方案 本次设计的跑表首先要从最低位的百分秒计数器开始,按照系统时钟进行计数。百分位计数到 100后向秒计数器进位,秒计数器以百分秒计数器的进位位为时钟进行计数。秒计数到 60 后向分计数器进位,分计数器以秒计数器的进位位为时钟进行计数。数字跑表巧妙地运用进位位作为时 钟来减少了计数的位数。 数字跑表提供了清零位 CLR 和暂停 /开始位 PAUSE,百分秒的时钟信号可以通过系统时钟分频提供。分频至100Hz,即可实现时间计数。 具体程序设计分为两个大模块。主要模块说明功能的分配、内部功能块和对外接口关系,功能模块具体控制实际的逻辑功能和具体的实现。 主模块 在主程序模块中包括两部分,第一部分是VerilogHDL程序的逻辑结构。用 if.else以及进位来实现百分秒计满到 99进位到秒,当秒满 59时进位到分,分满 59以后归 0.第二 部分是 LDE 显示部分。 时钟模块 第二大模块是时钟分频模块,本实验利用开发板上7 / 13 50MHz的时钟频率,通过分频程序将其分成所要求的 100Hz。通过计算得到需要利用 500000 分之一的分频,但是分频后快半秒,时钟是翻转后的一个高电平和一个低电平所以,最后分频是 250000 分之一分频。这样就刚好是正常的时间跳变速度。 四、程序分析 下面是程序的主要流程图: /*信号定义 CLK: 时钟信号; CLR: 异步复位信号; PAUSE:暂停 /启动信号; */ module h ; input clk,clr; input pause; output 6:0led1; output 6:0led2; output 6:0led3; output 6:0led4; output 6:0led5; output 6:0led6; output 3:0 msh,msl,sh,sl,mh,ml; reg 6:0led1; reg 6:0led2; 8 / 13 reg 6:0led3; reg 6:0led4; reg 6:0led5; reg 6:0led6; reg3:0 msh,msl,sh,sl,mh,ml; reg cn1,cn2; /cn1 为百分秒向秒的进位, cn2为秒向分的进位 /百分秒计数进程,每计满 100, cn1 产生一个进位 1 always begin if/异步复位 begin msh,msl cn1 end else if /PAUSE 为 0时正常计数,为 1时暂时计数 begin if begin msl begin msh end else /低位计数到 10,高位未计数到 10 时,高位计数 msh end else begin /低位计数未到 10 时,继续计数 msl 电 9 / 13 子 科 技 大 学 基于 FPGA 的数字系统设计 数字跑表的设计 学生姓名: 学 号: 指导教师: 摘要 本文利用 XILINX-ISE 开发软件和 XILINX EDA 教学实验开发板实现数字跑表的开始、暂停以及复位等功能。 ISE工程利用 VHDL 语言编写,单模块包含时钟分频进程、始能及清零进程、时钟数据产生进程、位码产生进程和显示进程;分模块设计包含时钟分频模块、控制模块、计数器模块、显示模块。计时区间 00 00 00到 59 59 99。 课余设计的单模块源程序: library IEEE; use _LOGIC_; use _LOGIC_; use _LOGIC_; - Uncomment the following library declaration if instantiating - any Xilinx primitives in this code. -library UNISIM; 10 / 13 -use ; entity paobiao is Port ; wei : out STD_LOGIC_VECTOR ; enout : out STD_LOGIC); end paobiao; architecture Behavioral of paobiao is signal cnt100: integer range 1 to 240000; signal cnt1k: integer range 1 to 24000; signal clk100: std_logic:=0; signal clk1k : std_logic:=0; signal en: std_logic:=0; signal d1: integer range 0 to 5:=0; signal d2: integer range 0 to 9:=0; signal d3: integer range 0 to 5:=0; signal d4: integer range 0 to 9:=0; signal d5: integer range 0 to 9:=0; signal d6: integer range 0 to 9:=0; signal num: integer range 1 to 6:=1; begin enout process begin 11 / 13 if clkinevent and clkin=1 then if cnt100=240000 then cnt100 clk100 else cnt100 end if; if cnt1k=24000 then cnt1k clk1k else cnt1k end if; end if; end process; process begin if clear=0 then en else if enableevent and enable=1 then en end if; end if; end process; process begin if clear=0 then d1 d2 d3 d4 d5 d6 - en else 12 / 13 if en=1 and clk100event and clk100=1 then if d6=9 then d6 if d5=9 thend5 variable data: integer range 0 to 9; begin case num is when 1 = wei wei wei wei wei wei case data is when 0 = seg seg seg seg seg seg seg seg seg seg end process; end Behavioral; 管脚分配 NET clkin LOC = T8; NET enout LOC =

温馨提示

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

评论

0/150

提交评论