新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于Verilog HDL語言的32X8 FIFO設(shè)計(jì)

基于Verilog HDL語言的32X8 FIFO設(shè)計(jì)

作者: 時(shí)間:2012-09-03 來源:網(wǎng)絡(luò) 收藏

3  實(shí)現(xiàn)

硬件描述語言 是一種廣泛應(yīng)用于集成電路設(shè)計(jì)的高層次描述語言,適合行為級、寄存器傳輸級和門級等多層次的設(shè)計(jì)和描述,并且具有簡單、易讀、易修改和與工藝無關(guān)等優(yōu)點(diǎn)。因此利用 語言進(jìn)行電路設(shè)計(jì)可以節(jié)約開發(fā)成本和周期。

各個(gè)部分均采用Verilog HDL代碼實(shí)現(xiàn)。限于篇幅,下面僅列出Memery模塊的程序清單。整個(gè)

FIFO設(shè)計(jì)應(yīng)用全球著名EDA軟件供應(yīng)商Synopsys公司的DesignCompiler進(jìn)行了邏輯綜合,并應(yīng)用Synopsys公司的仿真軟件VCS做了仿真驗(yàn)證。(VCS是Synopsys公司的VerilogHDL仿真軟件) FIFO Memery模塊程序清單如下:

module fifo_mem(data,clk,rstN,wrN,rdN,empty,full);

inout [7:0] data;

input clk,rstN,wrN,rdN;

output empty,full;

reg [4:0] _cntr,rd_cntr;

wire [3:0] add;

ram16X8 ram(.data(data),.addr(addr),.wrN(wrN),.oe(wrN));

always @(posedge clk or negedge rstN)

if(!rstN) wr_cntr=0;

else if (!wrN) wr_cntr=wr_cntr+1;

always @ (posedge clk or negedge rstN)

if(!rstN) rd_cntr=0;

else if(!rdN) rd_cntr=rd_cntr+1;

assign addr=wrN?rd_cntr [3:0]: wr_cntr [3:0];

assign empty=(wr_cntr [3:0] == rd_cntr [3:0])!(wr_cntr[4]^rd_cntr[4]);

assign full=(wr_cntr [3:0] ==rd_cntr [3:0])(wr_cntr[4]^rd_cntr[4]);

endmodule

4 結(jié)語

本文通過兩個(gè)分立存儲(chǔ)器間的交替讀、寫機(jī)制,實(shí)現(xiàn)32X8 FIFO的可同時(shí)讀、寫功能,提高了數(shù)據(jù)存取的速度,并且提出了新穎的空、滿標(biāo)志位的實(shí)現(xiàn)方法。采用Verilog HDL硬件描述語言進(jìn)行電路設(shè)計(jì),應(yīng)用Synopsys公司的DesignCompiler和VCS進(jìn)行電路綜合和仿真,電路功能得到驗(yàn)證。


上一頁 1 2 3 下一頁

關(guān)鍵詞: Verilog 32X8 FIFO HDL

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