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的訊號通過位址線傳過來後不能馬上讀取,因為都是通過不同的線傳過來的,速度不一,如果馬上讀取會讀取到乙個不穩定的位址,所以要隔一小段時間再接通片選線,接通片選線後從儲存距陣獲取資料也是需要時間的,所以不能立馬斷開...