重要接口部件——SRAM
重要接口部件——SRAM
SRAM在數(shù)學(xué)模型中對(duì)應(yīng)著靜態(tài)數(shù)組。
當(dāng)給出地址下標(biāo)后,數(shù)組會(huì)輸出所存儲(chǔ)的數(shù)據(jù)值。當(dāng)給出數(shù)據(jù)地址(Address),并被時(shí)鐘上升采樣后,SRAM的數(shù)據(jù)輸出Q端將會(huì)輸出存儲(chǔ)的數(shù)據(jù);當(dāng)SRAM處于存儲(chǔ)數(shù)據(jù)改寫狀態(tài)時(shí),SRAM將在時(shí)鐘上升沿采樣數(shù)據(jù)輸入D端的信號(hào),并將其存儲(chǔ)到內(nèi)部單元中。
下面是SRAM的Verilog仿真模型:
module spram #(parameter ADDR_WIDTH=6 ,DATA_WIDTH=8)(input [(DATA_WIDTH-1):0] data,input [(ADDR_WIDTH-1):0] addr,input we, clk,output [(DATA_WIDTH-1):0] q ); reg [DATA_WIDTH-1:0] ram[2**ADDR_WIDTH-1:0]; reg [ADDR_WIDTH-1:0] addr_reg; always @ (posedge clk)beginif (we) beginram[addr] <= data;endaddr_reg <= addr; end assign q = ram[addr_reg]; endmoduleSRAM的時(shí)序
標(biāo)準(zhǔn)的SRAM讀寫時(shí)序如下圖所示,該圖源自SMIC65nmSRAM模型,其他廠家SRAM時(shí)序圖也基本一樣。
同步SRAM的時(shí)序與寄存器(D觸發(fā)器)的最大區(qū)別就是讀取的數(shù)據(jù)內(nèi)容相對(duì)于寄存器晚一個(gè)時(shí)鐘節(jié)拍,寫時(shí)序則是完全一樣(在時(shí)鐘沿鎖存)。
SRAM時(shí)序于APB讀寫時(shí)序基本一致。
寄存器堆
無(wú)論時(shí)RegFile還是SRAM,如果地址位寬于數(shù)據(jù)存儲(chǔ)深度比例較大,都會(huì)有較大的面積浪費(fèi)。
例如256×256的RAM,地址位寬為256位,數(shù)據(jù)存儲(chǔ)個(gè)數(shù)位256個(gè),在ASIC中回有較大的MUX單元浪費(fèi),而相對(duì)FPGA,也有一些額外的開(kāi)銷浪費(fèi),所以在使用時(shí)盡量用小的地址位寬。
此外在FPGA中,只有SRAM而沒(méi)有RegFile,而在CPLD中則存在異步SRAM,即類似組合電路的RAM,一旦給出地址,數(shù)據(jù)立刻輸出。
雙口RAM
除了上面的單口RAM外,還有一種支持雙地址操作的RAM,稱為雙口RAM(Dual Port RAM)。
雙口RAM分成兩種:一種是簡(jiǎn)單雙口RAM,采用單一時(shí)鐘,支持一個(gè)都地址口和一個(gè)寫地址口;另外一種時(shí)真雙口RAM,真雙口RAM支持兩個(gè)時(shí)鐘,同時(shí)支持完整的兩套地址讀寫。
在低端FPGA種一般只有簡(jiǎn)單雙口RAM,只有在高端的FPGA中才有真雙口RAM,這是因?yàn)檎骐p口RAM的成本代價(jià)很高,而簡(jiǎn)單雙口RAM的設(shè)計(jì)相對(duì)容易。
在ASIC工藝廠商里同樣只有真雙口RAM與雙口Register File,而沒(méi)有簡(jiǎn)單的雙口RAM。
下面內(nèi)容時(shí)一個(gè)簡(jiǎn)單雙口RAM的行為模型:
module dpram #(parameter ADDR_WIDTH=6 ,DATA_WIDTH=8) ( input [(DATA_WIDTH-1):0] data, input [(ADDR_WIDTH-1):0] read_addr, input [(ADDR_WIDTH-1):0] write_addr, input we, input clk, output [(DATA_WIDTH-1):0] q ); reg [DATA_WIDTH-1:0] ram[2**ADDR_WIDTH-1:0]; reg [(DATA_WIDTH-1):0] q_out; always @ (posedge clk) beginif (we) beginram[write_addr] <= data;endq_out <= ram[read_addr]; // read old data! end assign q = q_out ; endmodule源自:《通信IC設(shè)計(jì)》,摘錄下來(lái),只做學(xué)習(xí);
總結(jié)
以上是生活随笔為你收集整理的重要接口部件——SRAM的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用canvas画钟,实时变化的钟
- 下一篇: PDF转换成Word