- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于PFGA的数字跑表参考
基于FPGA的数字跑表
学院:物电学院
姓名:
学号:
班级:08(27)班
日期:2011年6月28日
目录
一、实例的主要内容 3
二、实验目标: 4
1初步掌握Verilog HDL语言的设计方法 4
2、完成一个数字跑表的设计。 4
三、实验原理: 4
四、程序代码及分析 5
五、实验步骤 9
5.1新建一个文件夹, 9
5.2创建工程 10
5.3 编译、运行程序 13
5.4导入波形 14
5.5显示波形 17
5.6波形运行后结果 18
5.7引脚分配 20
5.8引脚分配完成图 21
六、设计心得 22
七、参考文献 22
一、实验的主要内容
通过对Verilog HDL语言的编写一个具有“百分秒、秒、分”计时功能的数字跑表,可以实现一个小时以内精确至百分之一秒的计时器。
数字跑表的显示可以通过编写数码管显示程序来实现,
实现了计数及进位的设计,通过几个always模块的设计实现一个特定用途的模块------数字跑表。
二、实验目标:
1初步掌握Verilog HDL语言的设计方法
2、完成一个数字跑表的设计。
三、实验原理:
本字跑表首先要从最低位的百分秒计数器开始,按照系统时钟进行计数。计数至100后向秒计数器仅为,秒计数器一百分秒计数器的进位位为时钟进行计数。计数至60后向分计数器进位,分计数器以秒计数器的进位位为时钟进行计数。
数字跑表巧妙地运用进位位作为时钟来 减少计数的位数。如果统一使用系统时钟作为计数时钟,那秒计数器将是一个6000进制的计数器,额分计数器将是一个进制的计数器。这将极大的浪费FPGA的逻辑资源。而使用进位位作为计数时钟,只需要一个100进制的计数器和两个60进制的计数器。
在实际的设计中,为了是计数器更加简单,计数器使用高低位两个计时器来实现。100进制计数器分别是最高位10进制计数器,地位10进制计数器,60进制计数器分别是高6进制计数器,低位10进制计数器。这样整个数字跑表使用6个计数器来实现。
同时由于10进制计数器重复使用了5次,可以使用独立的模块实现十进制计数器,这样就可以通过模块复用来节省整个模块使用的资源。
数字跑表提供了清零为CLR和暂停位PAUSE,百分秒的时钟信号可以通过系统时钟分频提供。分频至1/100s,即可实现真实的时间计数。详细的时钟分频设计渎职可以参考相关的资料实现。
代码中端口信号的定义:
CLK:时钟信号
CLR:异步复位信号
PAUSE:暂停信号
MSH、MSL:百分秒的高位和低位
SH、SL:秒信号的高位和低位
MH、ML:分钟信号的高位和低位
如图是本实例的数字跑表模块图。
四、程序代码及分析
module paobiao(CLK,CLR,PAUSE,MSH,MSL,SH,SL,MH,ML);
//端口说明
input CLK,CLR;
input PAUSE;
output [3:0] MSH,MSL,SH,SL,MH,ML;
//内部信号说明
reg [3:0] MSH,MSL,SH,SL,MH,ML;
reg cn1,cn2; //cn1为百分秒向秒的进位,cn2为秒向分的进位
//百分秒技术模块,每计满100,cn1产生一个进位
always @(posedge CLK or posedge CLR) begin
if(CLR) begin //异步进位
{MSH,MSL}=8h00;
cn1=0;
end
else if(!PAUSE) begin //PAUSE为0时正常计数,为1时暂停计数
if(MSL==9) begin
MSL=0; //低位计数至10时,低位归零
if(MSH==9) begin
MSH=0; //低、高位计数至10时,高位归零
cn1=1; //低、高位计数至10时,触发进位位
end
else //低位计数至10,高位技术为止10时,高位计数
MSH=MSH+1;
end
else begin
MSL=MSL+1; //低位计数未至10时,低位计数
cn1=0; //低位计数未至10时,触发进位位
end
end
end
//秒计数模块,每计满60,cn2产生一个进位
always @(posedge CLK or posedge CLR) begin
if(CLR) begin //异步复位
{SH,SL}=8h00;
cn2=0;
end
else if(SL==9) begin
SL=0; //低位计数至10时,低位归零
if(SH==5) begin
SH=0; //低位计数至10时,高位计数至6位,高位
您可能关注的文档
- 土木工程毕业设计论文)-结构设计混凝土框架结构计算书参考.doc
- 土木工程毕业设计论文-某行政综合楼设计-五层框架结构参考.doc
- 土木工程毕业设计(论文)-一级公路桥设计跨径35米计算书T梁参考.doc
- 土木工程毕业设计(论文)-云南南华天星科技公司办公楼设计参考.doc
- 土木工程毕业设计(论文)-中学科艺综合楼建筑方案及结构设计参考.doc
- 土木工程毕业设计(论文)-兰州市的综合办公楼设计参考.doc
- 土木工程毕业设计(论文)-六层框架结构住宅楼设计参考.doc
- 土木工程毕业设计(论文)-唐山市宜家宾馆设计计算书参考.doc
- 土木工程毕业设计(论文)-单层的单坡双跨刚架承重厂房参考.doc
- 土木工程毕业设计(论文)-大连华兴集团办公楼建筑结构设计参考.doc
文档评论(0)