24小时计时器--FPGA
FPGA实验 计时器和倒计时的系统设计

实验五 计时器和倒计时的系统设计一、实验目的①掌握用Verilog HDL 文本输入法设计计时电路的方法,并通过电路仿真和硬件验证,进一步了解计时器的功能和特性。
②掌握用Verilog HDL 文本输入法设计倒计时电路的方法,并通过电路仿真和硬件验证,进一步了解倒计时电路的功能和特性。
二、实验原理1. 计时器24小时计时器的电路框图如图8.1所示。
图8.1 24 小时计时器的电路框图24小时计时器由2个60进制加计数器和1个24进制加计数器构成,输入CLK 为1Hz(秒)的时钟,经过60进制加计数后产生1分钟的进位时钟信号,再经过60进制加计数后产生1小时的进位时钟信号送给24进制加计数器进行加计数,当加计数到达23: 59: 59后,再来一个秒脉冲,产生时的进位输出。
将两个60进制加计数器和一个24进制加计数器的输出送数码管显示,得到计时器的显示结果。
其中,秒脉冲由EDA 实训仪上的20MHz 晶振分频得到。
2. 侧计时器24小时倒计时器的电路框图如图8.2所示。
图8.2 24 小时倒计时器的电路框图24小时倒计时器由2个60进制减计故器和1个24进制减计数器构成,输入CLK 为1Hz(秒)的时钟,经过60进制减计数后产生1分钟的借位时钟信号,再经过60进制减计数后产生1小时的借位时钟信号送给24进制减计数器进行减计数,当减计数到达00: 00: 00后,产生时的借位输出,同时24小时倒计时器停止倒计时,并发出提醒信号。
将两个60进制减计数器和一个24进制减计数器的输出送数码管显示,得到倒计时的显示结果。
其中,秒脉冲由EDA 实训仪上的20MHz 晶振分频得到。
三、实验设备秒脉冲①EDA实训仪1台。
②计算机1台(装有QuartusⅡ软件)。
四、实验内容1. 计时器在QurtusⅡ软件中,按照实验原理中24小时计时器的电路框图,用Verilog HDL编程设计计时器电路,然后进行编辑、编译(综合)、仿真,引脚的锁定,并下载到EDA实训仪中进行验证。
基于FPGA的数字钟设计(VerilogHDL语言实现)

基于FPGA的数字钟设计摘要:本设计为一个多功能的数字钟,具有时、分、秒计数显示功能,以12小时循环计数。
本设计采用EDA技术,以硬件描述语言VerilogHDL为系统逻辑描述手段设计文件,在QUARTUS II工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。
系统主芯片采用EP1K100QC208-3,由时钟模块、控制模块、计时模块、数据译码模块、显示以及报时模块组成。
经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,由按键输入进行数字钟的清零功能。
关键词:数字钟;硬件描述语言;VerilogHDL;FPGA;引言:现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。
支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。
前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design automatic,EDA)技术。
本设计采用的VerilogHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。
ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。
而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。
在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。
因此,键信息输入是与软件结构密切相关的过程。
根据键盘的结构不同,采用不同的编码方法。
但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。
基于FPGA的1 100s计时器

