FPGA数字跑表课程设计

合集下载

基于FPGA的数字跑表功能的数字钟设计

基于FPGA的数字跑表功能的数字钟设计

摘要近年来,科学技术发展飞速,人们的生活质量也不断提高。

传统的时钟已经无法满足现代人的生活要求。

多功能数字钟无论在形态还是在性能上都改变了原有的风格。

本次设计基于原始的数字钟,在此基础上增加了诸项功能。

不仅具备时,分,秒计数功能,另外增加了校时功能,整点报时功能,闹钟功能以及数字跑表功能。

设计中采用了EDA技术,使用硬件描述语言Verilog HDL对各大功能模块的逻辑功能进行代码编写。

于QuartusII软件环境下,采用层次化设计与模块化设计的方法,由各个功能模块连接建立顶层图,构成基于FPGA的多功能数字钟。

设计实验板的主芯片为EP3C25Q240C8,多功能数字钟由分频器模块,时钟计数模块,校时控制模块,闹钟模块,整点报时与音乐演奏模块,数据选择模块,译码显示模块,按键去抖动模块和数字跑表模块构成。

经过程序编译和模块仿真,在实验板上下载验证,该系统可以完成时,分,秒的正常显示,通过按键切换功能模式,进入闹钟时间设定,校时,数字跑表模式。

可以手动调整时间,设定闹钟及数字跑表计时。

关键词:FPGA;Verilog HDL;数字钟;THE DIGITAL CLOCK WITH STOPWATCH FUCTIONABSTRACTIn recent years, the rapid development of science technology, quality of life is also rising. Traditional clock has been unable to meet the requirements of modern life. Both in the form of multi-function digital clock or in the performance has changed the original style.The design is based on the original digital clock, on the basis of it increased various functions. Not only have the time, minutes, seconds count function, also add the function of adjusting time, the whole point timekeeping function, alarm function and digital stopwatch functions. EDA technology used in the design, using Verilog HDL hardware description language for logic functions in major functional modules of code to write. Under Quartus II software environment, using hierarchical design methods and modular design, the top chart established by the various functional modules connecting each other, constitute FPGA-based multifunctional digital clock.The main system chip of design experiment board is EP3C25Q240C8, multifunctional digital clock is composed of the divider module, the clock counting module, the adjust time control module, the alarm module, the whole point timekeeping and music module, the data selection module, the decoding module, the key to jitter module and digital stopwatch module. After the program compiled and module simulation, download on the breadboard validation, The system can complete hours, minutes, seconds display properly, through the key switch function mode, enter the alarm time setting, adjustment time, digital stopwatch mode. You can adjust the time manually, set the alarm and digital stopwatch timer.Keywords:FPGA;Verilog HDL;Digital clock;目录摘要 (i)ABSTRACT ............................................................... i i 第一章绪论 . (1)1.1 基于FPGA数字钟的背景和意义 (1)1.2 课题的研究方法和相关技术的发展 (1)1.3 本文的研究目的和主要研究内容 (2)第二章 FPGA简介 (3)2.1 FPGA的原理与基本结构 (3)2.2 FPGA设计流程 (3)第三章 Quartus II 简介 (4)第四章数字钟总体设计方案 (5)4.1数字钟的基本构成 (5)4.2数字钟的工作原理 (5)第五章数字钟的具体设计流程 (6)5.1 本设计的顶层图 (6)5.2 分频模块 (6)5.3 按键去抖动模块 (7)5.4 时钟模块 (8)5.4.1 模式切换功能 (9)5.4.2 时钟计数功能 (9)5.4.3 校时控制功能 (10)5.4.4 闹钟设定功能 (10)5.4.5 数字跑表功能 (11)5.5 数据选择模块 (11)5.6 译码显示模块 (13)5.7 闹钟音乐模块 (14)5.8 整点报时与音乐演奏模块 (15)结束语 (17)致谢 (18)参考文献 (19)附录A FPGA器件EP3C25_V5电路板 (21)附录B 本设计使用的EP3C25_V5管脚配置文件 (22)程序源代码 (23)第一章绪论1.1 基于FPGA数字钟的背景和意义现今的电子产品要求功能要多样,体积越小越好,且功耗应达到最低[1]。

