EDA课设8位16进制频率计设计解读.docx

上传人:b****7 文档编号:11145769 上传时间:2023-02-25 格式:DOCX 页数:16 大小:644.92KB
下载 相关 举报
EDA课设8位16进制频率计设计解读.docx_第1页
第1页 / 共16页
EDA课设8位16进制频率计设计解读.docx_第2页
第2页 / 共16页
EDA课设8位16进制频率计设计解读.docx_第3页
第3页 / 共16页
EDA课设8位16进制频率计设计解读.docx_第4页
第4页 / 共16页
EDA课设8位16进制频率计设计解读.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

EDA课设8位16进制频率计设计解读.docx

《EDA课设8位16进制频率计设计解读.docx》由会员分享,可在线阅读,更多相关《EDA课设8位16进制频率计设计解读.docx(16页珍藏版)》请在冰豆网上搜索。

EDA课设8位16进制频率计设计解读.docx

EDA课设8位16进制频率计设计解读

存档资料成绩:

华东交通大学理工学院

课程设计报告书

 

所属课程名称实用EDA技术与VHDL教程

题目 8位16进制频率计设计

分院  电信分院   

专业班级通信2012-2

学  号20120210420216   

学生姓名黄建军     

指导教师谭尾琴   

 

2016年6月24日

课程设计(论文)评阅意见

序号

项目

等级

优秀

良好

中等

及格

不及格

1

课程设计态度评价

2

出勤情况评价

3

任务难度

4

工作量饱满评价

5

设计中创新性评价

6

论文书写规范化评价

7

综合应用能力评价

8

综合评定登记

 

评阅人谭尾琴

2015年月日

 

一、设计任务与要求3

二、设计系统的概述3

三、总体电路图4

四、课设使用设备4

五、功能模块4

1、测频控制电路4

2、32位锁存器REG32B6

3、32位计数器COUNTER32B8

4、频率计顶层文件9

六、硬件调试及结果分析11

1、测频控制电路11

2、32位锁存器12

3、32位计数器12

4、8位16进制频率计12

七、设计体会12

八、参考文献13

一、设计任务与要求

1、用EDA技术设计并实现8位十六进制频率计,及设计一个基于VHDL的八位十六进制频率计,学习较复杂的数字系统设计方法。

书面报告包括工作原理,工作模块图,仿真波形图和问题分析。

2、分别仿真测试模块1,、2和3,在结合模块4完成频率计的完整设计和硬件实现,并给出其测频时序波形及其分析。

3、将频率计改为8位10进制频率计,注意此设计电路的计数器必须是8个4位的10进制计数器。

此外注意在测频速度上给予优化。

二、设计系统的概述

原理:

根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期做好准备。

测频控制信号可以由一个独立的发生器来产生。

在一个标准信号的周期中计数出待测信号的周期,从而得出待测信号的周期,进而得到待测信号的频率。

通过待测信号与标准信号比较,而输出的8位16进制数或8位10进制数就是待测信号的频率值。

(1)FTCTRL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B的ENABL使能进行同步控制。

(2)当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。

在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前一秒钟的计数值锁存进各锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。

设置锁存器的好处是数据显示稳定,不会由于周期性的清零信号而不断闪烁。

(3)锁存信号后,必须有清零信号RST_CNT对计数器进行清零,为下一秒的计数操作作准备。

(4)、8位16进制频率计

由一个测频控制电路、一个32位锁存器和一个32位计数器组成。

三、总体电路图

四、课设使用设备

PC机一台

GW48-PK4试验系统一台

下载器

连接线若干

5、功能模块

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;

ENDbehav;

程序运行成功:

 

仿真结果:

FTCTRL封装模块:

2、32位锁存器REG32B

设置锁存器是为使显示的数据稳定,不会由于周期性的清零信号而不断闪烁;锁存器的位数应跟计数器一样。

VHDL程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYREG32BIS

PORT(LK:

INSTD_LOGIC;

DIN:

INSTD_LOGIC_VECTOR(31DOWNTO0);

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0));

ENDREG32B;

ARCHITECTUREbehavOFREG32BIS

BEGIN

PROCESS(LK,DIN)

BEGIN

IFLK'EVENTANDLK='1'THEN

DOUT<=DIN;

ENDIF;

ENDPROCESS;

ENDbehav;

程序运行成功:

仿真结果:

REG32B封装模块:

3、32位计数器COUNTER32B

计数器以待测信号作为时钟,以十进制数显示,如需要测试较高的频率信号,则将输出的位数增加,锁存器的位数也要增加。

VHDL程序;

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCOUNTER32BIS

PORT(FIN:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

ENABL:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0));

ENDCOUNTER32B;

ARCHITECTUREbehavOFCOUNTER32BIS

