免费预览已结束,剩余36页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)-基于FPGA的等精度频率计设计【毕业论文】 基于FPGA的等精度频率计设计摘 要频率计是实验室和科研生产中最常用的测量仪器之一本文介绍了一种基于FPGA芯片设计的等精度频率计对传统的等精度测量方法进行了改进采用SOPC设计技术和基于NIOS II嵌入式软核处理器的系统设计方案通过在FPGA芯片上配置NIOS II软核处理器进行数据运算处理利用液晶显示器对测量的频率进行实时显示可读性好整个系统在一片FPGA芯片上实现系统测量精度高实时性好具有灵活的现场可更改性本频率测量仪是以Altera公司生产的CycloneII系列EP2C35F672C6器件为核心实现高精度计数功能整个电路采用模块化设计调试制作方便经过仿真并下载验证能够实现等精度测频功能频率测量范围为1HZ-200MHZ关键词等精度频率计FPGA SOPC NiosIIDesign of Equal Precision Frequency MeterBased on FPGAABSTRACTFrequency meter is one of the most commonly used measuring instruments which can be used in laboratory scientific research and production An equal precision frequency meter designed with FPGA is introduced in this article It adopts Very-High-Speed Integrated Circuit HardwareDescription Language to implement function module in frequency meter base on traditional frequency measurement SOPC designing technique and system designing plan based on Nios II soft core CPU are used in the design It also adopts Niosll soft core CPU as data processing unit uses LCD 1602 equipment to display frequency in real- time The whole system is in the realization of a FPGA chip So it has a high- precision measurement real- time and flexible change of scene The frequency meter is based on CycloneII EP2C35F672C6 Altera device as the core to achieve high-precision counting Because of the modular design of this circuit it is facilitate to debug After the simulation and downloads the confirmation can realize equal-precision frequency measurement function Frequency measurement scope is 1-200MHZKEY WORDSequal precision measurement frequency meter FPGA SOPC NiosII目 录摘 要IABSTRACTII1 绪论111 课题提出的背景112 课题选择意义12 EDA及其开发平台简介321 EDA的具体开发流程3com入3com3com 适配4com 仿真4com 编程下载和硬件测试422简介NIOS II IDE4com理器5com 编辑器和编译器6com6com程器73 课题方案选择831 频率测量方案选择8com 直接测频法8com 间接测频法8com 等精度测频932 基于单片机的测频方案1033 基于FPGA的测频方案114 基于FPGA等精度频率计的单元模块设计1341 放大整形模块设计1342 标准信号产生模块设计1443 FPGA芯片模块设计14com D型触发器的设计15com 计数器的设计16com 锁存器的设计19com NIOS II 软核CPU的设计2044 LCD液晶显示模块235 系统综合及其测试2451 放大整形模块2452等精度计数模块2453 整体系统2554 软件编写与测试2755 系统的扩展33com 分频器设计33com 选择器设计356 总结38致 谢39参 考 文 献401 绪论11 课题提出的背景现代数字系统的设计离不开各种先进的仪器比如数字示波器逻辑分析仪频谱分析仪信号发生器数字频率计等数字频率计是一种及其常用的工具用于检测输入周期信号的频率随着大规模集成电路的发展很多芯片内部也集成了数字测频单元大大增强了芯片处理数字信号的能力数字频率计广泛应用于航天电子测控等领域例如在传统的生产制造企业中频率计被广泛的应用在产线的生产测试中频率计能够快速的捕捉到晶体振荡器输出频率的变化用户通过使用频率计能够迅速的发现有故障的晶振产品确保产品质量在计量实验室中频率计被用来对各种电子测量设备的本地振荡器进行校准在无线通讯测试中频率计既可以被用来对无线通讯基站的主时钟进行校准还可以被用来对无线电台的跳频信号和频率调制信号进行分析采用等精度频率测量方法具有测量精度保持恒定的特点数字化是电子设计的必由之路EDA技术即以计算机为工具EDA是Electronic Design Automation电子设计自动化的简称它是随着集成电路和计算机技术的飞速发展应运而生的一种高级快速有效的电子设计自动化工具在 Quartus II软件平台上根据硬件描述语言VHDL描述的设计文件自动地完成逻辑编译化简分割综合及优化布局布线仿真直至对于特定目标芯片的适配编译逻辑映射和编程下载等工作设计者只要利用软件完成对硬件功能的描述在EDA工具的帮助下和应用相应的PLD器件就可以得到最后的设计结果尽管目标器件是硬件但整个设计是软件控制流程由于FPGA是纯硬件结构具有较强的抗干扰能力NIOS II是Altera针对其FPGA设计的嵌入式软核处理器它只占芯片内部很少的一部分逻辑单元和存储资源成本很低具有上百兆的性能灵活的自定义指令集和自定义硬件加速单元以及友好的图形化开发环境NIOS II IDE随着微电子技术和计算机技术的发展可编程逻辑器件EDA技术SOPC等新概念和新技术层出不穷新技术的应用迅速渗透到电子通信信息汽车制造等领域有力的推动了社会生产力的发展和社会信息化程度的提高12 课题选择意义基于FPGA的等精度频率计有运算速度快系统较稳定测量范围广等特点其中主要应用到EDA 电子设计自动化 技术伴随着集成电路技术的发展EDA逐渐成为重要的设计手段已经广泛应用于模拟与数字电路系统等许多领域EDA是一种实现电系统或电子产品自动化设计的技术它与电子技术微电子技术的发展密切相关它吸收了计算机科学领域的大多数最新研究成果以高性能的计算机为工作平台促进了工程发展本设计利用FPGA进行测频计数单片机实施控制实现频率计的设计过程该频率计利用等精度的设计方法克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点等精度的测量方法不但具有较高的测量精度而且在整个测频区域内保持恒定的测试精度并采用NIOS II控制液晶显示器显示测量频率 2 EDA及其开发平台简介21 EDA的具体开发流程基于FPGA器件实现数字系统的流程如图2-1所示图2-1 基于FPGACPLD的EDA图2-2 VHDL仿真流程图com 编程下载和硬件测试把适配后生成的编程文件装入到PLD器件中的过程称为下载通常将对基于EEPROM工艺的非易失结构PLD器件的下载称为编程Program而将基于SRAM工艺结构的PLD器件的下载称为配置Configure最常用的编程方式有两种分别是在系统编程ISPIn System Programmable和用专用的编程器编程22简介NIOS II IDENIOS II集成开发环境 IDE 是NIOS II系列嵌入式处理器的基本软件开发工具所有软件开发任务都可以NIOS II IDE下完成包括编辑编译和调试程序NIOS II IDE提供了一个统一的开发平台用于所有NIOS II处理器系统仅仅通过一台PC机一片Altera的FPGA以及一根JTAG下载电缆软件开发人员就能够往NIOS II 处理器系统写入程序以及和NIOS II处理器系统进行通讯NIOS II IDE基于开放式的可扩展Eclipse IDE project工程以及Eclipse CC 开发工具CDTNIOS II IDE为软件开发提供四个主要的功能分别是工程管理器编辑器和编译器调试器和闪存编程器com理器NIOS II IDE提供多个工程管理任务加快嵌入式应用程序的开发进度NIOS II IDE推出了一个新工程向导如下图2-3所示用于自动建立CC应用程序工程和系统库工程采用新工程向导能够轻松地在Nios II IDE中创建新工程图2-3 Nios II IDE新工程向导除了工程创建向导N II IDE还以工程模板的形式提供了软件代码实例帮助软件工程师尽可能快速地推出可运行的系统每个模板包括一系列软件文件和工程设置通过覆盖工程目录下的代码或者导入工程文件的方式开发人员能够将他们自己的源代码添加到工程中图描述了一些可用的软件工程模板图2软件工程模板NIOS II IDE使开发人员通过使用软件组件能够快速地定制系统软件组件或者称为系统软件为开发人员提供了一个简单的方式来轻松地为特定目标硬件配置他们的系统组件包括NIOS II运行库或者称为硬件抽象层HAL IP TCPIP 库 - NIOS II 版本MicroCOS-II实时操作系统 RTOS Altera压缩文件系统Altera NIOS II IDE提供了一个全功能的源代码编辑器和CC编译器NIOS II IDE文本编辑器是一个成熟的全功能源文件编辑器其功能包括语法高亮显示代码辅助代码协助完成全面的搜索工具文件管理广泛的在线帮助主题和教程引入辅助快速定位自动纠错内置调试NIOS II IDE为GCC编译器提供了一个图形化用户界面NIOS II IDE编译环境使设计Altera的NIOS II处理器软件更容易它提供了一个易用的按钮式流程同时允许开发人员手工设置高级编译选项NIOS II IDE编译环境自动地生成一个基于用户特定系统配置SOPC Builder生成的PTF文件的makefileNIOS II IDE中编译链接设置的任何改变都会自动映射到这个自动生成的makefile中这些设置可包括生成存储器初始化文件MIFDATHEXprofile总结文件的相关选项comNIOS II IDE包含一个强大的在GNU调试器基础之上的软件调试器GDB该调试器提供了许多基本调试功能以及一些在低成本处理器开发套件中不会经常用到的高级调试功能NIOS II IDE调试器包含如下的基本调试功能运行控制调用堆栈查看软件断点反汇编代码查看调试信息查看指令集仿真器除了上述基本调试功能之外NIOS II IDE调试器还支持以下高级调试功能硬件断点调试ROM或闪存中的代码数据触发指令跟踪NIOS II IDE调试器通过JTAG调试模块和目标硬件相连另外支持片外跟踪功能便于和第三方跟踪探测工具结合使用如FS2公司提供的用于NIOS II处理器的in-target系统分析仪ISA-NIOS图5 调试信息查看寄存器显示许多使用N II处理器的设计都在单板上采用了闪存可以用来存储FPGA配置数据或N II编程数据N II IDE提供了一个方便的闪存编程方法任何连接到FPGA的兼容通用闪存接口CFI的闪存器件都可以通过N II IDE闪存编程器来烧结除CFI闪存之外N II IDE闪存编程器能够对连接到FPGA的任何Altera串行配置器件进行编程闪存编程器管理多种数据表编程到闪存中的通用内容类型内容类型说明系统固定软件 烧结到闪存中的软件用于N II处理器复位时从闪存中导入启动程序FPGA配置 如果使用一个配置控制器例如用在Nios开发板中的配置控制器FPGA能够在上电复位时从闪存获取配置数据任意二进制数据开发人员想存储到闪存内的任何二进制数据例如图形音频等N II IDE闪存编程器已做了预先配置能够用于N II开发套件中的所有单板而且能够轻易地引入到用户硬件中图3-1 频率测量原理图按照频率的定义即单位时间内周期信号的发生次数图3-1中晶振提供了测量的时间基准分频后通过控制电路去开启与关闭时间闸门闸门开启时计数器开始计数闸门关闭停止计数若闸门开放时间为T计数值为N则被测频率为 f NT 3-1用这种频率测量原理对于频率较低的被测信号来说存在着测量实时性和测量精度之间的矛盾例如若被测信号为10Hz精度要求为001则最短闸门时间为 T Nf 1000s 3-2这样的测量周期根本是不可能接受的可见频率测量法不适用于低频信号的测量com 间接测频法间接测频法即为周期测频法周期测量原理和频率测量基本结构是一样的只是把晶振和被测信号位置互换了一下如图3-2所示T NTrM计数值N和被测信号的周期成正比N反映了M个信号周期的平均值利用周期测量法在一定信号频率范围内通过调节分频系数M可以较好地解决测量数度与实时性的矛盾但是对于高频信号周期法就需要很大的分频系数M增加了硬件及软件的复杂性不宜采用由此可见对于传统频率测量方法若是要达到高精度的要求必须对被测频率分段测量对于较低频率用周期测量对较高频率用频率法测量图3-2 周期测量原理图com 等精度测频等精度测频的方法具体是采用频率准确的高频信号作为标准频率信号保证测量的闸门时间为被测信号的整数倍并在闸门时间内同时对标准信号脉冲和被测信号脉冲进行计数实现整个频率测量范围内的测量精度相等当标准信号频率很高闸门时间足够长时可实现高精度频率测量测量精度与闸门时间的关系分析如下如图3-3所示闸门控制信号CLfx fsNxNs 3-3图3-3 等精度测频原理示意图对标准信号所产生的计时误差为t Td-NsTs 3-4由于t最大为一个标准信号的周期即tTs因此 fx Nx NsTs Nx Td-t 3-5而被测信号频率准确值fx0 NxTd则频率测量的相对误差为 fx-fx0fx0 t Td-t m Ts Td-Ts TsTd 3-7由最后的表达式可知当频率测量的最大误差由标准时钟信号的周期Ts和频率计数的闸门时间Td决定Ts越小Td越大测量误差越小即测量精度越高在整个频率测量范围内精度恒定实现了等精度测量当标准信号选取准确的50MHz信号源时Ts 10ns只要选取Td10ms就可使测量的最大相对误差10-6即达到百万分之一的测量精度测量闸门时间Td的选取除满足m式的最大测量误差外还应保证大于一个被测信号周期Tx测量频率的相对误差与被测信号频率的大小无关仅与闸门时间和标准信号频率有关即实现了整个测试频段的等精度测量闸门时间越长标准频率越高测频的相对误差就越小标准频率可由稳定度好精度高的高频晶体振荡器产生在保证测量精度不变的前提下提高标准信号频率可使闸门时间缩短即提高测试速度表3-1所列为在10MHz时闸门时间与最大允许误差的对应关系表3-1 闸门与精度的关系闸门时间s精度00110-50110-6110-71010-832 基于单片机的测频方案采用单片机AT89C51作为系统控制核心单元辅以适当的软硬件资源完成以单片机为核心的等精度频率计的软硬件设计及系统实现系统如图3-4所示图3-4 基于单片机的频率测量计组成框图前置放大器完成信号放大电平平移的任务被测的交流信号D被放大平移成脉冲直流信号E再经74HC14施密特反相器整形成矩形脉冲与门74LS08作为计数闸门方波信号被送到与门的一个输入端与门的另一个输入端连接1s门控信号实际制作中连接AT89C51的P31当P31脚为高电平时闸门打开低电平时闸门关闭P31脚电平的高低可通过指令加以控制闸门开时矩形脉冲送到74LS393进行74LS393是双4位计数器在这里接成级联方式组成一个8位二进制计数器同时分频比为256的分频器采用74LS393的理由是AT89C51内有2个16位的二进制加法计数器一个用作定时器另一个用作脉冲计数16位二进制的最大计数为216-1 65535不能满足精确测量的需要虽然可以通过软件计数的方法来提高分辨率但是AT89C51内置计数器的计数速率受500KHz12MHz时钟的限制所以意义并不大74LS393的最大计数速率可达35MHz与AT89C51内的一个定时器组成24位的计数器其最大计数值为224-1 16777215分辨率大大提高本电路中没有采用十进制计数因为AT89C51内置计数器只能进行二进制加法计数计数结束后再进行二进制转十进制运算然后将结果送到显示缓冲区进行显示33 基于FPGA的测频方案在较高精度和高速测量的要求下必须采用较高的标准频率信号而单片机受本身时钟频率和若干指令运算的限制测频速度较慢无法满足高速高精度的测频要求采用高集成度高速的FPGA芯片为实现高速高精度的测频提供了保证随着EDA电子设计自动化技术和微电子技术的进步FPGA的时钟延迟可达到ns级结合其并行工作方式在超高速实时测控方面有非常广阔的应用前景并且FPGA具有高集成度高可靠性几乎可将整个设计系统下载于同一芯片中实现所谓片上系统从而大大缩小其体积具有可编程型和实现方案容易改动的特点有利于产品的研制和后期升级整个测频系统分为多个功能模块如信号同步输入放大整形标准信号FPGA芯片液晶显示等模块除标准信号放大整形液晶显示模块外其他模块可集成于FPGA芯片中并且各逻辑模块用硬件描述语言VHDL来描述其功能然后通过EDA开发平台如Quartus对设计文件自动地完成逻辑编译逻辑化简综合及优化逻辑布局布线逻辑仿真最后对FPAG芯片进行编程以实现系统的设计要求其系统组成框图如图3-5所示图3-5 基于FPGA的频率测量计的组成框图基于单片机的频率测量计设计方案主要是以单片机为基础原理简单但由于单片机自身速度问题测量的范围较小基于FPGA的频率测量计设计方案主要是以FPGA为主使用其中的Nios II核对采集的数据进行处理并由LCD输出测得的频率以及实现对FPGA内部各个模块的控制综上所述并根据设计要求测频范围为1Hz至200MHz单片机不能达到此要求故采用FPGA来完成并综合其他因素决定采用基于FPGA的等精度频率测量方案4 基于FPGA等精度频率计的单元模块设计基于FPGA等精度频率计设计的单元模块包括放大整形模块标准信号产生模块FPGA芯片模块液晶显示模块41 放大整形模块设计放大整形电路由2N2222 实际中可用常见的9018 与74F14等组成其中2N2222组成放大电路将输入频率为Fx的周期信号如正弦波三角波等进行放大74F14施密特触发器对放大器的输出信号进行整形使之成为矩形脉冲施密特触发器是一种特殊的门电路与普通的门电路不同施密特触发器有两个阈值电压分别称为正向阈值电压和负向阈值电压在输入信号从低电平上升到高电平的过程中使电路状态发生变化的输入电压称为正向阈值电压在输入信号从高电平下降到低电平的过程中使电路状态发生变化的输入电压称为负向阈值电压利用施密特触发器状态转换过程中的正反馈作用可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号输入的信号只要幅度大于vt即可在施密特触发器的输出端得到同等频率的矩形脉冲信号 当输入电压由低向高增加到达V时输出电压发生突变而输入电压Vi由高变低到达V-输出电压发生突变因而出现输出电压变化滞后的现象可以看出对于要求一定延迟启动的电路它是特别适用的 图4-1即为信号通过施密特触发器后的波形变换情况图4-1 施密特触发器的波形变换待测信号经过时由D1D2两个二极管进行限幅以免电压过大而烧毁信号经过2N2222进行放大由74F14对其进行整形产生出的波形为标准方波方便FPGA进行计数其连线如图4-2所示图4-2 放大整形电路图42 标准信号产生模块设计本设计采用的是Altera公司生产的DE2开发板在开发板上有50MHZ的晶振我们只需将晶振的引脚与我们设计的FPGA芯片对应配置就可以了43 FPGA芯片模块设计本设计采用的是Altera公司生产的CycloneII系列EP2C35F672C6芯片为核心器件实现高精度计数功能Cyclone II器件Cyclone而言包含了许多新的特性如嵌入存储器嵌入乘法器PLL和低成本的封装EP2C35系列芯片有33216个逻辑单元4个锁相环475个IO管脚和205个差分通道因此功能十分强大在FPGA芯片中主要有以下几个模块构成D型触发器2个32位计数器2个锁存器NIOS II软核处理器等精度测频原理的预置门限信号可由CPU发出连接到D型触发器的输入端计数器1和计数器2是两个32位计数器标准频率信号FS从计数器1的计数输入端输入经整形后的被测信号FX从计数器2的计数输入端输入计数器中的EN输入端与D型触发器的输出端相连当预置门限信号为高电平 门限时间开始 时同时被测信号的上升沿到来时D型触发器工作将输出端置1同时启动两个计数器开始计数当预置门限信号为低电平 门限时间结束 时同时被测信号的上升沿到来时D触发器工作将输出端置0同时关闭计数器的计数计数器1及计数器2所计之数通过锁存器进入CPU经过运算处理后送给显示模块进行数字显示即可FPGA芯片内部设计框图如下图4-3所示图4-3 FPGA内部设计框图com D型触发器的设计本设计采用的是边沿触发的D 触发器电平触发的主从触发器工作时必须在正跳沿前加入输入信号如果在CP 高电平期间输入端出现干扰信号那么就有可能使触发器的状态出错而边沿触发器允许在CP 触发沿来到前一瞬间加入输入信号这样输入端受干扰的时间大大缩短受干扰的可能性就降低了边沿D触发器也称为维持-阻塞边沿D触发器D型触发器在设计中的作用十分重大它是等精度计数的核心当输入D置1时输出Q不是马上置1而是时钟脉冲上升沿到来时才跳变这时计数器才开始计数当然在输入D置0时输出Q不是马上置0而是时钟脉冲上升沿到来时才置0这里的时钟脉冲就是采用被测信号如此一来就可以保证计数器对被测信号周期的测量是周期的整数倍了大大减小了误差在使用EDA技术对FPGA内部数字电路的设计中最大的优点就是可以根据设计的需要定制相应的器件对于某些不用的引脚可以不用设计例如对于D型触发器而言一般都有清零和置数端但在本设计中清零与置数端是没有用的所以我们便可不用将它设计进来故D型触发器的VHDL程序如下-dvhdLIBRARY IEEEUSE IEEESTD_LOGIC_1164ALLENTITY d IS PORT d in std_logic clk in std_logic n out std_logic END dARCHITECTURE rt3 of d ISBEGIN PROCESS clk BEGIN IF clkevent and clk 1 THEN q d qn NOT d END IFEND PROCESS本设计最终采用的是原理图输入的方法将功能写入FPGA芯片的故需要对每一个设计好的模块生成模块文件D型触发器的模块文件如下图4-40图4-4 D型触发器的模块文件com 计数器的设计计数是一种最简单基本的运算计数器就是实现这种运算的逻辑电路计数器在数字系统中主要是对脉冲的个数进行计数以实现测量计数和控制的功能同时兼有分频功能计数器是由基本的计数单元和一些控制门所组成计数单元则由一系列具有存储信息功能的各类触发器构成这些触发器有RS触发器T触发器D触发器及JK触发器等计数器在数字系统中应用广泛如在电子计算机的控制器中对指令地址进行计数以便顺序取出下一条指令在运算器中作乘法除法运算时记下加法减法次数又如在数字仪器中对脉冲的计数等等计数器可以用来显示产品的工作状态一般来说主要是用来表示产品已经完成了多少份的折页配页工作它主要的指标在于计数器的位数常见的有3位和4位的很显然3位数的计数器最大可以显示到9994位数的最大可以显示到9999本设计对计数器的要求比较高因为要对200MHZ的信号进行计数故采用32位的计数器其计数最大值为4294967296足以达到设计要求在Quartus II中使用文本输入方法定制一个满足要求的32位计数器新建一个工程然后新建一个VHDL文件输入程序进行调试仿真本设计需要两个32位计数器分别对标准信号和被测信号进行计数标准信号计数器的VHDL程序如下-c_countervhdLIBRARY IEEEUSE IEEESTD_LOGIC_1164ALLUSE IEEESTD_LOGIC_UNSIGNEDALLUSE IEEESTD_LOGIC_ARITHALLENTITY c_counter IS PORT clk in std_logic clr in std_logic c_en in std_logic c_cnt buffer std_logic_vector 31 downto 0 END c_counterARCHITECTURE rt1 OF c_counter ISBEGINPROCESS clrclk BEGIN IF clr 1 THEN c_cnt OTHERS 0 ELSIF rising_edge clk THEN IF c_en 1 THEN c_cnt c_cnt1 END IF END IFEND PROCESSEND ARCHITECTURE在计数器完成计数后需要将计数结果送入锁存器进行锁存故在设计被测信号计数器的时候将锁存器的使能控制信号over添加了进来被测信号计数器的输出端over与锁存器的使能端相连这样就能很好的完成计数锁存功能了被测信号计数器的VHDL程序如下-s_countervhdLIBRARY IEEEUSE IEEESTD_LOGIC_1164ALLUSE IEEESTD_LOGIC_UNSIGNEDALLUSE IEEESTD_LOGIC_ARITHALLENTITY s_counter IS PORT s_en in std_logic clr in std_logic sign in std_logic over out std_logic s_cnt buffer std_logic_vector 31 downto 0 END s_counterARCHITECTURE rt2 OF s_counter ISsignal TEMP std_logic 0BEGINPROCESS clrsign BEGIN IF clr 1 THEN s_cnt OTHERS 0 ELSIF rising_edge sign THEN IF s_en 1 THEN s_cnt s_cnt1 END IF END IFEND PROCESSPROCESS s_en BEGIN IF falling_edge s_en THEN IF s_en 0 then TEMP 1 END IF END IFEND PROCESSover TEMPEND ARCHITECTURE经过编译后生成模块文件标准信号计数器的模块文件如下图4-5被测信号计数器的模块文件如下图4-6图4-5 标准信号计数器的模块文件 图4-6 被测信号计数器的模块文件com 锁存器的设计锁存器是一种对脉冲电平敏感的存储单元电路它们可以在特定输入脉冲电平作用下改变状态锁存就是把信号暂存以维持某种电平状态锁存器的最主要作用是缓存其次完成高速的控制其与慢速的外设的不同步问题再其次是解决驱动的问题最后是解决一个 IO 口既能输出也能输入的问题本设计主要是使用其缓存的作用当计数器完成计数后将计数结果先进行锁存然后再启动CPU进行读数这样就可以保证CPU在读数时不受影响这里使用的是1个2路32位的锁存器锁存器的VHDL程序如下LIBRARY IEEEUSE IEEESTD_LOGIC_1164ALLENTITY ffd IS PORT CLR in std_logicLOAD in std_logicDATA_ENout std_logicDATA1_IN in std_logic_vector 31 downto 0 DATA2_IN in std_logic_vector 31 downto 0 DATA1_OUT out std_logic_vector 31 downto 0 DATA2_OUT out std_logic_vector 31 downto 0 END ENTITY ARCHITECTURE ffd_arch OF ffd ISBEGINPROCESS CLRLOAD BEGINIF CLR 1 THENDATA1_OUT others 0 DATA2_OUT others 0 DATA_EN 0ELSIF LOAD 1 THENDATA1_OUT DATA1_INDATA2_OUT DATA2_INDATA_EN 1END IFEND PROCESS END ARCHITECTURE经过编译后生成模块文件锁存器的模块文件如下图4-7图4-7 锁存器的模块文件com NIOS II 软核CPU的设计在本设计中还用到了NIOS II软核处理器NIOS II是Altera公司在NIOS的基础上于2004年发布的嵌入式软核处理器所谓软核是指用HDL文本形式提交给用户他经过RTL级设计优化和功能验证但其中不含任何具体的物理信息NIOS II是采用流水线技术和哈佛结构的通用RISC Refined Instruction Set Computer精简指令集计算机 一个NIOS II处理器系统由NIOS II CPU和一系列的外设组成NIOS II系统包括NIOS II CPU片内外设片内存储器和片外外设他们的接口都在Altera公司的芯片上实现相当于在单片机实现1台计算机或1个微控制器所有的NIOS II处理器系统使用统一的指令集和编程方式NIOS的处理器实例如图4-8所示图4-8 NIOS II的处理器实例ARM是常用的嵌入式处理器之一在设计SOC时常把ARM作为硬核植入到FPGA中硬核具有成本低速度快等优点但是将IP硬核直接植入FPGA的解决力案存在以下不足由于硬核是预先植入的设计者无法相据实际需要改变处理器的结构无法根据实际设计需要在同一FPGA中集成多个处理器无法根据需要裁减处理器硬件资源以降低FPGA成本等利用软核处理器能有效地弥补上述不足在NIOS中还可以添加用户自定义的指令在开发工具的完备性方面NIOS也具有很大的优势Altera不仅提供强大的HAL系统库支持还提供嵌入式操作系统核TCPIP协议栈的支持 NIOS II嵌入式微处理器模块是整个系统控制器的核心它相当于单片机系统控制器中的CPU是所有信号的采集处理及输出的控制中心NIOS II嵌入式微处理器模块的设计需要借助于Altera公司提供的系统级开发工具Quartus II中的SOPC Builder完成 NIOS II软核接收了来自硬件部分的数据后还需要进行相应的数据处理才能够满足测频系统控制器对测量频率的要求进而才能送LCD显示打开Quartus II新建一个工程在Tools的下拉菜单中打开SOPC Builder在里面定制自己所需的软核CPUFPGA里的NIOS II软核定制主要包括NIOS II处理器LCD控制器模块存储器控制器模块控制总线接口模块及数据总线接口模块等等SOPC可以根据用户的需要来配置CPU及各个功能模块的参数这里把数据总线接口配置为输入口控制接口模块配置为输出口CPU时钟是由外部50 MHz晶振通过FPGA内的锁相环2倍频后得到的 用SOPC Builder可以进行系统模块硬件设计和底层软件生成进行硬件模块设计时SOPC Builder提供图形化配置界面备有一些常用外设的IP模块如SRAM FlashRAMLCD InterfaceParallel I O等用户还可以加入自己的外设设计文件对于本设计来说就是将在前面提到的控制接口模块和用户自定义的接口添加进来SOPC Builder可以进行系统配置以及生成系统配置除了对外设设置外还包括启动程序中断向量表系统启动地址等的设置具体如下图4-9图4-9 构建完成的NIOS II系统模块完成自定义设计后就可以生成NIOS II软核CPU了生成的NIOS II软核CPU的模块文件如下图4-10图4-10 定制完成的NIOS II软核CPU44 LCD液晶显示模块本设计采用的是Altera公司生产的DE2开发板在开发板上有液晶显示屏我们只需将液晶显示屏的引脚与我们设计的FPGA芯片对应配置就可以了在NIOS II软核CPU对数据进行处理后送入相应的LCD输出端口即可显示5 系统综合及其测试51 放大整形模块输入的正弦波经过放大整形模块后整形成方波便于计数其测试结果如下图5-1所示图5-1 放大整形模块测试结果52等精度计数模块此部分由2个计数器1个D型触发器和1个32位锁存器组成在Quartus II中画出其原理图如下图5-2图5-2 等精度计数模块原理图标准信号与被测信号通过等精度计数模块后其测试结果如下图5-3图5-3 等精度计数模块测试结果经过测试证实等精度计数模块可以达到预期目标为便于在总体系统原理图中表示此模块可将图5-2的框图在Quartus II中将其整合成一个模块文件如下图5-4图5-4 等精度计数模块文件53 整体系统在Quartus II中新建一个原理图文件将前面设计的各个模块添加进去并将相应的接口连接起来在DE2开发板上FPGA芯片的每个引脚都与外围电路相连所以要在原理图文件中配置每个没有连接的引脚例如要将NIOS II软核CPU中配置的FLASHSRAMSDRAMFPGA芯片的每个引脚都有对应的名字在对各个模块生成引脚并编译后在Pin Planner中配置各个引脚的位置在配置完成后进行编译编译成功后整体硬件系统就设计完成了整体原理图如下图5-5所示图5-5 系统整体原理图完成系统的硬件编译后就可生成一个SOF文件这个文件是用于向FPGA下载的在Quartus II环境下选择TOOLS下拉式菜单中的Programmer就可将此文件写入FPGA芯片烧写程序环境如下图5-6图5-6 烧写程序环境54 软件编写与测试在硬件系统设计完毕后要向NIOS II软核CPU中写入程序用于控制各个模块的运作硬件的设计是在Quartus II环境中完成的而软件设计是在NIOS II IDE开发平台中完成的NIOS II软核是系统的核心NIOS II IDE是NIOS II系列嵌入式处理器的基本软件开发工具相应的函数丰富语法简便采用文件操作的方式访问系统外设设计人员可以根据系统的硬件结构十分方便地设计系统的软件NIOS II的开发是在NIOS II IDE环境下进行利用C语言编写NIOS II完成的主要任务有控制门限信号的长短门限信号是由定时器控制的读取FPGA中两个计数器计数的值并按照公式计算然后送入LCD显示频率值还有控制发出计数器的清零信号程序流程图如下图5-7所示图5-7程序流程图以下程序frequencyc便是根据上面流程图写出的include include include include includealt_typeshincludesysalt_irqhincludealtera_avalon_pio_regshincludesystemhincludeLCDhinclude sysalt_devhinclude privalt_busy_sleephinclude mathhvoid LCD_Init lcd_write_cmd LCD_BASE0x38 usleep 2000 lcd_write_cmd LCD_BASE0x0C 关显示光标闪烁方式 usleep 2000 lcd_write_cmd LCD_BASE0x01 清显示 usleep 2000 lcd_write_cmd LCD_BASE0x06 光标前移方式不允许整屏移动 usleep 2000 lcd_write_cmd LCD_BASE0x80 显存指针指向初始位置 usleep 2000 void LCD_Show_Text charText int i for i 0i strlen Text i lcd_write_data LCD_BASETexti usleep 2000 void LCD_Line1 lcd_write_cmd LCD_BASE0x80 usleep 2000 void LCD_Line2 lcd_write_cmd LCD_BASE0xC0 usleep 2000 int main void while 1 unsigned long cnsnn double n1n2 int abcdefghk char text16 frequency is char num16 LCD_Init IOWR_ALTERA_AVALON_PIO_DATA C_CLR_BASE1 usleep 10000 cn IORD_ALTERA_AVALON_PIO_DATA NC_BASE sn IORD_ALTERA_AVALON_PIO_DATA NX_BASE IOWR_ALTERA_AVALON_PIO_DATA C_CLR_BASE0 usleep 10000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 13818-1:2025 EN Information technology - Generic coding of moving pictures and associated audio information - Part 1: Systems
- 风机及箱变安装方案
- XX区学校艺术教育工作自评总结
- 河南特岗医生考试真题及答案
- 食品生产高级考试题型及答案
- 2025年江北联考数学真题及答案
- XX市生态环境局XX分局2025年下半年巩固拓展脱贫攻坚成果同乡村振兴有效衔接工作情况报告
- 2025年宜宾驾校考试题库及答案
- 国贸信用证考试题及答案
- 性格功能测试题目及答案
- 2025年抗菌药培训考试题及答案
- GB/T 21782.4-2025粉末涂料第4部分:爆炸下限的计算
- 冀教版(2024)数学一年级上册第三单元《认识11~20》综合计算练习卷(含解析)
- 横河CS3000工程师培训资料
- 2023城镇排水管道碎(裂)管法修复工程技术规程
- 工程材料询价(核价)单
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 颈动脉狭窄的护理
- 国际机场机坪车辆行驶管理手册
- 测井解释与生产测井-吴锡令生产测井原理与应用
- 去极端化思想课件
评论
0/150
提交评论