eda课程设计6位频率计.doc_第1页
eda课程设计6位频率计.doc_第2页
eda课程设计6位频率计.doc_第3页
eda课程设计6位频率计.doc_第4页
eda课程设计6位频率计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

E D A 频 率 计 课程设计报告专 业: 班 级: 姓 名: 指导教师: 年 月 日目 录一、课程设计目的2二、课程设计题目描述和要求2三、课程设计报告内容2四、总结8附 录9参考书目10引 言在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。一、课程设计目的 熟悉各种软件如Quartus II 6.0的使用;通过EDA的试验设计,加深我们对FPGA的了解;熟悉FPGA的工作原理和试验环境,知道FPGA的开发流程;通过设计小型试验项目学会仿真和硬件测试的基本方法。二、课程设计题目描述和要求2.1、课程设计题目描述1) 设计一个能测量方波信号的频率的频率计。2) 测量的频率范围是1999999Hz。3) 结果用十进制数显示。4) 按要求写好设计报告。2.1、课程设计要求1) 脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。2) 被测频率信号取自实验箱晶体振荡器输出信号,加到主控门的输入端。3) 再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms,10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变。4) 时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期),输入信号才通过主控门。5) f=N/T,改变时基信号的周期T,即可得到不同的测频范围。6) 当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路输出一个置零信号,将计数器和所有触发器复位,为新的一次采样做好准备。三、课程设计报告内容1、频率计设计原理在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量。本设计中使用的就是直接测频法,即用计数器在计算1S内输入信号周期的个数,其测频范围为1Hz999999Hz。 2、频率计的设计思路频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求测频控制信号发生器TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的使能端ENA进行同步控制。当TSTEN为高电平时,允许计数;为低电平时停止计数,并保持其计数结果。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1 秒种的计数值锁存进24位锁存器REG24B中,并由外部的7段译码器译出,并稳定显示。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一个清零信号CLR-CNT对计数器进行清零,为下1 秒的计数操作做准备。测频控制信号发生器的工作时序如所示。寄存器REG24B设计要求是:若已有24 位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG24B的内部,并由REG24B的输出端输出,然后由7段译码器译成能在数码管上显示输出的相应数值。计数器CNT10设计要求:有一时钟使能输入端,用于锁定计数值。当高电平时计数允许,低电平时禁止计数。本设计可通过实验箱下载验证,将第一全局时钟CLK接实验箱1Hz频率信号,第二全局时钟CLK2作为待测频率输入,输出接6个数码管显示所测的频率值。系统框图如下:3、频率计电路的顶层结构及仿真图本设计有三个模块组成,测频控制信号发生器TESTCTL六个有时钟使能功能的十进制计数器CNT10和一个24 锁存器REG24B,如图所示:3.1、测频控制信号发生器TESTCTLTESTCTL的计数器使能信号TESTCTL 能产生一个1秒脉宽的周期信号,并对频率计的每一个计数器CNT10 的ENA使能端进行控制。当TESTCTL为高电平时允许计数,当为低电平时禁止计数,并保持其所计的脉冲个数。波形仿真如下:3.2、24 位锁存器REG24B停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1功尽弃秒钟的计数值锁存进24位锁存器REG24B中,由七段译码译出并稳定显示。设置锁存器的好处是,显示的数据稳定。锁存信号之后,必须有一个清零信号CLR-CNT对计数器进行清零,为下一秒钟的计数操作做准备。波形仿真如下:3.3、十进制计数器CNT10此计数器有一使能输入端ENA,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。波形仿真如下:4、调试芯片:ACEX1K EP1K30TC144-3 引脚分配(模式0):Node namepinClk input54Clr input19Fryin input126Output030Output131Output232Output333Output436Output537Output638Output739Output841Output942Output1065Output1167Output1268Output1369Output1470Output1572Output1673Output1778Output1879Output1980Output2081Output2182Output2283Output2386 调试过程中主要遇到了以下几个问题:首先是各个子模块的调试。十进制计数器在波形仿真是不知道如何将输出量CQ设计成十进制模式显示,这也说明了自己对软件操作不是很熟悉。其次是实验箱上的时钟引脚不熟悉,分配引脚时不知道如何分配。另外还有程序的调试,这是在设计过程中最主要的工作。程序写完后每次的运行都会有各种问题错误出现,有些是粗心,像是少个分号;有些是对VHDL语言的不熟悉,比如变量的赋值符号总是写成“=”等。调试过程是一个关键步骤,只有做好了这一步才能为最终整个设计的成功打下坚实基础。四、总结本次的课程设计我个人觉得是很有意义的。老师给的每一个题目都很有代表性,而且实用性很强。这次课程设计虽然只有短短的一周时间,但是学到的东西却很多,它把我这期所学的知识系统的规划起来并用于实践的操作,这也是对理论知识深刻认识的最重要一步,让我受益匪浅。现在就这次的课程设计做如下几点总结:一,拿到一个题目,知道如何去分析它,建立设计思想,可以通过系统划分,设计输入、逻辑设计综合,再编译仿真,最后下载进行硬件验证这几个步骤进行。二,VHDL语言的设计。作为一种标准的硬件描述语言,VHDL的优势只要体现在:功能与灵活性,不依赖于器件的设计,可移植性等等。这一点让我深有感触,它比单片机要方便多了,而且更加稳定快捷。不仅硬件如此,编程也比单片机简单,虽然单片机有汇编和C两种编程语言,但是通过这次的课程设计,我觉得VHDL更加简捷易懂。三,主要说下在调试过程中出现的问题。在调试中出现的问题大多可能是程序没能完成设计要求,但是这次的设计让我深切感受到问题可能出在你觉察不到的步骤上。我这次就是出现了这个问题,写完程序,编译仿真后发现没有问题,但是当下载到硬件上进行验证时却总是出现错误。我做的是频率计,波形仿真时理应数码管上显示的为十进制数,但是偏偏出现字母这样的符号。程序看了多遍也没发现问题,最后发现原来是引脚分配全弄反了!检查时完全忽略了这个地方,最终导致几天在实验室的白忙活。后来还重新写了程序代码,但就仅仅因为这样的低级错误,实在是另人哭笑不得。好在最后自己查出来了问题所在。这次课程设计让我也悟出了一个道理:细节决定成功。也谢谢老师这几天的细心指导,让我顺利完成了课程设计。附录:十进制程序:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 is port(clr,ena,clk: in std_logic; cq: out integer range 0 to 9; carry_out: out std_logic);end count10;architecture a of count10 is signal cqi:integer range 0 to 9;begin process(clk,clr,ena) begin if clr=1 then cqi=0; elsif (clkevent and clk=1) then if ena=1 then if cqi=9 then cqi=0; carry_out=1; else cqi=cqi+1; carry_out=0; end if; end if; end if; cq=cqi; end process;end a;测频控制信号发生器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testctl is port(clk:in std_logic; tsten:out std_logic; clr_cnt:out std_logic; load:out std_logic);end testctl;architecture a of testctl is signal div2clk:std_logic; beginprocess(clk) beginif(clkevent and clk=1) then div2clk=not div2clk;end if;end process; process(clk,div2clk)beginif(clk=0and div2clk=0) thenclr_cnt=1;elseclr_cnt=0;end if; end process;load=not div2clk;tsten=div2clk;end a;锁存器模块程序:library ieee;use ieee.std_logic_1164.all;entity reg24 is port(load,rst:in std_logic; din:in std_logic_vector(23 downto 0); dout:out std_logic_vector(23 downto 0);end reg24;architecture a of reg24 is signal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论