人人范文网 范文大全

简易数字跑表设计

发布时间:2020-03-03 04:22:19 来源:范文大全 收藏本文 下载本文 手机版

西安郵電大学

数字控制系统课程设计报告书

院(系)名称 : 学生姓名 : 专业名称 : 班

级 : 时

自 动 化 学 院

自动化 自动1103 间 : 2014年9月1日 至2014年9月12日

乘法器设计

一、设计要求:

计时精度10ms,计时范围59.99秒。

(1)对单人计时,能实现暂停、显示及清零功能,在数码管上实时显示,设置启动/暂停、清零按键;

(2)对多个人同时计时,在数码管上实时显示,并能回显出六个时间。可控制显示,设置清零、取时按键;

(3)采用状态机设计;

(4)百分秒在数码管上实时显示,秒利用多个数码管显示BCD值。

二、设计过程: 1.方案设计:

1)画状态图:

按键

状态

输出

复位:00

开始:S0

清 零:z=0;

启/停:01

计数:S1

不清零:z=1;

存/回显:10

暂停:S2

存/回显:S3

2)写程序:

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

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

·测试模块的输入输出与源程序的输入输出相反; 2.系统仿真:

Verilog仿真所需仿真环境:modelsim 3.管脚配置:

1.

四、软件设计: 源程序

module paobiao(clk,rst,pause,save,mg,md,bg,bd);//秒高,秒低,百分秒高,百分秒低

input clk,rst,pause,save;

output reg [3:0] mg,md,bg,bd; reg [15:0] zd,zz,zg;//中间变量 reg [17:0] count1; reg clk1;//100ms reg pause_temp,save_temp;//取上升沿 reg [13:0] count2,reg0,reg1,reg2,reg3,reg4,reg5; reg [2:0] count3;// reg [1:0] state,next_state; reg cn1; parameter S0=2\'b00,S1=2\'b01,S2=2\'b11; //分频

always @(posedge clk or negedge rst)

begin if(!rst) count1

else if(count1==200000) count1

else count1

end

always @(posedge clk ) begin if(!rst) clk1

end //总计时

always @(negedge clk1 or negedge rst)//clk1 begin if(!rst) count2

else if(state==S1) count2

// else if(state==S2) count2

else count2

//存储个数计数

always @(negedge rst or negedge save) begin if(!rst)

count3

else if (next_state==S1)

count3

else if (next_state==S2)

count3

else count3

end

//毫秒低位显示结果

always @(negedge rst or posedge clk) begin

if(!rst)

bd

else if(state==S1) bd

else if(state==S2)

begin case (count3)

3\'b000: bd

3\'b001: bd

3\'b010: bd

3\'b011: bd

3\'b100: bd

3\'b101: bd

default:

bd

endcase

end

else

bd

end

//毫秒高位显示结果

always @(negedge rst or posedge clk) begin

if(!rst)

bg

else if(state==S1)

bg

else if(state==S2)

begin case (count3)

3\'b000: bg

3\'b001: bg

3\'b010: bg

3\'b011: bg

3\'b100: bg

3\'b101: bg

default:

bg

endcase

end

else

bg

end

//秒位显示结果

always @(negedge rst or posedge clk) begin

if(!rst)

md

else if(state==S1) md

else if(state==S2)

begin

case (count3)

3\'b000: md

3\'b001: md

3\'b010: md

3\'b011: md

3\'b100: md

3\'b101: md

default:

md

endcase end

else

md

//十秒位显示结果

always @(negedge rst or posedge clk)

begin

if(!rst)

mg

else if(state==S1) mg

else if(state==S2)

begin

case (count3)

3\'b000: mg

3\'b001: mg

3\'b010: mg

3\'b011: mg

3\'b100: mg

3\'b101: mg

default:

mg

endcase

end

else

mg

end

always @(negedge rst or posedge clk)//定义当前状态

begin if(!rst) state

else

state

end

//状态转移

always @(state or pause or

pause_temp ) begin

case (state)

S0:begin if(pause==0&&pause_temp==1) next_state

else next_state

end

S1:begin if(pause==0&&pause_temp==1) next_state

else next_state

S2:begin if(pause==0&&pause_temp==1) next_state

else next_state

default:next_state

endcase

end

//存数

always@(negedge rst or negedge save ) begin if(!rst) begin

reg0

else

begin if(count3==0) reg0

else if(count3==1) reg1

else if(count3==2) reg2

else if(count3==3) reg3

else if(count3==4) reg4

else if(count3==5) reg5

else begin reg0

reg3

end end

//取启停键上升沿 always @(posedge clk ) begin if(!rst) pause_temp

else

pause_temp

end

//取保存翻看上升沿

always @(posedge clk ) begin if(!rst) save_temp

else

save_temp

endmodule

2.测试程序

module paobiao_tp; reg clk,rst,pause,save; wire[3:0] mg,md,bg,bd; parameter DELY=10; paobiao u1(clk,rst,pause,save,mg,md,bg,bd); always #(DELY/2)

clk=~clk; initial

begin clk=0;pause=0;save=0;rst=0;

#DELY rst=1;save=0;pause=0;

#DELY pause=1;

#DELY pause=0;

#DELY save=1; end endmodule

五、实验结果 1.仿真图像

2.硬件电路显示

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

我们组设计的是数字跑表,我负责画状态图和系统程序和仿真。画状态图时由于对状态机理解不到位,画的状态图有点问题,后来经老师指导改正了;我负责写仿真测试程序,这需要对源程序的输入输出很清晰,对其暂停、启停、存储、回显的掌握;再就是系统仿真,先在modelsim 上仿真,出来波形后再在开发板上仿真,刚开始程序分频、计数输出都有问题,后来逐项排除错误代码,仿真才出来。

课设过程中,我学到了很多关于Verilog的知识,比如写程序要注意的分频、计数、输入输出等问题,仿真时要注意时间长短的选择、进制间的转换等等,还有最后往开发板下载程序时注意的问题等。认识比较深刻的是:一个小组,只有相互帮助、团结努力,才能很好地完成任务。

数字电路EDA课程设计数字跑表

简易数字存储示波器设计

燕山大学EDA课程设计数字跑表

FPGA数字跑表程序设计与防仿真

简易数字显示频率计的设计

“数字黑洞”及其简易证明

简易抢答器设计

简易设计合同

数字交互设计

数字日历设计

简易数字跑表设计
《简易数字跑表设计.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题 数字跑表设计 设计
点击下载本文文档