軟件:Quartus
語言:Verilog
代碼功能:
同步FIFO設計。
內容及要求:
完成3bit寬、360深的同步FIFO。
(2)輸入數(shù)據(jù)片內生成,輸出側由ISA時序讀操作進行;
(3)滿、空指示驅動LED;
(4)SRAM雙口;
(5)讀寫信號同步于工作時鐘,工作時鐘100M;
(6)使用實驗室的開發(fā)箱或自備開發(fā)板完成設計;
(7)完成全部流程:設計規(guī)范文檔、模塊設計、代碼輸入、功能仿真、約束與綜合、時序仿真、下載驗證等。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 模塊圖
6. Testebnch
7. 仿真圖
仿真圖依次仿真了如下功能:
具體功能1/2/3對應如下:
1.寫FIFO 4次,再讀4次,F(xiàn)IFO讀空
2.寫FIFO 350次,然后同時讀寫5次,最后讀5次,F(xiàn)IFO剩余345個空間
3.連續(xù)寫FIFO 15次,F(xiàn)IFO寫滿
部分代碼展示:
//fifo?testbench module?fifo_test(); reg?clk; reg?rst_n; reg?[2:0]?data_in; reg?wr_en; reg?rd_en; wire?empty; wire?full; wire?[2:0]?data_out;//讀數(shù)據(jù) //FIFO深度為360,數(shù)據(jù)寬度為3 fifo_top?i_fifo_top ( .?clk???(clk??),//時鐘 .?rst_n???(rst_n??),//復位 .?data_in???(data_in??),//fifo寫數(shù)據(jù) .?wr_en?(wr_en),//寫使能 .?rd_en?(rd_en),//讀使能 .?data_out??(data_out?),//讀數(shù)據(jù) .?empty?(empty),//空信號 .?full??(full?)?//滿信號 ); initial?begin $monitor("empty=%b?,?full=%b",?empty,full);//檢測空滿信號 end initial?begin rst_n=0; data_in='d0; wr_en=0; rd_en=0; #100; rst_n=1; #100; repeat(4)begin//寫4次 data_in=data_in+'d1; wr_en=1; #20; wr_en=0; #1000; end #100; repeat(4)begin//讀4次 rd_en=1; #20; rd_en=0; #1000; end repeat(350)begin//寫350次 data_in=data_in+'d1; wr_en=1; #20; wr_en=0; #1000; end repeat(5)begin//讀寫5次 data_in=data_in+'d1; wr_en=1; rd_en=1; #20; wr_en=0; rd_en=0; #1000; end #100; repeat(5)begin//讀5次 rd_en=1; #20; rd_en=0; #1000; end repeat(15)begin//寫15次 data_in=data_in+64'd1; wr_en=1; #20; wr_en=0; #1000; end end //產生時鐘 always?begin clk=1; #10; clk=0; #10; end endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=408