用FPGA实现SRAM读写控制的Verilog代码.doc_第1页
用FPGA实现SRAM读写控制的Verilog代码.doc_第2页
用FPGA实现SRAM读写控制的Verilog代码.doc_第3页
用FPGA实现SRAM读写控制的Verilog代码.doc_第4页
用FPGA实现SRAM读写控制的Verilog代码.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

define SRAM_SIZE 8timescale 1ns/1ns/FOR SRAM INTERFACE CONTROLmodule SRAM_INTERFACE(in_data,/INPUT DATA out_data,/OUTPUT DATA fiford,/FIFO READ CONTROL LOW VOLTAGE fifowr,/FIFO WRITE CONTROL LOW VOLTAGE nfull, nempty, address,/SENT SRAM ADDRESS BUS sram_data,/SRAM DATA BUS rd,/SRAM READ SINGAL ENABLE LOW VOLTAGE wr,/SRAM WRITE ENABLE LOW VOLTAGE clk,/system clk rst);/global reset singal,low voltageinput fiford,fifowr,clk,rst;input7:0 in_data;output7:0 out_data;reg7:0 in_data_buf,out_data_buf;/input and output bufferoutput reg nfull,nempty;output rd,wr;inout7:0 sram_data;output reg 10:0address;reg10:0 fifo_wp,fifo_rp;reg10:0fifo_wp_next,fifo_rp_next;reg near_full,near_empty;reg3:0 state;parameter idle=4b0000, read_ready=b0100, read=b0101, read_over=b0111, write_ready=b1000, write=b1001, write_over=b1011;always(posedgeclk or negedge rst)begin if(!rst) state=idle; else case(state) idle:begin if(fifowr=0&nfull) state=write_ready; else if(fiford=0&nempty) state=read_ready; else state=idle; end read_ready: state=read; read:begin if(fiford=1) state=read_over; else state=read; end read_over: state=idle; write_ready: state=write; write:begin if(fifowr=1) state=write_over; else state=write; end write_over: state=idle; default:state=idle; endcaseendassign rd=state2;assign wr=(state=write)?fifowr:1b1;always(posedgeclk)begin if(fifowr) in_data_buf=in_data;end/=always(stateor fiford or fifowr or fifo_wp or fifo_rp)begin if(state2|fiford) address=fifo_rp; else if(state3|fifowr) address=fifo_wp; else address=bz;end/=assign out_data=(state2)?sram_data:8bz;always(posedgeclk)begin if(state=read) out_data_buf=sram_data;end/=always(posedgeclk or negedge rst)begin if(!rst) fifo_rp=0; else if(state=read_over) fifo_rp=fifo_rp_next;end/=always(fifo_rp)begin if(fifo_rp=SRAM_SIZE-1) fifo_rp_next=0; else fifo_rp_next=fifo_rp+1;end/=always(posedgeclk or negedge rst)begin if(!rst) fifo_wp=0; else if(state=write_over) fifo_wp=fifo_wp_next;end/=always(fifo_wp)begin if(fifo_wp=SRAM_SIZE-1) fifo_wp_next=0; else fifo_wp_next=fifo_wp+1;end/=always(posedgeclk or negedge rst)begin if(!rst) near_empty=1b0; else if(fifo_wp=fifo_rp_next) near_empty=1b1; else near_empty=1b0;end/=always(posedgeclk or negedge rst)begin if(!rst) nempty=1b0; else if(near_empty&state=read) nempty=1b0; else if(state=write) nempty=1b1;end/=always(posedgeclk or negedge rst)begin if(!rst) near_full=1b0; else if(fifo_rp=fifo_wp_next) near_full=1b1; else near_full=1b0;end/=always(posedgecl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论