ram儲存器的簡單實現

2021-06-20 21:20:13 字數 2514 閱讀 6429

1.單埠ram

讀使能有效,輸出資料,否則為高阻。

module ram(clk,wr_en,rd_en,addr,data);

input clk;

input wr_en,rd_en;

inout [7:0] data;

reg [7:0] mem [15:0] ;

reg [7:0] temp;

assign data = rd_en?temp:8'bz;

always @(posedge clk)begin

if(rd_en)

temp<=mem[addr];

else if(wr_en)

mem[addr]<= data;

else

temp <= 8'bz;

endendmodule

2.雙埠ram

與單埠ram相比,雙埠的輸入、輸出資料匯流排是分開的,有時鐘控制,且為同步控制。其有單獨的讀控制訊號和讀位址、寫控制訊號和寫位址。

`define width 8

`define depth 16

`define addr_size 4

module double_ram(clk,rst_n,rd_en,wr_en,rdaddr,wraddr,data_in,data_out);

input clk,rst_n;

input rd_en,wr_en;

input [`addr_size-1:0] rdaddr,wraddr;

input [`width-1:0] data_in;

reg [`width-1:0]mem[`depth-1:0];

output [`width-1:0] data_out;

reg [`width-1:0] data_out;

always @(posedge clk or negedge rst_n)begin

if(rst_n)

data_out<=0;

else if(rd_en)

data_out <= mem[rdaddr];

else if(wr_en)

mem[wraddr] <= data_in;

endendmodule

以上是簡單的ram,對其讀寫位址沒有控制。

下邊介紹一下同步fifo的實現

3.同步fifo

fifo是一中先進先出的資料快取器,他與普通儲存器的區別是沒有外部讀寫位址線,這樣使用起來非常簡單,但缺點就是只能順序寫入資料,和順序讀出資料,其資料位址由內部讀寫指標自動加1完成。不像上邊的ram要指定讀寫位址。

其主要分為基於移位暫存器型和基於ram型,而ram型的又有單埠ram和雙埠ram之分,目前基於雙埠ram的fifo較為廣泛。

fifo的原理就是對雙埠ram進行操作。

module sfifo(clk,rst_n,rd_en,wr_en,data_in,data_out,empty,full);

input clk,rst_n;

input rd_en,wr_en;

input [7:0] data_in;

output [7:0] data_out;

output empty,full;

reg [7:0] data_out;

reg [7:0]mem[15:0] ;

reg [3:0] cnt;

assign empyt = (cnt==0)?1'b1:1'b0;

assign full = (cnt==15)?1'b1:1'b0;

always@(posedge clk or negedge rst_n)begin

if(~rst_n)begin

wrptr<=0;

rdptr<=0;

endelse if(rd_en)

rdptr <= rdptr+1'b1;

else if(wr_en)

wrptr <= rdptr+1'b1;

endalways@(posedge clk or negedge rst_n)begin

if(~rst_n)

cnt <= 4'b0;

else if(rd_en)

cnt <= cnt -1'b0;

else if(wr_en)

cnt <= cnt +1'b1;

endalways @(posedge clk or posedge rst_n)begin

if(~rst_n)

data_out < = 0;

else if(wr_en)

mem[wrptr] <= data_in;

else if(rd_en)

data_out <= mem[rdptr];

else

data_out <= data_out;

endendmodule

隨機訪問儲存器(RAM)

隨機訪問儲存器 隨機訪問儲存器 英語 random access memory,縮寫 ram 也叫主存,是與cpu直接交換資料的內部儲存器。它可以隨時讀寫 重新整理時除外 而且速度很快,通常作為作業系統或其他正在執行中的程式的臨時資料儲存介質。ram工作時可以隨時從任何乙個指定的位址寫入 存入 或讀...

3 2 半導體儲存器RAM

返回目錄 計算機組成原理筆記目錄 2019 王道考研 3.2 半導體儲存器ram random access memory,ram 易失性的儲存器 1.半導體儲存晶元的基本結構 2.半導體隨機訪問儲存器 1.sram static random access memory 需要同時送行列位址 觸發器...

半導體儲存器 RAM和ROM

dram的重新整理 sram的讀週期 注 cs代表片選線,上面有橫線表示低電平有效。0 1的訊號通過位址線傳過來後不能馬上讀取,因為都是通過不同的線傳過來的,速度不一,如果馬上讀取會讀取到乙個不穩定的位址,所以要隔一小段時間再接通片選線,接通片選線後從儲存距陣獲取資料也是需要時間的,所以不能立馬斷開...