版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安邮电大学数字控制系统课程设计报告书院(系)名称:自动化学院学生姓名:自动化专业名称:自动11032014年9月1日至2014年9月12日乘法器设计一、设计要求:计时精度10ms,计时范围59.99秒。(1) 对单人计时,能实现暂停、显示及清零功能,在数码管上实时显示,设置启动/暂停、清零按键;(2) 对多个人同时计时,在数码管上实时显示,并能回显出六个时间。可控制显示,设置清零、取时按键;(3) 采用状态机设计;(4) 百分秒在数码管上实时显示,秒利用多个数码管显示BCD值。二、设计过程:1. 方案设计:1) 画状态图:按键状态输出复位: 00开始: S0清 零: z=0;启/ 停:01计
2、数:S1不清零: z=1;存/ 回显:10暂停: S2存/ 回显: S32)写程序:在一个 module 模块里,有多个 always 块; 有分频、计数、存储、输出等模块; 测试模块的输入输出与源程序的输入输出相反;2. 系统仿真:Verilog 仿真所需仿真环境: modelsim3. 管脚配置: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;/中间
3、变量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=2'b00,S1=2'b01,S2=2'b11;/ 分频always (posedge clk or negedge rst)begin if(!rst) count1<=0;else if(count1=200000) co
4、unt1<=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)/clk1begin if(!rst) count2<=0;else if(state=S1) count2<=count2+1;/ else if(state=S2) count2&l
5、t;=count2;else count2<=count2;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(s
6、tate=S1) bd<=count2%10;else if(state=S2) begin case (count3)3'b000:bd<=reg0%10;3'b001:bd<=reg1%10;3'b010:bd<=reg2%10;3'b011:bd<=reg3%10;3'b100:bd<=reg4%10;3'b101:bd<=reg5%10;default:bd<=reg0%10;endcaseendelsebd<=bd;end/ 毫秒高位显示结果always (negedge rst o
7、r posedge clk)begin if(!rst) bg<=0;else if(state=S1) bg<=(count2/10)%10;else if(state=S2) begin case (count3)3'b000:bg<=(reg0/10)%10;3'b001:bg<=(reg1/10)%10;3'b010:bg<=(reg2/10)%10;3'b011:bg<=(reg3/10)%10;3'b100:bg<=(reg4/10)%10;3'b101:bg<=(reg5/10)%10
8、;default:bg<=(reg0/10)%10;endcaseelseend bg<=bg;end/ 秒位显示结果always (negedge rst or posedge clk)begin if(!rst) md<=0;else if(state=S1) md<=(count2/100)%10;else if(state=S2)begincase (count3)3'b000:md<=(reg0/100)%10;3'b001:md<=(reg1/100)%10;3'b010:md<=(reg2/100)%10;3
9、9;b011:md<=(reg3/100)%10;3'b100:md<=(reg4/100)%10;3'b101:md<=(reg5/100)%10;default:md<=(reg0/100)%10;endcase endelse md<=md;end/ 十秒位显示结果always (negedge rst or posedge clk)begin if(!rst) mg<=0;else if(state=S1) mg<=(count2/1000)%10;else if(state=S2)begincase (count3)3'
10、;b000:mg<=(reg0/100)%10;3'b001:mg<=(reg1/100)%10;3'b010:mg<=(reg2/100)%10;3'b011:mg<=(reg3/100)%10;3'b100:mg<=(reg4/100)%10;3'b101:mg<=(reg5/100)%10;default:mg<=(reg0/100)%10;endcaseendelse mg<=mg;endalways (negedge rst or posedge clk)/ 定义当前状态begin if(!rst
11、) state<=S0;/异步复位, S0 为初始状态else state<=next_state;end/ 状态转移always (state or pause or pause_temp )begincase (state)S0:begin if(pause=0&&pause_temp=1)next_state<=S1;else next_state<=S0;endS1:begin if(pause=0&&pause_temp=1) next_state<=S2;else next_state<=S1;endS2:begi
12、n if(pause=0&&pause_temp=1) next_state<=S1;else next_state<=S2;enddefault:next_state<=S0;endcaseend/ 存数always(negedge rst or negedge save )begin if(!rst) beginreg0<=0; reg1<=0; reg2<=0; reg3<=0;reg4<=0;reg5<=0;endelsebegin if(count3=0) reg0<=count2;else if(count
13、3=1) reg1<=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;endendend/ 取启停键上升沿always (posedge clk )begin if(!rst) pause_temp&l
14、t;=0;else pause_temp<=pause;end/ 取保存翻看上升沿always (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;initialbegin 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 25356-2024机场道面除冰防冰液
- 《2024年 教育游戏在幼儿教学中的应用研究》范文
- 《2024年 山地光伏电站项目施工阶段管理优化研究》范文
- DB32-T 4827-2024 便民服务中心(站、点)建设与管理规范
- 人教版三年级数学下册教案【练习课 (2)】
- 出版行业数字化出版与发行平台建设方案
- 仪器分析(山东联盟-青岛科技大学)智慧树知到答案2024年青岛科技大学
- 六安一中2024年春学期高一年级期末考试+语文
- 楼盘、园区开荒保洁服务方案(投标方案)
- 2024年重庆市消防设施操作员《中级技能-维保方向》科目真题冲刺卷下半年B卷
- 2024年美国移动USB Type-C快速充电器市场现状及上下游分析报告
- 二级公立医院绩效考核三级手术目录(2020版)
- 新苏教版六年级上册《科学》全一册全部课件(含19课时)
- 电梯临时使用移交函
- 经验公式确定钢的热处理温度
- VDA63过程审核检查表(带示例_自动计算符合率)
- 希腊神话众神谱系图复习进程
- 油田集输站常见的安全问题及其对策
- 基于数字化信息化的矿山绿色开采技术应用
- 祖国在我心中我爱祖国演讲PPT课件
- 棋类比赛秩序册doc
评论
0/150
提交评论