洗衣机-verilog.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
洗衣机-verilog

课程设计 实验项目名称 基于FGPA的洗衣机自动控制程序 年 级 2013级 专 业 电路与系统 学生姓名 石安伟 学 号 201304703004 数字逻辑系统设计 三、确定各状态的程序结构 1、await状态: if(startk) 进入pump状态 else begin 为各项参数及输出量赋初值 end 2、pump状态: if(wlh) 进入wash状态 else if(tt==3) 返回await状态并将alartk打开 else 停留在pump状态并将pumpk打开 3、wash状态: if(t5分钟) 进入排水状态 else begin 停留在wash状态并关闭pumpk 总时间t开始计数 if((t10)(t120s)) 电机正转 else if((t123s)(t143s)) 电机反转 else 电机停转 end 4、drain状态: if(wll) 进入甩干状态 else 停留在drain状态 将draink打开 电机关停 t,t1置零 5、spin状态: if(t2) t2开始计数并将spink打开 else t2置初值60s 洗涤次数tt+1 关闭spink及draink 返回pump状态 四、完整程序代码 1、顶层模块 `includecontrol.v `includefenpin.v module washmachine(clk,rst,startk,wlh,wll,pumpk,wrk,wfk,draink,spink,alartk); input clk,rst,startk,wlh,wll; output pumpk,wrk,wfk,draink,spink,alartk; wire clklnk; //实现control模块的输入clk与fenpin模块的输出clko的连接 control c1(clklnk,rst,startk,wlh,wll,pumpk,wrk,wfk,draink,spink,alartk); fenpin f1(clk,clklnk); endmodule 2、100Hz分频模块 module fenpin(clki,clko); input clki; output clko; reg clko; reg [31:0] out; initial clko=0; always@(posedge clki) if(out==200000) begin clko=!clko; //若out加到200k,则clko反转,每个脉冲周期为400K,输出100Hz out=0; end else out=out+1; endmodule 3、自动洗涤控制模块 module control(clk,rst,startk,wlh,wll,pumpk,wrk,wfk,draink,spink,alartk); input clk,rst,startk,wlh,wll; output pumpk,wrk,wfk,draink,spink,alartk; reg[4:0] state; reg pumpk,wrk,wfk,draink,spink,alartk; reg[31:0] t,t1,t2,tt; parameter await=5b10000, pump=5b01000, wash=5b00100, drain=5b00010, spin=5b00001; //-------------------------------------状态独热码------------------------------------- always @(posedge clk) if(rst) begin state=await; t=0; t1=0; t2=6000; tt=0; pumpk=0; wrk=0; wfk=0; draink=0;

文档评论(0)

caohua0308 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档