收藏 分享(赏)

FPGA课程设计多功能数字钟.doc

上传人:精品资料 文档编号:10681409 上传时间:2019-12-23 格式:DOC 页数:21 大小:2.32MB
下载 相关 举报
FPGA课程设计多功能数字钟.doc_第1页
第1页 / 共21页
FPGA课程设计多功能数字钟.doc_第2页
第2页 / 共21页
FPGA课程设计多功能数字钟.doc_第3页
第3页 / 共21页
FPGA课程设计多功能数字钟.doc_第4页
第4页 / 共21页
FPGA课程设计多功能数字钟.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、多功能数字钟开课学期:20142015 学年第二学期课程名称: FPGA 课程设计 学 院: 信息科学与工程学院 专 业: 集成电路设计与集成系统 班 级: 学 号: 姓 名: 任课教师: 2015 年 7 月 21 日1说 明一、 论文书写要求与说明1. 严格按照模板进行书写。自己可以自行修改标题的题目2. 关于字体:a) 题目:三号黑体加粗。b) 正文:小四号宋体,行距为 1.25倍。3. 严禁抄袭和雷同,一经发现,成绩即判定为不及格!二、 设计提交说明1. 设计需要提交“电子稿”和“打印稿” ;2. “打印稿”包括封面、说明(即本页内容) 、设计内容三部分;订书机左边装订。3. “电子稿

2、”上交:文件名为 “FPGA 课程设计报告-班级-学号-姓名.doc”,所有报告发送给班长,由班长统一打包后统一发送到付小倩老师。4. “打印稿”由班长收齐后交到:12 教 305办公室;5. 上交截止日期:2015 年 7月 31日 17:00之前。2第一章 绪论 .3关键词:FPGA,数字钟 .3第二章 FPGA 的相关介绍 .42.1 FPGA 概述 42.2 FPGA 特点 .42.3 FPGA 设计注意 .5第三章 Quartus II 与 Verilog HDL 相关介绍 73.1 Quartus II 73.2 Verilog HDL 7第四章 设计方案 .84.1 数字钟的工作

3、原理 .84.2 按键消抖 84.3 时钟复位 .84.4 时钟校时 .84.5 数码管显示模块。 .8第五章 方案实现与验证 .95.1 产生秒脉冲 .95.2 秒个位进位 .95.3 按键消抖 .95.4 复位按键设置 .105.5 数码管显示。 105.6 RTL 结构总图 11第六章 实验总结 .13第七章 Verilog HDL 源代码附录 143第一章 绪论现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代

4、表就是电子设计自动化(electronic design automatic, EDA)技术。本设计采用的 VHDL 是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级这三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛。ASIC 是专用的系统集成电路,是一种带有逻辑处理的加速处理器;而 FPGA 是特殊的 ASIC 芯片,与其它的 ASIC 芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。在控制系统中,键盘是常用的人机交换接口

5、,当所设置的功能键或数字键按下的时候,系统应该完成该键所对应的功能。因此,按键信息输入是与软件结构密切相关的过程。根据键盘结构的不同,采用不同的编码方法,但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。1钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些都是以钟表数字化为基础的。因此研究数字钟以及扩大其应用有着非常现实的意义。关键词:FPGA,数字钟4第二章 FPGA 的相关介绍FPGA(FieldProgrammable G

6、ate Array) ,即现场可编程门阵列,它是在PAL、 GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。2.1 FPGA 概述系统设计师可以根据需要通过可编辑的连接把 FPGA 内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品 FPGA 的逻辑块和连接可以按照设计者而改变,所以 FPGA 可以完成所需要的逻辑功能。FPGA 一般由 3 种可编程电路和一个用于存放编程数据的静态存储器 SRAM 组成。这 3 种可编程电路是:可

7、编程逻辑模块(CLB-Configurable Logic Block) 、输入/输出模块(IOB-I/O Block)和互连资源( IRInterconnect Resource) 。可编程逻辑模块CLB 是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个 CLB 之间或 CLB、IOB 之间以及 IOB 之间连接起来,构成特定功能的电路。FPGA 一般来说比 ASIC(专用集成芯片)的速度要慢,无法完成复杂的

8、设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的 FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的 FPGA 上完成的,然后将设计转移到一个类似于 ASIC 的芯片上。另外一种方法是用 CPLD(复杂可编程逻辑器件备) 。 2.2 FPGA 特点FPGA 的基本特点主要有:1)采用 FPGA 设计 ASIC 电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA 可做其它全定制或半定制 ASIC 电路的中试样片。53)FPGA 内部有丰富的触发器和 IO 引脚。4)F

9、PGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、TTL 电平兼容。可以说,FPGA 芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。编程互连资源 IR 可以将 FPGA 内部的 CLB 和 CLB 之间、CLB 和 IOB 之间连接起来,构成各种具有复杂功能的系统。FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的,因此,工作时需要对片内的 RAM 进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中,配置完成