fpga跑表课程设计

fpga跑表课程设计

fpga跑表课程设计一、课程目标知识目标:1. 理解FPGA的基本原理,掌握跑表设计的基础知识;2. 学会使用硬件描述语言(如VHDL/Verilog)进行FPGA设计;3. 掌握跑表设计的时序逻辑和组合逻辑,并能够运用到实际设计中;4. 了解FPGA设计中时钟信号的重要性,学会合理分配时钟资源。

技能目标:1. 能够运用所学知识,独立完成FPGA跑表的设计与仿真;2. 培养学生的实际操作能力,提高问题分析和解决能力;3. 学会使用相关软件工具(如Quartus、Vivado等)进行FPGA设计;4. 培养学生的团队协作能力,提高项目完成效率。

情感态度价值观目标:1. 培养学生对电子设计及FPGA技术的兴趣,激发创新意识;2. 培养学生严谨、认真的学习态度,养成良好的学术道德;3. 引导学生关注社会发展,认识到FPGA技术在现代科技中的重要性;4. 培养学生克服困难的意志,提高面对挑战的自信心。

本课程针对高年级学生,结合学科特点,注重理论与实践相结合。

通过本课程的学习,使学生能够掌握FPGA跑表设计的核心知识,提高实际操作能力,培养学生的创新意识和团队协作精神,为今后从事相关领域工作打下坚实基础。

二、教学内容1. FPGA基础知识:- FPGA原理与结构;- 硬件描述语言基础(VHDL/Verilog);- 常用FPGA开发工具介绍。

2. 跑表设计原理:- 跑表功能需求分析;- 时序逻辑与组合逻辑设计;- 时钟信号分配与设计。

3. FPGA跑表设计实践:- 设计流程与方法;- 代码编写与仿真;- FPGA配置与测试。

4. 教学大纲安排:- 第一周:FPGA原理与硬件描述语言基础;- 第二周:跑表设计原理与时序逻辑设计;- 第三周:组合逻辑设计及时钟信号分配;- 第四周:FPGA跑表设计实践与项目指导;- 第五周:项目验收与评价。

教学内容关联教材章节:- 第一章:FPGA原理与结构;- 第二章:硬件描述语言基础;- 第三章:数字电路设计;- 第四章:FPGA设计实例。

基于FPGA的数字跑表设计

基于FPGA的数字跑表设计

0 引言在科技高度发展的今天,随着大规模集成电路和计算机的发展,现代电子设计的方法与技术也在不断发生变化。

目前,比较有效的电子设计方法是将板卡设计、可编程逻辑设计和软件开发融合在一起。

而且,计算机的应用与发展已经在人们的日常生活中逐渐崭露头角。

大多数电子产品多是由计算机电路组成,本次设计的课题就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字跑表。

跑表是体育比赛中常用的计时仪器,所以对时间的精确度很高。

1 系统设计1.1 总体设计基于前面的分析,课题数字跑表设计由FPGA器件完成按键控制、数字的显示等核心数字电路的功能。

设计数字跑表,令它通过两个按键来控制计时的开始和结束,一个是清0控制按键,用于设置跑表为初始零状态;另一个是开始/停止控制按键,在清0控制按键无效的时候,按一下开始/停止键则计时器开始计时,再按一下则暂停计时,再按一下则继续计时。

数字跑表总体设计框图如图1所示。

1.2 各部分模块设计根据此设计流程,我们可以将数字跑表的设计分为三个主要部分:(1)分频首先根据FPGA器件的基础时钟,进行时钟的设计,将器件自带的时钟频率进行分频,分频成为课题数字跑表所需的时钟信号,课题要求输入时钟频率为100Hz,100Hz=0.01s,使其满足数字跑表计时精度为10ms的要求,我们已知的FPGA器件上自带的时钟信号为50MHz。

图1 数字跑表的流程框图(2)控制根据要求数字跑表要具有控制功能,通过两个按键控制,一个为清零控制按键,控制异步清零,和启动功能,用于设置跑表为初始零状态,另一个按键为开始/停止按键,控制数字跑表的启动和停止,按一下开始/停止键则计时器开始计时,再按一下则暂停计时,再按一下则继续计时。

(3)显示最后一步,对所得的数据进行处理,并将其显示。

由显示的时分秒用7段数码管显示出来。

将三个部分整合起来放在index, design idea, design scheme, circuit design of the system, design of the corresponding module of the system, system hardware implementation and test results.Keywords: digital stopwatch;FPGA;Verilog HDL language始/暂停按键)输出信号:MSH,MSL,SH,SL,MH,ML(7段数码管)分频部分器件图如图4所示。

基于FPGA的数字跑表设计

基于FPGA的数字跑表设计

摘要:本设计以Xilinx公司的XC3S200A芯片为核心,通过VHDL语言进行编程实现。

在48MHz时钟源输入下,通过分频、计数实现精度为百分之一秒的计时,最终用六位LED数码管显示,并可以通过两个按键控制跑表的复位、停止和启动。

一.引言大多数数字系统使用了两种不同的设计方法。

从硬件的角度来看,发展的动力是提高性能:更快、更小、功耗更低、价格更便宜。

这种方式需要巨额的费用,花费的时间也很长。

但是,从软件的角度看,更倾向于使用一个标准的处理器架构,这样只要开发出应用软件然后下载到这些平台即可。

但是由于对操作系统的需求、编译器的低效率等原因,也会造成大的开销。

结果,作为一种折中的方式,可编程器件就被开发出来了。

它拥有众多的优点:在高性能的平台上进行硬件设计,拥有最优化的资源,不需要操作系统,可重新配置等。

现场可编程门阵列(Field Programmable Gate Array,FPGA)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,不但有较高的性能,同时又具备可编程逻辑的灵活性和可重用性。

二.项目任务与设计思路跑表设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD八段数码管显示读数。

显示格式:分秒0.01秒设计思路简述:1、按键:两个按键均采用边缘触发,其中复位键按下后将强制归零并屏蔽启停键作用,启停键每次生效将使计数器的开关状态翻转一次。

2、计数:由于原始时钟频率为48MHz,故先对源时钟进行480000进制计数,以产生间隔为1ms的进位信号,对该信号进行计数并进位,可得到百分秒的计数值,以此类推,可得到十分秒、秒、十秒、分、十分的计数值,需要注意的是,对十秒和十分的计数应是六进制的。

3、LED显示:由于LED采用动态显示,位选与段选使用同一个1KHz的时钟信号进行同步。

其中位选信号从低位到高位一次点亮各位数码管,当某位数码管被点亮时,相应的段选信号就会被送至数码管,控制其显示字符。

数字跑表实验设计

数字跑表实验设计

数字跑表 设计报告设计任务:在掌握了VHDL 硬件编程语言和了解了基本的FPGA 设计步骤后,设计出一个符合设计指标的数字跑表,并下载到实验板上通过验证。

设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD 七段数码管显示读数。

显示格式:设计步骤:(1) 设计出符合设计要求的解决方案。

(2) 设计出单元电路。

(3) 利用EDA 软件对各单元电路及整体电路进行仿真。

(4) 利用EDA 软件在ELB 电子课程设计实验箱上实现设计。

(5) 撰写设计报告。

设计思路:首先,分析一个完整的数字跑表的具有哪些功能:1、计时功能 2、相应的控制按钮 3、显示计数结果的功能模块;接下来就开始考虑如何应用电路实现上述的三个模块: 1、计时模块应包括稳定、准确的时钟输入和计数模块,考虑到设计指标要求跑表精度为0.01秒,那么计数脉冲的时钟输入就应该是频率为100HZ 的脉冲,而实验板上提供的晶振是32MHZ ,所以先要设计一个320000分频器,分频器的输出才可作计数器的输入;其次计数模块设计应综合考虑跑表的计时范围(1小时)和显示输出(6位输出),6位输出中有两位是六进制输出,其余四位是十进制输出,所以可通过设计4个模10计数器和2个模6分 秒 0.01秒计数器来实现,其中较低位的进位输出就是高位的计数输入端。

2、根据设计指标的要求,控制模块应包括开始计时/停止计时、复位两个按钮,即电路设计经常用到的史能端和清零端,这两个控制端口直接接到计数器的清零和史能端即可实现、复位、开始计时/停止计时;但是外围史能输入需要经过史能转换电路后,才可变为计数器可用的史能控制信号。

3、显示计数结果的模块实现较为简单,只需将六位计数结果通过七段译码电路接到输出即可点亮数码管,无需时序控制,直接用组合逻辑电路就可以实现。

数码管显示可以采用扫描显示,用一个频率1KHz的信号扫描一个多路选择器,实现对六位已经锁存的计数结果的扫描输出。

FPGA数字跑表

FPGA数字跑表

电子信息工程专业FPGA与ASIC设计实践教程设计报告班级:电子信息工程1303班学号:201315110: 田佳鑫日期:2015年11月4日指导老师:何英昊目录1系统总体方案及硬件设计 (3)1.1设计容 (3)1.2 设计要求 (3)1.3 实现要求 (3)2各模块设计及电路图 (3)2.1设计项目简介 (3)2.2分块设计代码 (4)2.3总体框图设计 (7)2.4管脚锁定图 (8)3课程设计体会 (8)1系统总体方案及硬件设计1.1 设计容数字跑表电路1.2设计要求(1)跑表的计时围为0.01—59min59.99s。

(2)具有异步清零、启动。

计时和暂停功能。

(3)输入时钟频率为100Hz。

(4)要求数字跑表的输出能够直接驱动共阴极7段数码管。

1.3 实现要求(1)分析功能要求,划分功能模块。

(2)编写各模块的Verilog HDL语言设计程序。

(3)在QuartusⅡ软件或其他EDA软件上完成设计和仿真。

(4)根据实验装置上的CPLD/FPGA芯片,在适配时选择相应的芯片,将设计生成配置文件或JEDEC文件,然后将配置文件或JEDEC文件下载到实验装置上运行,操作实验装置上设定的功能开关,验证设计功能。

2各模块设计及电路图2.1 设计项目简介主控模块分别连接6个数码管显示模块和分频模块,分频模块给主控模块的计数器提供时钟源,主控模块在按键的控制下,在其中计数器的作用下输出给数码管显示装置,实现跑表功能。

