EDA设计报告.docx
《EDA设计报告.docx》由会员分享,可在线阅读,更多相关《EDA设计报告.docx(18页珍藏版)》请在冰点文库上搜索。
![EDA设计报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/1c6bac55-b91a-46bf-801d-cbab41274340/1c6bac55-b91a-46bf-801d-cbab412743401.gif)
EDA设计报告
湖北经济学院法商学院
EDA技术课程设计报告
课题名称:
六位频率计的设计
指导教师:
张淑玲
学生班级:
XXXXXX
学生姓名:
XXXXXX
学号:
XXXXXXXXX
学生院系:
XXXXXX
电子工程系
2010年6月10日
目录
一概述-1-
(一)设计背景及意义1
(二)设计任务与要求1
二六位频率计的工作原理1
三六位频率计的设计与仿真-2-
(一)六位十进制频率计的设计与仿真2
(二)六位十六进制频率计的设计与仿真-4-
四调试过程、测试结果及分析7
(一)六位十进制频率计的调试过程、测试结果与分析-7-
(二)六位十进制频率计扩展功能的调试过程、测试结果与分析9
(三)六位十六进制频率计的调试过程、测试结果与分析10
五课程设计体会-12-
六参考文献12
六位频率计的设计
一概述
1.1设计背景及意义
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专用集成芯片的一门新技术。
其设计的灵活性使得EDA技术得以快速发展和广泛应用。
在电子领域内,频率是一种最基本的参数,并与其他许多电参量的测量方案和测量结果都有着十分密切的关系。
由于频率信号抗干扰能力强、易于传输,可以获得较高的测量精度。
因此,频率的测量就显得尤为重要,测频方法的研究越来越受到重视。
频率计作为测量仪器的一种,常称为电子计数器,它的基本功能是测量信号的频率和周期频率计的应用范围很广,它不仅应用于一般的简单仪器测量,而且还广泛应用于教学、科研、高精度仪器测量、工业控制等其它领域。
在数字电路中,数字频率计属于时序电路,它主要由具有记忆功能的触发器构成。
在计算机及各种数字仪表中,都得到了广泛的应用。
在CMOS电路系列产品中,数字频率计时量程最大、品种很多的产品,是计算机、通讯设备、音频视频的科研生产领域不可缺少的测量仪器,并且与许多电参量的测量方案、测量结果都有十分密切的关系。
因此,频率的测量就显得更为重要。
本设计设计6位频率计,以触发器和计数器为核心,由信号输入、触发、计数、数据处理和数据显示等功能模块组成。
本次采用QuartusII的宏元件和VHDL语言设计两种方法来设计6位频率计,提高了测量频率的范围。
1.2设计任务与要求
1.21设计任务:
采用原理图设计并制作六位十进制频率计,用VHDL语言方法设计并制作六位十六进制频率计。
1.22设计要求:
a)参考信号频率为1Hz;
b)测量频率范围:
六位十进制频率计:
1Hz100kHz;
六位十六进制频率计:
1Hz4MHz;
c)结果能用数码显示器显示
二六位频率计的工作原理
2.1频率计的设计框图
数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1所示。
2.2频率计的工作原理
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号并为下一测频计数周期作准备的计数器清零信号。
三六位频率计的设计与仿真
3.1六位十进制频率计的设计与仿真
3.1.12位十进制计数器的设计与仿真
利用Quartus软件平台,建立工作目录,创建工程,构建电路图如图(3-1)所示:
图(3—1)二位十进制计数器电路图
完成构建电路图后,进行编译和仿真测试,以了解设计结果是否满足设计需求,其仿真波形图如图(3—2)所示:
图(3—2)二位十进制计数器的仿真波形图
74390连接成两个独立的十进制计数器,CLK通过一个与门进入74390的计数器“1”端的时钟输入端1CLKA。
与门的另一端由计数使能信号end控制:
当end=’1’时允许计数,当end=’0’时禁止计数。
3.1.2时序控制器的设计与仿真
在原理图编辑框中根据图(3—4)完成电路设计,该电路由4位二进制计数器7493、4—16译码器74154和两个由双与非门构成的RS触发器。
图3—4时序控制器的电路图
时序控制器的仿真时序波形图如图(3—5)所示:
图3—5时序控制器的仿真波形图
3.1.3顶层元件的设计和仿真
构建顶层文件,创建新的工程,工程命名为TOP,顶层原理图文件名为TOP.bif。
在元件输入窗口的本工程目录中找到已包装好的2位十进制计数器和时序控制器,调入原理图的编辑窗中,然后构建原理图如图3—7所示:
图3-7顶层文件原理图
顶层文件的仿真波形图如图(3-8)所示:
图3-8顶层文件的仿真波形图
(二)六位十六进制频率计的设计与仿真
1.测频控制电路VHDL描述;
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFTCTRLIS
PORT(CLKK:
INSTD_LOGIC;
CNT_EN:
OUTSTD_LOGIC;
RST_CNT:
OUTSTD_LOGIC;
LOAD:
OUTSTD_LOGIC);
ENDFTCTRL;
ARCHITECTUREbehavOFFTCTRLIS
SIGNALDiv2CLK:
STD_LOGIC;
BEGIN
PROCESS(CLKK)
BEGIN
IFCLKK'EVENTANDCLKK='1'THEN
Div2CLK<=NOTDiv2CLK;
ENDIF;
ENDPROCESS;
PROCESS(CLKK,Div2CLK)
BEGIN
IFCLKK='0'ANDDiv2CLK='0'THENRST_CNT<='1';
ELSERST_CNT<='0';ENDIF;
ENDPROCESS;
LOAD<=NOTDiv2CLK;CNT_EN<=Div2CLK;
ENDbehave
测频控制电路仿真波形图如图3-9所示:
图(3-9)
2.二十四位锁存器VHDL源程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYREG24BIS
PORT(LK:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(23DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(23DOWNTO0));
ENDREG24B;
ARCHITECTUREbehavOFREG24BIS
BEGIN
PROCESS(LK,DIN)
BEGIN
IFLK'EVENTANDLK='1'THENDOUT<=DIN;
ENDIF;
ENDPROCESS;
ENDbehav
二十四位锁存器仿真波形图如图3-10所示:
图(3-10)
3.二十四位计数器VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCOUNTER24BIS
PORT(FIN:
INSTD_LOGIC;
CLR:
INSTD_LOGIC;
ENABL:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(23DOWNTO0));
ENDCOUNTER24B;
ARCHITECTUREbehavOFCOUNTER24BIS
SIGNALCQI:
STD_LOGIC_VECTOR(23DOWNTO0);
BEGIN
PROCESS(FIN,CLR,ENABL)
BEGIN
IFCLR='1'THENCQI<=(OTHERS=>'0');
ELSIFFIN'EVENTANDFIN='1'THEN
IFENABL='1'THENCQI<=CQI+1;ENDIF;
ENDIF;
ENDPROCESS;
DOUT<=CQI;
ENDbehav;
二十四位计数器仿真波形图如图3-11所示:
图(3-11)
4.频率计顶层设计VHDL源程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYFREQTESTIS
PORT(CLK1HZ:
INSTD_LOGIC;
FSIN:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(23DOWNTO0));
ENDFREQTEST;
ARCHITECTUREstrucOFFREQTESTIS
COMPONENTFTCTRL
PORT(CLKK:
INSTD_LOGIC;
CNT_EN:
OUTSTD_LOGIC;
RST_CNT:
OUTSTD_LOGIC;
LOAD:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTCOUNTER24B
PORT(FIN:
INSTD_LOGIC;
CLR:
INSTD_LOGIC;
ENABL:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(23DOWNTO0));
ENDCOMPONENT;
COMPONENTREG24B
PORT(LK:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(23DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(23DOWNTO0));
ENDCOMPONENT;
SIGNALTSTEN1:
STD_LOGIC;
SIGNALCLR_CNT1:
STD_LOGIC;
SIGNALLOAD1:
STD_LOGIC;
SIGNALDTO1:
STD_LOGIC_VECTOR(23DOWNTO0);
BEGIN
U1:
FTCTRLPORTMAP(CLKK=>CLK1HZ,CNT_EN=>TSTEN1,RST_CNT=>CLR_CNT1,LOAD=>LOAD1);
U2:
REG24BPORTMAP(LK=>LOAD1,DIN=>DTO1,DOUT=>DOUT);
U3:
COUNTER24BPORTMAP(FIN=>FSIN,CLR=>CLR_CNT1,ENABL=>TSTEN1,DOUT=>DTO1);
ENDstruc;
频率计顶层设计仿真波形图如图3-12所示:
图(3-12)
四调试过程、测试结果及分析
(一)六位十进制频率计的调试过程、测试结果与分析
打开六位十进制频率计的工程TOP,将输入、输出信号锁定在芯片的引脚上,确定锁定引脚编号后进行引脚锁定操作。
图4-1引脚锁定对话框
引脚锁定完成后对配置文件进行下载
图4-2配置文件下载对话框
调试过程:
(1)测频控制电路调试:
观察输出的波形。
enb输出的是时钟信号clk的16分频信号,而清零信号clr和锁存信号输出的都是时钟信号clk的二分频信号。
(2)计数器电路调试:
观察输出波形,使能信号enb为高电平1时开始计数,时钟信号出现上升沿,输出信号q自加一,当计满9时,进位信号cout1产生1段高电平,当清零信号clr为高电平1时,输出q清零,使能信号为低电平0时,输出q停止计数。
(3)综合电路调试:
观察波形图,实验设置的被测信号clk1与对比信号clk的比为10:
1,输出a从000000计数到000080,以此循环计数,锁存信号b一直处于000080。
在源程序的编写过程中,由于语句遗漏、单词拼写错误、分号遗漏这些因粗心大意引起的错误,而导致一些不必要的错误。
表1六位十进制频率计的测试结果
CLK1=1Hz(测试门限为8s)
clk
1Hz
10Hz
100Hz
1kHz
10kHz
100kHz
测试
结果
8
80
800
8000
80000
800000
分析:
(1)测频控制电路中计数器时钟信号enb、计数器清零信号clr和输出锁存信号lock。
首先是7493这个器件,可以相当于4个二分频电路,QA是二分频、QB是四分频、QC是八分频、QD是十六分频,所以QD端产生的信号频率就是计数器使能信号的频率。
锁存信号lock就是当计数器计满一个周期时锁存计数结果,锁存信号频率也要和计数器周期频率保持一致。
而清零信号仅仅在计数初期出现一段清零。
(2)计数器电路满足的就是计数功能,当时钟信号clk出现上升沿,并且计数器使能信号enb为高电平时,计数器自加1,当使能信号为低电平0时,停止计数,并且保持不变;当清零信号clr为高电平1时,计数器清零。
当计数器计满9时,进位信号出现高电平1。
(3)综合电路要求就是能够对频率进行循环计数。
实验结果与真实值存在8倍的关系,这于实验中所选的器件有关系,在上面所讲的7493的作用,而计数器的使能信号就是时钟信号clk的十六分频信号QD,而能够计数的信号又是使能信号的一半,所以实验结果与真实值存在8倍的关系。
(二)六位十进制频率计扩展功能的调试过程、测试结果与分析
调试过程:
把测频控制电路进行改进或者更换,改进就是将CNT_EN的输入设置为:
,更换就是换成如图2所示的电路。
其他调试过程都保持不变。
表2六位十进制频率计的测试结果
CLK1=1Hz(测试门限为1s)
Clk
1Hz
10Hz
100Hz
1kHz
10kHz
100kHz
测试
结果
1
10
100
1000
10000
100000
分析:
把CNT_EN的输入设置为:
,这样就把时钟信号clk与计数器使能信号enb之间的频率比值定为1:
0.5,然而实现计数的使能信号与时钟信号的频率比值为1:
1。
(三)六位十六进制频率计的调试过程、测试结果及分析
打开目录工程,将输入、输出信号锁定在芯片的引脚上,确定锁定引脚编号后进行引脚锁定操作。
图4-2引脚锁定对话框
引脚锁定完成后对配置文件进行下载:
图4-3配置文件下载对话框
调试过程:
(1)测频控制调试:
波形显示时钟使能信号cnt_en和输出锁存信号load都是时钟信号的二分频信号清零信号rst-en也按规律显示。
(2)24位锁存器调试:
波形显示时钟信号lk出现上升沿时,就把此状态下的计数器的值赋给输出dout信号。
(3)计数器调试过程与原理图中的计数器相似,唯一的区别就是当计数器计满F时,进位信号才会出现高电平,其他的调试过程都一样。
(4)顶层电路调试:
设置时钟时,被测信号的周期clk1与对比信号clk的周期比是10:
1。
结果显示的数据用十六进制来显示。
在这些调试过程中出现的问题,比如原理图连线出现短接、导线接触不良、license参数、而导致的一系列错误。
通过耐心解决,最终达到了实验要求。
表3六位十六进制频率计的测试结果
CLK1=1Hz(测试门限为1s)
clk
1Hz
10Hz
100Hz
1kHz
10kHz
100kHz
1MHz
2MHz
4MHz
测试结果
1
A
64
3E8
2710
186A0
F4240
1E8480
3D0900
分析:
(1)测频控制电路输出的3个信号必须满足要求。
程序实现的就是两个功能,二分频和产生计数器清零信号,若时钟信号clk和时钟使能信号enb都为低电平0时,则产生的清零信号clr为高电平1,否则为低电平0。
(2)锁存器的作用就是将计数器的数据锁存到输出信号dout中,当锁存信号出现上升沿时,将此刻的计数器的数据赋给输出信号dout,其他时刻保持不变。
(3)计数器的功能和原理图中的计数器功能几乎一样,只是计数显示方式不同,原理图是十进制计数显示,VHDL程序是十六进制计数显示;第二就是进位不同,原理图是满9才出现高电平进位信号,VHDL程序是满E才出现高电平进位信号。
其他原理都相同。
(4)顶层电路调试:
观察波形图,实验设置的被测信号与对比信号的比为10:
1,因此输出为00000A。
五课程设计体会
在一个多月的EDA课程学习中我收获诸多。
在这次课程设计中我主要负责电路图的构建和EDA硬件实验部分,期间我和搭档也遇到许多问题,在老师和同学的指导和帮助下,自身的努力下最终得到解决。
此次设计进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
特别是当每一个实验成功时,心里都很开心。
但是在编写顶层文件的程序时,我和搭档遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误所在。
在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示:
在设定输入的时钟信号后,数字秒表开始计数,但是始终看不到秒和小时的循环计数。
后来,在数十次的调试之后,才发现是因为输入的时钟信号对于器件的延迟时间来说太短了。
经过屡次调试,终于找到了比较合适的输入数值。
在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。
在硬件测试时,实验箱连线时由于所选连线中有坏掉的线,通过万用表耐心逐一排查连线,最终找出错误所在。
回首这次课程设计的学习,过这次课程设计使我明白理论与实际相结合的重要,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。
同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总而言之,这次设计的还是比较成功的。
在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解。
团队协助精神很重要,遇到了问题我和搭档并不是互相埋怨,而是仔细分析问题,互相鼓励研究,使任务完成的比较顺利。
不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。
六参考文献
王锁萍.2000.电子设计自动化(EDA)教程.成都:
电子科技大学出版社
边计年,薛宏熙译.2000.用VHDL设计电子线路.北京:
清华大学出版社
彭介华电子技术课程指导.1997..北京:
高等教育出版社
王锁萍.2000.电子设计自动化(EDA)教程.成都:
电子科技大学出版社
潘松2000.VHDL实用教程.出版社:
电子科技大学出版社
徐志军,徐光辉.2002.CPLD/FPGA的开发与应用.北京:
电子工业出版社