数字频率计课程设计.docx

上传人:b****1 文档编号:760037 上传时间:2023-04-30 格式:DOCX 页数:11 大小:61.24KB
下载 相关 举报
数字频率计课程设计.docx_第1页
第1页 / 共11页
数字频率计课程设计.docx_第2页
第2页 / 共11页
数字频率计课程设计.docx_第3页
第3页 / 共11页
数字频率计课程设计.docx_第4页
第4页 / 共11页
数字频率计课程设计.docx_第5页
第5页 / 共11页
数字频率计课程设计.docx_第6页
第6页 / 共11页
数字频率计课程设计.docx_第7页
第7页 / 共11页
数字频率计课程设计.docx_第8页
第8页 / 共11页
数字频率计课程设计.docx_第9页
第9页 / 共11页
数字频率计课程设计.docx_第10页
第10页 / 共11页
数字频率计课程设计.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字频率计课程设计.docx

《数字频率计课程设计.docx》由会员分享,可在线阅读,更多相关《数字频率计课程设计.docx(11页珍藏版)》请在冰点文库上搜索。

数字频率计课程设计.docx

数字频率计课程设计

课程设计任务书

学院

信息科学与工程学院

专业

电子信息工程

学生姓名

严德志

学号

0903030332

设计题目

数字频率计

一、内容及要求:

利用所学的EDA设计方法设计数字频率计,熟练使用使用QUARTUS

应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。

1.调试底层模块,并时序仿真。

2.设计顶层模块,并时序仿真。

3.撰写课程设计报告.设计报告要求及格式见附件。

二、功能要求:

设计一个思维十进制的数字频率计。

要求具有以下功能;

(1)测量范围:

1HZ~10HZ。

(2)测量误差≤1/

(3)响应时间≤15s。

(4)显示时间不小于1s。

(5)具有记忆显示的功能。

即在测量过程中不刷新数据。

等数据过程结束后才显示测量结果。

给出待测信号的频率值。

并保存到下一次测量结束。

包括时基产生与测评时序控制电路模块。

以及待测信号脉冲计数电路模块和锁存与译码显示控制电路。

三、进度安排:

12.22-25查资料、方案设计、程序设计。

1.9-1.12程序设计、调试、写课程设计报告。

1.13验收。

指导教师(签字)

2012年1月11日

学院院长(签字)

2012年1月11日

目录

1、数字频率计的设计要求和任务………………………3

2、数字频率计的设计目的………………………………3

3、数字频率计的设计思路及原理图…………………………3

4、数字频率计设计的解决方案……………………………4

5、数字频率计的时序仿真图………………………………11

6、设计心得…………………………………………………11

7、参考文献…………………………………………………11

 

 

1、设计要求

设计一个四位十进制的数字频率计。

要求具有以下功能:

(1)测量范围:

1HZ~10HZ。

(2)测量误差≤1/

(3)响应时间≤15s。

(4)显示时间不小于1s。

(5)具有记忆显示的功能。

即在测量过程中不刷新数据。

等数据过

程结束后才显示测量结果。

给出待测信号的频率值。

并保存到

下一次测量结束。

(6)包括时基产生与测评时序控制电路模块。

以及待测信号脉冲计

数电路模块和锁存与译码显示控制电路。

 

2、设计目的

通过综合性课程设计题目的完成过程,运用所学EDA知识,解决生活中遇到的实际问题,达到活学活用,所学为所用的目的,进一步理解EDA的学习目的,提高实际应用水平。

本次设计的数字频率计具有精度高、使用方便、测量迅速、便于实现测量过程自动化等优点,是频率测量的重要手段之一。

数字频率计主要包括时基产生与测评时序控制电路模块、待测信号脉冲计数电路、译码显示与锁存控制电路模块。

3、设计思路及原理图

4、设计的解决方案

设计方案自顶向下设计,底层模块分时基产生与测评时序控制电路模块、待测信号脉冲计数电路模块、译码显示与锁存控制电路模块。

