⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fifo.v

📁 FIFO的源代码
💻 V
字号:
module FIFO(Data_out,DIR,DOR,Clk,Data_in,Reset,Si,So);output DIR;            //Full flag,0 validoutput DOR;            //Empty flag,0 validoutput[9:0] Data_out;input Clk;input Si; input So;input Reset;           // FIFO reset;     input[9:0] Data_in;reg DIR;reg DOR;reg[9:0] Data_out;reg[9:0] Ram_buf[15:0]; //buffer use in FIFOreg[3:0] Wp;reg[3:0] Rp;integer i;  always @ (negedge Clk)  if(Reset)    begin      for(i=0;i<=15;i=i+1)         Ram_buf[i] <= 0;      DIR <= 1;      DOR <= 0;      Wp <= 0;      Rp <= 15;    end  else    begin      if(Si)         Write_FIFO;      else if(So)         Read_FIFO;    end    task Write_FIFO;  begin    if(DIR)      begin        DOR <= 1;        Ram_buf[Wp] <= Data_in;        $display("Ram_buf[%h] = %h",Wp,Ram_buf[Wp]);        if(Wp==15)          Wp <= 0;        else          Wp <= Wp+1;        if(Wp == Rp)  //Ram write full           DIR <= 0;        else           DIR <= 1;                 end    else      $display("FIFO has full!!!");  endendtasktask Read_FIFO;  begin   if(DOR)    begin      DIR <= 1;      Data_out <= Ram_buf[Rp];      if(Rp==15)        Rp <= 0;      else        Rp <= Rp+1;      if( ((Rp==15)&(Wp==1))||((Rp==14)&(Wp==0))||(Rp==Wp-2) )  //Ram read empty        DOR <= 0;      else            DOR <= 1;    end   else     $display("FIFO has empty!!!");  endendtask  endmodule                   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -