基于fpga多功能频率计的设计_毕业设计论文(编辑修改稿)内容摘要:
锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。 在每一次测量开始时,都必须重新对计数器清0。 由于本次设计的重点是等精度频率计的实现,在等精度原理介绍的时候有强调过等精度的关键是:门控信号不是一个固定的值,而是与被测信号相关的,恰好是被测信号的整数倍。 所以在设计的过程中加入了D触发器,把测频控制信号产生器testctl的输出信号clr_t,load,tsten分别通过D触发器再分别与计数器,锁存器相连。 确保本设计的频率计是等精度频率计。 测频控制信号发生器TESTCTL的工作时序图。 TESTCTL,D触发器的时序仿真图从图中可看出,计数使能信号TSTEN在1s的高电平后,利用其反相值的上升沿产生一个锁存信号LOAD,随后产生清0信号上升沿CLR_CNT。 其中,控制信号时钟clk的频率取1HZ,而信号TSTEN的脉宽恰好为1s,可以用作闸门信号。 此时,根据测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。 由图可知,在计数完成后,计数使能信号TETEN在1s的高电平后,利用其反相值的上升沿产生一个锁存信号LOAD,CLR_CNT产生一个清零信号上升沿。 锁存器,图中LOAD接控制测频产生器TESTCTL的LOAD,而DIN[31..0]接计数器CNT10的CQ[3..0],DOUT[31..0]接显示器smg的in端。 锁存器REG32B锁存器模块是本设计中必不可少的,测量模块测量完成后,在load信号的上升沿时刻将测量值锁存到寄存器中,然后输出到显示模块。 锁存器的作用是数据保持,它将会把数据保存到下次触发或复位,主要是主从触发器组成的。 用于存储数据来进行交换,使数据稳定下来保持一段时间不变化,直到新的数据将其替换。 锁存器REG32B仿真本程序是用来实现锁存器模块的功能,在锁存信号load的上升沿到来时,锁存器将测量值锁存到寄存器,然后输出到选择模块和周期模块。 ,锁存输出并不是立即进行的,而是经历了一个短暂的延时,这是由于硬件引起的。 计数器模块,其中CLR为复位接TESTCTL的通过D触发器后的CLR_CNT端,ENA接TESTCTL通过D触发器后的TSTEN端,CQ[3..0]接锁存器的DOUT[31..0]端。 CNT10封装图计数器模块是由8个带有异步清零端,进位信号输出的模为10的计数模块级连而成。 此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于控制计数器的工作。 高电平允许计数,低电平时停止计数。 计数器模块用于对输入信号的脉冲进行计数,该模块必须有计数允许、异步清零等端口,以便于控制模块对其进行控制。 有时钟使能。 CNT10时序仿真此程序模块实现的功能是带使能端的10进制计数。 程序要求只有当使能端信号为高电平时计数器才能正常工作,每个时钟的上升沿到来时计数器加1,因为这里要实现的是10进制计数,所以当计数到10时计数器清零,同时产生进位信号,这里的进位信号仅为一个脉冲信号,一旦计数从9变为0,脉冲信号立即变为低电平。 同时该计数器带有清零信号,一旦清零信号为高电平,计数器立即清零。 周期模块在本次频率计的设计中加入了周期测量功能,周期模块主要由32位除法器division和转码器B_BCD这两个功能模块组成。 32位除法器division。 周期模块封装图32位除法器division中的除数设置为109,由于本次频率计的信号源频率范围是15hz~10MHZ,根据周期T=1/f(单位:s)可知,当除数取1 的时候,周期很小,误差较大;所以在这里除法器中除数取109时,此时周期单位:ns。 除法器的部分源代码如下:always @(posedge clk)begin tempa = a。 tempb = b。 endinteger i。 always @(posedge clk)begin temp_a = {3239。 h00000000,tempa}。 temp_b = {tempb,3239。 h00000000}。 for(i = 0。 i 32。 i = i + 1) //32次循环 begin temp_a = {temp_a[62:0],139。 b0}。 //左移一位 if(temp_a[63:32] = tempb) temp_a = temp_a temp_b + 139。 b1。 else temp_a = temp_a。 end yshang = temp_a[31:0]。 yyushu = temp_a[63:32]。 end如果此时把除法器的商yshang直接输入到数码管模块数据输入端,在数码管上的显示结果并不与预期的相同。 是因为除法器的输出结果yshang[31..0]为32位二进制,但是在数码管显示中只能显示09,十进制9所对应的二进制为:1001,而4位的二进制能表示的数字范围为015。 所以如果把32位的yshang直接输入到数码管显示模块所显示的数据是错误的。 这就需要把32位二进制转化为8421BCD码,每4位对应的十进制的09。 把转码后的结果输入数码管显示模块中才能显示出相应的数字。 周期模块仿真图在周期模块的波形仿真中,除法器中的除数为常数109,被除数随机取b=8388623。 所以yshang=109/8388623=119。 B_BCD的输出端bcd显示为000100011001,即119。 由仿真结果可知,该除法器和转码器的能正常工作。 显示模块 数据选择器由于本次设计中有频率和周期的显示,则需要一个数据选择器,输入端为相应频率和周期,用按键控制输出端具体为频率或者周期。 数据选择器图中 sw3连接按键模块的sw3,用于控制输出信号;F,t分别连接锁存器的输出端和转码器的输出端;Num[31..0]连接到数码管的data1~data8。 MUX_NUM功能仿真 数码管显示驱动LED有段码和位码之分,所谓段码就是让LED显示出八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。 位码也就是LED的显示使能端,对于共阴级的LED而言,低电平使能。 数码管显示在本设计中由于在频率部分的计数器为10进制,所以不会有大于9的数,则不用通过B_BCD进行转码即可直接由数据选择器输入数码管显示模块。 要让8个LED同时工作显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。 虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。 数码管显示模块中,data1~data8接数据选择器的输出端,clk为时钟,bc1~bc8为数码管的8个段码,低电平有效,smg_disp对应为8位数码管。 用8个LED将输入数据显示出来,将通过十进制计数器的时钟信号CLK,输出为时钟信号计数译码后的显示驱动端,在八段LED译码为对应的八段二进制编码,并由数码显示器显示出来。 本章小结本章首先介绍了频率计的总体设计,然后分别介绍了各个软件组成模块,通过运用QUARTUS Ⅱ集成开发环境对各功能模块进行编辑、综合、波形仿真,对各功能模块的的仿真图,及其仿真功能做了基本讲解,对本设计的实现起到了主要作用。 第四章 总体设计验证在Quartus II中将所有功能模块建立完成后,将各个模块在顶层图形文件中连接起来。 配置管脚,通过编译后下载到核心开发板Cyclone II的EP2C8Q208C8N中验证实验结果。 开发板的整体介绍由两个独立按键控制待测信号频率的加减,使得测试结果在8位数码管上显示;再由另一个按键控制数码管显示待测信号的频率和周期。 通过开发板验证表明,按键功能正常,频率测量功能正常,周期测量有误差。 通过对实验结果的分析,在做FPGA设计时,把主要的精力都放在了写代码本身,而较少的关注时序分析的问题。 实际上,当设计比较简单,且运行频率比较低的时候,不加相关的时序约束,FPGA软件都可以综合出来可用且相对较可靠的代码来。 但当设计比较复杂,运行频率比较高的时候,不做时序分析,不加上一些必要的约束,就很难保证设计能且稳定的运行在所设定的频率上。 在开始做设计的时候并没有很在意时序方面的问题,导致后面计算周期的时候出现误差。 第五章 总结与展望本设计对等精度频率计进行了系统的设计。 首先介绍了频率测量的一般方法,着重介绍等精度测频原理并进行了误差分析,利用等精度测量原理,通过FPGA运用VHDL编程,利用FPGA(现场可编程门阵列)芯片设计了一个8位数字式等精度频率计测量频率和周期,该频率计的测量范围为15HZ10MHZ,利用QUARTUS Ⅱ集成开发环境进行编辑、综合、波形仿真,并下载到Cyclone II的EP2C8Q208C8N器件中,经实际电路测试,仿真和实验结果表明,在频率测量方面该频率计有较高的实用性和可靠性,达到预期的结果;在周期测量部分有一定误差,造成的主要原因是工作时序的问题。 和传统的频率计相比,利用FPGA设计的频率计简化了电路板设计,提高了系统设计的实用性和可靠性,实现数字系统的软件化,这也是数字逻辑设计的趋势。 在此次设计过程中由于经验不足,所以总体设计还有些瑕疵。 特别在周期部分测量过程中,由于使用VerilogHDL编写的除法器做除法运算时,只能得到商和余数,而不能得到二进制表示的小数,因此在后面的显示时把余数给忽略了。 FPGA并不善于数据处理,一般需要外加数据处理芯片,比如Atmel公司就推出专门针对FPGA的数据处理芯片NIOS。 此设计只能对15Hz10MHz的频率进行测量,而不能测量信号的占空比,脉宽的测量。 如果能加入这些功能,会使设计更趋于完整。 若加入这些功能,若只用FPGA做设计就会显得相对复杂,此时可用单片机控制,不仅控制显示,而且对FPGA进行输入控制,控制FPGA去完成哪个测量。 本次毕业设计中,我除了对相关的专业知识以及相关的实验操作进行了回顾,还有许多其他的收获,这次毕业设计不但让我对本专业的相关基础知识进行了很好的复习,还对原由书本上的知识进行了拓展和延伸,毕业设计不但锻炼了我的动手能力,也锻炼了我处理问题的能力,并且学会了许多新的知识。 致谢在这里首先要感谢指导老师邹雪妹老师。 在我毕业设计期间,邹老师在学习、生活上都给予了我极大的关怀和鼓励。 从论文选题、实验仿真到最后论文的撰写,邹老师都做了悉心的指导,并提出了许多宝贵的建议。 藉此完成之际,借此机会谨向尊敬的邹老师致以最衷心的感谢。 而且在整个论文的撰写过程中出现的问题邹老师也给予了及时的指正,最后我的论文才得以顺利完成。 其次要感谢论文中参考的参考文献的作者;感谢对于提供论文中隐含的上述提及的支持者以及研究思想和设想的支持者;感谢各大网站平台提供的强大的技术支持。 在实验设计和论文的撰写的过程中,我得到了很多同学和朋友的帮助与支持,在这里一并表示感谢。 同时,也向我的家人致以真心的谢意。 最后,衷心感谢各位评阅老师。 感谢您们在百忙之中参与我的论文评阅工作。 谢谢。 参考文献[1] 李国洪, EDA 技术与实践[M]. 北京:机械工业出版社, [2] 姜雪松,[M]. 北京:机械工业出版社, [3] 王金明. 数字系统设计与 Verilog HDL[M]. 北京: 电子工业出版社, .[4] 戈亮,[J].(6):3540[5] 唐亚平,[J].(10):5456[6] [J].(12):7476[7] 李卫兵,李通道. 基于FPGA多功能频率计的设计[J].,10:164170[8] 李红丽,马耀锋. 基于 FPGA 的多功能等精度频率计的设计[J]. 中州大学学报, 2010, 27(006): 120122[9] 曾永西. 基于 Quartus II 的两种数字频率计的设计与比较[J]. 福建电脑, 2008 (6):168169[10] 方易圆, 邓琛. 等精度频率计的 FPGA 设计[J]. 测控技术, 2012, 31(10): 14附录 文献翻译英文文献1 RF amp。 Communications TutorialFrequency ModulationIntroduction:Frequency Modulation (FM) is a form of modulation in which changes in the frequency of the carrier wave correspond directly with changes in the baseband signal. This is considered an analog form of modulation, because the baseband signal is typically an analog waveform without discrete, digital values. This demo is designed to illustrate the theory behind frequency modulation, and introduce practical aspects of its implementation. Common Applications:FM is most mon。基于fpga多功能频率计的设计_毕业设计论文(编辑修改稿)
相关推荐
74HC595中。 当完成一行的扫描输出一个脉冲信号 isdone。 由于人眼的 暂留时间,只有当画面刷新频率大于 50Hz时才不会出现闪烁现象。 更新行数据最大周期Tmax=1/50/16=。 程序中利用计数器 t作为行移位标志,当计数器计数到 19999时移位一次, T=(19999+1)/20xx0000=1ms,(系统使用 20MHz晶振 ),所以本设计刷新周期为 1ms。 以下代码为
波形,其工作过程为: (1) 确定频率控制字 K; (2) 在时钟脉冲正的控制下,该频率控制字累加至相位累加器生成实时数字相位值; (3) 将相位值寻址 ROM 转换成正弦表中相应 的数字幅码。 (4) 模块 DAC 实现将 NCO 产生的数字幅度值高速且线性地转变为模拟幅度值, (5) DDS 产生的混叠干扰由 DAC 之后的低通滤波器滤除。 FPGA、 CPLD 概述
7 页 共 36 页 4 FIR 数字滤波器的 FPGA 设计及仿真 本章采用 VHDL 语言,利用 FPGA 的查找表结构,完成了一个基于分布式算法的 256 阶 FIR 低通数字滤波器的程序设计。 在设计中采用模块化、参数化设计方法,简化了设计过程,并将设计结果进行了仿真验证。 FIR 数字滤波器分布式算法的基本原理 分布式算法( Distributed Arithmetic, DA)是
微 机 保 护 管理 单 元M o d e m调 度 中 心交 直 采 样Y C开 关 量 采 集Y X电 能 表 脉 冲 采 集Y M开 关 控 制 输 出Y K保 护部 件 图 1 2 集中式变电站自动化系统典型框图 ( 2)分散式变电站自动化系统 20 世纪 90 年代中期,随着计算机技术、网络通信技术的跨越式发展,集中式系统的可靠性,灵活性无法满足大容量、高电压等级变电站的要求
设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。 同时, VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。 VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。 VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类 型,这样便会给硬件描述带来较大的自由度。
FPGA 和 MCU的相位测量仪的设计 11 MCU 要完成的任务有 3个:一是从 FPGA 中获得 19位的二进制数据,并控制FPGA 的工作;二 是对时所获得的数据进行处理(完全由软件实现);三是将处理后的数据送给 LED 数码管显示。 由于送到 LED 数码管显示的数据有频率和相位差两种,所以应设置一个按键开关,以便实现显示内容的切换。 两个设计方案的 比较 上述所提出的以 MCU