(1)时基产生与测评时序控制电路模块:

设计频率记得关键是设计一个测频率控制信号发生器(即时基产生与测评时序控制电路模块),产生测量频率控制时序。

控制时钟信号clk取为1Hz,二分频后即可产生一个脉宽为1s的时钟control-en,以此作为计数闸门信号。

当control-en为高电平时,允许计数;当control-en的下降沿时,应产生一个锁存信号,将计数值保存起来;锁存数据后,在下一个control-en上升沿到来之前对计数器清零,为下次计数做准备。

(2)待测信号脉冲计数电路模块

待测信号脉冲计数电路模块就是计数器,计数器以待测信号作为时钟,在清零信号clr到来时,异步清零;使能信号en为高电平时允许计数,为低电平时禁止计数。

(3)锁存与译码显示控制电路模块

锁存器在control-en下降沿到来时,将计数器的计数值锁存,这样就不会因为周期性的清零信号而不断闪烁了。

译码显示电路将计数器测得的BCD码数字转换为七段晶体管LED显示(0——9),显示出十进制的数字结果。

一.底层程序源码

1、时基产生与测频时序控制电路模块的VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycontrolis

port(clk:

instd_logic;--定义输入

rst,ena:

outstd_logic);--定义输出

endcontrol;

architecturebehvofcontrolis

begin

process(clk)--clk为敏感信号

variablecqi:

std_logic_vector(2downto0);

begin

ifclk'eventandclk='1'then--时钟上升沿

ifcqi<1thencqi:

=cqi+1;ena<='1';rst<='0';

elsifcqi=1then

cqi:

=(others=>'0');

ena<='0';rst<='1';

endif;

endif;

endprocess;--进程结束

endbehv;

2、待测信号脉冲计数电路模块的VHDL源程序

(1)10进制计数器:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycnt10is

port(rst,fx,ena:

instd_logic;--rst,fx,ena为输入端口

cout:

outstd_logic;

outy:

outstd_logic_vector(3downto0));

endcnt10;

architecturebehvofcnt10is

begin

process(rst,ena,fx)--rst,fx,ena为敏感信号

variablecqi:

std_logic_vector(3downto0);

begin

ifrst='1'thencqi:

=(others=>'0');--执行清零

elsiffx'eventandfx='1'then--fx上升沿

ifena='1'then--如果使能信号为1

ifcqi<9thencqi:

=cqi+1;cout<='0';

elsifcqi=9then

cqi:

=(others=>'0');

cout<='1';

endif;

elsifena='0'thencqi:

=(others=>'0');--使能信号为0

endif;

endif;

outy<=cqi;

endprocess;--进程结束

endbehv;

(2)4位10进计数器:

libraryieee;

useieee.std_logic_1164.all;

entitycnt10_4is

port(fx,rst,ena:

instd_logic;--定义输入

d:

outstd_logic_vector(15downto0));--定义输出

endentity;

architectureoneofcnt10_4is

componentcnt10

port(rst,fx,ena:

instd_logic;

cout:

outstd_logic;

outy:

outstd_logic_vector(3downto0));

endcomponent;

signale:

std_logic_vector(3downto0);

begin--元件例化

u1:

cnt10portmap(fx=>fx,rst=>rst,ena=>ena,cout=>e(0),outy=>d(3downto0));

u2:

cnt10portmap(fx=>e(0),rst=>rst,ena=>ena,cout=>e

(1),outy=>d(7downto4));

u3:

cnt10portmap(fx=>e

(1),rst=>rst,ena=>ena,cout=>e

(2),outy=>d(11downto8));

u4:

cnt10portmap(fx=>e

(2),rst=>rst,ena=>ena,cout=>e(3),outy=>d(15downto12));

endarchitectureone;

3、译码显示电路的VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

entityled_controlleris

port(d:

instd_logic_vector(3downto0);

a:

outstd_logic_vector(6downto0));

