电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc

上传人:b****9 文档编号:13027288 上传时间:2022-10-02 格式:DOC 页数:25 大小:933KB
下载 相关 举报
电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc_第1页
第1页 / 共25页
电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc_第2页
第2页 / 共25页
电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc_第3页
第3页 / 共25页
电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc_第4页
第4页 / 共25页
电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc

《电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc》由会员分享,可在线阅读,更多相关《电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc(25页珍藏版)》请在冰豆网上搜索。

电子科技大学-电子技术实验-FPGA-频率计-实验报告文档格式.doc

被测输入信号:

方波

测试频率范围为:

10Hz~100MHz

量程分为三档:

第一档:

闸门时间为1S时,最大读数为999.999KHz

第二档:

闸门时间为0.1S时,最大读数为9999.99KHz

第三档:

闸门时间为0.01S时,最大读数为99999.9KHz

显示工作方式:

a、用六位BCD七段数码管显示读数。

b、采用记忆显示方法

c、实现对高位无意义零的消隐。

3、实验思路

根据实验指标,将电路设计分成6个模块:

分频器,闸门选择,门控电路,计数器,锁存器,显示控制。

三、基于VHDL方法的设计方案

1、设计方框图

2、具体说明

石英振荡器:

48MHz的晶振信号。

分频器:

将48MHz的信号分频成1Hz,10Hz,100Hz的基准频率;

同时产生1kHz的信号作为扫描显示控制子系统的时钟。

闸门选择开关:

设置三个开关sel1,sel10,sel100。

闸门选择:

设置一个选择频率输出和三个小数点输出dp1,dp2,dp3。

根据闸门选择开关的信号,当se11有效而其他两个无效时,选择频率输出1Hz信号,dp1,dp2,dp3分别输出0,1,1;

当sel10有效而其他两个无效时,选择频率输出10Hz信号,dp1,dp2,dp3分别输出1,0,1;

当sel100有效而其他两个无效时,选择频率输出100Hz信号,dp1,dp2,dp3分别输出1,1,0。

门控电路:

根据选择频率信号产生闸门信号(计数器使能信号),清零信号,锁存使能信号,各信号的时序关系如图所示:

计数器:

考虑采用6个10进制计数器同步级联的方法。

锁存器:

门控电路产生的锁存使能信号的上升沿触发。

扫描显示控制子系统:

考虑该系统由三部分组成:

预显示部分,消隐部分,显示部分。

预显示部分:

设计一个选择信号switch负责选择对应的LED灯(根据1kHz),并根据传来的数据,产生对应的数码管使能信号序列led(6:

0)。

消隐部分:

设计一个信号hide(5:

0),该信号的每一位分别代表一个LED灯,若该信号某一位为1,则对应的LED灯消隐。

hide信号的赋值根据dp1,dp2,dp3的值以及高位的数据是否为零决定。

显示部分,设置一个使能输出信号G,并令它为低电平,根据hide信号和led信号以及dp1,dp2,dp3信号决定最终的输出。

四、系统电路设计

五、系统单元模块设计

1、分频器

entityfreq_divideris

port(clkin:

instd_logic;

clkout1:

outstd_logic;

clkout10:

clkout100:

clkout1k:

outstd_logic);

endfreq_divider;

architectureBehavioraloffreq_divideris

signalclkcnt1:

integerrange0to:

=0;

signalclkcnt10:

signalclkcnt100:

signalclkcnt1k:

integerrange0to48000:

signalclk1,clk10,clk100,clk1k:

std_logic:

='

1'

;

begin

fc1:

process(clkin)

begin

ifrising_edge(clkin)then

ifclkcnt1=then

clkcnt1<

=1;

clk1<

=notclk1;

else

clkcnt1<

=clkcnt1+1;

endif;

endif;

endprocess;

fc10:

begin

ifrising_edge(clkin)then

ifclkcnt10=then

clkcnt10<

clk10<

=notclk10;

else

clkcnt10<

=clkcnt10+1;

endif;

endif;

endprocess;

fc100:

begin

ifrising_edge(clkin)then

ifclkcnt100=then

clkcnt100<

clk100<

=notclk100;

else

clkcnt100<

=clkcnt100+1;

endif;

endif;

endprocess;

fc1k:

ifclkcnt1k=24000then

clkcnt1k<

clk1k<

=notclk1k;

clkcnt1k<

=clkcnt1k+1;

--assignment

clkout1<

=clk1;

clkout10<

=clk10;

clkout100<

=clk100;

clkout1k<

=clk1k;

endBehavioral;

2、闸门选择

entitygate_selis

port(se1:

se10:

se100:

f1:

f10:

f100:

fref:

dp1:

dp2:

dp3:

endgate_sel;

architectureBehavioralofgate_selis

signalsel:

std_logic_vector(2downto0):

="

000"

sel<

=se1&

se10&

se100;

process(sel,f1,f10,f100)

begin

caseselis

when"

100"

=>

fref<

=f1;

dp1<

0'

dp2<

dp3<

010"

fref<

=f10;

001"

=f100;

whenothers=>

endcase;

endprocess;

3、门控电路

entitygate_conis

port(Bsignal:

gate,reset,latch:

endgate_con;

architectureBehavioralofgate_conis

signalgate_tmp:

signallatch_tmp:

process(Bsignal)

begin

ifrising_edge(Bsignal)then

gate_tmp<

=notgate_tmp;

endif;

iffalling_edge(Bsignal)then

latch_tmp<

gate<

=gate_tmp;

latch<

=latch_tmp;

reset<

=(notBsignal)and(notgate_tmp)and(latch_tmp);

4、计数器

entityconunteris

port(count_en:

Csignal:

clear:

carry_out:

outstd_logic;

result:

outstd_logic_vector(3downto0));

endconunter;

architectureBehavioralofconunteris

signalcount:

std_logic_vector(3downto0):

0000"

signalco_tmp:

=

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

当前位置:首页 > 工程科技 > 材料科学

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

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