ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:679.46KB ,
资源ID:11770484      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11770484.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FPGA课程设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FPGA课程设计报告.docx

1、FPGA课程设计报告课程设计开课学期: 2014年2015年下学期 课程名称: FPGA课程设计 学 院: 信息科学与工程学院 专 业: 集成电路设计与集成系统 班 级: 集成1201班 学 号: 20121221077 姓 名: 刘 蔚 任课教师: 孙 涛 2015 年 7 月 21 日基于FPGA的数字钟设计摘要 本文介绍一种利用现场可编程逻辑器件FPGA产生多功能数字钟的设计方案。数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常生活中不可少的必需品。本设计采用EDA技术,以硬件描述语言Verilog为系统逻辑描述手段设计文件,在Quartus II工具软件环境下,由各个

2、基本模块共同构建了一个基于FPGA的数字钟。系统由时钟模块、控制模块、计时模块、数据译码模块、显示以及报时模块组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证。开发板采用5CSEMA5F31C6N。本次设计的多功能数字钟,具有时、分、秒的数码管显示功能,以24小时循环计数,具有整点报时功能,并有由按键输入进行数字钟的校时、清零、启停功能。 关键词:可编程逻辑器件 FPGA Verilog 数字钟 EDA技术AbstractThis paper introduces a kind of based on field programmable logic device FPGA desi

3、gn of multi-function digital clock, the digital clock is used in digital circuits, and seconds digital display timing device is in peoples daily life necessities.This design using EDA technology, hardware description language Verilog logic system description method of design documents, in the Quartu

4、s II software environment, by all the basic modules together to build a a FPGA based digital clock.System consists of the clock module, control module, time module, data decoding module, display and broadcast module composition. Program after compilation and simulation design, programmable logic dev

5、ice to download verification. Development board using the multi-function digital clock 5CSEMA5F31C6N. this design, with time, points, the second digital tube display, to a 24-hour cycle count, with the whole point timekeeping function and input by the key of the school of digital clock, clear, open

6、and stop function. Key words: programmable logic device FPGA Verilog Digital cloc EDA Technology前言现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronicdesignautomatic,EDA)技术。本设计采用的Verilog是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为

7、级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。因此,键信息输入是与软件结构密切相关的过程。根据键盘的结构不同,采用不同的编码方法。但无论有无编码以及采用什么样的编码,最后都要

8、转换成为相应的键值,以实现按键功能程序的转移。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。第1章 多功能数字钟概述1.1 数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。图3-1所示为数字钟的一般构成框

9、图。主要包括时间基准电路、计数器电路、控制电路、译码和显示电路。其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。图1.1-1数字钟的一般组成框图1.2 多功能数字钟的基本原理通过分析多功能数字钟的设计要求和所要实现的功能,应用层次化方法设计出数字钟应由计时模块、分频脉冲模块、译码显示模块、校时校分和清零模块、报时模块等几个模块组成,其原理框图如下图1.2-1所示:图1.2-1 数字钟的原理图1.3 计时电路通过分析数字钟的功能,知道数字钟计时周期是24小时,因此必须设置模24的小时计数器,两个模为60的计数器实现分和秒的计数,三个计数器之间构成进为关系,即秒计数器为分计数器

10、提供计数脉冲信号,分计数器为时计数器提供计数脉冲信号。另外,如果想要数字钟还可以显示星期的话,还应添加一个模7的星期计数器,由时计数器提供计数脉冲信号。从全局设计考虑计时器应具有使能端和异步清零端。多功能数字钟应该具有的功能:显示时分秒。整个电子钟的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围是从023时。复位后全部显示000000。在设计中为了显示的方便,分钟和秒钟(显示的范围都是从0059),小时(0023)的十位和个位都应该采用十进制计数器。图1.3-1总体结构

11、1.4 异步清零电路为实现异步清零功能,可以将异步清零开关KK3分别和各个计数器的清零信号的取反相或非后再接给清零端。这样,当KK3关闭(低电平)时,计数器正常计数;当开关KK3开启(高电平)时,计数器全部异步清零。1.5 校时、校分功能电路数字钟的校时和校分功能原理相同,通过开关KK1、KK2控制工作状态。当KK1打到低电平、KK2打到低电平时,各计数器的ENT端接的都是正常计数信号,ENP端都是高电平,各个计数器均正常计数;当KK1打到高电平、KK2打到低电平时,分个计数器的ENP端接的是KK2的非(高电平),进位信号正常送入分十位计数器的ENT端,分计数器快速校分,而由于秒计数器和时计数

