1、西安建筑科技大学课程设计(论文)任务书专业班级: 电子0801 学生姓名: 郝贵伟 指导教师(签名): 一、课程设计(论文)题目 数字频率计的设计二、本次课程设计(论文)应达到的目的通过课程设计使学生能熟练掌握一种EDA软件(MAXPLUS2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。通过课程设计使学生能利用EDA软件(MAXPLUS2)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入可采用图形输入法或VHDL硬件描述语言输入法。通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力,培养学生的自我能力和独立分析、解决问题的能力。包括:查
2、阅参考资料、工具书,掌握数字系统仿真调试的一般规律。通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 设计一个能测量方波信号的频率的频率计。测量的频率范围是0999999Hz。结果用十进制数显示。目录一、前言.41.1 EDA技术的概念.41.2 数字频率计4二、设计原理及思路.52.1 设计的内容和要求52.2 设计原理52.3 具体设计方法52.4设计原理图5三程序及原理图53.1 程序 53.2 原理图9四仿真结果94.1十进制计数器仿真104.2频率控制模
3、块仿真104.3 频率计输出仿真11五结论与心得体会12六参考文献12一、 前言1.1 EDA技术的概念 EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学
4、部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。 EDA设计可分为系统级、电路级和物理实现级。通过EDA的试验设计,加深我们对FPGA的了解,熟悉FPGA的工作原理和试验环境,知道FPGA的开发流程,熟悉各种软件如Quartus II的使用。通过设计小型试验项目学会仿真和硬件测试的基本方法。1.2 数字频率计 数字频率计是采用数字电路制成的实现对周期性变化信号的频率的测量。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字,显示被测信号
5、频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其一般使用十进制数显示,测量迅速,精度高,显示直观,所以经常要用到数字频率计。随着数字电路应用越来越广泛,传统的通用数字集成电路芯片已经很难满足系统功能的要求,而且所需集成电路的数量呈爆炸性增长,使得电路板的体积迅速膨胀,系统可靠性难以保证。此外,现代产品的生命周期都很短,一个电路可能要在很短的时间内做改进以满足新的功能要求,对于通用集成电路来说则意味着重新设计和重新布线。而可编程逻辑器件的出现克服了上述缺点,具有很强的现场可改性。可以进一步提高其性能和
6、测量范围。二 设计原理及思路2.1 设计的内容和要求:1.设计一个能测量方波信号的频率的频率计。2.测量的频率范围是0999999Hz。3.结果用十进制数显示。2.2 设计原理:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。本设计中使用的就是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;即用计数器在计算1S内输入信号周期的个数。数字频率计是数字电路中的一个典型应用,实际的硬
7、件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。以EDA工具作为开发手段,运用VHDL等硬件描述语言,将使整个系统简化,在一定程度上可以避免以上问题,提高了系统的整体性能和可靠性。2.3 具体设计方法: 本实验通过频率控制模块,将1KHZ的时钟信号clk分频为0.5HZ后分别取反赋给锁存端和计数使能端,这样计数器计数一秒完成后实现数据的锁存,然后输出。当计数使能端和基准脉冲信号都出现低电平的时候,锁存信号产生,同时计数复位信号有效,将计数器清零,从新开始计数。2.4设计原理图:本次数字频率计的原理框图如下:被 测 信 号译码显示锁 存 器计 数 器IIII
8、频率控制部分VII三、程序及原理图:3.1 程序采用分模块方法的具体文本内容:频率控制部分:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ctl isport( clk : in std_logic; ena : out std_logic; clr : out std_logic; lock : out std_logic );end ctl;architecture ctl_ac of ctl issignal x : std_logic;begin process(clk)v
9、ariable cnt : integerrange 999 downto 0; begin if clkevent and clk=1 then if cnt999 thencnt:=cnt+1;else cnt:=0;x=not x; end if; end if;end process; process(clk) begin if clk=0 and x=0 then clr=1; else clr=0; end if; end process; lock=not x; ena=x;end ctl_ac;十进制计数器:cnt10library ieee;use ieee.std_logi
10、c_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport( clk : in std_logic; -时钟信号 clr : in std_logic; -清零信号 ena : in std_logic; -时钟使能信号 cq : buffer std_logic_vector(3 downto 0); cout : out std_logic -进位信号 );end cnt10;architecture one of cnt10 isbegin process(clk,clr,ena) begin if clr=1 then
11、cq=0000; elsif clkevent and clk=1 then if ena=1 then if cq=1001 then cq=0000; else cq=cq+1; end if; end if; end if; end process; process(cq) begin if cq=1001 then cout=0; else cout=1; end if; end process;end;锁存器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg4 isp
12、ort( clk : in std_logic; cq : in std_logic_vector(3 downto 0); led : out std_logic_vector(3 downto 0) );end reg4;architecture one of reg4 isbegin process(clk,cq) begin if clkevent and clk=1 then ledyyyyyyyyyy=0000000;end case; end process; end;3.2 原理图1.生成的图像界面截图:说明:以上各部件均可以仿真出理想结果,但连在一起输出为零。经分析,原因可能
13、是计数器的清零信号有问题-计数器清零时刻正是锁存器锁存数据时刻,由于仿真时候存在延时,可能的结果就是先清零后锁存,故输出为零。改后的框图如下:四、仿真图:4.1十进制计数器仿真十进制计数器仿真图:4.2频率控制模块仿真频率控制部分仿真:缩小后看 为;4.3 频率计输出仿真如下图:(对频率计数器输入T(f_in)=0.001s,得到结果F=999hz(理论值为1000hz);如下图:(T(f_in)=0.0000125s,得到的输出结果为F=79999hz(理论值为80000hz);分析:输出值总是比理论值小1hz 五、总结 这次EDA试验我更加熟悉了VHDL语言的基本语法规范,了解了MAX+P
14、LUS2软件的使用方法,学会了用硬件测试的基本技能,在学习过程中也遇到各种各样的问题,下面就总结出来,做为以后的学习的经验:1.语法规则不熟悉,VHDL语法规则在刚刚接触的时候确实有各种各样的疏漏,写源代码的时候会不小心遗漏一两个字母或者标点符号,有时候把半角改成全角,这都会导致编译出错。2.MAX+PLUS2软件版本问题,可能因为条件有限,机房软件都是不太好,部分功能缺失,在以前的上机时候过程中常常会出现奇怪的毛刺现象。上网查询后得知:一个文件夹中是编译常会出现毛刺,如果把一个工程新建到一个新的文件夹中,毛刺显现就消除了。但这次课设在自己电脑上没有出现。3. 有以上的仿真图可以看出,显示输出值总是比理论值小1hz。由本电路图的设计原理可以知道产生误差原因如下:由于计数器记录的是待测信号的上升沿个数,在时间为1s的高电频信号内,计数器开始计时时,可能计数器接受的待测信号恰好经过上升沿,这就说明此时已经丢失了一个脉冲的计数,从而产生误差。和理论值相比,就是显示小于1hz的测量结果。六、参考文献1、数字电子技术基础 阎石主编,高等教育出版社,20022、EDA技术实用教程 潘松,黄继业编著,科学出版社,20063、FPGA设计及应用.褚振勇,翁木云编著. 西安:西安电子科技大学出版社,20024、数字系统设计和HDL相关书籍和资料
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100