4位十进制频率计的设计 计算机与电子等专业课程设计.docx

上传人:b****1 文档编号:23093259 上传时间:2023-04-30 格式:DOCX 页数:11 大小:240.35KB
下载 相关 举报
4位十进制频率计的设计 计算机与电子等专业课程设计.docx_第1页
第1页 / 共11页
4位十进制频率计的设计 计算机与电子等专业课程设计.docx_第2页
第2页 / 共11页
4位十进制频率计的设计 计算机与电子等专业课程设计.docx_第3页
第3页 / 共11页
4位十进制频率计的设计 计算机与电子等专业课程设计.docx_第4页
第4页 / 共11页
4位十进制频率计的设计 计算机与电子等专业课程设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

4位十进制频率计的设计 计算机与电子等专业课程设计.docx

《4位十进制频率计的设计 计算机与电子等专业课程设计.docx》由会员分享,可在线阅读,更多相关《4位十进制频率计的设计 计算机与电子等专业课程设计.docx(11页珍藏版)》请在冰豆网上搜索。

4位十进制频率计的设计 计算机与电子等专业课程设计.docx

4位十进制频率计的设计计算机与电子等专业课程设计

4位十进制频率计的设计计算机与电子等专业课程设计

 

4位十进制频率计的设计

 

一、主要指标和要求

1.设计4位十进制频率计,学习较复杂的数字系统设计方法;

2.深入学习数字系统设计的方法与步骤;

3.用元件例化语句写出频率计的顶层文件;

4.用VHDL硬件描述语言进行模块电路的设计;

5.设计硬件要求:

PC机,操作系统为Windows2000/XP,本课程所用系统均为max+plusII5.1设计平台,GW48系列SOPC/EDA实验开发系统。

二、工作原理以及方案选择

原理工作说明:

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

这3个信号可以由一个测频控制信号发生器产生,即图(a)中的TESTCTL,它的设计要求是,TESTCTL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。

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

在停止计数期间,首先需要产生一个锁存信号LOAD,在该信号上升沿时,将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。

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

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

其工作时序波形如图(a)。

图(a)频率计测频控制器TESTCTL测控时序图

图(b)4位十进制频率计顶层文件原理图

选择的设计方案:

1.根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块,

控制器——产生1秒脉宽的计数允许信号、锁存信号和计数器清零信号

计数器——对输入信号的脉冲数进行累计

锁存器——锁存测得的频率值

LED显示——将频率值显示在数码管上

2.根据图(a)、(b)及

(1)

(2)描述的4位十进制频率计的工作原理,利用max+plusII5.1对以上三者的程序进行文本编辑输入和仿真测试并根据图(b),写出频率计的顶层文件,并给出其测频时序波形,及其分析。

3.频率计设计硬件验证。

编译、综合和适配频率计顶层设计文件,并编程下载进入目标器件中。

本实验目标器件是EP1K30TC144-3,实验电路选择模式0,4个数码管(数码4-1:

PIO31-PIO16)显示测频输出;待测频率输入FIN由clock0输入,频率

可选4Hz、256HZ...或更高;1HZ测频控制信号F1HZ可由clock2输入(用电路帽选选1Hz)。

 

三、各模块及顶层文件的设计

(1)、十进制计数

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycnt10is

port(rst,clk,ena:

instd_logic;

cout:

outstd_logic;

outy:

outstd_logic_vector(3downto0));

endcnt10;

architecturebehvofcnt10is

begin

process(rst,ena,clk)

variablecqi:

std_logic_vector(3downto0);

begin

ifrst='1'thencqi:

=(others=>'0');

elsifclk'eventandclk='1'then

ifena='1'then

ifcqi<9thencqi:

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

elsifcqi=9then

cqi:

=(others=>'0');

cout<='1';

endif;

elsifena='0'thencqi:

=(others=>'0');

endif;

endif;

outy<=cqi;

endprocess;

endbehv;

(2)、4位10进计数器

libraryieee;

useieee.std_logic_1164.all;

