首页 八位十进制数字频率计设计报告

八位十进制数字频率计设计报告

举报
开通vip

八位十进制数字频率计设计报告题目:作者:学号:所属学院:专业年级:完成时间:8位十进制数字频率计的设计摘要数字频率计是用数字显示被测信号频率的仪器,被测信号是方波信号。数字频率计广泛应用于科研机构、学校、实验室、企业生产车间等场所。研究数字频率计的设计和开发,有助于频率计功能的不断完善、性价比的提高和实用性的加强。 本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。该频率计采用Verilog硬件描述语言编程,以QuartusII为开发环境,极大地减少了硬件资源的占用。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试...

八位十进制数字频率计设计报告
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目:作者:学号:所属学院:专业年级:完成时间:8位十进制数字频率计的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 摘要数字频率计是用数字显示被测信号频率的仪器,被测信号是方波信号。数字频率计广泛应用于科研机构、学校、实验室、企业生产车间等场所。研究数字频率计的设计和开发,有助于频率计功能的不断完善、性价比的提高和实用性的加强。 本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。该频率计采用Verilog硬件描述语言编程,以QuartusII为开发环境,极大地减少了硬件资源的占用。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。所设计的Verilog语言通过仿真能够较好的测出所给频率并且满足数字频率计的自动清零和自动测试的功能要求,具有理论与实践意义。 关键词:Verilog;数字频率计;EDA;QuartusII第一章EDA技术原理与概述1.1可编程逻辑器件基本原理FPGA[4-5]是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能提高很快,其集成密度最高达1000万门/片以上,系统性能可达300MHz。由于FPGA器件集成度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。FPGA器件优点:高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证。1.2硬件描述语言目前最主要的硬件描述语言是VHDL和VerilogHDL,VerilogHDL和HDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。VHDL发展的较早,语法严格,而VerilogHDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。VHDL和VerilogHDL两者相比,VHDL的 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。VerilogHDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的行为和结构、支持逻辑设计中层次与范围的描述、可借用高级语言的精巧结构来简化电路行为的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关。本设计是用的Verilog语言来实现数字频率计的设计的,本设计将重点介绍Verilog语言。Verilog语言主要用于描述数字系统的结构,行为,功能和接口。Verilog的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是Verilog系统设计的基本点。Verilog语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。Verilog程序组成部分由实体、构造体、配置、包集合、库5个部分组成。各组成部分的作用是:(1)实体:用于描述所设计的系统的外部接口信号。(2)构造体:用于描述系统内部结构和行为。(3)配置:用于从库中选取不同单元(器件)来组成系统设计的不同版本。(4)包集合:存放各设计模块都能共享的数据类型,常数和子程序等。(5)库:可由系统工程师生成或由ASIC芯片商提供,以便在设计中共享。详细介绍QuartusII文本编辑输入法的使用方法:1.编辑设计文件(1)新建一个文件夹。利用资源管理器,新建一个文件夹,如e:\SINGNT。(2)输入源程序。打开QuartusII,执行File→New,在New窗口中的“DeviceDesignFiles”中选择编译文件的语言类型,这里选“VerilogFiles”,然后在Verilog文本编译窗口中键入Verilog程序。如图2.3所示。(3)文件存盘。执行File→SaveAs,找到已设立的文件夹e:\SIN_GNT,存盘文件名应该与实体名一致。2.创建工程(1)建立新工程管理窗。执行File→NewProjectWizard命名,在图2.4对话框进行工程设置。(2)将设计文件加入工程中。(3)选择仿真器和综合器类型。(4)选择芯片。(5)结束设置。3.编译前设置(1)选择目标芯片,执行Assignmemts→settings命令,在弹出的对话框中选CompilerSettings项下的Device选目标芯片。(2)选择目标器件编程配置方式,由图2.5的按钮DevicePinOptions进入选择窗,可选Configuration方式为ActiveSerial。(3)在下图所示的ProgrammingFiles窗口,Hexadecimal(Intel-Format)outputFile,即产生下载文件的同时,产生二进制十六进制配置文件fraqtest.hexout,可用于单片机与EPROM构成的FPGA配置电路系统如图2.6所示。4.编译及了解编译结果首先执行Processing→StartCompilation命令,启动全程编译,如果工程中的文件有错误,在下方的Processing处理栏中会显示出来。对于Processing栏显示出的语句格式错误,可双击此条文,即弹出Verilog文件,在闪动的光标处(或附近)可发现文件中的错误。再次进行编译直至排除所有错误第二章数字频率计的系统分析2.18位十进制数字频率计系统设计的原理 2.1.1数字频率计的基本原理数字频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计的主要功能是测量周期信号的频率。频率是单位时间(1S)内信号发生周期变化的次数。如果我们能在给定的1S时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。这就是数字频率计的基本原理。2.1.2系统总体框架图总体框图设计思路:由20MHz系统时钟分频得到0.5Hz的基准时钟。在基准时钟的1S高电平期间计被测频率的脉冲个数,1S高电平结束时计数结束,所记录的脉冲个数是被测信号的频率,为了在数码管上显示计数结果需要锁存器将所计的数锁存,因此,在基准时钟下降沿来的时候锁存器实现锁存功能。为了下次计数必须将本次计数的结果清零,所以在基准时钟低电平期间对计数器清零。被测频率从计数器的是中端输入实现频率的测试。将锁存器锁存的数据输入扫描器,通过译码器将锁存的二进制数译成十进制然后显示到数码管上,最终被读出来。2.28位十进制数字频率计设计任务及要求用测频法设计一个八位十进制的数字频率器,测频范围是1HZ到49999999HZ。(1)测量范围信号:方波、正弦波;幅度:0.5V~5V;频率:1Hz~4999999HZ。(2)测量范围信号:脉冲波;幅度:0.5V~5V;脉冲宽度≥100μs.测量误差≤1%。(3)显示器:十进制数字显示,显示刷新时间1~10秒连续可调,对上述三种测量功能分别用不同颜色的发光二极管指示。 (4)具有自校功能,时标信号频率为1HZ第三章各功能模块基于Verilog的设计3.18位十进制数字频率计的电路逻辑图 8位十进制数字频率计的电路逻辑图,它由一个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10、一个32位锁存器REG32B[8]组成。以下分别叙述频率计各逻辑模块的功能与设计方法。8位十进制数字频率计的电路逻辑如图4.18所示。图4.18位十进制数字频率计的电路逻辑图3.2系统时钟分频的功能模块(1)系统时钟分频的分频功能模块如图4.4所以。图4.4系统时钟分频的功能模块图(2)源程序如下:modulefre_div(clk,clkout);//输入20MHz,输出分频到1Hz inputclk;outputclkout; regclkout; reg[31:0]counter;//中间变量counter定义为寄存器型 parameterN=20_000_000; always@(posedgeclk)begin if(counter==N/2-1) begin clkout<=~clkout; counter<=0; end else counter<=counter+1'b1; endendmodule3.4.2锁存器的功能模块(1)32位锁存器的功能模块如图4.6所示。图4.6锁存器的功能模块图(2)源程序如下:moduleREG32B(LOAD,DIN,DOUT);inputLOAD;input[31:0]DIN;output[31:0]DOUT;reg[31:0]DOUT;always@(posedgeLOAD)begin:xhdl_1//时钟到来时,锁存输入示DOUT<=DIN;endendmodule3.5数码管扫描的功能模块(1)数码管扫描[8]的功能模块如图4.8所示。图4.8数码管扫描的功能模块(2)源程序如下:moduleseven_seg(clk,rst_n,d,dig,seg);inputclk;//20MHzinputrst_n;//复位信号,低电平有效input[31:0]d;//要显示的32位数据output[7:0]dig;//位选信号output[7:0]seg;//段码dp到a由高到低排列parameterN=20000;//分频系数regclkout;//扫描时钟reg[13:0]cnt;//分频计数器reg[2:0]scan_cnt;//扫描计数器 reg[3:0]disp_dat;//每一位数码管待译码数据reg[7:0]dig;reg[7:0]seg_r;always@(posedgeclkornegedgerst_n) //分频到1KHz begin if(!rst_n) cnt<=0; else begin if(cnt==N/2-1) begin clkout<=~clkout; cnt<=0; end else cnt<=cnt+1'b1; end endalways@(posedgeclkoutornegedgerst_n) //产生扫描计数值 begin if(!rst_n) scan_cnt<=0; else scan_cnt<=scan_cnt+1'b1; end always@(scan_cnt,d) //8位数码管位选择,同时送相应要显示数据 begin case(scan_cnt) 3'b000:begin dig<=8'b0000_0001; disp_dat<=d[3:0]; end 3'b001:begin dig<=8'b0000_0010; disp_dat<=d[7:4]; end 3'b010:begin dig<=8'b0000_0100; disp_dat<=d[11:8]; end 3'b011:begin dig<=8'b0000_1000; disp_dat<=d[15:12]; end 3'b100:begin dig<=8'b0001_0000; disp_dat<=d[19:16]; end 3'b101:begin dig<=8'b0010_0000; disp_dat<=d[23:20]; end 3'b110:begin dig<=8'b0100_0000; disp_dat<=d[27:24]; end 3'b111:begin dig<=8'b1000_0000; disp_dat<=d[31:28]; end default:begin dig<=8'b0000_0001; disp_dat<=d[3:0]; end endcase endalways@(disp_dat)//共阳极数码管译码begincase(disp_dat) 4'h0:seg_r=8'hc0;//显示"0"4'h1:seg_r=8'hf9;//显示"1"4'h2:seg_r=8'ha4;//显示"2"4'h3:seg_r=8'hb0;//显示"3"4'h4:seg_r=8'h99;//显示"4"4'h5:seg_r=8'h92;//显示"5"4'h6:seg_r=8'h82;//显示"6"4'h7:seg_r=8'hf8;//显示"7"4'h8:seg_r=8'h80;//显示"8"4'h9:seg_r=8'h90;//显示"9"4'ha:seg_r=8'h88;//显示"a"4'hb:seg_r=8'h83;//显示"b"4'hc:seg_r=8'hc6;//显示"c"4'hd:seg_r=8'ha1;//显示"d"4'he:seg_r=8'h86;//显示"e"4'hf:seg_r=8'h8e;//显示"f" default:seg_r=8'hff;//灭 endcaseendassignseg=~seg_r;//取反变成共阴极段码 endmodule3.7十进制计数器的功能模块4.7.1计数器计数是一种最简单基本的运算,计数器[15]就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。它主要的指标在于计数器的位数,常见的有3位和4位的。很显然,3位数的计数器最大可以显示到999,4位数的最大可以显示到9999。3.7.2十进制计数器的功能模块(1)十进制计数器的功能模块如图4.12所示。图4.12十进制计数器的功能模块(2)源程序如下: moduleCNT10(CLK,RST,EN,DOUT,COUT);inputCLK,RST,EN;output[3:0]DOUT;outputCOUT;wire[3:0]DOUT;regCOUT;reg[3:0]DOUTI;always@(posedgeCLKorposedgeRST)beginif(RST==1'b1)DOUTI<=4'b0000;elsebeginif(EN==1'b1)beginif(DOUTI<4'b1001)DOUTI<=DOUTI+1;elseDOUTI<=4'b0000;endendendalways@(DOUTI)beginif(DOUTI==4'b1001)COUT<=1'b1;elseCOUT<=1'b0;endassignDOUT=DOUTI;endmodule
本文档为【八位十进制数字频率计设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
飞哥
暂无简介~
格式:doc
大小:135KB
软件:Word
页数:12
分类:初中语文
上传时间:2018-05-11
浏览量:30