简易数字跑表设计Word文档下载推荐.docx

上传人:b****1 文档编号:3725685 上传时间:2023-05-02 格式:DOCX 页数:12 大小:257.23KB
下载 相关 举报
简易数字跑表设计Word文档下载推荐.docx_第1页
第1页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第2页
第2页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第3页
第3页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第4页
第4页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第5页
第5页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第6页
第6页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第7页
第7页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第8页
第8页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第9页
第9页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第10页
第10页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第11页
第11页 / 共12页
简易数字跑表设计Word文档下载推荐.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

简易数字跑表设计Word文档下载推荐.docx

《简易数字跑表设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《简易数字跑表设计Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。

简易数字跑表设计Word文档下载推荐.docx

1)画状态图:

按键状态输出

复位:

00开始:

S0清零:

z=0;

启/停:

01计数:

S1不清零:

z=1;

存/回显:

10暂停:

S2

S3

2)写程序:

·

在一个module模块里,有多个always块;

有分频、计数、存储、输出等模块;

测试模块的输入输出与源程序的输入输出相反;

2.系统仿真:

Verilog仿真所需仿真环境:

modelsim

3.管脚配置:

1.

4、软件设计:

源程序

modulepaobiao(clk,rst,pause,save,mg,md,bg,bd);

//秒高,秒低,百分秒高,百分秒低

inputclk,rst,pause,save;

outputreg[3:

0]mg,md,bg,bd;

reg[15:

0]zd,zz,zg;

//中间变量

reg[17:

0]count1;

regclk1;

//100ms

regpause_temp,save_temp;

//取上升沿

reg[13:

0]count2,reg0,reg1,reg2,reg3,reg4,reg5;

reg[2:

0]count3;

//

reg[1:

0]state,next_state;

regcn1;

parameterS0=2'

b00,S1=2'

b01,S2=2'

b11;

//分频

always@(posedgeclkornegedgerst)

beginif(!

rst)count1<

=0;

elseif(count1==200000)count1<

//200000

elsecount1<

=count1+1;

end

always@(posedgeclk)

rst)clk1<

elseif(count1==99999)clk1<

=~clk1;

//99999

elseclk1<

=clk1;

end

//总计时

always@(negedgeclk1ornegedgerst)//clk1

rst)count2<

elseif(state==S1)count2<

=count2+1;

//elseif(state==S2)count2<

=count2;

elsecount2<

end

//存储个数计数

always@(negedgerstornegedgesave)

rst)count3<

elseif(next_state==S1)count3<

=count3+1;

elseif(next_state==S2)count3<

=count3-1;

elsecount3<

=count3;

//毫秒低位显示结果

always@(negedgerstorposedgeclk)

beginif(!

rst)bd<

elseif(state==S1)bd<

=count2%10;

elseif(state==S2)begincase(count3)

3'

b000:

bd<

=reg0%10;

b001:

=reg1%10;

b010:

=reg2%10;

b011:

=reg3%10;

b100:

=reg4%10;

b101:

=reg5%10;

default:

endcase

elsebd<

=bd;

//毫秒高位显示结果

rst)bg<

elseif(state==S1)bg<

=(count2/10)%10;

bg<

=(reg0/10)%10;

=(reg1/10)%10;

=(reg2/10)%10;

=(reg3/10)%10;

=(reg4/10)%10;

=(reg5/10)%10;

elsebg<

=bg;

//秒位显示结果

rst)md<

elseif(state==S1)md<

=(count2/100)%10;

elseif(state==S2)

begin

case(count3)

md<

=(reg0/100)%10;

=(reg1/100)%10;

=(reg2/100)%10;

=(reg3/100)%10;

=(reg4/100)%10;

=(reg5/100)%10;

endcase

elsemd<

=md;

end

//十秒位显示结果

rst)mg<

elseif(state==S1)mg<

=(count2/1000)%10;

begin

mg<

elsemg<

=mg;

always@(negedgerstorposedgeclk)//定义当前状态

rst)state<

=S0;

//异步复位,S0为初始状态

elsestate<

=next_state;

//状态转移

always@(stateorpauseorpause_temp)

case(state)

S0:

beginif(pause==0&

&

pause_temp==1)next_state<

=S1;

elsenext_state<

S1:

=S2;

S2:

next_state<

//存数

always@(negedgerstornegedgesave)

rst)begin

reg0<

reg1<

reg2<

reg3<

reg4<

reg5<

else

beginif(count3==0)reg0<

elseif(count3==1)reg1<

elseif(count3==2)reg2<

elseif(count3==3)reg3<

elseif(count3==4)reg4<

elseif(count3==5)reg5<

elsebeginreg0<

reg1<

reg2<

reg4<

//取启停键上升沿

rst)pause_temp<

elsepause_temp<

=pause;

//取保存翻看上升沿

rst)save_temp<

elsesave_temp<

=save;

endmodule

2.测试程序

modulepaobiao_tp;

regclk,rst,pause,save;

wire[3:

parameterDELY=10;

paobiaou1(clk,rst,pause,save,mg,md,bg,bd);

always#(DELY/2)clk=~clk;

initial

beginclk=0;

pause=0;

save=0;

rst=0;

#DELYrst=1;

#DELYpause=1;

#DELYpause=0;

#DELYsave=1;

endmodule

五、实验结果

1.仿真图像

2.硬件电路显示

六、个人完成工作及心得体会

我们组设计的是数字跑表,我负责画状态图和系统程序和仿真。

画状态图时由于对状态机理解不到位,画的状态图有点问题,后来经老师指导改正了;

我负责写仿真测试程序,这需要对源程序的输入输出很清晰,对其暂停、启停、存储、回显的掌握;

再就是系统仿真,先在modelsim上仿真,出来波形后再在开发板上仿真,刚开始程序分频、计数输出都有问题,后来逐项排除错误代码,仿真才出来。

课设过程中,我学到了很多关于Verilog的知识,比如写程序要注意的分频、计数、输入输出等问题,仿真时要注意时间长短的选择、进制间的转换等等,还有最后往开发板下载程序时注意的问题等。

认识比较深刻的是:

一个小组,只有相互帮助、团结努力,才能很好地完成任务。

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

当前位置:首页 > 总结汇报 > 学习总结

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

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