10、后,FPGA 进入工作状态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA 的编程无须专用的 FPGA 编程器,只须用通用的EPROM、PROM 编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA 的使用非常灵活。FPGA 有多种配置模式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模式可以支持一片 PROM 编程多片 FPGA;串行模式可以采用串行 PROM 编程 FPGA;外设模式可以将 FPGA 作为微处理器的外设,由微处理器对其编程。

11、2.3 FPGA 设计注意不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了 FPGA,你就很可能需要努力解决好器件配置、电源管理、IP 集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的 FPGA 公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。本次实验所采用的 FPGA 器件是 Altera Cyclone V 5CSEMA5F31C6N6FPGA 实物图FPGA 数码管介绍,每节数码管低电平点亮高电平熄灭。LED

12、 序号如下图所示:根据上图所示的顺序,可以得出显示的数组代码。4d0: HEX0=7b1000000; /0 低电平点亮高电平熄灭74d1: HEX0=7b1111001; /14d2: HEX0=7b0100100; /24d3: HEX0=7b0110000; /34d4: HEX0=7b0011001; /44d5: HEX0=7b0010010; /54d6: HEX0=7b0000010; /64d7: HEX0=7b1111000; /74d8: HEX0=7b0000000; /84d9: HEX0=7b0010000; /9default: HEX0=7b1111111; /不