2.2分块设计代码(1)分频模块:module fenpin(CLK,CLK2);//输入50MHz,输出分频到1Hzinput CLK;output CLK2;reg CLK2;reg[31:0] counter2;parameter N2=5000000; always(posedge CLK)beginif(counter2==250000)begincounter2<=0;CLK2<=~CLK2;endelsecounter2<=counter2+1;endendmodule(2)控制模块:module sz(clk,clr,pause,msh,msl,sh,sl,mh,ml); inputclk,clr;input pause;output[3:0]msh,msl,sh,sl,mh,ml;reg[3:0]msh,msl,sh,sl,mh,ml;reg1,2;always(posedgeclk or posedgeclr)beginif(clr)begin{msh,msl}<=8'h00;1<=0;endelseif(!pause)beginif(msl==9)beginmsl<=0;if(msh==9)beginmsh<=0;1<=1;endelsemsh<=msh+1;endelsebeginmsl<=msl+1;1<=0;endendalways(posedge1 or posedgeclr) beginif(clr)begin{sh,sl}<=8'h00;2<=0;endelseif(sl==9)beginsl<=0;if(sh==5)beginsh<=0;2<=1;endelsesh<=sh+1;endelsebeginsl<=sl+1;2<=0;endendalways(posedge2 or posedgeclr) beginif(clr)begin{mh,ml}<=8'h00;endelseif(ml==9)beginml<=0;if(mh==5)mh<=0;elsemh<=mh+1;endml<=ml+1;endendmodule(3)显示模块:module XS7D(DIN,DOUT);input [3:0]DIN;output [6:0]DOUT;reg [6:0]DOUT;always (DIN)begincase(DIN) 0:DOUT='b1000000;1:DOUT='b1111001;2:DOUT='b0100100;3:DOUT='b0110000;4:DOUT='b0011001;5:DOUT='b0010010;6:DOUT='b0000010;7:DOUT='b1111000;8:DOUT='b0000000;9:DOUT='b0010000; 10:DOUT='b0001000; 11:DOUT='b0000011; 12:DOUT='b1000110; 13:DOUT='b0100001; 14:DOUT='b0000110; 15:DOUT='b0001110; endcaseendendmodule2.3总体框图设计2.4管脚锁定图三、课程设计体会习制作数字跑表,我对于可编程逻辑器件有了更加深刻地体会。

fpga数字系统设计课程设计

fpga数字系统设计课程设计

fpga数字系统设计课程设计一、教学目标本课程的教学目标是使学生掌握FPGA数字系统设计的基本理论、方法和技术,培养学生进行数字系统分析和设计的能力。

具体目标如下:1.知识目标:学生能够理解并掌握FPGA的基本结构、工作原理和编程方法;了解数字系统设计的基本流程,掌握常用的数字电路设计方法。

2.技能目标:学生能够熟练使用FPGA设计工具,进行数字系统的分析和设计;能够独立完成数字电路的仿真、验证和编程。

3.情感态度价值观目标:培养学生对新技术的敏感性和好奇心,增强学生的创新意识和团队协作精神。

二、教学内容教学内容主要包括以下几个部分:1.FPGA的基本原理:介绍FPGA的结构、工作原理和编程方法。

2.数字系统设计方法:讲解数字系统设计的基本流程,包括需求分析、系统设计、电路设计、仿真验证等。

3.常用数字电路设计方法:包括组合逻辑电路、时序逻辑电路、数字信号处理器等的设计方法。

4.FPGA设计工具的使用:介绍常用的FPGA设计工具,如VHDL、Verilog等,以及如何进行数字电路的仿真、验证和编程。

三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解FPGA的基本原理、数字系统设计方法和常用数字电路设计方法,使学生掌握基本知识。

2.案例分析法:通过分析具体的数字电路设计案例,使学生了解并掌握数字电路设计的实际过程。

3.实验法:通过实验操作,使学生熟悉FPGA设计工具的使用,提高学生的实际操作能力。

四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:《FPGA数字系统设计》。

2.参考书:提供相关的数字电路设计参考书籍,供学生自主学习。

3.多媒体资料:制作课件、实验视频等,以丰富教学手段,提高学生的学习兴趣。

4.实验设备:准备FPGA开发板、示波器等实验设备,供学生进行实验操作。

五、教学评估为了全面、客观地评估学生的学习成果,将采用多种评估方式相结合的方法:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和理解程度。

数字跑表课程设计

数字跑表课程设计

数字跑表课程设计数字跑表是计算机科学中的一个经典问题,它是一个倒计时程序,用于计算比赛或活动的时间。

以下是数字跑表课程设计的一个示例:1.教学目标(1)理解数字跑表的原理和倒计时算法;(2)掌握使用C语言实现数字跑表的方法;(3)能够根据实际需求,自定义数字跑表的计时长度和精度。

2.教学内容(1)数字跑表的原理和倒计时算法介绍数字跑表的原理和倒计时算法,包括计时器的初始化、时间的显示和更新等。

(2)使用C语言实现数字跑表通过C语言实现数字跑表,使用循环结构控制倒计时过程,使用数组存储数字字符,使用printf函数将数字字符输出到控制台。