摘要高精度计时器常用于体育竞赛及各种要求有较精确定时的技术领域。
通常,采用中规模集成电路即可实现高精度计时器的设计。
本项研究将基于新一代硬件描述语言(HDL)、采取ASIC(专用集成电路)设计方法,实现1/100s计时器的前端设计。
本计时器包括5个模块:键输入模块、时钟分频模块、开关及控制模块、时钟定时模块、显示模块,以完成1/100s计时器所界定的功能。
在键输入模块中,将产生消除抖动后的reset0(复位脉冲输出)和on_off0(启/停脉冲输出)。
时钟分频子模块。
clk_div实际上是一个用计数器进行分频的分频电路,得到用于计时的100Hz脉冲信号和消除抖动的25Hz脉冲信号。
控制子模块是根据计时器的工作状态,控制是否输出计数允许信号enable,它用于控制计数子模块的计数工作。
计时子模块是一个定时计数器,用来产生要显示的8位计时信息,当使能信号enable有效时计数器开始有效计数。
计时器显示模块的输入信号为计时模块输出的计时信息;它的输出信号是choose和segment,驱动用于计时显示的8个LED七段显示数码管。
在输出信号中,由于八进制计数器循环计数,LED七段显示数码管循环点亮来显示计时器的计时输出。
对各个功能模块进行硬件描述以后,然后采用新一代可编程逻辑器件开发软件平台Quartus II,进行逻辑功能仿真与时序验证,并在FPGA开发板上进行了综合和适配。
关键词:计数器;HDL;集成电路设计;仿真ABSTRACTA precise calculargraph is usually applied to any technical fields as athletic competition that demands accuratetiming. Usually, the design of precise calculargraph can be maded by using mediate scale integrate circuit.The study which is based on the new hardware description language and adapts the design method of ASIC will realize the advanced design of calculargraph whose accuracy will be 1/100s. This calculargraph, including keyin module, clock frequency division module, switching and controlling module, display module ,can realize the function exercised by accurate calculargraph of 1/100s .The key_in module will produce reset0 and on_off0. Clock frequency division is actually a frequency division circuit divided by a calculator. When divided 10 times 1 KHz clock signal will result in clock’s 100Hz clock pulse signal and redivided 4 times it will result in 25Hz. The controlling sub_module is used to control whether enable the calculating signal according to the calculator’s working status. The calculating sub_module is a calculating timer, used to display 8_figure calculating information when the enable signal starts calculating effectively. The input signal of calculargraph display module is the calculating information it outputs, with the output signal choose and segment, driving the eight LED 7_section display digital tube used for calculating display. When it outputs signals, the LED 7_section display digital tube will be highlighted in circles to display the calculating output because of the 8_figure display’s calculating in circles.When describing all function modules’hardwares, a programming software plat from Quartus II will be developed. Its logical function emulation and time sequence will be tested, integrated into specific device and adapted.Key words:calculargraph; HDL; integrate circuit design; imitation目录摘要 (I)ABSTRACT........................................................... I I 第一章绪论.. (1)1.1 引言 (1)1.2 基于硬件描述语言(HDL)的电路设计 (2)1.3 可编程逻辑器件的设计流程 (3)1.3.1 系统说明 (4)1.3.2 设计输入 (4)1.3.3 设计实现 (5)1.3.4 器件编程 (5)第二章计时器的硬件描述语言(VHDL)设计 (6)2.1 1/100s计时器的功能描述 (6)2.2 计时器的模块划分 (9)2.3 计时器的模块设计 (12)2.3.1 键输入模块 (13)2.3.2 时钟分频模块 (15)2.3.3 控制模块 (18)2.3.4 计时模块 (20)2.3.5 显示模块 (24)2.4 计时器的顶层设计 (31)第三章 1/100s计时器的FPGA实现 (35)3.1 设计平台和器件的选择 (35)3.2 使用ModelSim对设计进行仿真 (36)3.2.1 键输入模块的时序仿真 (36)3.2.2 时钟分频模块的时序仿真 (37)3.2.3 控制模块时序仿真 (37)3.2.4 计时模块时序仿真 (38)3.2.5 显示模块时序仿真 (38)3.2.6 顶层模块时序仿真 (39)第四章 1/100s计时器的后端实现 (40)4.1 FPGA开发板简介 (40)4.2 综合和配置 (41)结论 (44)参考文献 (45)致谢 (48)第一章绪论1.1 引言在EDA出现以前,人们一直采用传统的硬件电路设计方法来设计系统的硬件。
基于FPGA的计时器设计(最终)

