- 1、本文档共186页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[教育]Verilog HDL2011_2012
Verilog HDL复杂数字系统设计 南通大学电子信息学院 本课程主要内容 数字系统的实例: FIFO 异步串行通信接口 调制解调器 I2C接口的EEPROM读写器 CISC CPU RISC CPU 1.2 状态转换图 采用同步时序 状态机: 3个状态 1.3 FIFO模型设计之一 //FIFO //Size:255Bytes module fifo(clk,nreset,pe,ph,fifo_in,fifo_out,fifo_wr,fifo_rd, busy,empty,full,state,wr,rd); input clk,nreset,fifo_wr,fifo_rd;// input[7:0] fifo_in; output[1:0] state; output empty,full,wr,rd,busy;// output[7:0] fifo_out,pe,ph; reg[1:0] state; reg[7:0] fifo_out; reg wr,rd,empty,full;//fifo write , read ,empty , full reg[7:0]pe,ph; //fifo point:P_end,P_head parameter write=1,read=2,stop=0; always@(posedge clk) if (nreset==0) begin pe=0;ph=0; end else case(state) stop: if( fifo_wr==1 pe+1!==ph) //write start begin rd=0; wr=1;state=write;busy=1; end else if(fifo_rd==1 pe!==ph) //read start begin wr=0;rd=1;state=read;busy=1; end else begin wr=0;rd=0;state=stop;busy=0; if(ph==pe) empty=1; else if(pe+1==ph) full=1; else begin empty=0; full=0; end end write: if( fifo_wr==0 ) //end of write begin pe=pe+1;wr=0;rd=0;state=stop;busy=0; empty=0; if(pe+2==ph) full=1; else full=0; end read: if(fifo_rd==0) //end of read begin ph=ph+1;wr=0;rd=0;state=stop;busy=0;full=0; if(ph+1==pe) empty=1; else empty=0; end endcase lpm_ram_dp1 ram0(fifo_in,pe,ph,wr,rd,fifo_out); //module lpm_ram_dp0(data,wraddress,rdaddress,wren,rden,q); endmodule read: begin ph=ph+ 8 if(fifo_rd==0) //end of read begin wr=0;rd=0;state=stop;busy=0;full=0; if(ph+ 8==pe) empty =1; else empty=0; end else //read continue if(ph+ 8==pe) // empty
文档评论(0)