(3)自定义数字跑表的计时长度和精度通过编写自定义函数,实现计时长度的自定义和精度的控制,使用float类型存储时间,并实现倒计时过程中的时间转换。

3.教学方法(1)讲解数字跑表的原理和算法;(2)演示使用C语言实现数字跑表的过程;(3)通过实例演示自定义数字跑表的计时长度和精度的过程。

4.课程实施(1)介绍数字跑表的原理和倒计时算法,包括计时器的初始化、时间的显示和更新等;(2)使用C语言实现数字跑表,包括循环结构、数组、printf函数等;(3)自定义数字跑表的计时长度和精度,包括float类型、时间转换等。

5.课程评估(1)检查程序的运行结果;(2)检查自定义数字跑表的计时长度和精度是否符合要求;(3)通过实际应用场景的测试,评估程序的稳定性和可靠性。

6.课程反思(1)总结数字跑表课程设计的经验和教训;(2)总结学生对于数字跑表课程设计的理解和掌握程度;(3)总结课程设计中存在的问题和改进措施。

通过数字跑表课程设计,学生可以深入理解计算机科学中的计时原理和倒计时算法,掌握使用C语言实现数字跑表的方法,并能够根据实际需求自定义数字跑表的计时长度和精度。

同时,学生还可以学习到如何测试程序的稳定性和可靠性,提高其编程能力和编程素养。

在课程设计中,学生也可以通过反思自己的经验和教训,不断改进自己的编程方法和编程思路,提高自己的编程能力和编程水平。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要本设课程设计是基于FPGA的数字跑表的设计,利用Verilog HDL 语言和Quartus II软件以及FPGA实验操作平台来实现的。

本论文的重点是用硬件语言Verilog HDL 来描述数字跑表,偏重于软件设计。

大致内容是首先简单介绍了EDA的现状和前景, Verilog HDL 语言特点,应用平台FPGA,之后阐述了数字跑表的设计思想和大体的设计流程,最后进入本设计的核心设计部分,用Verilog HDL 语言设计数字跑表电路,着重对各个模块进行了详细的分析和说明。

【关键词】Verilog HDL 语言;Quartus II 软件;数字秒表目录1 绪论 (2)1.1 EDA的现状和发展及FPGA简介 (2)1.2 Verilog HDL语言及QuartusⅡ软件简介 (2)1.3 基于FPGA实现数字跑表运行的方案设计基本原则 (3)1.4 论文主要完成的工作 (3)2 系统的硬件设计 (4)2.1数字跑表概述 (4)2.2整体方案设计和功能分割 (4)2.3各功能模块的设计和实现 (6)2.4 控制系统的实现 (8)3 系统的软件设计 (8)3.1 软件整体设计 (8)3.2主要模块软件设计(主要模块流程图和仿真波形图) (9)4 总结 (12)参考文献 (13)1.绪论1.1 EDA简介及FPGA简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。

而电子设计自动化(EDA)的实现是与CPLD/FPGA技术的迅速发展息息相关的,利用PLD/FPGA,电子系统设计工程师可以在实验室中设计出专用IC,实现了系统的集成。

此外,CPLD/FPGA还具有静态可重复编程或在线动态重构特性,使硬件的功能可像软件一样通过编程来修改,不仅使设计修改和产品升级变得十分方便,而且极大地提高了电子系统的灵活性和通用能力。

随着计数的进步,自动化设计工具(从CAD到EDA及ESDA:Electronic System Design Automation)已成为电子信息设计人员所必需熟悉和掌握的一门技术。

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

自1985年Xilinx公司推出第一片现场可编程逻辑器件至今,FPGA已经历了十几年的历史。

在这十几年的发展过程中,以FPGA为代表的数字系统现场集成取得了惊人的发展:现场可编程逻辑器件从最初的1200个可利用门,发展到数百万门的单片FPGA芯片,将现场可编程器件的集成度提高到一个新的水平。

