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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

8位十进制数字频率计的设计参考文献题目:作者:学号:所属学院:专业年级:完成时间:8位十进制数字频率计的设计参考文献8位十进制数字频率计的设计摘要数字频率计是用数字显示被测信号频率的仪器,被测信号是方波信号。数字频率计广泛应用于科研机构、学校、实验室、企业生产车间等场所。研究数字频率计的设计和开发,有助于频率计功能的不断完善、性价比的提高和实用性的加强。本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。该频率计采用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的逻辑是通过向内部静态存储单元加载8位十进制数字频率计的设计参考文献编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。FPGA器件优点:高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证。1.2硬件描述语言目前最主要的硬件描述语言是VHDL和VerilogHDL,VerilogHDL和HDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。VHDL发展的较早,语法严格,而VerilogHDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。VHDL和VerilogHDL两者相比,VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。VerilogHDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的行为和结构、支持逻辑设计中层次与范围的描述、可借用高级语言的精巧结构来简化电路行为的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关。本设计是用的Verilog语言来实现数字频率计的设计的,本设计将重点介绍Verilog语言。Verilog语言主要用于描述数字系统的结构,行为,功能和接口。Verilog的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是Verilog系统设计的基本点。Verilog语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。Verilog程序组成部分由实体、构造体、配置、包集合、库5个部分组成。各组成部分的作用是:(1)实体:用于描述所设计的系统的外部接口信号。(2)构造体:用于描述系统内部结构和行为。(3)配置:用于从库中选取不同单元(器件)来组成系统设计的不同版本。(4)包集合:存放各设计模块都能共享的数据类型,常数和子程序等。(5)库:可由系统工程师生成或由ASIC芯片商提供,以便在设计中共享。详细介绍QuartusII文本编辑输入法的使用方法:1.编辑设计文件8位十进制数字频率计的设计参考文献(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秒。闸门时间8位十进制数字频率计的设计参考文献也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计的主要功能是测量周期信号的频率。频率是单位时间(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位十进制数字频率计的设计参考文献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,输出分频到1Hzinputclk;8位十进制数字频率计的设计参考文献outputclkout;regclkout;reg[31:0]counter;//中间变量counter定义为寄存器型parameterN=20_000_000;always@(posedgeclk)beginif(counter==N/2-1)beginclkout=~clkout;counter=0;endelsecounter=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_18位十进制数字频率计的设计参考文献//时钟到来时,锁存输入示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)//分频到1KHzbeginif(!rst_n)cnt=0;8位十进制数字频率计的设计参考文献elsebeginif(cnt==N/2-1)beginclkout=~clkout;cnt=0;endelsecnt=cnt+1'b1;endendalways@(posedgeclkoutornegedgerst_n)//产生扫描计数值beginif(!rst_n)scan_cnt=0;e

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功