FPGA设计的秒表设计实验报告
基于FPGA的秒表实验
基于FPGA的秒表实验目的4个七段数码管分别表示十分分十秒秒当SW0为1的时候,暂停计时,进入设置。
按BTN0时秒加1,按BTN1时增加10秒按BTN2时增加1分,按BTN3时增加10分module miaobiao(clk,out,out1,control,btn);//模块名及端口input clk,control,btn;//输入端口声明output out,out1;//输出端口声明wire control;//输入控制信号是wire类型wire [3:0] btn;//四位按键reg [6:0] out1;//定义段选7位寄存器reg [3:0] out;//定义位选4位寄存器reg [31:0] count;//定义一个计数器reg [3:0] sec_l,sec_h,min_l,min_h,out2;//定义存储秒、十秒、分、十分的寄存器,还有显示寄存器供译码用;initial out1 <= 7'b0000001;//给段选赋初值,刚开始时位0000always @(posedge clk)//计数行为语句begincount = count + 1;if ((count==50000000)&&(control==0))//进行分频与控制信号的检测,控制信号为假,继续计数beginsec_l = sec_l +1;count = 0;if(sec_l==10)beginsec_l=0;sec_h = sec_h + 1;if(sec_h == 6)beginsec_h = 0;min_l = min_l + 1;if (min_l==10)beginmin_l = 0;min_h = min_h + 1;if(min_h==6)min_h = 0;endendendendelse if((count==50000000)&&(control==1))//控制信号为真,进入操作模式begincount = 0;if (btn[0]==1)beginsec_l = sec_l + 1;if (sec_l==10)sec_l = 0;endif (btn[1]==1)beginsec_h = sec_h + 1;if (sec_l==6)sec_h = 0;endif (btn[2]==1)beginmin_l = min_l + 1;if (min_l==10)min_l = 0;endif (btn[3]==1)beginmin_h = min_h + 1;if (min_h==6)min_h = 0;endendendalways @(posedge clk)//时钟扫描(动态扫描)行为语句begincase(count[15:14])2'b00:begin out <= 4'b1110; out2 <= sec_l;end//打通第一个管子的时候,把秒寄存器的值给显示寄存器,显示寄存器通过译码转换为段码2'b01:begin out <= 4'b1101; out2 <= sec_h;end2'b10:begin out <= 4'b1011; out2 <= min_l;end2'b11:begin out <= 4'b0111; out2 <= min_h;endendcaseendalways @(posedge clk)//译码行为语句,根据显示寄存器的值,译为2进制代码来赋予电平信号,打通led管begincase(out2)0:out1 <= 7'b0000001;1:out1 <= 7'b1001111;2:out1 <= 7'b0010010; 3:out1 <= 7'b0000110; 4:out1 <= 7'b1001100; 5:out1 <= 7'b0100100; 6:out1 <= 7'b0100000; 7:out1 <= 7'b0001111; 8:out1 <= 7'b0000000; 9:out1 <= 7'b0000100; endcaseendendmodule。
FPGA 数字秒表的设计
学院FPGA设计实践报告题目:数字秒表的设计院系:计算机与信息工程学院专业:电子科学与技术年级姓名:学号:指导老师:一、课程设计目的:本课程的授课对象是电子科学与技术专业本科生,是电子类专业的一门重要的实践课程,是理论与实践相结合的重要环节。
本课程有助于培养学生的数字电路设计方法、掌握模块划分、工程设计思想与电路调试能力,为以后从事各种电路设计、制作与调试工作打下坚实的基础。
二、课程设计要求:l. 设计用于体育比赛用的数字秒表, 要求:⑴计时精度应大于l/100S, 计时器能显示1/100S的时间, 提供给计时器内部定时的时钟脉冲频率应大于l00Hz, 这里选用1kHz 。
⑵计时器的最长计时时间为l小时, 为此需要一个6位的显示器, 显示的最长时间为59分59.99秒。
2. 设置有复位和起/停开关⑴复位开关用来使计时器清零, 并作好计时准备。
⑵起/停开关的使用方法与传统的机械式计时器相同, 即按一下起/停开关, 启动计时器开始计时, 再按一下起/停开关计时终止。
⑶复位开关可以在任何情况下使用,即使在计时过程中, 只要按一下复位开关, 计时进程立刻终止, 并对计时器清零。
3. 复位和起/停开关应有内部消抖处理。
4. 采用VHDL语言用层次化设计方法设计符合上述功能要求的数字秒表。
5. 对电路进行功能仿真, 通过有关波形确认电路设计是否正确。
6. 完成电路全部设计后, 通过系统实验箱下载验证设计课题的正确性。
三、系统组成与工作原理:数字秒表框图:1、电路原理图 :2、工作原理:l.计时控制器作用是控制计时。
计时控制器的输入信号是启动、暂停和清零。
为符合惯例, 将启动和暂停功能设置在同一个按键上, 按一次是启动, 按第二次是暂停, 按第三次是继续。
所以计时控制器共有2个开关输入信号, 即启动/暂停和清除。
计时控制器输出信号为计数允许/保持信号和清零信号。
2. 计时电路的作用是计时, 其输入信号为lkHz 时钟、计数允许/保持和清零信号, 输出为l0ms、l00ms、s 和min 的计时数据。
基于FPGA数字秒表设计
数字秒表设计一、实验目的1、理解计时器的原理与Verilog/VHDL的编程方法;2、掌握多模块设计及层次设计的方法。
二、实验原理秒计时器是由计数器和译码器、显示器组成,其核心是计数器与译码器。
60秒计时器可由二个计数器分别完成:个位为十进制计数器,十位为6进制计数。
个位计数器的计数信号由实验开发板上主频20MHZ分频产生的1Hz时钟信号提供,十位计数器的计数信号由个位的进位信号提供。
然后由译码器对计数结果进行译码,送LED数码管进行显示。
Clr为清零,se t为开始。
三、实验框图图2-1四、实验任务1、采用层次设计的方法,设计一个包括顶层及底层模块的60秒计时器,底层模块用Verilog/VHDL设计(或者选用原理图输入法中宏功能元件),顶层用原理图设计。
2、秒计时器应当具有系统复位功能;3、每十秒发出提示信号及计满60秒时发出报警信号。
(选做)文件名COUNT10.V代码module COUNT1O(SET, CLR, CLK, DOUT, COUT); in put SET, CLR, CLK;output [3:0] DOUT;output COUT;reg [3:0] data;reg COUT;assig n DOUT = data;always @(n egedge CLK or n egedge CLR)4'HF: Q<=7'H71 ;default: Q<=7'B1111111;endcaseenden dmoduleCOUNT60.bdf文件名原理图五、实验步骤1•创建工程2•选择目标器件3. 编写verilog hdl程序4编译5. 生成符号文件6. 创建编辑原理图7. 设置顶层文件8编译六、实验结果1. 编译结果Flow StatusQuartos II VersionRevisicxi NameTop^vel Entity NarneFamlyDeviceTrning ModdsMet timmg requiTiefrientsTata logic ate merit ETold conbinatKMial fundioni Dedfcatcd logic registers Total negiateFBTotal pinsTot日virtual pinsTotaJ rnemory bits&vibedded Multiplier &dements Total PLLs SuccessfLi - Sat Nov 01 11:12:49 30149 1 Build 222 10/21/200& SJ Wet> Editicri COUNTSCOUNTGOl^done I IIEP3C5E144C8Fmi^lN/AG3/5.136( 1 X)33/5.136(<1 X)3J26/96(27*}Q/4?3^36<0%)0/4&(D%)0/2(0%)2. 仿真结果文件名COUNT6.V仿真结果Mann 白Value i17.B F^07ua邑更 g ^?JE^7ub ia-19 JB 71字麼甲 5 33—0宀^^4CLKCLHSETCOUTB D0UTHDH1卜1HD卜0TLrLrLrLnrLrLnnrLrLrLrLrLrLrLrLrLnjTrLrLrLrLrLrumfmrLrLrLrLri L r~1 i 1 i厂-n n文件名COUNT10.V9. 创建编辑波形图文件10. 使用波形图仿真11. 锁定管脚12. 编译13. 下载至芯片仿真结果文件名仿真结果17J?5na■TLTLrLnirLrLrWLn_ruwwjwrLnjmjirLrLrwin_ruijWWUi[n JTT ®(n2XDE®®o^oD203®2xnixD®(n®®©(n2XD®@i®OE®i®<ri i i _______ i i _______COUNT60.V (为了简便将分频器设置2分频的)C_KfHRSET 冋DOITH hiDOirn uOH5 xHUTL_nu jnlimnninmmiMmmmmrimimmMJMominroinnrumiminmTmmmnnrmim!irrno“j 厂JCJZ : 前t 底—I 強—r 耶弋騙工如丫非—仍丈丸朗代熾:璇绽帰它狀减燉麒^峨*]炊輕烫处好號爼仞XCOK切默XX*X*X5XIMM*>X*iXXXAN WtXXXCO Z備出七、实验小结通过本次实验,我掌握了分频器的设计,学习了如何通过原理图设计,知道了如何在一个工程中同时使用verilog hdl程序和原理图。
fpga秒表设计实验报告
fpga秒表设计实验报告本次实验是基于FPGA设计的秒表。
秒表主要是用来计时的一种仪器,具有精准度高、显示清晰等优点。
在实验中,我们使用FPGA来实现秒表的设计。
1. 实验目的通过本次实验,我们的目的是掌握FPGA的使用方法,并设计出一个能够精准计时的秒表。
同时,也能够加深理解数字电路的基本原理和数字信号的处理方式。
2. 实验原理秒表的原理很简单,在起点按下计时键后,秒表开始计时,时间会显示在数码管或LCD屏幕上。
在终点按下停止键后,秒表停止计时。
我们需要用数字电路来实现这个过程,分为三个部分。
2.1. 时钟模块时钟模块是秒表实现的基础。
我们可以使用FPGA内置的时钟控制器IP,也可以自己实现时钟模块。
在这个实验中,我们使用了FPGA内置的时钟控制器IP。
2.2. 计时模块计时模块是实现秒表的关键。
我们可以使用FPGA内置的计数器IP,也可以自己实现计数器模块。
在这个实验中,我们使用了FPGA内置的计数器模块。
2.3. 显示模块显示模块用来显示计时结果。
我们可以使用数码管或LCD屏幕来显示计时结果。
在这个实验中,我们使用了数码管来显示计时结果。
3. 实验步骤3.1. 创建工程首先,我们需要在Vivado IDE中创建一个FPGA工程。
在创建工程时,需要选择适当的设备型号、板卡等参数。
3.2. 添加时钟控制器IP在Vivado IDE中,选择IP Catalog,搜索并添加时钟控制器IP。
3.3. 添加计数器IP在Vivado IDE中,选择IP Catalog,搜索并添加计数器IP。
3.4. 添加数码管IP在Vivado IDE中,选择IP Catalog,搜索并添加数码管IP。
3.5. 连接IP在Vivado IDE中,将时钟控制器IP、计数器IP和数码管IP进行连接。
3.6. 程序设计使用Vivado IDE中的HDL语言对秒表进行程序设计。
3.7. 烧录程序将程序烧录到FPGA中,实现秒表功能。
FPGA秒表实验报告
课程设计报告专业班级课程题目秒表的设计学号姓名同组人成绩2013年5月一、设计目的1.进一步熟悉七段码译码器的硬件接口。
2.掌握用扫描方法驱动多个数码管硬件接口。
3.掌握秒表VHDL的编程方法。
二、系统总体设计(1).设计要求:1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。
当计时达60分钟后,蜂鸣器鸣响10声。
2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。
3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。
在整个秒表中最关键的是如何获得一个精确的100HZ 计时脉冲。
(2).实验原理:秒表由于其计时精确,分辨率高(0.01秒),在各种竞技场所得到了广泛的应用。
秒表的工作原理与数字时基本相同,唯一不同的是秒表的计时时钟信号,由于其分辨率为0.01秒,所以整个秒表的工作时钟是在100Hz的时钟信号下完成。
当秒表的计时小于1个小时时,显示的格式是mm-ss-xx(mm表示分钟:0~59;ss 表示秒:0~59;xx表示百分之一秒:0~99),当秒表的计时大于或等于一个小时时,显示的和多功能时钟是一样的,就是hh-mm-ss(hh表示小时:0~99),由于秒表的功能和钟表有所不同,所以秒表的hh表示的范围不是0~23,而是0~99,这也是和多功能时钟不一样的地方。
在设计秒表的时候,时钟的选择为100Hz。
变量的选择:因为xx(0.01秒)和hh(小时)表示的范围都是0~99,所以用两个4位二进制码(BCD码)表示;而ss(秒钟)和mm(分钟)表示的范围是0~59,所以用一个3位的二进制码和一个4位的二进制码(BCD)码表示。
显示的时候要注意的问题就是小时的判断,如果小时是00,则显示格式为mm-ss-xx,如果小时不为00,则显示hh-mm-ss。
基于FPGA的数字跑表设计报告
基于FPGA的数字跑表设计报告姓名:学号:指导老师:***摘要:本文详细介绍了数字秒表的设计指标,设计思路,设计方案,系统电路设计,系统单元模块设计,系统硬件实现与测试的结果。
一 引言 科技高度发展的今天,集成电路和计算机应用得到了高速发展。
尤其是计算机应用的发展。
它在人们日常生活已逐渐崭露头角。
大多数电子产品多是由计算机电路组成,如:手机、mp3等。
而且将来的不久他们的身影将会更频繁的出现在我们身边。
各种家用电器多会实现微电脑技术。
电脑各部分在工作时多是一时间为基准的。
本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表。
秒表在很多领域充当一个重要的角色。
在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。
他们对时间精确度达到了几纳秒级别。
二 项目任务与设计思路 本项目的任务是掌握使用VHDL 语言的设计思想;熟悉ise 软件的使用;了解XILINX 学生EDA 实验板。
了解 EDA 技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。
在掌握所学的计算机组成与结构课程理论知识时。
通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决 计算机技术实际问题的能力。
通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。
项目任务与设计思路本项目的指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD 七段数码管显示读数。
显示格式:三 基于VHDL 方法设计方案 VHDL 的设计流程主要包括以下几个步骤:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL 编辑环境。
通常VHDL 文件保存为.vhd文件2.功能仿真:将文件调入HDL 仿真软件进行功能仿真,检查逻辑功能是否正确。
3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。
FPGA实验报告5篇
FPGA实验报告5篇第一篇:FPGA实验报告FPGA实验报告专业:XXX 姓名:XXX 学号:XX一:实验目的1.熟悉Modelsim和Quartus II软件的运行环境和使用2.熟练使用Quartus II仿真软件生成网表。
3.熟悉FPGA前仿真和后仿真的整个流程。
二:实验内容编写counter计数器,在Quartus II仿真软件中生成网表,再在Modelsim中进行后仿真。
三: 实验步骤1.在Modelsim编写源程序(counter计数器及激励),编译源文件,确保程序的正确性,并进行前仿真,生成波形图如下:附:源程序如下:module counter(q,clk,reset);input clk,reset;output [3:0] q;reg [3:0] q;always @(posedge reset or negedge clk)if(reset)q <= 4'b0;elseq <= q + 1;endmodule module top;reg CLK,RESET;wire [3:0] Q;counter c1(Q,CLK,RESET);initialCLK=1'b0;always#1 CLK=~CLK;initial$monitor($time,“Q=%d”,Q);initialbeginRESET=1'b1;#5 RESET=1'b0;#180 RESET=1'b1;end endmodule 2.新建文件夹,将源程序counter.v放进去。
然后启动Quartus II仿真软件,生成网表。
1).在【File】下拉菜单中选中New Project Wizard选项,出现对话框。
并指定工程工作目录、工程名称和顶层模块名,如图(a)所示。
2).添加(Add)counter.v文件。
如图(b)所示。
3).选择器件系列4).指定其它EDA工具,如图(d)所示。
基于FPGA的数字秒表的设计与实现
现代电子技术综合实验一、性能指标(1) 秒表计时范围为:1小时;(2) 秒表精度为0.01秒;(3) 具有开始计时、停止计时控制功能,且开始计时、停止计时为一个复用按键;(4) 在正常计时显示过程中,能够在存储按键作用下存储某一计时时间;存储的时间组数为确定值或1至任意值;(5) 在读取按键作用下存储的时间能够回放显示;回放显示可手动或自动依次显示;(6) 具有复位功能;(7) 用六位数码管显示时间读数。
二、任务要求(1)完成系统方案总体设计(2)利用硬件描述语言完成控制电路的设计、仿真(3)利用开发板完成系统的硬件实现(4)进行系统调试及功能测试(5)撰写设计报告三、系统组成u 计数器单级计数器四、单元电路设计signal count: std_logic_vector(3 downto 0):="0000"; process(rst,clk) begin if rst='1' then count <= "0000"; carry_out <= '0'; elsif clk'event and clk= '1' then if carry_in = '1' then if count= "1001" then count <= "0000"; carry_out <= '1'; else count <= count+1; carry_out <= '0'; end if; end if; end if;end process; count_out<=count; 功能:对频率100Hz 的信号进行计数,计数最大值为 595999。
clk:时钟信号输入rst:复位输入端carry_in:使能端count_out(3:0):计数输出端carry_out:进位输出端主要语句:同步级联原理图:有缘学习更多+谓ygd3076或关注桃报:奉献教育(店铺异步级联原理图:u分频器功能:将系统时钟分频后,为计时模块和显示模块提供工作时钟;clk:48MHz系统时钟信号输入端clkout1k:频率1KHz信号输出端clkout100:频率100Hz信号输出端123 4512 3 4 5 1 2clk_inclk_out 10个 主要语句: if clkin'event and clkin = '1' then if cnt = 5 then cnt <= 1; clkout <=not clkout; else cnt <= cnt + 1; end if; end if;分频器实现原理:基于计数器方法实现例有缘学习更多+谓ygd3076或关注桃报:奉献教育(店铺u 使能控制e_tmp <=not e_tmp;主要语句: 功能: 在输入信号的作用下,输出信号发生翻转,产生控制计数器的使能控制信号。
基于FPGAVerilog的数字式秒表设计
基于FPGA的数字式秒表一、设计任务及要求秒表由于其计时精确,分辨率高(秒),在各种竞技场所得到了广泛的应用,本次设计的任务就是设计一个基于 FPGA 的数字式秒表。
1、基本要求:(1)性能指标:秒表的分辨率为秒,最长计时时间为秒;(2)设置启/停开关和复位开关(计数控制器):启/停开关 S1 的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。
复位开关 S2 用来使计时器清 0,复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时进程应立即终止,并对计时器清零。
(开关按下为 0,弹起为 1)。
(3)秒表的计时基准信号:以周期为秒(频率 100HZ)的计时脉冲作为一个比较精准的计时基准信号输入到秒位计数器的时钟端;在设计中采用分频器把 1000HZ 的时钟信号转换为 100HZ 的计时基准信号,其分频系数为 10。
(4)数码管动态显示:七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用 1000HZ 。
为了得到 1000Hz 信号,必须对输入的时钟信号 50MHZ 进行分频。
显示模块共用 11 个管脚,其中 8 个用于连接 8 个数码管的七段 LED,还有 3 个管脚用于选择点亮哪个数码管,每隔很短的一段时间 8 个数码管交替点亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。
上电后,八个数码管中左边四个显示自己的学号后四位,在运行过程中一直不变;右边四个显示计时时间,范围 0000~9999,利用两个按钮 S1、S2 控制计时。
2、提高要求:加入小数点,计时数码管显示范围 ~。
二、 系统原理框图100Hz50MHz1000Hz 三、 电路实现四、 功能模块1、 分频器(以10分频器为例)(1)Verilog HDL 语言程序module fp10(Clk,Out10分频器);input Clk;output Out;reg Out;reg [3:0] Cout;reg Clk_En;initialOut<=0;always @(posedge Clk )beginCout <= (Cout == 4'd10) 4'd0 : (Cout + 4'd1); Clk_En <= (Cout >= 4'd5) 1'd1 : 1'd0;Out<=Clk_En;endEndmodule(2)模块化电路(3)波形仿真由波形仿真图可以看出,10分频器将1000Hz的脉冲分频成100Hz的脉冲。
基于FPGA数字秒表设计报告
标准实验报告实验项目:基于FPGA数字秒表设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
基于FPGA数字秒表设计
数字秒表设计
一、实验目的
1、理解计时器的原理与V erilog/VHDL的编程方法;
2、掌握多模块设计及层次设计的方法。
二、实验原理
秒计时器是由计数器和译码器、显示器组成,其核心是计数器与译码器。
60 秒计时器可由二个计数器分别完成:个位为十进制计数器,十位为6 进
制计数。
个位计数器的计数信号由实验开发板上主频20MHZ分频产生的1Hz
时钟信号提供, 十位计数器的计数信号由个位的进位信号提供。
然后由译码器
对计数结果进行译码,送LED 数码管进行显示。
Clr为清零,se t为开始。
三、实验框图
图2-1
四、实验任务
1、采用层次设计的方法,设计一个包括顶层及底层模块的60 秒计时器,底
层模块用Verilog/VHDL设计(或者选用原理图输入法中宏功能元件),顶层用原理图设计。
2、秒计时器应当具有系统复位功能;
3、每十秒发出提示信号及计满60 秒时发出报警信号。
(选做)
名
原
理
图
五、实验步骤
1.创建工程
2.选择目标器件
3.编写verilog hdl 程序
4.编译
5.生成符号文件
6.创建编辑原理图
7.设置顶层文件
8.编译
9.创建编辑波形图文件
10.使用波形图仿真
11.锁定管脚 12.编译 13.下载至芯片
六、实验结果
1.编译结果
名
仿
真
结
果
名
仿
真
结
果
文COUNT60.v (为了简便将分频器设置2分频的)。
FPGA秒表实验报告
现代电子技术综合实验秒表实验报告时间:2013年6月6日1摘要随着电子信息产业的不断发展,基于FPGA的应用技术发展迅速,在某些领域FPGA正逐步代替dsp、arm、单片机等微处理器。
本文设计一个基于FPGA技术的数字秒表。
首先,我们把晶振产生的50MHZ时钟信号送入FPGA芯片内,经FPGA内分频模块处理产生1KHZ时钟信号。
秒表的功能模块由VHDL语言编写,在Xilinx的ISE环境下调试,并在Modelsim上完成仿真,在最后把产生的信号送入LED显示电路里进行显示。
本文从电子秒表的具体设计触发,详细阐述了基于FPGA的数字秒表的设计方案,设计了各模块的代码,并对硬件电路进行了仿真。
关键词:FPGA,VHDL,电子秒表2第一章引言随着电子信息产业的发展,数字系统的规模越来越大,更多采用自顶而下的模块化设计方法,这就要求技术人员对于基本的模块有着深入的理解。
随着FPGA技术的发展和成熟,用FPGA来做为一个电路系统的控制电路逐渐显示出其无与伦比的优越性。
因此本文采用FPGA来做为电路的控制系统,采用模块化的设计方法设计一个能显示从00-00-00到59-59-99,并且具备秒表所有功能的小型数字系统。
第二章基于FPGA的VHDL设计流程2.1 概述数字秒表是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
秒表的设计有传统方法和现代方法,传统的设计方法耗时耗功,设计强度大,且容易出错,设计的质量不一定是最好的。
自然我们考虑到现代方法,即二十世纪八十年代兴起的电子设计自动化技术,英文为Electronic Design Auto,缩写为EDA。
在EDA设计工具中,用的最广泛的是VHDL和VERILOG,当然还有其它的。
比较VHDL和VERILOG,在顶层设计方面VHDL优于VERILOG,在门级电路设计方面VERILOG优于VHDL。
FPGA电子秒表计时器verilog实验报告
华中科技大学《电子线路设计、测试与实验》实验报告实验名称:用EDA技术设计多功能数字钟院(系):电子信息与通信学院专业班级:姓名:学号:时间:地点:实验成绩:指导教师:2018 年 3 月 27 日一. 实验任务及要求基本要求:电子秒表1)可计时的范围0.00s~99.99s(显示用七段数码管,显示小数点)。
2)能够暂停,能够在计时结束使用灯光或者声音报警提示。
提高要求: PWM波产生器1)可输出占空比按10%递进的PWM波(示波器测量查看)。
二.实验条件实验板:Nexys4 DDR实验软件:ISE14.7,ModelSim三.预习要求1.NEXYS 4 DDR开发板说明。
2.有限状态机。
3.数码管扫描显示。
四.实验原理1.电子秒表设计框图模块分析1)分频模块(Divider.v)将系统给定的100MHZ 的频率通过分频模块变成100Hz 的clk(用来计时)和4000Hz的clk_seg(用来扫描数码管)。
代码如下:原理:输入的100MHz 的信号为CLK_100MHz,每当CLK_100MHz 上升沿来时,Count_DIV 计数加1,且每当Count_DIV =100M/(2*100)=0.5M 时,CLK_Out取反一次并且Count_DIV <=0,这样会得到一个100Hz 的信号。
当需要得到4000Hz的clk_seg时,在顶层模块中修改parameter OUT_Freq=4000;这样,每当Count_DIV=100M/(2*4000)=12500时,CLK_Out取反一次并且Count_DIV <=0,这样会得到一个4000Hz 的信号。
在主程序中修改参数如下:仿真时,为便于观察,在testbench中,将CLK_100MHz的周期设为2ns:always #1 CLK_100MHz <= ~CLK_100MHz;并修改参数如下,验证分频模块的正确性(图中数字16,8,1只表示频率的倍数关系,并非真正的频率)其仿真图如下图:从图中可以看出,CLK_100MHz的周期为2ns,clk_seg的周期为4ns,clk的周期为32ns,符合倍数关系,故分频模块的正确性得到验证。
基于FPGA数字秒表设计实验报告
电子科技大学标准实验报告实验项目:基于FPGA数字秒表设计目录1.秒表设计要求 (1)2.设计思路 (1)2.1功能模块 (1)2.1.1分频器 (1)2.1.2计数器 (1)2.1.3数据锁存器 (1)2.1.4控制器 (1)2.1.5扫描显示的控制电路 (2)2.1.6显示电路 (3)2.1.7按键消抖电路 (3)3.电路实现 (4)4.程序仿真 (10)4.1分频器 (10)4.1.1计数器电路综合 (11)4.1.2计数器电路仿真 (11)4.2同步计数器 (13)4.2.1计数器实现 (13)4.2.2计数器仿真 (15)4.2.3同步计数器电路综合 (17)4.3按键消抖电路 (18)4.3.1按键消抖电路实现 (18)4.3.2按键消抖电路仿真 (18)4.3.3按键消抖电路综合 (20)4.4八段译码器 (20)4.4.1八段译码器实现 (20)4.4.2八段译码器仿真 (21)4.4.3八段译码器电路综合 (22)4.5控制器 (23)4.5.1控制器 (23)4.5.1控制器仿真 (24)4.5.3控制器电路综合 (25)5.2View Technology Schematic : (26)5.3管脚锁定: (27)6.实验结论 (27)1.秒表设计要求(1)秒表的计时范围为00:00:00 ~ 59:59:99。
(2)两个按钮开关Start/Stop和Split/Reset,控制秒表的启动、停止、分段和复位:在秒表已经被复位的情况下,按下“Start/Stop”键,秒表开始计时。
在秒表正常运行的情况下,如果按下“Start/Stop”键,则秒表暂停计时;再次按下该键,秒表继续计时。
在秒表正常运行的情况下,如果按下“Split/Reset”键,显示停止在按键时的时间,但秒表仍然在计时;再次按下该键,秒表恢复正常显示。
在秒表暂停计时的情况下,按下“Split/Reset”键,秒表复位归零。
99进制秒表设计报告
99进制秒表设计报告浙江工业大学摘要:本文设计利用FPGA编程,通过LED数码管以实现99进制秒表功能,采用两个控制端口K0、K1实现对LED清零以及暂停/开始的作用。
关键词:FPGA 99s LED一、设计原理及方法设计原理框图如图1所示,秒表参考时钟从CLKIN 输入,计时值在LED 数码管上显示。
K0为清零键,按一下,秒表清零,并停止计时;K1为启动/停止键,在启动计时和停止计时两种状态之间切换。
停止计时时保持当前值不变,启动计时时从当前值开始计时,计到99秒以后停止。
图1二、FPGA 实现1.键盘部分设计中K0和K1控制信号采用键盘X0和X1信号,同时将矩阵键盘的Y0~Y3接地,如此重新构建了一键盘编码。
该键盘时钟信号由25MHz 分频得到,约1.2KHz 。
由于机械键盘存在约10ms 的抖动,因此信号输出前用CNT16A 进行消抖处理。
2.实体设计部分本设计的一秒计数采用将8Hz 时钟信号经过8分频,得到1Hz 的计数时钟CLK 。
CONTR 为控制逻辑部分,将K0和K1产生信号经过处理输出clr 清零和cs 开始/停止信号。
FPGA 顶层原理图如图2所示:图2三、总结本设计为了减少资源的过多利用,不采用4×4矩阵键盘编码器,而是重新构建键盘编码器来实现K0和K1的控制信号的输入。
在CONTR模块中,融合了K0和K1的信号处理程序,以及一个逻辑门的程序,使控制逻辑更精简美观。
参考文献[1]贾立新、王涌.电子系统设计与实践.北京.清华大学出版社.2011附录:1.CONTR模块的VHDL代码编写如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTR ISPORT(d: IN STD_LOGIC_VECTOR(1 DOWNTO 0);cooa,coob: IN STD_LOGIC;clr: OUT STD_LOGIC;cs: OUT STD_LOGIC);END CONTR;ARCHITECTURE one OF CONTR ISSIGNAL k1: STD_LOGIC:='1';BEGINPROCESS(d)BEGINIF(d(0)='0')THENclr<='1';k1<='0';ELSIF(d(1)'EVENT and d(1)='0')THENclr<='0';k1<=NOT k1;END IF;END PROCESS;PROCESS(cooa,coob)BEGINcs<=(cooa OR coob) AND k1;END PROCESS;END one;2.消抖CNT16A模块的VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT16A ISPORT(clk:IN STD_LOGIC;x: IN STD_LOGIC_VECTOR(1 DOWNTO 0);qq: OUT STD_LOGIC_VECTOR(1 DOWNTO 0));END CNT16A;ARCHITECTURE one OF CNT16A ISSIGNAL q:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(clk,x)BEGINIF(clk'event AND clk='1')thenIF(x="11")thenq<="0000";elsif(q=15)thenq<="1111";elseq<=q+1;END IF;END IF;END PROCESS;PROCESS(q)BEGINIF(q="1111")thenqq<=x;ELSEqq<="11";END IF;END PROCESS;END;。
FPGA多功能60s秒表
多功能秒表的设计一、实验目的:用状态机实现秒表的设计,了解一般状态机的设计与应用。
二、实验原理:状态 I/O din clr con_en suocun_enreset 0001 1 0 1start 0010 0 1 1lap 0100 0 1 0stop 1000 0 0 1状态机输出控制计数器counter_60,锁存器控制数码管显示数值。
三、实验内容利用QuartusII进行文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序,最后进行引脚锁定并完成硬件测试实验。
建议选择电路模式No.5 (附录图),用(PIO0~ PIO3)控制输入信号din; PIO28控制状态机工作时钟CLK;输出Q[7..0]接PIO47~PIO40(显示于数码管)。
下载后:①按实验板“系统复位”键;②用键4键3键2和键1输入4位信号序列数;③显示于数码管。
四、实验代码:(1)带进位十进制计数器CNT10:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT (CLK,RST,EN : IN STD_LOGIC;CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISBEGINPROCESS(CLK, RST, EN)V ARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿IF EN = '1' THEN --检测是否允许计数(同步使能)IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零END IF;END IF;END IF;IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号ELSE COUT <= '0';END IF;CQ <= CQI; --将计数值向端口输出END PROCESS;END behav;(2)六进制计数器CNT6:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6 ISPORT (CLKH,RSTH,ENH : IN STD_LOGIC;CQH : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END CNT6;ARCHITECTURE behav OF CNT6 ISBEGINPROCESS(CLKH, RSTH, ENH)V ARIABLE CQIH : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RSTH = '1' THEN CQIH := (OTHERS =>'0') ; --计数器异步复位ELSIF CLKH'EVENT AND CLKH='0' THEN --检测时钟上升沿IF ENH = '1' THEN --检测是否允许计数(同步使能)IF CQIH < 5 THEN CQIH := CQIH + 1; --允许计数, 检测是否小于5 ELSE CQIH := (OTHERS =>'0'); --大于5,计数值清零END IF;END IF;END IF;CQH <= CQIH; --将计数值向端口输出END PROCESS;END behav;(3)计数器控制器:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity control_60 isPORT( din : IN STD_LOGIC_VECTOR(3 DOWNTO 0);clk : IN STD_LOGIC;clr : OUT STD_LOGIC;count_en : OUT STD_LOGIC;suocun_en : OUT STD_LOGIC );end control_60 ;architecture Behav of control_60 isTYPE control_type IS (reset,start,lap,stop);SIGNAL current_state, next_state : control_type;BEGINREG:PROCESS (clk)BEGINIF (clk'event AND clk='1') THENcurrent_state <= next_state;END IF;end PROCESS REG;COM:PROCESS (clk,din, next_state, current_state)BEGINCASE current_state ISWHEN reset =>clr <= '1';count_en <= '0';suocun_en<= '1';IF ( din="0010") THEN next_state <= start;ELSE next_state <= reset;END IF;WHEN start =>clr <= '0';count_en <= '1'; suocun_en<= '1';if ( din="0100")then next_state<= lap;elsif(din="1000")then next_state <= stop;elsif(din="0001")then next_state<= reset;elsenext_state<= start;end if;WHEN lap => clr <= '0'; count_en <= '1'; suocun_en<= '0';if ( din="1000") then next_state <= stop;elsif(din="0010")then next_state <= start;else next_state <= lap;end if;WHEN stop =>clr <= '0';count_en <= '0'; suocun_en<= '1';if ( din="0001") then next_state <= reset;elsif(din="0010")then next_state <= start;else next_state <= stop;end if;WHEN others =>next_state<= reset;END CASE;END PROCESS COM;end Behav;(4)LPM锁存器:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY suocun ISPORT(data : IN STD_LOGIC_VECTOR (7 DOWNTO 0);gate : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END suocun;ARCHITECTURE SYN OF suocun ISSIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT lpm_latchGENERIC (lpm_type : STRING;lpm_width : NATURAL);PORT (q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);data : IN STD_LOGIC_VECTOR (7 DOWNTO 0);gate : IN STD_LOGIC );END COMPONENT;BEGINq <= sub_wire0(7 DOWNTO 0);lpm_latch_component : lpm_latchGENERIC MAP (lpm_type => "LPM_LATCH",lpm_width => 8)PORT MAP (data => data,gate => gate,q => sub_wire0);END SYN;五、实验原理图:六、实验结果:(1)LMP锁存器功能仿真图:(2)实验结果:。
FPGA应用实验报告
电子科技大学实验报告一、实验名称秒表二、实验目的基于xilinx FPGA 开发板的数字秒表的实现三、实验要求秒表显示的时间是00.00s到99.99s;拥有总开关[On/Off],功能为启动或关闭秒表;拥有“复位”信号[RESET],功能为设置计数器为0;拥有“暂停/继续”开关[START/STOP],在暂停状态下的数码管保持当前数字显示,在继续状态下继续计时;所有系统计数器都必须由同一时钟信号所控制。
四、实验原理及方案1、实验原理本系统采用BASYS开发板实现。
Basys2开发板是一个电路设计实现平台,任何人都可以通过它来搭建一个真正的数字电路。
Basys2主要采用Xilinx Spartan-3E FPGA芯片和Atmel AT90USB USB控制器来搭建的硬件电路测试平台。
它提供了完整的、随时可以使用的,并且适合于从基本逻辑器件到复杂控制器件的各种数字电路。
Basys2板上集成了大量的I/O设备和FPGA所需的支持电路,能够构建无数的设计而不需要其他器件。
2、实验方案秒表设计共有4个模块组成。
分别是“分频模块”、“计数器模块”、“按键控制模块”及“译码显示模块”。
(1)分频模块分频模块主要是将系统提供的50MHz时钟分为100Hz和1kHz两路输出。
其中100Hz作为计数器的时钟,1KHz作为数码位选管扫频频率。
(2)计数器模块计数器设计为拥有两级使能、清零及4位输出BCD码的模9999计数器。
其中第一级使能控制总开关,第二级使能控制开始暂停。
(3)按键控制模块按键控制主要指控制计数器中第二级使能信号的高低电平。
其中设计为,每按一下按键对信号取反一次,已达到开始/暂停的目的。
(4)译码显示模块译码显示主要是对计数器4路BCD码输出译码为7段数码管显示。
因需采取动态显示,所以还要输出一组动态位选信号,即以1k 频率扫描输出“0111”“1011”“1101”“1110”循环。
五、实验过程及各模块设计系统设计采用先对各模块分别用VHDL语言生成symbol,最后顶层采用电路文件进行电路连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《FPGA原理及应用》
实验报告书
(7)
题目秒表设计
学院
专业
姓名
学号
指导
教师
2015年 10-12月
一、实验目的
掌握小型电路系统的 FPGA 设计法。
二、实验内容
用文本法结合原理图的方法设计一个秒表,并在实验箱上进行验证。
秒表基本功能要求如下:
(1)要求设置复位开关。
当按下复位开关时,秒表清零并做好计时准备。
在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过程中也要无条件地进行清零操作。
(2)要求设置启/停开关。
当按下启/停开关后,将启动秒表并开始计时,当再按一下启/停开关时,将终止秒表的计时操作。
(3)要求计时精确度大于 0.01 秒。
要求设计的计时器能够显示分(2 位)、秒(2 位)、0.1 秒(1 位)的时间。
(4)要求秒表的最长计时时间为 1 小时。
要求外部时钟频率尽量高,分频后再给秒表电路使用。
三、实验条件
1、开发软件:QuartusⅡ
2、实验设备:KX_DN8EDS实验开发系统
3、拟用芯片:EP3C55F484C8
四、实验设计
1、六进制计数器
仿真波形
2、十进制计数器
3、分频计
4、七段数码管译码器
5、100进制原理图
6、60进制原理图
7、秒表原理图
8、管脚锁定
新建好工程文件,芯片选择Cyclone Ⅲ下面的EP3C55F484C8系列。
然后锁定引脚:选择Assignments → Assignments Editor命令。
9、编译文件下载
将编译产生的SOF格式配置文件下载进FPGA中。
10、FPGA实验箱接线
在KX-EDA40A++实验箱上进行连线,分配J4,J5的引脚,输入CLK(PIN_接到时钟信号,输入的EN,RST 接到电平开关L1,L2。
五、实验总结
经过本次实验,我对QuartusⅡ的使用认识更加深刻,对FPGA技术有了更深层次的认识,有助于我对以后的电子电路设计有极大帮助。