欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    基于FPGA的等精度频率计设计.doc

    • 资源ID:5094477       资源大小:2.06MB        全文页数:42页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的等精度频率计设计.doc

    哈尔滨工业大学(威海)本科毕业设计(论文)摘 要摘要:根据等精度测量的原则,提出了一种基于FPGA的等进度数字频率计设计方案。介绍了等精度的多周期同步测频原理,并对其测量精度和特点同传统测量方法进行了对比分析,证明了多周期同步测频方法的优势。基于周立功公司生产的EasyFPGA030开发板,在Libero8.5集成开发软件环境下,采用硬件编程语言VerilogHDL编写计数器模块,除法器模块,并且用Synplify进行综合,ModelSim进行仿真并且给出它们的仿真结果,Designer进行布局布线,利用FlashPro和并口线下载到开发板上。利用AT89C51单片机与共阳极LED数码管对测量结果进行动态显示。利用74LS244三态缓冲器和三极管对电流进行放大,使得LED数码管更亮。利用74LS14集成施密特触发器的反相器进行信号的整形。经过仿真下载验证,能够实现等精度测频功能,频率测量范围1Hz1MHz,证明该设计方案切实可。关键词:等精度;频率测量;FPGA;VerilogHDL;Libero。AbstractAbstract: According to the principle of measurement etc precision, proposed based on FPGA digital frequency of design project progress. Introduces the principle of frequency measurement with etc precision and synchronous, and comparative analysis the measurement precision and features with the traditional measuring method. With more than proved step frequency method with etc precision and synchronous has periodic advantage.Based on the ZhouLiGong company production EasyFPGA030 development board, in Libero8.5 integrated software development environment, using hardware VerilogHDL programming language to write counter module, divide module. With Synplify synthetically, with ModelSim simulation giving simulation results, Designer layout wiring. Using FlashPro download the design to development board.Use MUC and LED digital tube to show the measurement results. Use 74LS244 tristate buffers and transistor to amplify current that LED digital tube brighter. Use 74LS14 Schmitt toggle integration to plastic signal. Through simulation and download to the development board, can achieve the function of frequency measurement etc precision, Frequency measurement range from 1Hz to 1MHz. Proof of this scheme is feasible,Keywords: equal precision, frequency measurement, FPGA, Libero, HDL不要删除行尾的分节符,此行不会被打印- II -哈尔滨工业大学(威海)本科毕业设计(论文)目 录摘 要IAbstractII第1章 绪论11.1 课题背景11.2 课题来源、目的和意义21.3 本文结构3第2章 主要研究内容42.1 引言42.2 数字频率计主要技术指标442.3 常用直接测频的方法52.4 等精度频率测量算法52.5 等精度测量误差分析62.6 总体设计72.7 本章小结7第3章 FPGA设计93.1 引言93.2 计数器模块113.2.1 分频模块123.2.2 预置闸门模块133.2.3 实际闸门模块133.2.4 计数Nx模块143.2.5 计数Ns模块143.2.6 通信控制模块153.2.7 计数器各模块连接详图153.3 除法器模块163.3.1 除法控制器173.3.2 除法运算器193.3.3 通信信号转换模块213.3.4 除法器各模块连接详图213.4 本章小结22第4章 显示及信号整形设计244.1 引言244.2 单片机显示模块254.2.1 单片机显示软件件设计284.2.2 单片机显示硬件设计294.3 信号整形模块304.4 本章小结31第5章 总体设计验证32结 论34致 谢36参考文献37千万不要删除行尾的分节符,此行不会被打印。在目录上点右键“更新域”,然后“更新整个目录”。打印前,不要忘记把上面“Abstract”这一行后加一空行- 38 -哈尔滨工业大学(威海)本科毕业设计(论文)第1章 绪论1.1 课题背景EDA(Electronic Design Automation电子设计自动化)代表了当今电子设计技术的最新发展方向,通过VHDL(Very High Speed Integrated Circuit Hardware Description Language)硬件描述语言的设计,用FPGA(FieldProgrammable Gate Array现场可编程门阵列)来实现小型电子设备的设计,是开发仪器仪表的主流。据统计,目前发达国家在电子产品开发中EDA工具的利用率已达50,而大部分的FPGA已采用HDL(Hardware Description Language硬件描述语言)设计。由于VHDL已成为IEEE标准,目前的EDA工具可以使ASIC系统的行为、功能、算法用VHDL描述直接生成FPGA器件,使设计者将精力集中于设计构思,提高了设计效率,同时也利于设计的分解、交流和重用。目前最主要的方法是基于单片机和FPGA或CPLD利用EDA技术设计实现等精度频率测量,这使设计过程大大简化,缩短了开发周期,减小了电路系统的体积,同时也有利于保证频率计较高的精度和较好的可靠性。而实现等精度的算法主要是,在计数法和测周期法基础上发展起来的新型等精度频率测量算法,主要原理是预置闸门信号频率时随着被测信号频率的改变而改变,从而实现了等进度的测量。目前,市场上的频率计厂家可分为三类:中国大陆厂家、中国台湾厂家、欧美厂家。其中,欧美频率计厂家所占有的市场份额最大。欧美频率计厂家主要有:Pendulum Instruments和Agilent科技。Pendulum Instruments公司是一家瑞典公司,总部位于瑞典首都斯德哥尔摩。Pendulum公司源于Philips公司的时间、频率部门,在时间频率测量领域具有40多年的研发生产经历。Pendulum Instruments公司常规频率计型号主要有:CNT-91、CNT-90、CNT-81、CNT-85。同时,Pendulum Instruments公司还推出铷钟时基频率计CNT-91R、CNT-85R。以及微波频率计CNT-90XL(频率测量范围高达60G)。Agilent科技公司是一家美国公司,总部位于美国的加利福尼亚。Agilent科技公司成立于1939年,在电子测量领域也有着70多年的研发生产经历。Agilent科技公司的常规频率计信号主要有:53181A、53131A、53132A。同时,Agilent科技公司还推出微波频率计:53150A,53151A,53152A(频率测量范围最高可达46G)。1.2 课题来源、目的和意义随着科学技术的发展,高精度集成电路的应用,生产力得到了大幅度的发展,以大规模集成电路为主的各种设备成了当今社会最常用的设备。频率计在电子工程,资源勘探发挥着巨大作用,有条不紊地工作着,高效率地支配着系统的运行,是工程技术人员必不可少的测量工具。频率计最重要的功能是根据基准时钟信号实现对被测信号的频率进行检测。由此而延伸的频率测量是电子测量领域里的一项重要内容1。在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低,误差较大。频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速的跟踪捕捉到被测信号频率的变化。正是由于频率计能够快速准确的捕捉到被测信号频率的变化,因此,频率计拥有非常广泛的应用范围。 在传统的生产制造企业中,频率计被广泛的应用在产线的生产测试中。频率计能够快速的捕捉到晶体振荡器输出频率的变化,用户通过使用频率计能够迅速的发现有故障的晶振产品,确保产品质量。在计量实验室中,频率计被用来对各种电子测量设备的本地振荡器进行校准。在无线通讯测试中,频率计既可以被用来对无线通讯基站的主时钟进行校准,还可以被用来对无线电台的跳频信号和频率调制信号进行分析。频率计又称为频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器。其最基本的工作原理为:当被测信号在特定时间段内的周期个数为时,则被测信号的频率。 频率计主要由四个部分构成:时基电路、输入电路、计数显示电路以及控制电路。在一个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。主门的另外一个输入端为时基电路产生电路产生的闸门脉冲。在闸门脉冲开启主门的期间,特定周期的窄脉冲才能通过主门,从而进入计数器进行计数,计数器的显示电路则用来显示被测信号的频率值,内部控制电路则用来完成各种测量功能之间的切换并实现测量设置2。在工程测量中不少物理量的测量,如时间测量,速度测量,速度控制等,都涉及到频率测量。频率信号抗干扰性强,易于传输,可以获得较高的测量精度,所以测量频率的方法的研究越来越受的重视。随着科技发展,人们对频率测量的进度要求越来越高,在此基础上的等精度频率计具有相当重要的意义。而常用的的直接测频方法在实用中有较大的局限性,其测量精度随着被测信号的频率改变,测量的精度也改变,而且对被测信号的计数要产生个数字误差,而等精度频率计不但具有较高的测频精度,不随所测信号的变化而变化,在整个测频区域能保持恒定的测频精度3。1.3 本文结构本文主要内容如下:第2章中,介绍等精度频率测量的理论基础和设计方案。第3章中,FPGA设计。EasyFPGA030开发板,Libero8.5集成开发环境介绍,频率计总体,计数器模块,除法器模块设计过程,并且给出它们的仿真结果。第4章中,显示及信号的整形设计。介绍了AT89C51单片机,LED数码管,74LS244等相关硬件介绍。并且给出了动态显示的软硬件设计方案和信号整形设计方案。第5章中,总体设计验证。通过把设计下载到开发板上,并实际用于频率测量,从而发现设计的不足和错误之处并加以改正。双击上一行的“1”“2”试试,J(本行不会被打印,请自行删除)第2章 主要研究内容2.1 引言本章主要介绍数字频率计的相关计数指标,传统的频率测量方法和等精度测量方法,并且对等精度测量方法进行误差分析,从而与传统频率测量方法对比,得到等精度测量方法的优势所在。并且从总体上介绍了设计方案的流程。2.2 数字频率计主要技术指标4(1)频率准确度一般用相对误差来表示,即 (2-1)式中,为量化误差(即个字误差),是数字仪器所特有的误差,当闸门时间选定后,越低,量化误差越大:为闸门时间相对误差,主要有时基电路标准频率的准确度决定,。(2)频率测量范围在输入电压符合规定要求值时,能够正常进行测量的频率区间称为频率测量范围,频率测量范围主要有放大整形电路的频率响应决定的。(3)数字显示位数频率计的数字显示位数决定了频率计的分辨率。位数越多,分辨率越高。(4)测量时间频率计完成一次测量所需要的时间,包括准备、计数、运算、锁存和复位时间。2.3 常用直接测频的方法(1)计数法:这是指在一定的时间间隔内,对输人的周期信号脉冲计数为:,则信号的频率为。这种方法适合于高频测量,信号的频率越高,则相对误差越小。(2)测周法:这种方法是计量在被测信号一个周期内频率为的标准信号的脉冲数来测量频率,。被测信号的周期越长(频率越低),则测得的标准信号的脉冲数越大,则相对误差越小。但这两种方法分别适合高频和低频,在整个测量域内测量精度不同,因此要求等精度的话,要求在此基础上进行改进5。2.4 等精度频率测量算法传统的测频方法有直接测频法和测周法,在一定的闸门时间内计数,门控信号和被测信号不同步,计数值会产生一个脉冲的误差。等精度测频法采用门控信号和被测信号同步,消除对被测信号计数产生的一个脉冲的误差。等精度频率测量方法消除了量化误差,可以在整个测试频段内保持高精度不变,其精度不会因被测信号频率的高低而发生变化。利用FPGA强大的逻辑处理功能使被测信号和标准信号在闸门时间内同步测量,为了提高精度,将电子计数功能转为测周期,采用多周期同步测量技术,实现等精度测量。在测量过程中分别对被测信号和标准信号同时计数。测量的具体方法是:首先给个闸门开启信号(预置闸门信号),此时计数器并不开始计数,而是等被测信号的上升沿到来时计数器才开始计数,然后预置闸门信号关闭信号(下降沿),计数器并不立即停止计数,而是等到被测信号上升沿来到时才停止计数,完成一次测量过程,过程如图2-1所示。图2-1 测量原理预置闸门信号和实际闸门信号不相等,但两者差值不会相差被测信号的一个周期。但从图2-1中可得实际闸门控制信号与被测信号同步,因此消除了的脉冲误差,并且此测频方法不仅对被测信号进行计数,而且去标准信号也计数,所以称为多周期同步测频法6。2.5 等精度测量误差分析计数器对标准信号的计数是,被测信号的计数是,标准信号的频率为,被测信号的频率 (2-2)由式(2-2)可知,若忽略标频的误差,则等精度测频可能产生的相对误差为 (2-3)其中为被测信号频率的准确值。在测量中,由于计数的起停时间都是由该信号的上升测触发的,无字误差。而对的计数最多相差一个数的误差,即,其测量频率为 (2-4)将式(2-2)和(2-4)代入式(2-3),并整理得 (2-5)从公式(2-5)可以看出等精度算法产生的误差和被测信号的频率无关,仅与闸门时间和标准信号频率有关,从而实现整个频率段的等精度测量7。2.6 总体设计首先对EasyFPGA030提供的48MHz的晶振频率进行分频,利用分频所得的频率通过计数的方法产生一个预置闸门信号,再利用预置闸门信号和被测信号产出一个实际闸门信号,预置闸门信号和实际闸门信号分别控制对被测信号和标准信号计数。利用VerilogHDL语言编写一个除法器程序,用FPGA做除法运算,所得结果送单片机进行数据转换并用LED现实,设计主体流程图如图2-2所示。图2-2 设计总体框图2.7 本章小结通过以上分析,可以得到多周期同步测频法,不仅避免了传统测频方法在计数过程中产生的±1的误差,而且实现了在整个测量频域内的等精度。由于多周期同步测频方法具有如是优点,所以确定为最终的测频的算法。通过设计主体流程图可以清晰地知道此多周期同步测频法在FPGA上实现的过程。第3章 FPGA设计3.1 引言本章主要介绍FPGA部分的主体设计和相关程序。FPGA部分分为计数部分和除法器部分。计数器是对被测信号和标准信号进行计数,计数完成之后发出信号通知除法器模块进行读取计数值,并且除法器把两个计数值进行除法运算。EasyFPGA030主芯片采用Actel的A3P030,封装为VG100。板上的外设包括四个按键、四个LED、48MHz的晶振等,同时板上提供了FPGA下载所需要的下载器,直接与PC机并口相连,并通过上位机软件Libero即可下载。将可用的I/O全部引出,对于板上没有的外设可通过这些I/O进行扩展,锻炼使用者的设计创新能力,并将下载口引出可以通过USB的FlashPro3来下载,或通过引出的下载口去下载其他器件。EasyFPGA030开发板如图3-1所示8。图3-1 EasyFPGA030开发板功能特点:(1)I/O口全部引出,方便进行二次开发。支持最大81个用户I/O,热插拔和冷备份。(2)可以通过芯片内部的FlashROM进行数据存储,提供1kbit的片内可编程非易失性FlashROM信息存储;(3)板上集成了高性能的并口下载器,通过连接并口电缆即可下载;(4)基于非易失性Flash技术,单芯片解决方案,上电即行;(5)高度的安全性,保护知识产权,高度的可靠性,固件错误免疫;(6)灵活高效的全局时钟网络,提高设计性能,开发板上提供48MHz的晶振频率;(7)在封装上,A3P030有132-QFN和100-VQFP两种,此工程用的是开发板是100-VQFP封装型号;LiberoIDE是Actel FPGA的集成开发环境,提供完整的FPGA设计工具,支持原理图,HDL输入,并以用户GUI的方式显示FPGA的设计过程。LiberoIDE不仅带有Actel自身的高性能的布局布线工具,还集合了业界极具影响力的仿真、综合等工具。简化设计过程,方便用户使用,能够使设计得到最佳优化,大大提高系统的性能。集成软件如下ModelSim:业界优秀的HDL语言仿真器,提供友好的调试环境,支持VHDL和Verilog混合仿真,采用直接优化的编译技术,Tcl/TK技术和单一内核仿真技术,编译速度快,编译的代码与平台无关,便于保护IP核,是FPGA/ASIC设计的RTL级核门级电路仿真的首选工具。Synplify:Synplicity公司提供的专门针对FPGA/CPLD的逻辑综合工具,采用先进的Timing Driven(时序驱动)核B.E.S.T(行为级综合提取技术)算法引擎,使用简便、性能优良、软件更新和技术创新速度快、,综合面积较小、综合速度快。Designer:Actel公司提供的针对FPGA的高效布局布线工具,用户界面简单明了,可以在短时间内完成布局布线,并生成反标注文件和最终的编程下载文件,可以用图形的方式管理约束管脚、浏览布局布线的结果,提供时序约束和功耗分析的功能。ViewDraw:图形化设计输入工具,使用麻烦 ,不易操作管理,容易出错,不推荐使用。SmartDesign:在Libero8.0以上版本中集成,图形化输入方式,方便连接和直观的校验设计的正确性,可以创建和管理设计的内部功能模块,可以直接导入IP cores和HDL文件生成的模块,功能较ViewDraw更强大,操作性更好。WaveFormer:专用波形激励生成工具,手动绘图方式生成用户所需要的波形激励文件,免去编写HDL激励文件的繁琐,不能描述复杂的测试激励向量,非常适合初学者的使用。FlashPro:Actel公司提供的编程下载软件,通过JTAG接口对器件进行操作,可执行的操作包括:下载文件、设置/擦除密码、校验、读取配置信息等,支持菊花链JTAG编程,支持Pdb/Stp文件下载。CoreConsole:用于配置处理器软核、总线和外围设备,准许设计者用图形化的方式快速搭建系统级的平台,如8051、ARM7、CortexM1平台,用户任意添加处理器的外设。SoftConsole:免费的处理器软件开发环境,带有C、C+编译器,支持Actel的CoreMP7、CortexM1的软件程序的编译和调试功能,使用USB的下载器FlashPro3作为调试的硬件工具,为用户的开发和调试节省成本。Libero8.5集成开发软件设计流程如图3-2所示。图3-2 Libero设计流程图3.2 计数器模块计数器模块主要是利用FPGA提供的始终脉冲,产生一个控制闸门信号,利用控制闸门信号与被测信号共同产生一个实际闸门信号,在利用这个实际闸门信号控制分别对被测信号和标准信号计数,计数器总体设计如图3-3所示。图3-3 计数器rest:复位信号。负脉冲有效;start:开始信号,高电平有效。当置高时,计数器开始计数;clkx:被测频率信号;clk:时钟信号,由EasyFPGA030开发板提供的48MHz的时钟控制信号;ctl:量程控制选择,低电平为1Hz-1KHz,高电平为1KHz-1MHz;ok:通信控制信号,在计数器完成计数后置高电平,通知除法器取数,并进行除法运算;Ns,Nx:分别是对标准信号和被测信号计数,位宽带为11为。计数器模块仿真结果如图3-4所示。clkx被测信号设置的是1MHz,标准信号clks由48MHz分频得到的是1KHz,计数器计得Nx=2000,Ns=2。计数完成时ok信号被置高电平。结果正确。图3-4 计数器模块仿真图3.2.1 分频模块分频模块主要是对FGPA产生的48MHz的时钟晶振频率进行分频,获得所需的控制信号频率和标准信号频率,其模块设计如图3-5所示。图3-5 分频模块rest:复位控制信号,负脉冲有效;clk:时钟信号,由EasyFPGA030开发板提供的48MHz的时钟控制信号;ctl:分频控制信号,控制分频的的大小。低电平时分频为1Hz,高电平时分频为1KHz;clk_s:为分得频率的输出端口;3.2.2 预置闸门模块预置闸门模块是用分频模块分得的频率作为控制时钟信号,利用计数的方法产生一个预置闸门控制信号,其模块设计如图3-6所示。图3-7 预置闸门信号生成模块rest:复位信号,负脉冲有效;clk:时钟信号。与分频模块端口的clk_s相连,对clk_s信号进行计数,产生一个一定宽度的预置闸门信号;start:开始信号,高电平有效,置高时,开始产生预置闸门脉冲信号;clkp:产生闸门信号的输出端;3.2.3 实际闸门模块实际闸门模块是利用预置闸门模块产生的预置闸门信号与从外部输入的被测信号共同控制产生一个实际闸门控制信号,这个控制信号与被测信号时完全同步的,其模块设计如图3-8所示。图3-8 实际闸门信号生成模块rest:复位信号,负脉冲有效;clkp:预置闸门信号输入端,与预置闸门信号模块的clkp端口相连;clkx:被测信号输入端;clkr:实际闸门信号输出端,利用预置闸门信号与被测信号产生一个实际闸门信号;3.2.4 计数Nx模块计数Nx模块是利用实际闸门模块产生的实际闸门控制信号来控制对被测量信号Nx进行计数,其模块设计如图3-9所示。图3-9 被测信号计数器rest:复位信号,负脉冲有效;clkx:被测信号输入端;clkp:预置闸门信号输入端,与预置闸门信号模块的clkp端口相连;Nx:计数器输出端,在预置闸门信号的高电平宽度内,对被测信号的上升沿计数,输出一个11位2进制数;3.2.5 计数Ns模块计数Ns模块是利用实际闸门模块产生的实际闸门控制信号来控制对标准信号Ns进行计数,其模块设计如图3-10所示。图3-10 标准信号计数器rest:复位信号,负脉冲有效;clks:标准信号输入端。与分频模块的输出端clk_s相连,因此标准信号的频率分别是1Hz和1KHz,也就是两个量程范围,测量的量程范围是1Hz-1KHz,1KHz-1MHz;clkr:实际闸门信号。Nx:计数器输出端,在实际闸门信号的高电平宽度内,对标准信号的上升沿计数,输出一个11位2进制数;3.2.6 通信控制模块通信控制模块是在计数器对被测信号和标准信号计数完之后产生一个高电平的ok信号,这个信号通知后面的除法器模块计数完成,可以取测量数据进行运算处理了,其模块设计如图3-11所示。图3-11 通信控制模块rest:复位信号,负脉冲有效;clkr:实际闸门信号输入端。以clkr的下降沿作为计数完成时刻;start:开始信号,高电平有效,与预置闸门模块的start是同一信号;ok:控制信号输出端口,在计数器完成计数是ok产生一个高电平,通知后面的除法器模块开始对计数器模块所计得的数取值;3.2.7 计数器各模块连接详图把计数器内部各个模块:分频模块,预置闸门模块,实际闸门模块,计数器Nx模块,计数器Ns模块,通信控制模块之间的端口用图形化设计的方式连接起来,连接时注意输出端口必须与输入端口连接,否侧将会出错,把外部输入端口设置成顶层端口,其连线如图3-12所示。图3-12 计数器内部模块连接细图3.3 除法器模块 除法器是把计数被测信号所计得的Nx作为被除数和标准信号所计得的Ns作为除数相除,除得一个商和余数,其模块设计如图3-13所示。图3-13 除法器rest:复位信号,负脉冲有效;clk:时钟控制信号,输入的是开发板上的48MHz的时钟频率;start:开始信号,高电平有效。与计数器模块的ok信号端相连,当start被置高时,除法器开始计数;A,B:分别为被除数和除数,分别与计数器的Nx和Ns相连;err:除法出错信号端,当被除数为零时,err为高电平;ready:通信信号端,用于与单片机通信。当做完除法时,ready给出一个负脉冲信号;D,R:分别为除法器除得的商和余数;除法器仿真结果如图3-15所示。被除数A=00100000000=256,B=10000=16,求得D=10000=16,R=0,ready有个负脉冲的跳变(因为仿真显示区域太小,后面的上升沿没有显示出来)。图3-15 除法器模块仿真结果3.3.1 除法控制器除法控制器是接受控制信号通知后面的除法运算模块进行取数并控制除法运算模块进行运算,当除数为零时产生一个err信号,表示运算出错,其模块设计如图3-14所示。图3-14 除法控制器rest:复位信号,负脉冲有效;clk:时钟控制信号,输入的是开发板上48MHz的时钟频率;start:开始信号,高电平有效。与计数器模块的ok信号端相连;load:运算器开始数据装载控制信号;run:运算器开始运算控制信号;err:数据出错信号端,但被除数为零时,err被置高;除法器状态机源程序9: module div_ctl(clk, rest, start, invalid, load, run, err);parameter STATE_INIT = 3'b001;parameter STATE_RUN = 3'b010;parameter STATE_FINISH = 3'b100;input clk, rest, start, invalid;output load, run, err;reg 2:0 current_state, next_state;reg 3:0 count;reg load, run, err;always(current_state or invalid or count )begincase(current_state)STATE_INIT:beginerr<=0;count<=0;load<=1;run<=0;if(start=0)next_state<=STATE_INIT;elsenext_state<=STATE_RUN;endSTATE_RUN:beginload<=0;run<=1;count<=count+1'b1;if(invalid)/1beginerr<=1;next_state<=STATE_FINISH;endelse if(count=3000)next_state<=STATE_FINISH;endSTATE_FINISH:beginload<=0;run<=0;end default: next_state <=3'b000;endcaseendalways(posedge clk or negedge rest)beginif(!rest) current_state<=STATE_INIT;else current_state<=next_state;endendmodule除法器状态机分为三个状态:一、STATE_INIT为初始化状态;二、STATE_RUN开始运算状态;三、STATE_FINISH运算完成状态;3.3.2 除法运算器当除法运算器接到除法控制器发出装载信号,除法运算器便开始取数,当接到运算信号,除法运算器便开始运算,运算完成后发出一个ok信通知单片机运算完成可以开始显示,其设计模块如图3-16所示。图3-16 除法器数据通路rest:复位信号,负脉冲有效;clk:时钟控制信号,输入的是开发板上48MHz的时钟频率;load:开始数据装载信号输入端;run:开始数据运算输入端;A,B:分别为被除数和除数;invalid:当被除数为零时,此端口输出高电平。与状态机的invalid端口连接;ok:当完成运算时,此端口输出高电平;D,R:分别为求得的商和余数;除法器数据通路源程序10:module div_datapath(clk, rest, A, B, load, run, invalid, D, R,ok);parameter n=11;input clk, rest;input n-1:0 A, B;input load, run;output invalid,ok;output n-1:0 D, R;reg ok;reg n-1:0 BO, D, R;wire invalid;wire n-1:0 minus, carry;assign invalid=(BO=0);assign carry, minus=1'b1, R-1'b0, BO;always(posedge clk or negedge rest)beginif(!rest)beginD<=0;R<=0;ok<=0;endelse if(load)beginD<=0;R<=A;BO<=B;endelse if(run&&carry)beginR<=minus;D<=D+1'b1;endelse ok<=1;endendmodule此除法器利用的是最简单的除法算法,是利用减法来做除法。被除数减去除数得到数R,在把数R与除数比较,若R大于除数,则把数D做加一运算,再继续用数R减去除数,这样一直运算下去,直到数R小于除数,所得的D便是商,R则是余数。3.3.3 通信信号转换模块通信信号转换模块主要是除法运算器产生的ok电平控制信号转换为一个负脉冲的控制信号,因为单片机的外部中断控制可以是低电平中断,也可以是负脉冲中断,但低电平中断必须在外部加强制关中断的电路,因此负脉冲控制在电路设计上更简便,其模块设计如图3-17所示。图3-17 通信信号转换模块3.3.4 除法器各模块连接详图把除法控制器模块,除法运算器模块,控制信号转换模块之间的端口通过图形化设计的方式进行连线,其连线如图3-18所示。图3-18 除法器内部模块连接细图3.4 本章小结 本章主要介绍了FPGA的软件,硬件结构,频率计设计过程和各个模块的详细设计方法。在把各个模块仿真通过后,并下载到开发板上,利用开发板所带的LED灯进行了初步的测试,得到正确的结果,证明这个设计合理。计数器模块与除法器模块相连接如图3-19所示。图3-19 整体设计连线FPGA部分整体设计仿真结果如图3-19所示。从仿真波形上可以清楚地看到,被测信号在激励文件中设置为fx=100KHz,ctl置高对48MHz频率分频得到标准频率clks=1KHz,结果为商D=00001100100(二进制)=100(十进制),余数R=0。ready信号有个负脉冲的跳变。结果完全正确。图3-19 整体仿真第4章 显示及信号整形设计4.1 引言本章主要介绍单片机与FPGA进行通信,并且利用单片机对FPGA所测得频率结果进行显示,并且介绍关于信号整形,以实现任意波形的频率测量。所用的器件,Ateml公司的51单片机,74LS244,74LS14,4位共阳极数码管,电阻,电容,导线若干,12MHz晶振一个。AT89C51:P1.0-P1.7,P3.0,P3.1,P3.2作为外部数据输入端口,P3.3作为外部中断输入端口。P0组端口作为LED的段选位,P2.7,P2.6,P2.5,P2.4作为LED的位选信号。74LS244:利用其缓冲功能对单片机输出的段选信号电流进行放大,使数码管显示更亮。三极管:对单片机输出的位选信号电流进行放大。74LS14:利用其集成的施密特除法器进行波的整形。最终所焊接的电路板如图4-1所示:图4-1 显示与整形部分电路板4.2 单片机显示模块相关硬件介绍11:(1)AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, 为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,其外形及引脚排列如图4-2所示。图4-2 功能管脚主要特性:与MCS-51兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏

    注意事项

    本文(基于FPGA的等精度频率计设计.doc)为本站会员(爱问知识人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开