版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 西安郵電大学数字控制系统课程设计报告书院(系)名称:自 动 化 学 院学生姓名:专业名称:自动化班 级:自动1103时间:2014年9月1日 至2014年9月12日乘法器设计1、 设计要求:计时精度10ms,计时范围59.99秒。(1) 对单人计时,能实现暂停、显示及清零功能,在数码管上实时显示,设置启动/暂停、清零按键;(2) 对多个人同时计时,在数码管上实时显示,并能回显出六个时间。可控制显示,设置清零、取时按键;(3) 采用状态机设计;(4) 百分秒在数码管上实时显示,秒利用多个数码管显示BCD值。二、设计过程:1.方案设计: 1)画状态图: 按键 状态 输出 复位:00 开始:S0
2、清 零:z=0; 启/停:01 计数:S1 不清零:z=1; 存/回显:10 暂停:S2 存/回显:S32) 写程序: 在一个module模块里,有多个always块; 有分频、计数、存储、输出等模块; 测试模块的输入输出与源程序的输入输出相反;2. 系统仿真: Verilog仿真所需仿真环境:modelsim 3.管脚配置: 1.4、 软件设计:源程序 module paobiao(clk,rst,pause,save,mg,md,bg,bd);/秒高,秒低,百分秒高,百分秒低 input clk,rst,pause,save; output reg 3:0 mg,md,bg,bd;reg
3、15:0 zd,zz,zg;/中间变量reg 17:0 count1;reg clk1;/100msreg 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=2b00,S1=2b01,S2=2b11;/分频always (posedge clk or negedge rst) begin if(!rst) count1=0; else if(count1=200000) coun
4、t1=0;/200000 else count1=count1+1; end always (posedge clk ) begin if(!rst) clk1=0;else if(count1=99999) clk1=clk1;/99999else clk1=clk1;end/总计时always (negedge clk1 or negedge rst)/clk1 begin if(!rst) count2=0; else if(state=S1) count2=count2+1; / else if(state=S2) count2=count2; else count2=count2;
5、end/存储个数计数always (negedge rst or negedge save) begin if(!rst) count3=0; else if (next_state=S1) count3=count3+1; else if (next_state=S2) count3=count3-1; else count3=count3; end /毫秒低位显示结果 always (negedge rst or posedge clk) begin if(!rst) bd=0; else if(state=S1) bd=count2%10; else if(state=S2) begin
6、 case (count3) 3b000: bd=reg0%10; 3b001: bd=reg1%10; 3b010: bd=reg2%10; 3b011: bd=reg3%10; 3b100: bd=reg4%10; 3b101: bd=reg5%10; default: bd=reg0%10; endcase end else bd=bd; end /毫秒高位显示结果 always (negedge rst or posedge clk) begin if(!rst) bg=0; else if(state=S1) bg=(count2/10)%10; else if(state=S2)
7、begin case (count3) 3b000: bg=(reg0/10)%10; 3b001: bg=(reg1/10)%10; 3b010: bg=(reg2/10)%10; 3b011: bg=(reg3/10)%10; 3b100: bg=(reg4/10)%10; 3b101: bg=(reg5/10)%10; default: bg=(reg0/10)%10; endcase end else bg=bg; end /秒位显示结果 always (negedge rst or posedge clk) begin if(!rst) md=0; else if(state=S1)
8、 md=(count2/100)%10; else if(state=S2) begin case (count3) 3b000: md=(reg0/100)%10; 3b001: md=(reg1/100)%10; 3b010: md=(reg2/100)%10; 3b011: md=(reg3/100)%10; 3b100: md=(reg4/100)%10; 3b101: md=(reg5/100)%10; default: md=(reg0/100)%10; endcaseend else md=md; end /十秒位显示结果 always (negedge rst or posed
9、ge clk) begin if(!rst) mg=0; else if(state=S1) mg=(count2/1000)%10; else if(state=S2) begin case (count3) 3b000: mg=(reg0/100)%10; 3b001: mg=(reg1/100)%10; 3b010: mg=(reg2/100)%10; 3b011: mg=(reg3/100)%10; 3b100: mg=(reg4/100)%10; 3b101: mg=(reg5/100)%10; default: mg=(reg0/100)%10; endcase end else
10、mg=mg; end always (negedge rst or posedge clk)/定义当前状态 begin if(!rst) state=S0;/异步复位,S0为初始状态 else state=next_state; end /状态转移always (state or pause or pause_temp )begin case (state) S0:begin if(pause=0&pause_temp=1) next_state=S1; else next_state=S0; end S1:begin if(pause=0&pause_temp=1) next_state=S
11、2; else next_state=S1;end S2:begin if(pause=0&pause_temp=1) next_state=S1; else next_state=S2;end default:next_state=S0; endcaseend /存数always(negedge rst or negedge save ) begin if(!rst) begin reg0=0; reg1=0; reg2=0; reg3=0; reg4=0;reg5=0;end else begin if(count3=0) reg0=count2; else if(count3=1) re
12、g1=count2; else if(count3=2) reg2=count2; else if(count3=3) reg3=count2; else if(count3=4) reg4=count2; else if(count3=5) reg5=count2; else begin reg0=0;reg1=0;reg2=0; reg3=0;reg4=0;reg5=0;end end end /取启停键上升沿always (posedge clk )begin if(!rst) pause_temp=0; else pause_temp=pause;end /取保存翻看上升沿 alway
13、s (posedge clk )begin if(!rst) save_temp=0; else save_temp=save;end endmodule 2.测试程序module paobiao_tp;reg clk,rst,pause,save; wire3: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;endendmodule五、实验结果1. 仿真图像2.硬件电路显示六、个人完成工作及心得体会 我们组设计的是数字跑表,我负责画状态图和系统程序和仿真。画状态图时由于对状态机理解不到位,画的状态图有点问题,后来经老师指导改正了;我负责写仿真测试程序,这需要对源程序的输入输出很清晰,对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022-2023学年广东省深圳市龙岗区三年级(上)期末英语试卷
- 大班健康活动四则教案:我的牙齿
- 脑卒中心理康复治疗
- 一年级下册数学教案-2.6 十几减5、4、3、2(4)-人教新课标
- 二年级上册数学说课教案-两位数减两位数退位减法 人教新课标
- 《渣罐类铸钢件技术规范》标准制编制说明(征求意见稿)
- 教育教学工作目标管理责任书
- 基础护理的解读
- 胎儿宫内窘迫的护理诊断
- 小班数学活动开课教案
- 压力容器生产单位压力容器质量安全日管控、周排查、月调度制度(含表格记录)
- 吸收放散实验课件
- 3.1《让小车运动起来》优质课件
- 新形势下,如何做好一人一事思想政治工作
- 《基于核心素养高中物理实验教学实施素质教育的研究》结题总结报告
- 行政人事部工作分析表
- 英语漫谈胶东海洋文化知到章节答案智慧树2023年威海海洋职业学院
- 航空母舰优秀课件
- 2023年芒果TV春季校园招聘笔试参考题库附带答案详解
- 共享中国知到章节答案智慧树2023年上海工程技术大学
- 中国十大传世名画课件
评论
0/150
提交评论