entitycnt10_4is

port(clk,rst,ena:

instd_logic;

d:

outstd_logic_vector(15downto0));

endentity;

architectureoneofcnt10_4is

componentcnt10

port(rst,clk,ena:

instd_logic;

cout:

outstd_logic;

outy:

outstd_logic_vector(3downto0));

endcomponent;

signale:

std_logic_vector(3downto0);

begin

u1:

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

u2:

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

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

u3:

cnt10portmap(clk=>e

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

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

u4:

cnt10portmap(clk=>e

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

endarchitectureone;

(3)、四位锁存

libraryieee;

useieee.std_logic_1164.all;

entityreg4bis

port(load:

instd_logic;

din:

instd_logic_vector(3downto0);

dout:

outstd_logic_vector(3downto0));

endreg4b;

architecturebehavofreg4bis

begin

process(load,din)

begin

ifload'eventandload='1'thendout<=din;

endif;

endprocess;

endbehav;(3)

(4)、测频控制器

libraryieee;-

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitytestctlis

port(clkk:

instd_logic;

cnt_en,rst_cnt,load:

outstd_logic);

endtestctl;

architecturebehavoftestctlis

signaldiv2clk:

std_logic;

begin

process(clkk)

begin

ifclkk'eventandclkk='1'thendiv2clk<=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;

(5)、七段数码显示

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityled_controlleris

port(d:

instd_logic_vector(3downto0);

a:

outstd_logic_vector(6downto0));

endled_controller;

architectureoneofled_controlleris

begin

process(d)

begin

casedis

when"0000"=>a<="0111111";when"0001"=>a<="0000110";

when"0010"=>a<="1011011";when"0011"=>a<="1001111";

when"0100"=>a<="1100110";when"0101"=>a<="1101101";

when"0110"=>a<="1111101";when"0111"=>a<="0000111";

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

when"1010"=>a<="1110111";when"1011"=>a<="1111100";

when"1100"=>a<="0111001";when"1101"=>a<="1011110";

when"1110"=>a<="1111001";when"1111"=>a<="1110001";

whenothers=>null;

endcase;

endprocess;

end;

总体例化

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith;

useieee.std_logic_signed;

entitycntfis

port(clk1:

instd_logic;

clk2:

instd_logic;

ledout:

outstd_logic_vector(27downto0));

endentity;

architectureoneofcntfis

componenttestctl

port(clkk:

instd_logic;

rst_cnt,cnt_en,load:

outstd_logic);

endcomponent;

componentcnt10_4

port(fx,rst,ena:

instd_logic;

d:

outstd_logic_vector(15downto0));

endcomponent;

componentreg4b

port(load:

instd_logic;

din:

instd_logic_vector(3downto0);

dout:

outstd_logic_vector(3downto0));

endcomponent;

componentled_controller

port(d:

instd_logic_vector(3downto0);

a:

outstd_logic_vector(6downto0));

endcomponent;

signalx,y,z:

std_logic;

signalb,h:

std_logic_vector(15downto0);

signalleds:

std_logic_vector(27downto0);

begin

u1:

testctlportmap(clkk=>clk1,cnt_en=>x,rst_cnt=>y,load=>z);

u2:

cnt10_4portmap(fx=>clk2,rst=>y,ena=>x,d=>b);

u3:

reg4bportmap(load=>z,din=>b(3downto0),dout=>h(3downto0));

u4:

reg4bportmap(load=>z,din=>b(7downto4),dout=>h(7downto4));

u5:

reg4bportmap(load=>z,din=>b(11downto8),dout=>h(11downto8));

u6:

reg4bportmap(load=>z,din=>b(15downto12),dout=>h(15downto12));

u7:

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

u8:

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

u9:

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

u10:

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

ledout<=leds;

end;

 

各个模块的仿真图:

十进制计数的仿真

四位十进制计数仿真

四位锁存器仿真

七段译码仿真

 

测频控制信号仿真

 

总体例化的仿真

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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