endled_controller;

architectureartofled_controlleris

begin

process(d)

variables:

std_logic_vector(3downto0);

begin

s:

=d(3)&d

(2)&d

(1)&d(0);

casesis

when"0000"=>a<="1111110";

when"0001"=>a<="0110000";

when"0010"=>a<="1101101";

when"0011"=>a<="1111001";

when"0100"=>a<="0110011";

when"0101"=>a<="1011011";

when"0110"=>a<="0011111";

when"0111"=>a<="1110000";

when"1000"=>a<="1111111";

when"1001"=>a<="1110011";

when"1010"=>a<="0001101";

when"1011"=>a<="0011001";

when"1100"=>a<="0100011";

when"1101"=>a<="1001011";

when"1110"=>a<="0001111";

when"1111"=>a<="0000000";

endcase;

endprocess;

end;

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitylatch4is

port(d:

instd_logic_vector(15downto0);--d,ena,clk为锁存器输入

ena,clk:

instd_logic;

q:

outstd_logic_vector(15downto0));--q为锁存器输出

endlatch4;

architectureoneoflatch4is

begin

process(clk,ena,d)--ck,d,,ena为敏感信号

variablecqi:

std_logic_vector(15downto0);

begin

ifena='0'thencqi:

=cqi;

elsifclk'eventandclk='1'thencqi:

=d;

endif;

q<=cqi;

endprocess;--进程结束

endone;

二.顶层程序源码

总体例化语句:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycntfis

port(rset,clk:

instd_logic;

fx:

instd_logic;

ledout:

outstd_logic_vector(27downto0));

endentity;

architectureoneofcntfis

componentcontrol--时基产生与测评时序控制部分

port(clk:

instd_logic;

rst,ena:

outstd_logic);

endcomponent;

componentcnt10_4--4位十进制计数器部分

port(fx,rst,ena:

instd_logic;

d:

outstd_logic_vector(15downto0));

endcomponent;

componentlatch4--锁存器部分

port(d:

instd_logic_vector(15downto0);

ena,clk:

instd_logic;

q:

outstd_logic_vector(15downto0));

endcomponent;

componentled_controller--BCD码输入转LED显示部分

port(d:

instd_logic_vector(3downto0);

a:

outstd_logic_vector(6downto0));

endcomponent;

signalx,z:

std_logic;

signalg,h:

std_logic_vector(15downto0);

signalleds:

std_logic_vector(27downto0);

begin--元件例化

u1:

controlportmap(clk=>clk,ena=>x,rst=>z);

u2:

cnt10_4portmap(fx=>fx,rst=>z,ena=>x,d=>g);

u3:

latch4portmap(clk=>clk,ena=>x,d=>g,q=>h);

u4:

led_controllerportmap(d(3downto0)=>h(3downto0),a(6downto0)=>leds(6downto0));

u5:

led_controllerportmap(d(3downto0)=>h(7downto4),a(6downto0)=>leds(13downto7));

u6:

led_controllerportmap(d(3downto0)=>h(11downto8),a(6downto0)=>leds(20downto14));

u7:

led_controllerportmap(d(3downto0)=>h(15downto12),a(6downto0)=>leds(27downto21));

ledout<=leds;

end;--结束

 

5、时序仿真图

6、设计心得:

通过此次课程设计,使我对课本上的基础知识了解的更加透彻了。

虽然,在设计中遇到过困难以及失败,但通过老师和同学们的帮助让我顺利通过了这次课程设计的验收。

即使时间短了些,却激发了我对EDA方面的兴趣及爱好。

我相信在不久的将来会有更大的进步。

7、参考文献:

《EDA技术与数字系统设计》邹彦主编电子工业出版社《EDA技术及应用教程》赵全利编机械工业出版社《EDA技术实用教程》潘松编电子工业出版社《ALTERFPGA/CPLD设计》王城人民邮电出版社

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2