基于EDA的简易数字频率计课程设计_第1页
基于EDA的简易数字频率计课程设计_第2页
基于EDA的简易数字频率计课程设计_第3页
基于EDA的简易数字频率计课程设计_第4页
基于EDA的简易数字频率计课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书

1引言

EDA技术是以硬件语言为主要的描述方式,以EDA软件为主要的设计软件,以大规模课编程逻辑器件为载体的数字电路的设计过程。其设计的灵活性使得EDA技术得以快速发展和广泛应用。本设计以QuartusⅡ软件为设计平台,采用VHDL语言现数字频率计的整体设计。电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域,电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,VHDL语言是经IEEE确认的标准硬件语言,在电子设计领域受到了广泛的接受。EDA技术就是以计算机为工具,设计者在EDA软件平台上,有硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作,最终形成集成电子系统或专业集成芯片的一门新技术。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,因此频率计常受到人们的青睐。众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。本设计基于我们对《EDA技术》、《数字电子技术》的基础知识的理解,用VHDL硬件描述语言进行模块电路的设计,用原理图写出频率计的顶层文件,要求我们设计一个四位十进制的简易数字频率计,对1HZ-10MHZ的方波信号进行测量,测量的方波频率值要在4位数码管上进行显示,根据不同的待测方波信号,频率计分为4个量程进行测量,四个量程分别为乘1,乘10,乘100,乘1000量程,要有一个整体复位控制。附录中是用多进程实现的简易频率计设计,实现了本设计要求的所有功能。

1

课程设计说明书

2设计原理分析

2.1基本原理

数字频率计的主要功能是测量周期信号的频率。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。频率是单位时间(1秒)内方波信号发生周期变化的次数。在给定的1秒时间内对方波信号波形计数,并将所计数值显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,然后通过计数器计算这一段时间间隔内的方波脉冲个数并显示出来。这就是数字频率计的基本原理。脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为f=N/T,其中f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。本设计用频率为50KHZ的基准时钟,经过分频产生脉宽为1秒的脉冲。再利用这个脉宽为1秒的脉冲计数,计数器所记录的结果,就是被测信号的频率。因为待测方波信号的频率在1HZ-10MHZ,所以仅用四位7段数码管无法完全正确显示,所以需要选择恰当的量程来显示待测方波信号的频率。2.2原理框图

数字频率计通过测频控制发生器将基准信号转换成所需要的控制信号en,待测信号计数器在en的控制下对待测信号进行脉冲计数,并通过锁存器在clk1的控制下按要求进行显示。数字频率计包括测频控制发生器control、待测信号计数器counter、锁存器regist、动态显示及译码器decoder四个功能模块,其原理框图如图2-1所示。

图2-1原理框图2

课程设计说明书

3单元电路模块设计及仿真波形分析

3.1测频控制发生器contrl模块的设计

本设计要求为该模块control提供的基准信号频率为50KHZ,所以要做一个计50K个基准信号的发生器控制产生一个脉宽为1秒的闸门信号en。rst为高电平时进行整体异步清零。当en处于高电平的时候对输入的待测方波信号进行计数测量,当en处于低电平的时候停止计数,并保持所计数值。3.1.1VHDL源程序

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitycontrolisport(clk,rst:instd_logic;en:bufferstd_logic);endcontrol;architecturebhvofcontrolisbeginprocess(clk,rst)variableq:integerrange0to49999;beginifrst='1'thenq:=0;elsifclk'eventandclk='1'thenifq<49999thenq:=q+1;elseq:=49999;endif;endif;ifq<49999andrst='0'thenen<='1';elseen<='0';endif;endprocess;endbhv;

3

课程设计说明书

源程序封装图如图3-1所示。

图3-1测频控制发生器模块封装图3.1.2电路仿真图

此测频控制发生器的仿真结果如图3-2所示。

图3-2测频控制发生器的仿真结果3.2待测信号计数器counter模块的设计

该模块通过control模块所产生的脉宽为1秒的en信号来对待测信号进行计数。在en为高电平时对输入的待测信号clkin进行测量,当en为低电平时停止测量并将所计数值输出,即在1秒内待测信号的脉冲数,也就是待测信号的频率值。用4位二进制数d1,d2,d3,d4,d5,d6,d7对待测信号计数。此仿真采用频率为400Hz的待测信号。3.2.1VHDL源程序

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitycounterisport(en,clkin,rst:instd_logic;b7,b6,b5,b4,b3,b2,b1:bufferstd_logic_vector(3downto0));endcounter;architecturebhvofcounterissignalclk1:std_logic;

4

课程设计说明书

beginprocess(start,bclk)beginifstart='1'thenb1<="0000";b2<="0000";b3<="0000";b4<="0000";b5<="0000";b6<="0000";b7<="0000";elsifbclk'eventandbclk='1'thenifb1="1001"thenb1<="0000";ifb2="1001"thenb2<="0000";ifb3="1001"thenb3<="0000";ifb4="1001"thenb4<="0000";ifb5="1001"THENb5<="0000";ifb6="1001"thenb6<="0000";ifb7="1001"thenb7<="0000";elseb7<=b7+1;endif;elseb6<=b6+1;endif;elseb5<=b5+1;endif;elseb4<=b4+1;endif;elseb3<=b3+1;endif;elseb2<=b2+1;endif;elseb1<=b1+1;endif;endif;endprocess;endbhv;