本科毕业设计(论文)基于FPGA的计时器的设计学院自动化学院专业电子信息科学与技术年级班别2009级(1)班学号3109001158学生姓名刘健忠指导教师谭北海2013年4月基于F P G A 的计时器设计刘健忠自动化学院摘要随着电子设计自动化技术和可编程逻辑器件的出现和飞速发展,在设计周期得到大大的缩短的同时系统成本也有了大幅度的降低,显然标准逻辑器件的组装已远不能满足这方面的要求。
而Verilog HDL能提供高阶电路描述语言的方式,让复杂的电路可以通过Verilog HDL编辑器的电路合成方式,轻易而且快速的达到设计的规格。
由于Verilog HDL电路描述语言能涵盖的范围相当广,能适用于各种不同阶层的设计工程师的需要,所以Verilog HDL电路设计毫无疑问的成为硬件设计工程师的必备工具。
本系统是用Verilog编写的基于Altera DE2的电话计费器。
该设计采用了现场可编程逻辑器件FPGA设计,并基于硬件描述语言Verilog HDL在Altera公司的Quartus Ⅱ软件上实现仿真。
根据电话局反馈回来的信号,此信号是提前预设的,数码管显示通话类型、用户余额以及通话时长(包括秒数和分钟数)。
根据每种通话类型的计费价格不同,当系统所设置的余额数不够,用户将无法拨通电话,当用户余额小于指定金额时,系统发出警告信号,提醒用户。
当告警时间过长(超过1分钟)时自动切断通话信号。
当用户结束通话,系统清零。
关键词:Verilog ,FPGA,通话信号,计时器AbstractWith the rapid development of electronic design automation technology and programmable logic devices which greatly shorten the design period and reduced the cost of the system at the same time. Apparently, the assembly of standard logic devices can not meet the requirements in this regard. Verilog HDL can provide high-level circuit description language, which allows complex circuit by the Verilog HDL Editor circuit synthesis method as well by meeting the design specification appropriately. Verilog HDL circuit description language covers a very wide range,which can be applied to a variety of different sectors of the needs of design engineers, the circuit design of Verilog HDL without a doubt to become an essential tool for hardware design engineers.The system is based on Altera DE2 written by Verilog phone devices. It is used by Field Programmable Gate Array FPGA based on Verilog HDL hardware description language to design and Altera's Quartus Ⅱin software for emulation. According to the feedback of the telephone office back signal which is actually pre-designed, digital pipe display type, user balance and phone call duration (including the number of seconds or minutes). Depending on the billing price of each call type is different,when a began to balance the set is not enough, the user will not be able to dial the phone, and when the balance is less than the specified money, issuing a warning signal system, reminding to users. When the alarm time is too long (more than 1 minutes), the conversation signal will be automatically cut off . When the user end the call, the system will be reseted.Key words:Verilog ,FPGA,Calling signal,calculagraph目录1绪论 (1)1.1 课题研究的目的 (1)1.2 国内外发展现状 (1)1.3课题的主要技术路线 (2)2FPGA技术及硬件描述语言 (3)2.1 FPGA的介绍 (3)2.1.1可编程逻辑器件发展简史 (3)2.1.2可编程逻辑器件的基本结构 (3)2.1.3可编程逻辑器件分类 (4)2.1.4 Altera Cyclone Ⅱ系列器件介绍 (5)2.1.5 FPGA的开发流程 (5)2.2 FPGA设计方法 (6)2.3 利用硬件描述语言(HDL)的硬件电路设计方法 (7)2.4 Verilog HDL语言的设计流程 (8)2.5 Quartus Ⅱ概述及其设计流程 (11)2.5.1 Quartus Ⅱ概述 (11)2.5.2 Quartus Ⅱ设计流程 (12)3系统总体设计 (14)3.1 计费模块介绍 (14)3.2 预设模块介绍 (15)3.3 时钟分频模块介绍 (15)3.4 分拆模块介绍 (15)3.5 数码管显示模块介绍 (16)3.6 警告模块介绍 (17)3.7 逻辑资源使用情况 (17)4系统的操作与分析 (18)4.1系统功能介绍 (18)4.2 选择通话类型和设置余额 (20)4.3通话开始 (21)4.4通话结束 (22)结论 (23)参考文献 (24)致谢 (25)附录A (26)附录B (27)附录C (31)附录D (32)附录E (33)附录F (35)附录G (36)1绪论1.1课题研究的目的时钟计时器在现在应用场合非常的广泛,近年来,随着科学技术的进步和时代的发展,人们对时钟的功能和精度提出了越来越高的要求,各种时钟的设计也越来越重要。
基于FPGA的数字电子时钟设计与实现.

