[工学]VerilogHDL编程语言.ppt

  1. 1、本文档共158页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]VerilogHDL编程语言

* * * //模块定义,接口说明 module master( input clk, //时钟 input rst, //复位 input tx_req, //数据发送 output cyc, //总线传输 output stb, //数据传输 input ack); //响应 //定义状态常量,采用独热码 parameter IDLE =4’b0001; //空闲 parameter DATA_TX =4’b0010; //发送 parameter ACK_WAIT =4’b0100; //等待响应 parameter END =4’b1000; //结束 //定义内部变量 reg[3:0] state; //状态 实现:采用一段式状态机 * //所有任务在一个always中 always @(posedge clk or posedge rst)?? begin if(rst) //复位处理 begin state=IDLE; cyc=1’b0; stb=1’b0; end else begin * case(state) IDLE: //空闲 begin if(tx_req) //如果有发送命令 begin state=DATA_TX; cyc=1’b1; stb=1’b1; end else //否则,继续保持原态 begin state=IDLE; cyc=1’b0; stb=1’b0; end end??? * DATA_TX: //发送,立刻转入等待状态 begin state=ACK_WAIT; cyc=1’b1; stb=1’b1; end???? * ACK_WAIT : //等待 begin if(ack) //如果收到响应,结束 begin state=END; cyc=1’b0; stb=1’b0; end else //否则,保持原态 begin state= ACK_WAIT; cyc=1’b1; stb=1’b1; end end??? * END : //结束,立刻转入初始空闲态 begin state

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档