- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的数字跑表
现代电子实验
数字跑表实验报告
一.功能要求
基本功能:
1)、跑表精度为0.01秒
2)、跑表计时范围为:1小时
3)、设置开始计时/停止计时、复位两个按钮
4)、显示工作方式:用六位BCD七段数码管显示读数。显示格式:
分 秒 0.01秒
扩展功能:
1)、按键消抖;
2)、分别存储三组选手时间并分时回放显示;
设计要求
设计出符合要求的解决方案
设计出单元电路
利用EDA软件对单元电路及整体电路进行仿真
利用EDA软件在实验板上验证
总体设计框图
计数器
除法器
时钟输入
译码模块
功能控制模块
按键消抖
数码管扫描模块
数码管
按键输入
设计说明:
对于按键输入,先对按键进行消抖,然后按键输入信息给功能控制模块,此模块是核心控制中心,它能控制计数模块计数的开始,停止。同时,当相应按键按下时,它还可以对计数结果进行存储和读取,其中用到了一个F I F O。由于计数时候个位和十位并没有分开,所以之后我们采用了一个除法器,把个位和十位分离。之后的数据经过译码以后就可以由数码管显示了。
单元电路划分
1.按键输入模块
(1)按键检测模块
(2)按键消抖模块
2.计数器模块
3.功能控制模块
4.数码管显示译码模块
(1)除法器(实现计数结果十位,个位的分离)
(2)译码模块
5.数码管扫描显示模块
各单元电路设计
按键输入模块
功能说明:检测按键的输入,并对按键进行消抖,由两个小的模块组成
源码:
module debounce
(
CLK, RST, Pin_In, Pin_Out
);
input CLK;
input RST;
input Pin_In;
output Pin_Out;
/**************************/
wire H2L_Sig;
wire L2H_Sig;
detect U1
(
.CLK( CLK ),
.RST( RST ),
.Pin_In( Pin_In ), // input - from top
.H2L_Sig( H2L_Sig ), // output - to U2
.L2H_Sig( L2H_Sig ) // output - to U2
);
/**************************/
delay U2
(
.CLK( CLK ),
.RST( RST ),
.H2L_Sig( H2L_Sig ), // input - from U1
.L2H_Sig( L2H_Sig ), // input - from U1
.Pin_Out( Pin_Out ) // output - to top
);
/*******************************/
endmodule
1)按键检测
功能说明:
本模块实现对按键的检测,当按键被按下时,产生相应的信号
源代码:
module detect
(
CLK, RST, Pin_In, H2L_Sig, L2H_Sig
);
input CLK;
input RST;
input Pin_In;
output H2L_Sig;
output L2H_Sig;
/**********************************/
parameter T100US = 11d4_799;
/**********************************/
reg [10:0]Count1;
reg isEn;
always @ ( posedge CLK or negedge RST )
if( !RST )
begin
Count1 = 11d0;
isEn = 1b0;
end
else if( Count1 == T100US )
isEn = 1b1;
else
Count1 = Count1 + 1b1;
/********************************************/
reg H2L_F1;
reg H2L_F2;
reg L2H_F1;
reg L2H_F2;
always @ ( posedge CLK or negedge RST )
文档评论(0)