13、符合条件的显示零第三章 Quartus II 与 Verilog HDL 相关介绍3.1 Quartus IIQuartus II 是 Altera 公司的综合性 PLD/FPGA 开发软件,原理图、VHDL、VerilogHDL 以及 AHDL(Altera Hardware 支持 Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设

14、计速度。对第三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 EDA 工具。Quartus II 软件拥有友好的界面,使用便捷,功能强大,当中可编程逻辑设计环境采用完成集成化,是先进的 EDA 工具软件。该软件具备诸多特点(例如:开放性,与结构无联系,多平台设计,完全集成化,设计库丰富、工具模块化等) ,支持原理图、VHDL、VerilogHDL 以及 AHDL 等多种设计输入形式。Quartus II 能够在多系统上使用,为用户的设计方式提供了完善的图形界面。具有运行速度快,界面统一,功能集中,学用简单等特点。8图形或H D L 编辑A n a l y s i s

15、 if(count=32d50000000) /产生一个一秒的脉冲,begincount=0;count_s0=count_s0+1; /秒个位计数end如代码展现,当计数器 count 记到 50000000 个时钟上升沿的时候,向秒个位进 1.105.2 秒个位进位if(count_s0=4d10)begincount_s0=0;count_s1=count_s1+1; /产生秒十位进位end当秒的个位计数到 10 的时候,向秒的十位进位。5.3 按键消抖if (!inrst_m0)count0=count0+1;if(count0=32d8000000 count_m0=count_m0

16、+1;end对时钟秒冲进行计数,计数达到 8000000 时,判断此时的电平是否为 0,若还是为0,则判断按键按下,执行分钟个位加 1 操作。5.4 复位按键设置beginif (!reset) /按键按下为逻辑 0begincount=0; /复位置零count_s0=0;count_s1=0;count_m0=0;count_m1=0;count_h0=0;count_h1=0;endelse11复位按键按下后所有位置零。5.5 数码管显示。always(count_s0) /秒个位显示begincase(count_s0)4d0: HEX0=7b1000000; /0 低电平点亮高电平熄

17、灭4d1: HEX0=7b1111001; /14d2: HEX0=7b0100100; /24d3: HEX0=7b0110000; /34d4: HEX0=7b0011001; /44d5: HEX0=7b0010010; /54d6: HEX0=7b0000010; /64d7: HEX0=7b1111000; /74d8: HEX0=7b0000000; /84d9: HEX0=7b0010000; /9default: HEX0=7b1111111; /不符合条件的显示零endcaseend5.6 RTL 结构总图显示部分如下图:12判断主体如下图:部分引脚图展现1314最终实验现象

18、:15第 6 章 实验总结其实本次的多功能数字钟设计其实应该还有很多其他的方法,比如用到外部中断功能进行时钟的校时,采用按键输入加数码管闪烁的方式进行校时位的选择,但限于时间较短,这部分知识空白,所以本次设计实有所缺陷。经历了本次 FPGA 的设计,有很多感受,首先就是看了一点数字钟设计方面的资料,遇到很多不理解的地方,于是就需要再和同学进行研究讨论,在讨论的过程中,能听到其他人的思路,感觉特别有意思,同样的功能,实现的方法有许许多多,努力把自己的想法实现,或是选择一种你喜欢的设计借鉴一下,两者都是很好的选择。通过这次设计实验,着实培养了我们独立思考、解决问题的能力,从最一开始的一筹莫展,没有

19、一点思路,感觉像平底拔楼一样,从两手空空到产生一个控制电路,从无到有,这是创造的力量。同时,和其他同学讨论的过程也很重要,要说的还有就是最后实验成功的喜悦是无可替代的,就好像你亲手种的果树长出了果实,养的鸡下了鸡蛋,是一种创造的喜悦,整个心就像是一个大箱子里面放着一块糖,隐隐约约总能感觉到一丝甜蜜。数码管显示的数字钟是常见的技术,这次基于 FPGA 的多功能数字钟设计具有很高的工程价值和现实意义。让我们将知识服务于生活,将知识用于实践,锻炼了我们发现问题解决问题的能力。这次 FPGA 的多功能数字钟设计,加深了我们对 FPGA 设计的理解,培养了我们的逻辑思维和动手操作能力,使我们将知识与技能

20、链接起来,使我们每个人的都在不断进步,提高了专业技能,提高了动手实践的综合能力。16第 7 章 Verilog HDL 源代码附录module clock (reset,inrst_m0,inrst_h0,clk,HEX0,HEX1,HEX2,HEX3,HEX4,HEX5);input clk,reset,inrst_m0,inrst_h0;output reg 6:0 HEX0,HEX1,HEX2,HEX3,HEX4,HEX5;reg 31:0 count=0,count0=0,count1=0; /实际宽度为 25reg 3:0 count_s0=0,count_s1=0,count_m0

21、=0,count_m1=0,count_h0=0,count_h1=0;always(posedge clk)beginif (!inrst_m0)count0=count0+1;if(count0=32d8000000 count_m0=count_m0+1;endif (!inrst_h0)count1=count1+1;if(count1=32d8000000 count_h0=count_h0+1;endif (!reset) /按键按下为逻辑 0begincount=0; /复位置零count_s0=0;count_s1=0;count_m0=0;count_m1=0;count_h

22、0=0;count_h1=0;endelsecount=count+1;if(count=32d50000000) /产生一个一秒的脉冲,begin17count=0;count_s0=count_s0+1; /秒个位计数endelseif(count_s0=4d10)begincount_s0=0;count_s1=count_s1+1; /产生秒十位进位endelseif(count_s1=4d6)begincount_s1=0;count_m0=count_m0+1;endelseif(count_m0=4d10) /分个位计数begincount_m0=0;count_m1=count

23、_m1+1;endelseif(count_m1=4d6) /分十位计数begincount_m1=0;count_h0=count_h0+1;endelseif(count_h0=4d10) /时个位计数begincount_h0=0;count_h1=count_h1+1;endelseif(count_h0=4 count_h1=0;endendalways(count_s0) /秒个位显示begincase(count_s0)4d0: HEX0=7b1000000; /0 低电平点亮高电平熄灭4d1: HEX0=7b1111001; /14d2: HEX0=7b0100100; /24

24、d3: HEX0=7b0110000; /34d4: HEX0=7b0011001; /44d5: HEX0=7b0010010; /54d6: HEX0=7b0000010; /64d7: HEX0=7b1111000; /74d8: HEX0=7b0000000; /84d9: HEX0=7b0010000; /9default: HEX0=7b1111111; /不符合条件的显示零endcaseendalways(count_s1) /秒十位显示begincase(count_s1)4d0: HEX1=7b1000000; /0 低电平点亮高电平熄灭4d1: HEX1=7b1111001

25、; /14d2: HEX1=7b0100100; /24d3: HEX1=7b0110000; /34d4: HEX1=7b0011001; /44d5: HEX1=7b0010010; /5default: HEX1=7b1111111; /不符合条件的显示零endcase19endalways(count_m0) /分个位显示begincase(count_m0)4d0: HEX2=7b1000000; /0 低电平点亮高电平熄灭4d1: HEX2=7b1111001; /14d2: HEX2=7b0100100; /24d3: HEX2=7b0110000; /34d4: HEX2=7b

26、0011001; /44d5: HEX2=7b0010010; /54d6: HEX2=7b0000010; /64d7: HEX2=7b1111000; /74d8: HEX2=7b0000000; /84d9: HEX2=7b0010000; /9default: HEX2=7b1111111; /不符合条件的显示零endcaseendalways(count_m1) /分十位显示begincase(count_m1)4d0: HEX3=7b1000000; /0 低电平点亮高电平熄灭4d1: HEX3=7b1111001; /14d2: HEX3=7b0100100; /24d3: HE

27、X3=7b0110000; /34d4: HEX3=7b0011001; /44d5: HEX3=7b0010010; /5default: HEX3=7b1111111; /不符合条件的显示零endcaseendalways(count_h0) /时个位显示begincase(count_h0)4d0: HEX4=7b1000000; /0 低电平点亮高电平熄灭4d1: HEX4=7b1111001; /1204d2: HEX4=7b0100100; /24d3: HEX4=7b0110000; /34d4: HEX4=7b0011001; /44d5: HEX4=7b0010010; /5

28、4d6: HEX4=7b0000010; /64d7: HEX4=7b1111000; /74d8: HEX4=7b0000000; /84d9: HEX4=7b0010000; /9default: HEX4=7b1111111; /不符合条件的显示零endcaseEndalways(count_h1) /时十位显示begincase(count_h1)4d0: HEX5=7b1000000; /0 低电平点亮高电平熄灭4d1: HEX5=7b1111001; /14d2: HEX5=7b0100100; /2default: HEX5=7b1111111; /不符合条件的显示零endcaseendendmodule

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报