它之所以具有巨大的市场吸引力,根本在于:FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,使FPGA成为首选。

目前,FPGA的主要发展动向是:随着大规模现场可编程逻辑器件的发展,系统设计进入"片上可编程系统"(SOPC)的新纪元;芯片朝着高密度、低压、低功耗方向挺进;国际各大公司都在积极扩充其IP库,以优化的资源更好的满足用户的需求,扩大市场;特别是引人注目的所谓FPGA动态可重构技术的开拓,将推动数字系统设计观念的巨大转变。

1.2Verilog HDL语言及QuartusⅡ软件简介Verilog HDL语言是1983年GDA公司的Phil Moorby首创的,之后Moorby 有设计了Verilog-XL仿真器获得很大成功,也使得Verilog HDL语言得到发展和推广。

Verilog HDL语言是在C语言的基础上发展而来的。

从语法结构上看,Verilog HDL继承和借鉴了C语言的很多语法,两者有许多的相似之处,但Verilog HDL作为一种硬件描述语言,还是有本质的区别。

即可适于可综合的电路设计,也可胜任电路和系统的仿真;能在多层次上对所设计的系统加以描述,从开关级、门级,寄存器传输级到行为级等都可以担任,而且没规模限制;灵活多变的电路描述风格,可进行行为描述,也可进行结构描述等;应用十分的广泛。

QuartusⅡ软件是Atlera的CPLD/FPGA集成开发软件,具有完善的可视化设计环境,并具有标准的EDA工具接口,基于QuartusⅡ进行EDA设计开发需要以下步骤:设计输入、编译、仿真、编程与验证等。

1.3 基于FPGA实现数字跑表运行的方案设计基本原则首先,要注意FPGA的逻辑设计所采用的硬件描述语言Veri-log HDL与软件语言C和C++有本质区别,在使用硬件描述语言进行设计时,不应片面追求代码的简洁。

其次,要采用正确的编码方法对所需实现的硬件电路的结构和相互连接有清晰的理解和构想,然后再用适当的Veri-log HDL语言表达出来。

实际上综合软件对所写的代码在进行推论的时候,得到的硬件结果会因编码方式的不同而不同,直接影响硬件的现实。

FPGA作为硬件系统设计,应该对设计全局进行宏观上的合理安排,包括控制系统逻辑功能模块划分,时钟域信号的产生和驱动,模块复用,时序或引脚约束等。

模块化设计时系统原则的一个很好体现,它是自顶向下模块划分,分工协作设计思路的集中体现,是大型复杂系统的推荐设计方法。

在设计电路时,可以有异步电路和同步电路两种方法。

异步电路使用逻辑电路实现,没有统一的时钟信号,容易产生毛刺和竞争冒险:同步时序电路使用组合逻辑和触发器实现电路功能,主要信号和输出信号由时钟驱动触发器产生,能够避免毛刺,信号稳定。

基于FPGA实现数字跑表运行的方案设计如下图所示:1.4论文主要完成的工作(1)阐述了数字跑表的设计思想和大体的设计流程;(2)用Verilog HDL 语言设计数字跑表电路,着重对各个模块进行了详细的分析和说明;(3)功能仿真图及程序流程图;(4)结论及心得体会。

2.系统的硬件设计2.1数字跑表概述设计题目:数字跑表电路设计设计要求:数字跑表是生活中常见的一种电子产品,特别应用与体育比赛中。

本数字跑表是通过按键来控制计时的起点和终点,一个是复位控制按键,用于设计跑表为初始零状态;另一个则是开始/停止控制按键,在复位控制无效的情况下,按一下开始/停止键则计时器开始计时,再按一下则暂停计时,再按一下则继续计时。

