FPGA片內FIFO讀寫測試Verilog邏輯源碼Quartus工程文件+文檔說明 使用 FPGA - 免費下載

技術資料資源 文件大小:7356 K

?? 資源詳細信息

文件格式
ZIP
所屬分類
上傳用戶
上傳時間
文件大小
7356 K
所需積分
2 積分
推薦指數
??? (3/5)

?? 溫馨提示:本資源由用戶 20125101110 上傳分享,僅供學習交流使用。如有侵權,請聯系我們刪除。

資源簡介

FPGA片內FIFO讀寫測試Verilog邏輯源碼Quartus工程文件+文檔說明,使用 FPGA 內部的 FIFO 以及程序對該 FIFO 的數據讀寫操作。FPGA型號Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。

timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

module fifo_test(

input clk,           //50MHz時鐘

input rst_n              //復位信號,低電平有效

);


//-----------------------------------------------------------

localparam      W_IDLE      = 1;

localparam      W_FIFO     = 2; 

localparam      R_IDLE      = 1;

localparam      R_FIFO     = 2; 


reg[2:0]  write_state;

reg[2:0]  next_write_state;

reg[2:0]  read_state;

reg[2:0]  next_read_state;


reg[15:0] w_data;    //FIFO寫數據

wire      wr_en;    //FIFO寫使能

wire      rd_en;    //FIFO讀使能

wire[15:0] r_data; //FIFO讀數據

wire       full;  //FIFO滿信號 

wire       empty;  //FIFO空信號 

wire[8:0]  rd_data_count; 

wire[8:0]  wr_data_count; 


///產生FIFO寫入的數據

always@(posedge clk or negedge rst_n)

begin

if(rst_n == 1'b0)

write_state <= W_IDLE;

else

write_state <= next_write_state;

end


always@(*)

begin

case(write_state)

W_IDLE:

if(empty == 1'b1)               //FIFO空, 開始寫FIFO

next_write_state <= W_FIFO;

else

next_write_state <= W_IDLE;

W_FIFO:

if(full == 1'b1)                //FIFO滿

next_write_state <= W_IDLE;

else

next_write_state <= W_FIFO;

default:

next_write_state <= W_IDLE;

endcase

end


assign wr_en = (next_write_state == W_FIFO) ? 1'b1 : 1'b0; 


always@(posedge clk or negedge rst_n)

begin

if(rst_n == 1'b0)

w_data <= 16'd0;

else

   if (wr_en == 1'b1)

    w_data <= w_data + 1'b1;

else

          w_data <= 16'd0;

end




///產生FIFO讀的數據

always@(posedge clk or negedge rst_n)

begin

if(rst_n == 1'b0)

read_state <= R_IDLE;

else

read_state <= next_read_state;

end


always@(*)

begin

case(read_state)

R_IDLE:

if(full == 1'b1)               //FIFO滿, 開始讀FIFO

next_read_state <= R_FIFO;

else

next_read_state <= R_IDLE;

R_FIFO:

if(empty == 1'b1)   

FPGA片內FIFO讀寫測試Verilog邏輯源碼Quartus工程文件+文檔說明 使用 FPGA FPGA片內FIFO讀寫測試Verilog邏輯源碼Quartus工程文件+文檔說明 使用 FPGA


立即下載此資源

提示:下載后請用壓縮軟件解壓,推薦使用 WinRAR 或 7-Zip

資源說明

?? 下載說明

  • 下載需消耗 2積分
  • 24小時內重復下載不扣分
  • 支持斷點續傳
  • 資源永久有效

?? 使用說明

  • 下載后用解壓軟件解壓
  • 推薦 WinRAR 或 7-Zip
  • 如有密碼請查看說明
  • 解壓后即可使用

?? 積分獲取

  • 上傳資源獲得積分
  • 每日簽到免費領取
  • 邀請好友注冊獎勵
  • 查看詳情 →

相關標簽

點擊標簽查看更多相關資源:

相關資源推薦