课程设计 (论文说明书题目:基于 FPGA 的数字电子时钟设计院 (系 :信息与通信学院专学生姓名:学号:0900240115指导教师:职2012 年 12 月 25 日一、所用设备与器材1.1仪器设备使用仪器设备有 FPGA DE2-70开发板、 PC 机、信号发生器。
图 1 FPGA DE2-70开发板图二.系统方案2.1 设计思想利用数字电子技术、 EDA 设计方法、 FPGA 等技术,设计、仿真并实现一个基于 FPGA 的数字电子时钟基本功能, 其基本组成框图如图 1所示,振荡器采用ALTERA 的 DE2-70实验板的 50MHz 输出,分频器将 50MHz 的方波进行分频进而得到 1Hz 的标准秒脉冲,时、分、秒计时模块分别由二十四进制时计数器、六十进制分计数器和六十进制秒计数器完成,校时模块完成时和分的校正。
扩展功能设计为倒计时功能,从 59分 55秒至 59分 59秒,每秒亮一盏灯报时。
2.1.1课题背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高, 同时也使现代电子产品性能更进一步, 产品更新换代的节奏也越来越快。
20世纪 80年代末,出现了 FPGA(Field Progrommable Gate Array, CAE 和 CAD 技术的应用更为广泛,它们在 PCB 设计的原理图输入,自动布局布线及 PCB 分析, 以及逻辑设计,逻辑仿真布尔综合和化简等方面担任了重要的角色,为电子设计自动化必须解决的电路建模,标准文档及仿真测试奠定了基础。
硬件描述语言是 EDA 技术的重要组成部分, VHDL 是作为电子设计主流硬件的描述语言。
本论文就是应用 VHDL 语言来实现秒表的电路设计。
VHDL 语言是标准硬件描述语言,它的特点就是能形式化抽样表示电路结构及行为,支持逻辑设计中层次领域的描述,借用了高级语言的精巧结构简化电路描述,具有电路模拟与验证及保证设计的正确性,支持电路由高层向底层的综合变换,便于文档管理,易于理解和设计重用。
电子钟(FPGA设计verilog代码)

电子钟(FPGA设计verilog代码)//*****************************************//电子钟:24小时制时分秒////作者:yotain////clk 50M时钟 CP 1Hz输出可接LED指示灯//nCR 清零(必须接低电平异步清零)//Adj_Min (分校正低电平计时必须接)//Adj_Hour (时校正低电平计时必须接)//dataout (数码管输出)//en (数码管使能端)//(Hour Minute Second 可以不接也可以单独接数码管一位的) //修改bcd_decoder 即可修改显示////*****************************************//************ timeclock top block*************module top_clock ( Hour, Minute, Second, CP, nCR, EN, Adj_Min, Adj_Hour,clk,dataout,en) ;input clk, nCR, EN, Adj_Min, Adj_Hour;output CP;output [7:0] Hour, Minute, Second,dataout;output [3:0] en;wire [7:0] Hour, Minute, Second, dataout;supply1 Vdd;wire MinL_EN, MinH_EN, Hour_EN;//**************Hour, Minute, Second counter************counter10 U1 ( Second[3:0], nCR, EN, CP);counter6 U2 ( Second[7:4], nCR, ( Second[3:0]==4'h9), CP);assign MinL_EN = Adj_Min? Vdd : (Second==8'h59);assign MinH_EN = ( Adj_Min &&( Minute [3:0] ==4'h59))|| ( Minute[3:0]==4'h9)&& (Second == 8'h59);counter10 U3 ( Minute[3:0], nCR, MinL_EN,CP);counter6 U4 ( Minute[7:4], nCR, MinH_EN,CP);assign Hour_EN = Adj_Hour ? Vdd: ((Minute == 8'h59)&&(Second == 8'h59));counter24 U5 ( Hour[7:4], Hour[3:0], nCR, Hour_EN,CP);bcd_decoder U6 (clk,nCR,Hour[7:4],Hour[3:0],Minute[7:4],Minute[3:0],dataout,en);PULSE U7(clk,CP);endmodule//**************counter10 ( BCD 0~9 )*************module counter10 ( Q, nCR, EN, CP);input CP, nCR, EN;output [3 : 0] Q;reg [3 : 0] Q;always @ (posedge CP or negedge nCR)beginif( !nCR ) Q<=4'b0000;else if ( !EN ) Q<=Q;else if ( Q ==4'b1001) Q <= 4'b0000;else Q <= Q+1'b1;endendmodule//**************counter6 ( BCD 0~5 )************ module counter6 ( Q, nCR, EN, CP);input CP, nCR, EN;output [3:0] Q;reg [3:0] Q;always @ (posedge CP or negedge nCR ) beginif(!nCR) Q<= 4'b0000;else if (!EN) Q<=Q;else if (Q == 4'b0101) Q<=4'b0000;else Q <= Q + 1'b1;endendmodule//***************counter24 ( 0~23 )************** module counter24 ( CntH, CntL, nCR, EN, CP); input CP, nCR, EN;output[3:0] CntH,CntL;reg [3:0] CntH,CntL;reg CO;always @ (posedge CP or negedge nCR)if(!nCR) {CntH,CntL} <=8'h00;else if(!EN) {CntH,CntL} <= {CntH,CntL};else if ( (CntH>2)||(CntL>9) || ( (CntH==2)&&(CntL>=3) ) ) {CntH,CntL} <=8'h00;else if((CntH==2)&&(CntL<3))beginCntH<=CntH;CntL<=CntL+1'b1;endelse if (CntL==9)beginCntH=CntH+1'b1;CntL=4'b0000;endelse beginCntH<=CntH;CntL<=CntL+1'b1;endendendmodule//*************cnt_1Hz*****************module PULSE ( clk, clk_1Hz);input clk;output clk_1Hz;reg [24:0] cnt_1Hz;reg R_clk=0;assign clk_1Hz=R_clk;always @ (posedge clk)if (cnt_1Hz==50000000) cnt_1Hz<=0;else cnt_1Hz<=cnt_1Hz+1;endalways @ (posedge clk)beginif(cnt_1Hz<=25000000) R_clk<=1;else R_clk<=0;endendmodule//*************bcd_decoder*************module bcd_decoder (clk,nCR,A,B,C,D,dataout,en);input clk; //system clockinput nCR; //system reset,low is activeinput [3:0] A,B,C,D;output[7:0] dataout;output[3:0] en; //enable high is activereg[7:0] dataout;reg[4:0] en;reg[15:0] cnt_scan;reg[3:0] dataout_buf;always@(posedge clk or negedge nCR)beginif(!nCR) begincnt_scan<=0;endelse begincnt_scan<=cnt_scan+1; endendalways@(cnt_scan) begincase(cnt_scan[15:14]) 2'b00:en=4'b0001;2'b01:en=4'b0010;2'b10:en=4'b0100;2'b11:en=4'b1000; default:en=4'b1111; endcaseendalways@(en)begincase(en)4'b0001:dataout_buf=A;4'b0010:dataout_buf=B;4'b0100:dataout_buf=C;dataout_buf=D; default:dataout_buf=4'b0000; endcaseendalways@(dataout_buf) begincase(dataout_buf)4'b0000:dataout=8'b1111_1100; 4'b0001:dataout=8'b0110_0000; 4'b0010:dataout=8'b1101_1010; 4'b0011:dataout=8'b1111_0010; 4'b0100:dataout=8'b0110_0110; 4'b0101:dataout=8'b1011_0110; 4'b0110:dataout=8'b1011_1110; 4'b0111:dataout=8'b1110_0000; 4'b1000:dataout=8'b1111_1110; 4'b1001:dataout=8'b1110_0110;dataout=8'b1110_1110; 4'b1011:dataout=8'b0011_1110; 4'b1100:dataout=8'b1001_1100; 4'b1101:dataout=8'b0111_1010; 4'b1110:dataout=8'b1001_1110; 4'b1111:dataout=8'b1000_1110; default :dataout=8'b0000_0010; endcaseendendmodule//End of RTL code。
基于fpga的倒计时时钟实验报告总结

基于FPGA的倒计时时钟实验报告总结一、实验目的本实验旨在通过FPGA技术,设计一个能够进行倒计时的时钟电路,并进行相应的功能验证。
二、实验内容1. 确定实验目标:设计一个基于FPGA的倒计时时钟电路,实现倒计时功能。
2. 学习FPGA设计工具:熟悉并掌握FPGA设计工具的使用方法,包括逻辑综合、时序分析等。
3. 编写时钟电路代码:利用Verilog硬件描述语言编写时钟电路的代码。
4. 进行仿真验证:对时钟电路进行仿真验证,确保设计的正确性和稳定性。
5. 下板实验验证:将设计好的时钟电路下载到FPGA开发板上,进行实际验证。
三、实验步骤与结果分析1. 设计倒计时时钟电路通过学习资料和实验指导,我们利用Verilog HDL进行倒计时时钟电路的设计,并对其功能进行初步测试。
初步测试结果表明,设计的倒计时时钟电路能够正常工作。
2. 时钟电路仿真验证我们利用FPGA设计工具对时钟电路进行了仿真验证,通过时序分析和波形仿真,确认了时钟电路的正确性和稳定性。
仿真结果显示,时钟电路能够准确地进行倒计时操作。
3. 下板实验验证将设计好的时钟电路下载到FPGA开发板上进行实际验证。
经过实际测试,我们发现倒计时时钟电路能够稳定可靠地进行倒计时操作,符合设计要求。
四、实验总结通过本次实验,我们深入学习了FPGA技朰,并成功设计并验证了基于FPGA的倒计时时钟电路。
实验中我们克服了一些困难,如时钟电路设计的复杂性和仿真验证的精确性等。
我们顺利完成了实验目标,掌握了FPGA设计工具的使用方法,提高了自己的实践能力和动手能力。
这次实验为我们今后在FPGA领域的研究打下了坚实的基础,也对我们的专业素养、工程实践能力提出了更高的要求。
五、改进建议在今后的实验中,我们可以进一步深入研究FPGA技术,探索更多的应用场景,提高我们的设计水平。
注重团队合作、创新思维,不断提升自己的综合素质和实践能力,为将来的科研工作和工程实践打下更加坚实的基础。
基于fpga的多功能万年历

基于FPGA的多功能万年历1. 绪论现代科技在不断进步电子技术在不断发展,电子产品设计复杂程度也在不断增加。
而且电子产品的更新换代也越来越快,现在只靠传统的纯硬件的设计方法已经不能满足现代人们的要求。
EDA就是典型的硬件设计软件化的设计平台。
EDA是一项非常先进的技术,它有许多别的技术没有的优点:像单片机需要先画出硬件图再编写相对应的程序,而EDA是先编好程序再画图的,而且模块化的编程还会在软件中生成相应的封装元件,使最后画原理图变的更加简单;可以编好程序就直接仿真,程序出现错误可以在源文件内部直接改;并且设计好的总系统可以集成在一个体积小、功耗低、可靠性高的芯片上。
本设计采用VHDL语言,VHDL语言是一种全方位的数字系统设计和测试的硬件描述。
它支持原理图输入方法以及传统的文件输入方。
对于前者适用于小规模的数字集成电路,并进行模拟仿真。
而对于大规模的、复杂的系统,如果用纯原理图设计方法的话的,由于种种条件和环境制约,会导致工作效率底而且容易出错的等缺点。
在信息技术的今天,集成电路逐渐的趋向于系统化、微尺寸化、低功耗高集成化,因此,高密度可编程逻辑器件和VHDL越来越得到设计者的青睐。
它具有极强的描述能力,支持结构、数据流、行为三种描述形式的混合的设计方式,描覆盖面广、抽象能力强。
它能支持系统行为级、逻辑门级和寄存器传输级三个不同层次的设计。
在本设计中用到的FPGA是特殊的ASIC芯片,ASIC是一种带有逻辑处理的加速处理器的专用的系统集成电路。
它具有功耗低、速度快、集成度、设计制造成本低等优点。
本设计是研究基于FPGA的多功能万年历的设计,主要实现以下功能:能够显示年、月、日、时、分、秒,时间采用24小时制。
当时间不准确时还可以手动校准。
本系统还能实时的显示当前的温度,扩展了万年历的功能。
我采用的是数字温度传感器DS18B20和FPGA组成的温度采集系统,此系统具有硬件电路简单,抗干扰能力强等优点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书学生姓名:罗序森专业班级:通信gj1101______ 指导教师:胡辑伟工作单位:____信息工程学院_____ 题目: 通信工程应用技术课设——FPGA一、设计任务与要求设计一个具有系统时间设置和带闹钟功能的24小时计时器中的应用。
电子钟要求如下:(1)计时功能:4位LED数字时钟对当前时间的小时和分钟进行显示,显示的最长时间为23小时59分。
(2)设置并显示新的闹钟时间:用户先按“set”键,再用数字键“0”~“9”输入时间,然后按“alarm”键确认。
在正常计时显示状态下,用户直接按下“alarm”键,则已设置的闹钟时间显示在显示屏上。
(3)设置新的计时器时间:用户先按“set”键,再用数字键“0”-“9”输入新的时间,然后按“time”键确认。
在输入过程中;输入的数字在显示屏上从右到左依次显示。
例如,用户要设置新的时间12:00,则按顺序输入“l”,“2”,“0”,“0”键,与之对应,显示屏上依次显示的信息为:“1”,“12”;“120”,“1200”。
如果用户在输入任意几个数字后较长时间内,例如5秒,没有按任何键,则计时器恢复到正常的计时显示状态。
(4)闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声;三.时间安排:指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (2)Abstract ................................................... 错误!未定义书签。
1 绪言 ..................................................... 错误!未定义书签。
1.1 课题的研究背景及意义................................ 错误!未定义书签。
1.2 闹钟系统的.......................................... 错误!未定义书签。
2 FPGA简介 (2)2.1 FPGA简述........................................... 错误!未定义书签。
2.2 FPGA工作原理 (2)2.3 FPGA的基本结构 (2)2.4 FPGA系统设计流程 (4)3主要模块设计 (5)3.1 分频模块 (5)3.1.1 分频模块源代码 (5)3.1.2 分频模块仿真 (6)3.2 按键模块 (7)3.2.1 按键模块源代码 (7)3.2.2 按键模块仿真 (9)3.3 时间模块 (10)3.3.1 时间模块源代码 (10)3.3.2 时间模块仿真 (13)3.4 显示模块 (14)3.4.1 显示模块源代码 (14)3.4.1 显示模块仿真 (17)3.5 闹钟模块 (17)3.5.1 闹钟模块源代码 (17)3.5.2 闹钟模块仿真 (18)3.6 顶层模块 (19)3.6.1 顶层模块源代码 (19)3.6.2 顶层模块仿真 (21)4 小结与体会 (22)参考文献 ................................................... 错误!未定义书签。
本设计在对闹钟系统的原理及其功能进行分析的基础上,采用自顶向下的设计方法,以现场可编程门阵列(FPGA)作为硬件基础,对闹钟系统进行电路设计。
本文的研究目的也是利用EDA技术来实现带闹钟功能的24小时计时器。
分别介绍发展历史、发展动态、设计思路、系统原理、系统功能分析、系统结构、各个模块分析与设计以及主要工作过程,并且经实际电路测试与仿真从而实现了一种基于FPGA的精确可靠的数字闹钟系统。
关键字:VHDL, QuartusII, FPGA, 闹钟The design is based on the analysis of the alarm system and its functions, using top-down design approach to field programmable gate array (FPGA) as a hardware foundation, on the alarm system circuit design. Purpose of this paper makes use of EDA techniques to achieve the alarm clock function with the 24-hour timer. The paper introduces the research background, the development history, the development tendency, the research mentality, the system principle the system function analysis, the system structure, each module analysis principle, the system function analysis, the system structure, each module analysis and the design as well as the prime task process separately. And by the actual circuit testing and simulation in order to achieve an accurate and reliable based on the number of FPGA alarm system.Key words: VHDL, QuartusII, FPGA, alarm clock1绪言1.1课题的研究背景及意义当今社会是数字化的社会,是数字集成电路广泛应用的社会。
数字集成电路本身在不断地进行更新换代。
它由早期的电子管、晶体管、小中规模集成电路,发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。
但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。
系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
在许多仪器仪表中都用到闹钟定时,目前通常是采用专用的数字闹钟芯片,但是这种芯片功能固定,不利于嵌入式应用。
而且,在仪器仪表的许多应用场合已经采用了FPGA可编程芯片。
这样一来,为我们在使用硬件空间的FPGA器件中在嵌入一个计时闹钟提供了极大的方便,而且不会增加成本,并可以使系统结构更加简单,体积更小,成本更低,具有更好的嵌入式和可移植特性。
1.2闹钟系统发展概述六十年代末,七十年代初带闹钟的电子钟表已悄悄在起步,因为客观存在成本低,精度高,显示直观方便(不用上发条)的优点冲击了传统机械表的统治地位。
到底90年代初基本垄断了钟表市场。
而随着时代的发展,在生产生活中对计时工具的要求也逐渐增高,高效节能理念的深入人心,功耗大开发周期长的传统电子表已经显然不适合时代的要求。
20世纪末数字电子技术得到飞速发展,数字电子技术的应用已经渗透到人类生活的各个方面。
从计算机到手机,从数字电视到数字电话,从家用电器到军用设备,从自动化到航天技术都广泛的采用了数字电子技术。
现代电子设计技术的核心是EDA技术。
EDA技术就是领先功能强大的电子计算机,在EDA工具软件平台上,对硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动的逻辑编译、化简、分割、综合、优化和仿真直到下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC 芯片中,实现既定的电子电路设计功能。
EDA技术使得电子闹钟设计工作仅限于利用硬件描述语言和EDA软件平台完成对系统硬件功能的实现,极大地提高设计效率,缩短了设计周期,节省设计成本。
本设计就是运用EDA技术,根据闹钟要实现的功能:计时功能、闹钟功能、设置新的计时器时间、设置新的闹钟时间、显示所设置的闹钟。
采用高层硬件描述语言VHDL进行设计。
首先程序文本输入,处理(编译、检查、逻辑优化与综合。
适配、分割、布局、布线、生成编程数据文件),然后进行功能仿真和时序仿真,最后下载到FPGA器件中并进行功能测试,进行输入操作、查处输入结果验证设计电路。
2 FPGA简介2.1 FPGA简述FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
2.2 FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA 具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA 所能实现的功能,FPGA允许无限次的编程。
2.3 FPGA的基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。
FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。
这3种可编程电路是:可编程逻辑模块(CLB--Configurable Logic Block)、输入/输出模块(IOB--I/O Block)和互连资源(IR—Interconnect Resource)。