具体性能如下:(1)跑表的计时范围为0.01s~59min59.99s,计时精度为10ms;(2)具有异步复位清零、启动、计时和暂停功能;(3)输入时钟频率为100Hz;(4)要求数字跑表的输出能够直接驱动共阴极7段数码管显示.设计工作:(1)分析功能要求,划分功能模块;(2)编写各模块的VerilogHDL语言的设计程序;(3)在QuartusⅡ软件上完成设计和仿真;(4)根据实验室FPGA芯片,将设计生成配置文件,然后将配置文件下载到实验装置上运行,操作设定的功能按键,验证设计效果。

2.2整体方案设计和功能分割根据设计要求,对数字跑表进行结构和功能的划分。

计数器部分设三个输入端,分别为时钟输入(CLK),复位(CLR)和启动/暂停(PAUSE)按键。

复位信号高电平有效,可对跑表异步清零;当启动/暂停键为低电平时,跑表开始计时,高电平时暂停,变低后在原来的数值基础上继续计数。

然后计数器的每个位的值赋给六选一数据选择器,数据选择器选择的位值再赋给七段数码管译码器,这样就可以实现显示当前数字。

按照自顶而下的设计方法数字跑表的功能分割,如下图:计时电路的作用是计时,计时的一般方法是对时钟脉冲进行计数。

本设计在外部提供了1kHzs时钟,计时精度是1ms。

根据精度要求,需要设计分频器,对时钟信号进行10分频,产生周期为10ms的时基信号。

时基信号由时基分频器模块产生。

显示电路的作用是将计时值显示在数码管上。

计时电路产生的计时值通过BCD/七段译码后,驱动LED七段数码管。

计时显示电路存在一个方案选择的问题,即采用并行显示还是扫描显示,这关系到器件的资源利用。

并行显示同时驱动6个数码管,它需要同时对6组BCD数据进行译码并输出6组LED七段驱动信号,需要较多的内部逻辑和I/O资源。

以ispLSI器件为例,驱动6个数码管的7个显示段,共需要42(7*6)个I/O引脚;另外还需要6个BCD/七段译码器,共需要12(6*2)个GLB。

采用扫描显示则每次只驱动一位数据,各位数据轮流进行显示;如果是扫描的速度足够快,由于人眼存在视觉残留现象,看不到闪烁。

扫描显示的资源少。

设计中采用扫描显示的方式,由于是扫描显示每次只有一位视觉进行译码和输出,所以可以共享BCD/七段译码器和七段驱动信号输出引脚。

同样用ispLSI器件实现,数码管七段驱动信号需要7个输出引脚,另外还要6个位驱动信号,共需要13个I/O引脚。

扫描显示电路可以继续分割为BCD译码器和数据选择器两个子模块。

下面确定模块之间的接口关系,各模块的接口信号说明如下:计时控制器:计时控制器的输入信号时启动、暂停、和清零信号。

为了方便,将启动和暂停功能设置在同一个案件上;按一次是启动,按第二次是暂停,按第三次则是继续,以此类推。

所以计时控制器共有两个开关输入信号,记启动/暂停和清零。

计时器的输出信号为计数允许/保持信号和清零信号。

计时电路:计时电路的输入信号为1kHz时钟、计时允许/保持信号和清零信号;输出为10ms,100ms,s,min的计时数据。

它的下一级模块的接口信号如下:1、时基电路大的输入信号频率为1kHz,输出时钟周期为10ms。

2、计数器的输入信号为计数允许信号、清零信号和1kHz时钟,输出为10ms,100ms,s,min的计时数据。

显示电路:显示电路的输入信号为计时器的10ms,100ms,s,min计时数据。

输出为七段译码驱动信号和位选择信号。

2.3各功能模块的设计和实现自顶而下完成各层次的设计描述,数字跑表可以划分为5个功能模块:顶层模块、计时模块、时基分频器模块、数据选择模块、数码管显示模块。

本设计中部分模块都用原理图和VerilogHDL语言两种方法设计。

以VerilogHDL语言设计为主。

顶层模块顶层模块只说明功能的分配、内部功能块和对外接口关系,功能模块实际的逻辑功能和具体的实现由下一层模块描述。

相关文档
最新文档