12、器的个位的ENP端接的是KK1的非,所以秒计数器和时计数器被保持;当KK1打到低电平、KK2打到高电平时,正常进位信号被阻塞,分计数器可以不接受秒计数器的进位信号控制,校时信号便被送入CP端,时计数器可以进行快速校时。以上3部分功能可放在同一模块中实现,电路图如1.5-1所示:图1.5-1 报时电路仿真结果如下图1.3所示:图1.3 报时电路的仿真第二章 FPGA简介2.1 现场可编程逻辑门阵列FPGAFPGA(现场可编程门阵列)与CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件的基础之上发展起来的。但FPGA/CPLD的规模较大,非常适合于对时序、组合等逻辑

13、电路应用场合,它可以替代几十甚至上百块通用IC芯片。高速和高可靠是FPGA最明显的特点,当今的该类可编程器件,其最高工作频率可达百兆级,其时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。FPGA的设计是基于查找表来实现的。查找表就是实现将输入信号的各种组合功能以一定的次序写入RAM中,然后在输入信号的作用下,输出特定的函数运算结果。其结构图如图2.1-1所示。图2.1-1 查表结构图一个N输入查找表(LUT,Look Up Table)可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。输入多于N个的函数、方程必须分开用几个查找表(

14、LUT)实现(如图2.1-2所示)。图2.1-2 FPGA查找表单元内部结构2.2 FPGA简介FPGA是Filed Progranmmable Gate Array的缩写,即现场可编程逻辑阵列。FPGA是在CPLD的基础上发展起来的新型高性能可编程逻辑器件它一般采用SRAM工艺,也有一些专用器件采用Flash工艺或反熔丝(Anti_Fuse)工艺等。FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。FPGA的基本组成部分有可编程输入/输出单元,基本可编程逻辑单元、嵌入式块RAM、丰富的布线资

15、源、底层嵌入功能单元、内嵌专用硬核等。FPGA的主要器件供应商有Xilinx、Altera、Lattice、Actel和Atmel等。2.3 Quartus II软件简介Quartus II是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的

16、全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和Verilog完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、Verilog网表文件和Verilog网表文件;能生成第三方EDA软件使用的Verilog网表文件和Verilog网表文

17、件。第3章 设计方案多功能数字钟应该具有的功能有:显示时分秒、整点报时、小时和分钟可调等基本功能。整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为023时。在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从059,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为他的范围是从023,所以可以用一个2位的二进制码显示十位,用一个4位的二进制码(BCD码)显示个位。实验中由于七段码管是扫描的方式 显示,所以虽然时钟需要

18、的是1Hz时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟50Mhz进行分频。对于整点报时功能,本实验设计的是当进行正点的倒计时5秒时,让LED来闪烁进行整点报时的提示。调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示000000。管脚分配如下表:端口名使用模块信号对应FPGA管脚说明S1按键开关S1R16调整小时S2按键开关S2P14调整分钟RST按键开关S8M15复位 LEDLED模块D1L14整点倒计时 LEDAG0数码管

19、模块A段N4时间显示 LEDAG1数码管模块B段G4 LEDAG2数码管模块C段H4 LEDAG3数码管模块D段L5 LEDAG4数码管模块E段L4 LEDAG5数码管模块F段K4 LEDAG6数码管模块G段K5 SEL0数码管选择位1M48个数码管的选择位 SEL1数码管选择位2F3 SEL2数码管选择位3F4 CP脉冲源J3 50Mhz脉冲第4章 设计实现4.1 顶层模块本程序采用结构化设计方法,将其分为彼此独立又有一定联系的三个模块,如图4.1-1所示:图4.1-1顶层结构框图4.2 新建工程项目在E盘建立项目工程文件夹,如E:/fpga-keshe/lw-clock,打开Quartus

20、 II软件,执行【File】【NewProjectWizard】选项,按如图4.2-1所示设置。图4.2-1 新建工程项目4.3 选择芯片该系统设计中,FPGA芯片用的是ALTERA公司的5CSEMA5F31C6,它由若干个逻辑单元和中央布线池加I/O端口构成,然后再选择Verilog HDL语言。如图4.3-1所示。 图4.3-1 选择所需芯片和语言最后单击Finish按钮,创建好了设计工程,选择【FILE】【NEW】菜单,出现如图4.3-2所示的新建设计文件类型窗口。图4.3-2 选择编程Verilog文本文件在上图4.3-2中选择【Verilog HDL File】,单击【OK】建立一个

21、新的文本设计文件,命名为clock.v。4.4 子模块4.4.1 分频器分频器的作用是对50Mhz的系统时钟信号进行分频,得到频率为1000hz的信号,作为显示器的输入信号。module fenpin(CP,CPout,Cout,CP_En);input CP, output CPout;reg CPout;reg 31:0 Cout;reg CP_En;always (posedge CP ) /将50MHz分频为1kHz begin Cout = (Cout = 32d50000) ? 32d0 : (Cout + 32d1); CP_En = (Cout = 32d50000) ? 1d

22、1 : 1d0; CPout = CP_En; endEndmodule保存文件。功能仿真波形如图4.4.2-1所示(以五分频为例):图4.4.1-14.4.2 控制器和计数器控制器的作用是,调整小时和分钟的值,并能实现清零功能。计数器的作用是实现分钟和秒钟满60进1,小时则由23跳到00。当到达59分55秒的时候,LED灯会闪烁来进行报时。因为控制器和计数器的驱动信号频率均为1Hz,故从分频器输出的信号进入控制器后,要进行二次分频,由1Khz变为1Hz。源程序如下:module kongzhiqi( CPout,S1,S2,RET,Hour,Minute,Second,LED );input

23、 CPout,S1,S2,RET;output 5:0 Hour;output 5:0 Minute;output 5:0 Second;output LED;reg 5:0 Hour;reg 5:0 Minute;reg 5:0 Second;reg R1;reg R2,R8,LED;reg 10:0 Cout;reg Clk_En;always(posedge CPout) begin if(S1=0) begin R1=1; end if(S2=0) begin R2=1; end if(RET=0) begin R8=1; end Cout=(Cout=32d1000)?32d0:(C

24、out + 32d1); Clk_En=(Cout=32d1000)?1d1:1d0; if(Clk_En) begin if(R1=1) begin if(Hour24) Hour=Hour+1; if(Hour=24) begin Hour=0; end R1=0; end if(R2=1) begin if(Minute60) Minute=Minute+1; if(Minute=60) begin Minute=0; if(Hour24) Hour=Hour+1; if(Hour=24) begin Hour=0; end end R2=0; end if(Second60) Seco

25、nd=Second+1; if(Second=60) begin Second=0; if(Minute60) Minute=Minute+1; if(Minute=60) begin Minute=0; if(Hour55)/整点倒计时 begin if(LED=1) LED=0; else LED=1; end else LED=0; if(R8=1)/清零 begin Hour=0; Minute=0; Second=0; R8=0; end end endEndmodule保存文件。功能仿真波形如图4.4.2-1所示:图4.4.2-14.4.3 显示器显示器的作用是将时分秒的值在数码管

26、上依次显示出来。从分频器输出的1Khz的信号作为数码管的扫描信号。SEL表示三个数码管选择位,它的取值表示八个数码管,从左至右依次是111000。LEDGA表示七段数码管,它的取值决定特定位数上显示的数字。源程序如下:module clock(CPout,Hour,Minute,Second,SEL,LEDAG);input CPout;input Hour,Minute, Second;output SEL,LEDAG;reg 2:0 SEL;reg 6:0 Led;reg 3:0 shi1,ge1,shi2,ge2,shi3,ge3;always (posedge CPout ) begi

27、n shiwei1=Hour/10; gewei1=Hour%10; shiwei2=Minute/10; gewei2=Minute%10; shiwei3=Second/10; gewei3=Second%10; if(SEL=3b110) /判断位选SEL的值,并将此位上的值输出到数码管 case(shiwei1) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_110; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101:

28、Led = 7b1101_101; 4b0110: Led = 7b1111_101; 4b0111: Led = 7b0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1101_111; default: Led = 7b0000_000; endcase if(SEL=3b101) case(gewei1) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_110; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101: Led = 7b1101_101; 4b0110: Led = 7b1111_101; 4b0111: Led = 7b0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1101_111; default: Led = 7b0000_000; endcase if(SEL=3b100) Led=7b1000_000; if(SEL=3b011) case(shiwei2) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_110; 4

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1