欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    EDA简易数字频率计-课设报告.docx

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

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

    EDA简易数字频率计-课设报告.docx

    EDA技术课程设计报告题目:简易数字频率计专业:本组成员:简述随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,因此测频计常受到人们的青睐。目前很多高精度的数字频率计都采纳单片机加上外部的高速计数器来实现,然而单片机的时钟频率不高导致测频速度比较慢,并且在这种设计中,IllTPCB版的集成度不高,导致PcB板走线长,因此难以提高计数器的工作频率。为了克服这种缺点,大大提高测量精度和速度,我们可以设计一种可编程逻辑器件来实现数字频率计。EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及试验开发系统为设计工具,通过有关的开发软件,H动完成.用软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专用集成芯片的一门新技术。其设计的敏捷性使得EDA技术得以快速发展和广泛应用。以QUARTUSn软件为设计平台,采纳VHD1.语言实现数字频率计的整体设计。EDA技术已经广泛应用于模拟与数字电路系统等很多领域。电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展亲密相关,它汲取了计算机科学领域的大多数最新探讨成果,以高性能的计算机作为工作平台,促进了工程发展。EDA的一个重要特征就是运用硬件描述语言(HD1.)来完成的设计文件,VHD1.语言是经IEEE确认的标准硬件语言,在电子设计领域受到了广泛的接受。1 .设计概述1.1 设计原理在电子技术中,频率是最基本的参数之一,并且与很多电参量的测量方案、测星结果都有非常亲密的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、运用便利、测量快速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是干脆测频法,即在肯定闸门时间内测量被测信号的脉冲个数:二是间接测频法即测周期法,如周期测频法.干脆测频法适用于高频信号的频率测量,通常采纳计数器、数据锁存器及限制电路实现,并通过变更计数器阀门的时间长短在达到不同的测量精度:间接测频法适用于低频信号的频率测量。本设计中运用的就是干脆测频法,即用计数器在计算Is内输入信号周期的个数,其测频位围为IHz9999Hz01.2 原理框图图1数字频率计原理框图1.3 系统原理图5:11.jIjl1.J5。1.J1.l1.lKJIC系统原理图仿真分析说明:Clk为IHZ,待测信号SiS为IOHZ1.5引脚图F1.EX10KEPF10K101.C84-3>OOVOOTopView2 .设计思路须率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求测频限制信号发牛器tcstpl的计数使能信号tstcn能产生一个1杪脉宽的周期信号,并对频率计的每一计数涔cntl的使能端cn进行同步限制。当tstcn为高电平"I"时,允许计数:为低电平"0"时停止计数,并保持其计数结果。在停止计数期间,首先须要一个锁存信号k>ad的上跳沿将计数器在前I秒种的计数值锁存进16位锁存器regl6b中。锁存信号之后,必需有一个清零信号CIJCrH对计数器进行清零,为下1秒的计数操作做打算。.然后由外部数码管限制器Iedcom限制的7段洋码器ymq译出,并秘定显示。3 .模块划分3.1 测频限制侑号发生器testpl模块1输入端CIk收到IHZ信号后,其输出端testcn限制各个CIUlO的使能,clr_cnt限制各个CntlO的清零,load限制锁存器内数据的输出。仿真图如下:3.2 十进制计数器CntIO模块:有一时钟使能输入端en,用下锁定计数值。当而电平"1"时计数允许计数,低电平“0”时禁止计数。多位十进制计数器时,最低位的计数器的CIk端输入被测信号,各计数器的进位输出端ClO将信号输到下位十进制计数器Cntlo的输入端elk,故高位十进制计数器CmlO的进位输出端Clo不处理。仿真图如下:3.3 16位顿存器reg16b模块:将已有16位bed码存在于此模块的输入口din15.0J,在信号load的上升沿后即被锁存到寄存器reg16b的内部,并由rcgl6b的输出端doutl5.0输出,设置锁存:器的好处是,数码管上显示的数据稳定,不会由于周期性的清零信号而不断闪耀。3.4 数码管限制着Iedcom模块:两个输入端一个为datainl5.0,另一个为数码管显示选择的扫描频率输入湍elk,输出端为数码管选择信号COml30和对应显示的数码管的BCD码信号端dataouH3J),数码管显示选择随扫描须率CIk循环变更,实现稳定显示。仿真.图如下:3.5 译码器ynu模块;输入端d_in3.O将接收BCD码信号.译码后输出端dut7.0输出8为7段数码管信号,其中输出的第8位均为高电平“1"可以使四个数码管的小数点不显示。经译码器的处理输出后数码管显示相应的数值。djn<_out-d_out6-d-out5-d_out4-d-out3-d_out2-d-outl1.d_out04 .VHD1.顶层文件:1ibraryieee;useieee.std_logic_l164.al1;entityIxisport(elk:instd-logic;led:outsldlogicveclor(7downto0);ledc:outsttl_logic_vector(2downto0):endlx;architectureartofIxis-十进制计数器componentcntl一待调用的有时钟使能的十进制计数器潴口定义port(elk,clr,en:instd_logic;q:outst<llogicvector(3downto0);cl:outstd_logic):endcomponent:一16位锁存器componentreg16b一待调用的32位锁存器端口定义port(load:instd_logic:din:instd_logic_vector(15downto0):dout:outstd_1ogic_vector(15downto0);endcomponent;一测频限制器componenttestpl一待调用的测频限制信号发生器端口定义port(elk:instdlogic;tsten:outstdOgic;clr_cnt:outstd_logic:load:ouIstdlogic);endcomponent:一数码管选择器componentIedcom一待谢用的数码管选择蹲端口定义POrI(CIk:inSldlogic;datain:instdlogic_vector(15downtoO):dataout:outstdOgie_VeCtor(3downtoO);sei:outstdogicvector(2downto0);endcomponent;一译码器componentymq一待调用的译码器端口定义port(din:instdlogicvector(3downtoO);dout:outstdIOgiC_VeClor(7downto0);endcomponent:signalclkl,clk2,clk3:stdOgic;-Clkl为IHZ信号,clk2为被测信号,clk3为数码管扫描信号signallsten,clr,lwd:stdlogic;signalcl,c2,c3,c4:stdOgic;signalqout,rout:stdIogiJVeCtor(15downtoO):signaldatao;std_logic_vector(3downtoO);beginu:testplportmap(clkl,tsten,clr,load):ul:cnt!Oportmap(clk2,clr,tsten,qout(3downtoO),cl);u2:cnt!0portnap(cl,dr,tsten,qoul(7<lownlo4),c2);u3:cntlOportnap(c2,clr,tsten,qout(lldownto8),c3):u4zcntlportmap(c3,clr,tstenlqout(15downto12),c4);u5:reg16bportmap(load,qout(15downtoO).rout);u6:IedcomPorl11cip(clk3,rout,datao,ledc):u8:ymqportmap(datao,led):endart:5 .心得体会这次课程设计中,我不仅复习巩固了课堂所学的理论学问,提高了对所学学问的综合应用实力,并从根本上了解了VHD1.语言的一些基本用法,应用了原来不会或者不娴熟的句型,如if句,case句等,也学会了一些基本功能的实现方法,如分频,状态限制等等,从另外一个角度重新谛视了上学期完全从硬件角度动身的电路设计,明白了软硬件之间的交互。通过这个课题,对系统框图、逻辑流程图、状态转移图的设计有了肯定的了解。也懂得了系统的前期设计对于后续的编程和调试的重要性。本课题采纳了H下而上的设计方法,依据系统对硬件的要求,画出系统限制流程图;然后依据限制流程图,分化模块,利用模块实现功能:最终进行仿真和调试。每个胜利的背后都要面对多数次的失败,这次课设也不例外。虽然遇到不少问题与困难,但通过老师以及同学的帮助,都一一得到顺当地解决。我想这必定会为将来的实践积累珍贵的阅历和教训。总之,这次课设我们都受益匪浅。雅个过程次围深厚,本人也看法非常仔细,主动向老师和同学求教并在此过程中收获良多,能够进一步了解和运用一门与硬件干脆打交道的基本语言对我们将来的学习和工作都会非常有益。6 .五个模块的程序源代码6.1 流频限制信号发生器libraryieee:useieee.std_logic1164.all:useieee.stdlogicunsigned.all;entitytestplisport(elk:instd_logic;IHZ信号tsten:OUtstdIOgic;一计数器使能信号cIrent:outstdlogic:-计数器清零信号load:outSt(1.logic);一锁存器输出限制信号endtestpl:architectureartoftestplissignaldiv2clk:st(llogic;beginprocess(elk)beginifelk'eventandclk='thentli2clk<=notdiv2dk;一(1"2(:11为21也endif;endprocess;process(elk,div2clk)beginif(clk='O'anddiv2clk='0,)thenclr_cnt<=,:一当div2clk与elk同时为零时计数器清零elsedrcnl<='O':一当div2clk处于的高电平常计数器计数endif;endprocess:load<=notdiv2clk;一锁存器输出与计数器使能信号反相tsten<=div2clk;endart:有时停使能的十进制计数器libraryieee;useieee.st<llogic1164.all;useieee.std_logicunsigned,all;entitycntlisport(elk,cIr,en:instdlogic;-CIk:计数器时钟,clr:清零信号,en:计数使能信号q:outstdIogiC_vector(3downtoO);q:4位计数结果输出cl:outstdOgiC);一计数进位endent10:architectureartofcnllissignalcqi:stdlogic-vector(3downto0);beginprocess(elk,clr)beginifclr='thencqi<="0000”;一当输入的CIjCnt为低电平0时清零elsifclk,eventandclk三,thenifen='1'then-当输入的IeSen为高电平I时允许计数if(cqi<9)thencqi<=cqi+l;elsecqi<="0000”;一等于9则计数落清毒endif;一当输入的IeSen为低电平。时禁止计数,锁定计数值endif:endif:endPrOCeSs;一产生进位process(cqi)beginifcqi-1001*thencl<,1,;一当加的9时产生进位输出elsecl<='0'endif:endprocess:q<=cqi;endart;16位傲存外libraryieee;useieee.std_logic1164.all;useieee.std_logic_unsigned.al1;entityreg16bisport(load:instdlogic;-输出锁存限制信号din:instdIOgijVeCtOr(15downto0):dout:outstd_logic_vector(15downto0);endregl6b:architectureartofreg16bisbeginprocess(lofld,din)beginifload'eventandload=>then-load为高电平常tcten为低电平,计数器禁止doul<=<lin;锁存输入的数据endif;endprocess:endart;6.4数码管限制器libraryieee;useieee.stdlogic1164.all;useieee.std_logic_unsigned.al1;entityIedcomisport(elk:instdlogic;一数码管扫描频率datain:inSldlogicveclor(15downtoO)锁存器输入的16位信号dataout:outstdOgiCvector(3downtoO);一输出至译科器的4位信号sei:bufferstdOgiJVeCtQr(2downto0);一输出数码管选择信号endledctx;architectureartofIedcomisbegin-sei同扫描频率elk循环变更process(elk)beginifrising_edge(elk)thenifsel>=7thensei<=*000*;elseSek=Sel+1;endif:endif:endprocess;一数码管选择process(sei,datain)begincaseseiiswhen"000"=>dataout<=datain(3downtoO);when"001"=>dataout<=datain(7downto4):when,010"=>dataout<=datain(l1downto8);when"011"=>dalaout<=datain(15downto12):whenothers=>NU1.1.;endcase:endprocess;endart;七段数码管的译码器libraryIEEE;useIEEE,stdlogic1164.al1:entityymqisport(din:instdlogicvector(3downto0);数码管限制器输入四位信号d_out:outstd_ogic_vector(6downto0);一输出8位信号endymq;第8位d_out7为逗号architectureartofymqisbeginprocess(d_in)begincased_inis-第8位为1高电平逗号不显示when"0000”=>doul<=,1111110,;0when*0001*=>(1.OUt<="0110000”:1when*0010*=>(1.OUt<="1101101”;2when"0011"=>d,out<=,111100;3when"0100"=>dout<=,0110010,;-4when*0101*=>d-out<=*101101;5when"0110"=>(1.oUt<="1011111”:6when"0111"=>(1.OUt<="1110000”;7when"1000"=>doul<=*llllll;-8when*1001*=>d_out<=*11110ir:9whenothers=>Nl-1.1.;endcase;endprocess:endart;7.参考文献1、王小军主编.VHD1.简明教程.清华高校出版社,19972、潘松、王国栋主编.CHD1.应用教程3电子科技高校出版社,20003、甘历主编.VHD1.应用开发实践科学出版社,20034、刘爱荣主编,住DA技术与CP1.D/FPGA开发应用荷明教程.清华高校出版社,2007

    注意事项

    本文(EDA简易数字频率计-课设报告.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开