基于FPGA的对数字频率计的研究设计

上传人:B****n 文档编号:53472087 上传时间:2022-02-10 格式:DOCX 页数:28 大小:599.92KB
返回 下载 相关 举报
基于FPGA的对数字频率计的研究设计_第1页
第1页 / 共28页
基于FPGA的对数字频率计的研究设计_第2页
第2页 / 共28页
基于FPGA的对数字频率计的研究设计_第3页
第3页 / 共28页
点击查看更多>>
资源描述
计算机信息工程学院本科毕业论文题目:基于FPGA的对数字频率计的设计学院:计算机信息与工程学院专业:电子信息科学与技术班级:2006级电子班姓名:洪晓宁学号:200612030027指导老师:杨国权基于 FPGA 的数字频率计的设计洪晓宁摘要:现场可编程门阵列的出现给现代电子设计带来了极大的方便和灵活性,使复杂的数字电子系统设计变为芯片级设计,同时还可以很方便地对设计进行在线修改。本文以设计个四位显示的十进制数字频率计为例,在片FPGA 芯片上实现多位数字频率计的设计,来完成对FPGA 和 Quartus2 的学习。在设计中,所有频段均采用直接测频法对信号频率进行测量,克服了逼近式换挡速度慢的缺点。电子信息科学与技术2006 级洪晓宁关键词:数字频率计;Verilog HDL ;现玚可编程门阵列(FPGA );直接测量法Construction of the Digital Cymometer Based on FPGAHONG XiaoningAbstract:The appearance of FPGA(Field Programmable Gate Array)leads to the convenience and flexibility of the modern electronic construction,which changes the complicated system construction into the on chip construction.On the other hand,itCan also make some online modificationexpediently. W ith a casewhich describes an quadbit shownonthedecinaldigitalfrequency, the author introduces the construction method and the realization steps on a singleFPGA chip. During the construction process, thesignal measurement,which overcomes the shortcoming offrequency of all approxmate the Frequency Channel is measured by the way of direct shift speed.Keyw ords: design of the digital cymom eter; Verilog HDL;FPGA(Field Programmable GateA rray);directfrequency m easurem ent目录前言41、系统总体设计52:各个模块的实现. 7计算机信息工程学院2.1 : 1000 进制计数器72.2 : 50KH Z 分频器82.3 : 14 位锁存器(DFF14 BITE )82.4 : 14 位计数器(CNT14 BITE )92.5 :数码管动态显示(DISPLAY )93:各个模块的的仿真113.1 : 1000 进制计数器113.2 : 50KH Z 分频器113.3 : 14 位锁存器(DFF14 BITE )123.4 : 14 位计数器(CNT14 BITE )133.5 :系统顶层仿真14总结15致谢15参考文献16符录17前言随着电子技术和计算机应用技术的深入发展以及EDA 设计技术的不断进步与完善,不仅给电子系统的设计和应用带来了新的设计思路和发展机遇,也对传统的电子设计手段提出了严峻的挑战。传统的电子系统设计,是以各种不同的集成电路芯片为基础,按照功能要求在印制电路板上将不同的芯片拼接、组合,构成实现某种功能的电子系统。这样的设计方法不仅繁琐,而且设计过程中的错误和不足之处不能及早的发现;进入调试阶段后,一旦发妯错误或缺陷,也不能现场更正。这将使研发的时间变长,研发的成本加大。能够克服上述缺点的是片上可编程系统(简称SOPC)。微电子技术、计算机应用技术的飞速发展,不仅使得电子系统的小型化、微型化进程加快,而且给电子系统设计带来了前所未有的变革。大规模FPGA 芯片问世,为电子系统设计提供了硬件基础础,几乎大多数电子系统都可以在一块芯片上实现。ALTERA公司的 Quartus2 软件就是EDA 设计的最优秀的软件之一, 使用它不仅可以灵活地设计电子系统,而且还可以对设计方案进行模拟仿真,及早发现错误和缺陷。使用FPGA 的好处不仅表现在设计的初级阶段,即使在电子系统设计完成之后,甚至投入实际使用的过程中,还可以根据实际需要添加功能。本次写作是以设计频率计为实例来学习Verilog HDL语言和 Qartus2 软件。电子信息科学与技术2006 级洪晓宁1、系统总体设计在 Quartus2 软件中,可使用多种编程语言。本文以Verilog HDL为编程语言。采用Verilog HDL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法进行设计。在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功能和具体实现形式则由下一层模块来描述。根据本数字频率计实现原理,运用自顶向下的设计思想。系统总框图如下:计算机信息工程学院显示50MHZ50K 分频器1KHz信号动态数码管显示1KHz1000 进制计数器显示数据测试1Hz信号数据14 位计数器14 位锁存器1-150MHz 的时钟信号经过分频,产生 1KHz 1000 进模块的信号生成 1Hz 的信号, 作为的信号,分别送到1000 进制计数模块和动态显示模块。经过14 位计数器的控制信号。进入动态显示的1KHz 信号作为动态输出的时序信号。测试信号通过14 位的计数器后, 由控制信号将其转换为输出显示的数据,再经过14 位的锁存器缓冲再送到动态显示模块中。通过动态显示模块最终生成显示信号。在这次论文中,将整个所要设计的频率计做为顶层,下面有五个模块:CNT1000 (1000进制计数器)、CNT50000 ( 50KHz分频器)、 DFF14bite(14位锁存器)、 CNT14bite(14位计数器),动态数码管显示( DISPLAY)。每个模块都是独立的,都能单独使用。每个模块都是最小的子模块,就直接用VerilogHDL语言来描述。设计的系统顶层电路如图所示:电子信息科学与技术2006 级洪晓宁1-22:各个模块的实现各个模的实现是独立的,都运用Verilog HDL 作为编程语言。2.1: 1000 进制计数器作用: 在此次设计中, 这一模块用来将输入信号的频率降低为原来的1/1000,用作分频器。 由总框图可知, 当 50MHz 的时钟信号经过分频后, 得到了 1KHz 的时钟信号, 再经过此模块, 就得到一个 1Hz 的时钟信号。2-1生成方式: Verilog HDL 设计中定义三个端口(一个输入端,一个输出端,数变量。当输入端的时钟发生上升沿跳变时,计数变量自加 1,当计数达到q_c 没有用到),一个计1000( 16 进制为 3e7)的时计算机信息工程学院候,输出端就产生一脉冲信号,作为下一模块的输入变量。图2-1 为代码的生成图。2.2: 50KHz 分频器作用:由总框图可以知,这一模块的作用是将输入的50MHz 的时钟信号转换为1KHz的时钟信号输出。 1KHz 的信号用于动态显示模块的位选和段选。作为计数信号的时钟信号。2-2生成方式: 用 Verilog HDL编程语言写其代码,则设计中定义两个端口(一个输入端, 一个输出端) ,一个计数变量。当输入端的时钟发生上升沿跳变时,计数变量自加 1,当计数达到 50000( 16 进制为C34F)的时候,输出端就产生一脉冲信号,作为下一模块的输入变量。2.3: 14 位锁存器( DFF14bite )作用:在总框图中,14 位锁存器用作显示数据的输出缓冲。当计数模块送出所计数得到的数值时,就会锁存在锁存器中。当时钟信号到来时,就会将锁存的数据送到动态显示模块中显示出来。所以14位的锁存器是作为一个数据输出的缓冲器。生成方式:使用Quartus2 软件中的锁存模块,如下图所示:电子信息科学与技术2006 级洪晓宁2-3当时钟信号到来时,输入端就将数据D13.0 锁存并输出为Q13.0 ,直到下一个时钟信号的到来,再重复上一过程。以Verilog HDL来编写代码,应有一个14 位的输入端,一个时钟信号输入端和一个14位的输出端;当时钟信号发生变化时,输出端就将输入端此时输入的值。2.4: 14 位计数器( CNT14bite )作用:这一模块用来接收被测信号,并转换成被测信号的频率。如图(6)所示,测试信号由模块的 CLK 接收;当ENABL信号为 0 时,计数完成,并将所得的数据保持,并送到下一个模块;CLR信号为 0,将所有计数清零,进入下一次计数。生成方式:使用Quartus2 软件来设计,其模块图如下:2-4用 Verilog HDL 编写代码时,应有三个输入端,一个 13 位的输出端和一个计数的变量。当输入端发生上升沿跳变时,计数变量自加 1,并将其转换为相应的二进制数(将十进制的每一位用四位二进制数表示);当 ENABL 的输入信号为 0 时,就将计数变量的值输出,并将原有的计数清零。2.5:数码管动态显示( DISPLAY )CLK计算机信息工程学院作用与生成方式:将缓冲器里的值转换为动态输出的数据值。模块电路如图所示:2-5使用Verilog HDL语言时,CLK信号则作为时钟信号,内设一变量用来记数CLK的脉冲数,作为时间延迟;24 位的输入端口,用作输入要显示的数据,此次论文用了输入端口中的低13 位; 7 段数码管的7 位输出端口,用作输出显示的数据;6 位的位选输出端,输出的数据为位选信息。在程序的内部设有十个变量,其中六个变量(LED1Q,LED2Q,LED3Q,LED4Q,LED5Q,LED6Q)每个变量四位,用来接收24 位的输入变量;四位变量led_xx用作段选;七位变seg_out 用作数据输出即7 段数码管的7 位输出端口的输出数据;六位变量led_out用作位选信号是,初始值为1(二进制的000001 ),每左移一次,选电子信息科学与技术2006级洪晓宁中高一位的数据显示,当发生溢出时,对led_out再次赋值1(二进制的000001); 8位变量delay用作延时信号。3:各个模块的的仿真各个模块是独立的,所以每个模块可以单独设计并验证。3.1: 1000 进制计数器仿真结果如图所示:3-1仿真时钟的周期为40ns,得到的输出端CQ1000 的周期为信号的频率频率降低为原来的1/1000,即周期为原来的3.2: 50KHz 分频器仿真结果如图所示:40us。因为 1000 进制计数器的功能就是将输入 1000 倍。所以这一模块符合要求。计算机信息工程学院3-2仿真时钟周期为40ns,输出端OUT_1KHz 输出为 2ms。因为这一模块的功能是将输入信号的频率降低为原来的1/50000 ,即周期为原来的50000 倍。所以这一模块符合要求。3.3: 14 位锁存器( DFF14bite )仿真结果如图所示:电子信息科学与技术2006 级洪晓宁3-3由输入和输出对比可知:输出的数据都是以输入的数据在时钟跳变的时候的值。这一模块的功能就是在发生时钟跳变时将输入端的数据送到输出端,当时钟没发生变化时保持原来的值不变,用做锁存器。 所以这一模块符合要求。3.4: 14 位计数器(CNT14bite )如图3-5所示,当时钟信号每得到一个高电平时,Q13.0 就会自加1。但是,在得到的数据里,有的时候会出现毛刺;所以在输出的时候就加上了一个14 位的缓冲级(14 位的锁存器) 。因为在设计时就已经用Q13.0 的四位二进制数表示一位十进制数,所以仿真的结果表明这一模块符合要求。计算机信息工程学院3-43.5:系统顶层仿真仿真结果如图所示:3-5L1-L6 为位选信号, 由波形可知, L1-L6 是逐一显示的。 由于测试的时间不是很长,所以所测的值为零。开始输出的信号为(0000000),即显示为零。电子信息科学与技术2006 级洪晓宁总结经过这段时间的学习和写作,论文基本完成。从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。几个月的忙碌, 却也没做成什么; 虽然能将电路用Verilog HDL写出,编译成功并在Quartus2 上仿真完成;但用伟福 EDA6000 SOPC/DSP/EDA 通用实验开发系统试过,由于对其的使用不是很了解,最终无法验证所画电路是否正确。致谢计算机信息工程学院四年的读书生活在这个夏天即将划上一个句号,对于我的人生这只是一个逗号,我将面对人生的另一次征程。 四年的学习生活在老师和同学的陪伴,父母亲人和朋友的支持下走了下来,在论文即将付梓之际,思绪万千,心情久久不能平静。感谢培养教育我的贵州民族学院。诚挚的感谢我的论文指导老师杨老师。他在忙碌的教学工作中挤出时间来审查、 修改我的论文。还有教过我的所有老师们,你们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样; 他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。 感谢四年中陪伴在我身边的同学、朋友,感谢他们为我提出的有益的建议和意见,有了他们的支持、鼓励和帮助,我才能充实的度过了四年的学习生活,同窗之间的友谊永远长存!最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学, 以及在设计中被我引用或参考的论著的作者。参考文献:1 夏宇闻 .Verilog HDL 数字系统设计 . 北京航空航天大学出版社电子信息科学与技术2006 级洪晓宁2 王诚吴继华范丽珍薛宁 薛小刚 .Altera FPGA/CPLD设计 .人民邮电出版社3 王建校 危建国 .SOPC 设计基础与实践 .西安电子科技大学出版社4 杨守良 .基于 FPGA 的数字频率计的设计和实现5 张兆莉 蔡永泉 王珏 .基于 FPGA 的数字频率计的设计和实现6 赵雅兴 . FPGA 原理及应用 .天津大学出版社7 ( 美 )Steve Kilts孟宪元 译 . 高级 FPFGA 设计结构、实现和优化. 机械工业出版社8 孟宪元 钱伟康 . FPGA 嵌入式系统设计 . 电子工业出版社9 宋万杰等 . CPLD 技术及应用 . 西安电子科技大学出版社10 徐志军等 . 大规模可编程逻辑器件及其应用 . 电子科技大学出版社符录Verilog HDL 语言,编程代码如下:计算机信息工程学院CNT1000 ( 1000 进制计数器)module CNT1000_v(CLK,q_c,CQ1000);input CLK;/ 时钟输入output q_c;output CQ1000;/ 输出reg CQ1000;reg q_c;reg15:0j;always (posedge CLK)beginif(j=16h3e7)/一千的 16 进制beginj=16h0;CQ1000=1b0;q_c=1b0;endelsebeginj=j+16h1;CQ1000=1b1;q_c=1b1;if(j%125=0)q_c=1b0; /CQ1000 输出的 8 倍频率,此次设计中没有用到 endendendmoduleCNT50000 ( 50KHz 分频器)module CNT50000(CLK,OUT_1kHz);input CLK;电子信息科学与技术2006级洪晓宁output reg OUT_1kHz;reg 16:0j;always (posedge CLK)beginif(j=17hC34F)/50KHz分频的16 进制数为C34Fbeginj=17h0;OUT_1kHz=1b0;endelsebeginj=j+1b1;OUT_1kHz=1b1;endendendmoduleDFF14bite(14 位锁存器 )module DFF14BITE(D,Q,CLK);input13:0D;inputCLK;output reg13:0Q;always (posedge CLK)beginQ0=D0;Q1=D1;Q2=D2;计算机信息工程学院Q3=D3;Q4=D4;Q5=D5;Q6=D6;Q7=D7;Q8=D8;Q9=D9;Q10=D10;Q11=D11;Q12=D12;Q13=D13;endendmoduleCNT14bite(14 位计数器 )module CNT14BITE(ENABL,CLR,CLK,Q);input ENABL,CLR,CLK;output reg13:0Q;reg15:0cnt;reg1:0Q_H2;reg3:0Q_H1;reg3:0Q_L2;reg3:0Q_L1;always (posedge CLK)if(ENABL=1)&(CLR=1)begin电子信息科学与技术2006 级洪晓宁cnt=cnt+1b1;if(cnt=3999)begincnt=16h0;endendelsebegincnt=16h0;endalways (cnt)beginQ_H2=cnt/8d1000;/ 对计数的值的处理Q_H1=(cnt-Q_H2*1000)/8d100;Q_L2=(cnt-Q_H2*1000-Q_H1*100)/8d10;Q_L1=cnt%8d10;Q0=Q_L10;Q1=Q_L11;Q2=Q_L12;Q3=Q_L13;Q4=Q_L20;Q5=Q_L21;Q6=Q_L22;Q7=Q_L23;Q8=Q_H10;Q9=Q_H11;Q10=Q_H12;Q11=Q_H13;Q12=Q_H20;Q13=Q_H21;计算机信息工程学院endendmoduleDISPLY( 数码管动态显示)module DIS(CLK,LED1Q_0,LED1Q_1,LED1Q_2,LED1Q_3,LED2Q_0,LED2Q_1,LED2Q_2,LED2Q_3,LED3Q_0,LED3Q_1,LED3Q_2,LED3Q_3,LED4Q_0,LED4Q_1,LED4Q_2,LED4Q_3,LED5Q_0,LED5Q_1,LED5Q_2,LED5Q_3,LED6Q_0,LED6Q_1,LED6Q_2,LED6Q_3,LED1,LED2,LED3,LED4,LED5,LED6,SEG_A,SEG_B,SEG_C,SEG_D,SEG_E,SEG_F, SEG_G, / SEG_DP);input CLK;input wireLED1Q_0,LED1Q_1,LED1Q_2,LED1Q_3,LED2Q_0,LED2Q_1,LED2Q_2,LED2Q_3,LED3Q_0,LED3Q_1,LED3Q_2,LED3Q_3,LED4Q_0,LED4Q_1,LED4Q_2,LED4Q_3,LED5Q_0,LED5Q_1,LED5Q_2,LED5Q_3,LED6Q_0,LED6Q_1,LED6Q_2,LED6Q_3;output regLED1,LED2,LED3,LED4,LED5,LED6,SEG_A,SEG_B,SEG_C,SEG_D,SEG_E,SEG_F,SEG_G;/ SEG_DP;wire3:0LED1Q,LED2Q,LED3Q,LED4Q,LED5Q,LED6Q;电子信息科学与技术2006 级洪晓宁reg3:0led_xx;/ 段选reg6:0seg_out;/ 数据输出reg1:6led_out;/ 位选reg7:0delay;/ 延时assignLED1Q0=LED1Q_0,LED1Q1=LED1Q_1;assignLED1Q2=LED1Q_2,LED1Q3=LED1Q_3;assignLED2Q0=LED2Q_0,LED2Q1=LED2Q_1;assignLED2Q2=LED2Q_2,LED2Q3=LED2Q_3;assignLED3Q0=LED3Q_0,LED3Q1=LED3Q_1;assignLED3Q2=LED3Q_2,LED3Q3=LED3Q_3;assignLED4Q0=LED4Q_0,LED4Q1=LED4Q_1;assignLED4Q2=LED4Q_2,LED4Q3=LED4Q_3;assignLED5Q0=LED5Q_0,LED5Q1=LED5Q_1;assignLED5Q2=LED5Q_2,LED5Q3=LED5Q_3;assignLED6Q0=LED6Q_0,LED6Q1=LED6Q_1;assignLED6Q2=LED6Q_2,LED6Q3=LED6Q_3;always (led_out or LED1Q or LED2Q or LED3Q or LED4Q or LED5Q or LED6Q)beginLED1=led_out1;LED2=led_out2;LED3=led_out3;LED4=led_out4;LED5=led_out5;LED6=led_out6;计算机信息工程学院case (led_out)/led_out 作为位选信号,最初赋值为16b000001: begin led_xx=LED6Q;end6b000010: begin led_xx=LED5Q;end6b000100: begin led_xx=LED4Q;end6b001000: begin led_xx=LED3Q;end6b010000: begin led_xx=LED2Q;end6b100000: begin led_xx=LED1Q;enddefault:led_xx=4hf;endcasecase (led_xx)/对段码的描述4h0:seg_out=7b0000001;4h1:seg_out=7b1001111;4h2:seg_out=7b0010010;4h3:seg_out=7b0000110;4h4:seg_out=7b1001100;4h5:seg_out=7b0100100;4h6:seg_out=7b0100000;4h7:seg_out=7b0001111;4h8:seg_out=7b0000000;4h9:seg_out=7b0000100;default:seg_out=7b1001111;endcaseSEG_G=seg_out0;SEG_F=seg_out1;SEG_E=seg_out2;SEG_D=seg_out3;SEG_C=seg_out4;SEG_B=seg_out5;SEG_A=seg_out6;电子信息科学与技术2006 级洪晓宁endalways (posedge CLK)begindelay2)begindelay=8b0;if(led_out=0)led_out=6h1;/ 对位选取的值elsebeginled_out=led_out1;/ 位选取由低到高endendendendmodule
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 各类标准


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!