SIGNALCQI:

STD_LOGIC_VECTOR(31DOWNTO0);

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;

程序运行成功:

仿真结果:

COUNTER32B封装模块:

4、频率计顶层文件

频率计总体设计原理图:

VHDL程序;

LIBRARYIEEE;

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFREQTESTIS

PORT(CLK1HZ:

INSTD_LOGIC;

FSIN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0));

ENDFREQTEST;

ARCHITECTUREstrucOFFREQTESTIS

COMPONENTFTCTRL

PORT(CLKK:

INSTD_LOGIC;

CNT_EN:

OUTSTD_LOGIC;

RST_CNT:

OUTSTD_LOGIC;

Load:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTCOUNTER32B

PORT(FIN:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

ENABL:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0));

ENDCOMPONENT;

COMPONENTREG32B

PORT(LK:

INSTD_LOGIC;

DIN:

INSTD_LOGIC_VECTOR(31DOWNTO0);

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0));

ENDCOMPONENT;

SIGNALTSTEN1:

STD_LOGIC;

SIGNALCLR_CNT1:

STD_LOGIC;

SIGNALLoad1:

STD_LOGIC;

SIGNALDTO1:

STD_LOGIC_VECTOR(31DOWNTO0);

SIGNALCARRY_OUT1:

STD_LOGIC_VECTOR(6DOWNTO0);

BEGIN

U1:

FTCTRLPORTMAP(CLKK=>CLK1HZ,CNT_EN=>TSTEN1,

RST_CNT=>CLR_CNT1,Load=>Load1);

U2:

REG32BPORTMAP(LK=>Load1,DIN=>DTO1,DOUT=>DOUT);

U3:

COUNTER32BPORTMAP(FIN=>FSIN,CLR=>CLR_CNT1,

ENABL=>TSTEN1,DOUT=>DTO1);

ENDstruc;

 

程序运行成功:

仿真结果:

六、硬件调试及结果分析

1、测频控制电路

关键是设计一个测频率控制信号发生器,产生测量频率的控制时序。

控制时钟信号clk取为1Hz,2分频后即可查声一个脉宽为1秒的时钟test-en,一此作为计数闸门信号。

当test-en为高电平时,允许计数;当test-en由高电平变为低电平(下降沿到来)时,应产生一个锁存信号,将计数值保存起来;锁存数据后,还要在下次test-en上升沿到哦来之前产生零信号clear,将计数器清零,为下次计数作准备。

2、32位锁存器

当test-en下降沿到来时,将计数器的计数值锁存,这样可由外部的七段译码器译码并在数码管显示。

设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。

锁存器的位数应跟计数器完全一样。

3、32位计数器

计数器以待测信号作为时钟,清零信号clear到来时,异步清零;test-en为高电平时开始计数。

计数是以十进制数显示,本文设计了一个简单的10kHz以内信号的频率机计,如果需要测试较高的频率信号,则将dout的输出位数增加,当然锁存器的位数也要增加。

4、8位16进制频率计

输入端1Hz测频控制信号clk1hz由clock2输入(用跳线选1Hz),待测频率输入fin由clock0输入,频率选择为256Hz。

输出端dout与8个8段显示管相连,且8个数码管以16进制形式显示测频输出。

结果:

在一段时间8个显示管为‘00000000’后,第一位开始计数,当到达15后,进入第二位,最后停在‘00000100’,及10进制的‘256’。

七、设计体会

本次实验是设计一个8位十六进制频率计,设计主要用到了多种芯片,程序也比较长、比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。

这是本学期这门课程的最后一个实验,也是最后一个综合性实验,是对这门课程的一个全面总结和检测。

通过本次实验,我更加系统和全面的了解了模块化的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了32位锁存器的使用和中断处理器程序的编程方法。

试验中,让我对源程序有了更好的认知与分析,而且对VHDL语言又增加了熟练运用程度。

在VHDL语音程序中,运用了元件实体声明、信号量的声明、进程的运用、循环语句的多种用法和元件例化语句等,不仅检验了我们对实验软件工具QuartusⅡ的熟悉与掌握应用,而且考验我们能否熟练的对程序进行编写,对输入波形的编译,对程序的仿真。

转眼间,一个学期过去了,伴随着这次实验的结束,我们也完成了这门课程的初步学习。

经过这么久的课本和实验学习,使得我开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,使我获益匪浅!

我始终相信:

只要努力过了、终究会有所收获!

同时,也让自己无愧于心。

八、参考文献

[1]巴里.威尔金森编著,《数字设计基础》(双语教学版)

[2]潘松编著,《EDA技术实用教程》科学出版设

[3]徐雯娟编著《基于VHDL语音的数字电路设计实验指导》

[4]高振斌等编著《EDA实用技术及应用》

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1