5

课程设计说明书

源程序封装图如图3-3所示。

图3-3待测信号计数器模块封装图3.2.2电路仿真图

此待测信号计数器的仿真结果如图3-4,3-5所示。

图3-4待测信号计数器开始计数的仿真结果

图3-5待测信号计数器结束计数的仿真结果

6

课程设计说明书

3.3锁存器regist模块的设计

该模块用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。其功能是对b7,b6,b4,b5,b4,b3,b2,b1有效的四位通过bcd3,bcd2,bcd1,bcd0进行锁存,同时通过sel显示量程信息。"1110"表示量程为1,"1101"表示量程为10,"1011"表示量程为100,"0111"表示量程为1000。3.3.1VHDL源程序

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityregistisport(clk,en:instd_logic;lc:outstd_logic_vector(3downto0);b7,b6,b5,b4,b3,b2,b1:instd_logic_vector(3downto0);bcd3,bcd2,bcd1,bcd0:outstd_logic_vector(3downto0));endregist;architecturebhvofregistissignalsel:std_logic_vector(3downto0);beginprocess(clk)beginifrising_edge(clk)thenifen='0'thenifb7>"0000"thenbcd3<=b7;bcd2<=b6;bcd1<=b5;bcd0<=b4;sel<="0111";elsifb6>"0000"thenbcd3<=b6;bcd2<=b5;bcd1<=b4;bcd0<=b3;sel<="1011";elsifb5>"0000"thenbcd3<=b5;bcd2<=b4;bcd1<=b3;bcd0<=b2;sel<="1101";elsebcd3<=b4;bcd2<=b3;bcd1<=b2;bcd0<=b1;sel<="1110";endif;endif;endif;lc<=sel;

7

课程设计说明书

endprocess;endbhv;源程序封装图如图3-6所示。

图3-6锁存器模块封装图3.3.2电路仿真图

此锁存与译码器的仿真结果如图3-7所示。

图3-7锁存器的仿真结果

8

课程设计说明书

3.4动态显示及译码模块decoder的设计

此模块利用人眼暂留效应,通过动态扫描的方式显示信息,wx表示位选信息。"0111"表示最高位输出,"1011"表示次高位输出,"1101"表示次低位输出,"1110"表示最低位输出。3.4.1VHDL源程序

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitydecoderisport(clk:instd_logic;bcd3,bcd2,bcd1,bcd0:instd_logic_vector(3downto0);bcd:bufferstd_logic_vector(3downto0);wx:outstd_logic_vector(3downto0);y:outstd_logic_vector(7downto0));enddecoder;architecturebhvofdecoderissignalqq:integerrange0to49999;begin

process(clk)--此进程完成数据的动态显示beginifclk'eventandclk='1'thenifqq<9999thenqq<=qq+1;bcd<=bcd3;wx<="1000";elsifqq<19999thenqq<=qq+1;bcd<=bcd2;wx<="0100";elsifqq<29999thenqq<=qq+1;bcd<=bcd1;wx<="0010";elsifqq<39999thenqq<=qq+1;bcd<=bcd0;wx<="0001";elseqq<=0;endif;endif;endprocess;

process(bcd)--译码begin

9

课程设计说明书

casebcdiswhen"0000"=>y(7downto0)<="11111100";when"0001"=>y(7downto0)<="01100000";when"0010"=>y(7downto0)<="11011010";when"0011"=>y(7downto0)<="11110010";when"0100"=>y(7downto0)<="01100110";when"0101"=>y(7downto0)<="10110110";when"0110"=>y(7downto0)<="10111110";when"0111"=>y(7downto0)<="11100000";when"1000"=>y(7downto0)<="11111110";when"1001"=>y(7downto0)<="11110110";whenothers=>y(7downto0)<="00000000";endcase;endprocess;endbhv;源程序封装图如图3-8所示。

图3-8动态显示及译码模块封装图3.4.2电路仿真图

此动态显示及译码模块的仿真结果如图3-9所示。

图3-9动态显示及译码模块仿真图

10

课程设计说明书

3.5原理图设计

3.5.1原理电路连接图

图3-10原理图电路连接图3.5.2原理图电路仿真图

图3-11原理图电路仿真图

11

课程设计说明书

4QuartusⅡ9.0软件的介绍及使用

QuartusⅡ9.0是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

12

课程设计说明书

5实验箱下载及验证

5.1元件引脚分配

图5-1元件引脚分配图5.2器件编程与下载

将编译好的模块程序下载到试验箱中(注:DEVICE选取要与硬件对应,否则会导致实验失败),连线做硬件实验。5.3性能测试与分析

输入待测脉冲,1s后数码管显示待测信号的频率,四个二极管显示量程。将rst置为高电平,进行下一次测量。

13

课程设计说明书

6总结

在EDA技术中最为瞩目的是以现代电子技术为特征的逻辑设计仿真测试技术。该技术只需要通过计算机就能对所设计的电子系统从不同层次的性能特点上,进行一系列准确的测试和仿真;本次课设,我们选的课题是四路抢答器,在此次的课设活动中,我对EDA

温馨提示

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

最新文档

评论

0/150

提交评论