<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > FPGA研發(fā)之道(13)-設計不是湊波形(三)RAM

FPGA研發(fā)之道(13)-設計不是湊波形(三)RAM

作者: 時(shí)間:2014-11-03 來(lái)源:網(wǎng)絡(luò ) 收藏

  在內部資源中,是較為常用的一種資源。

本文引用地址:http://dyxdggzs.com/article/264820.htm

  通常實(shí)例化中,一種使用為BLOCK 也就是塊RAM 。另外資源可以通過(guò)寄存器搭,也就是分布式RAM。前者一般用于提供較大的存儲空間,后者則提供小的存儲空間。

  在實(shí)際應用過(guò)程中,一般使用的包括,單端口、雙端口RAM,等形式等不同的形式。 實(shí)際應用中FIFO也是利用RAM和邏輯一起實(shí)現的。

  對于一塊RAM中,其能夠例化的深度是有限的。例如cyclone4的RAM9k中可以例化的資源如下所示:

  

 

  因此:例化化深度<256的RAM,其同樣也需要占用一塊BLOCKRAM的資源,例如例化寬度為64 深度為128的RAM,其資源為8K 。但是仍然需要占用兩塊BOCK RAM。也就是說(shuō),只要例化RAM深度少于256.則對于本器件9K來(lái)說(shuō),剩下的資源也是浪費。

  

 

  那是不是可以例化成雙端口RAM,通過(guò)高位地址區分,變?yōu)閮蓚€(gè)單端口RAM(width:32,depth:128)來(lái)使用,這樣就可以節省資源了?

  而對于雙端口RAM來(lái)說(shuō),每個(gè)M9K能夠配置是的最小深度就變成是512,而最大寬度為18,如下圖所示,因此作為真雙端口RAM使用,深度小于512的話(huà),仍然會(huì )占用1塊RAM。且寬度》18就會(huì )多占用額外的一塊RAM,因此上述的節省資源的方式是不正確的。

  

 

  通過(guò)查看datasheet的中RAM能夠配置的方式,從而能夠正確的使用RAM資源,從而達到高的利用效率??梢钥闯?,RAM9K其應用方式受限,主要是因為RAM的端口的連接信號受限,例如:該RAM9K的讀端口最大支持36根信號線(xiàn),因此對于單端口其支持的寬度為36,雙端口為18(兩個(gè)端口,總共36根數據線(xiàn)),作為來(lái)說(shuō),其布線(xiàn)資源是有限的,不可能無(wú)限制的增加其端口數。

  RAM例化時(shí),有時(shí)需要初始化RAM,ALTERA和XLINX的初始化方法如下所示:

  (1)ALTERA RAM中,例化時(shí)為MIF文件,其格式為:

  DEPTH = 32; -- The size of memory in words

  WIDTH = 8; -- The size of data in bits

  ADDRESS_RADIX = HEX; -- The radix for address values

  DATA_RADIX = HEX; -- The radix for data values

  CONTENT -- start of (address : data pairs)

  BEGIN

  00 : 0; -- memory address : data

  01 : 1;

  END;

  (2)在XILINX的RAM中,RAM出示化文件為COE文件,其格式為:

  MEMORY_INITIALIZATION_RADIX=2; 設定進(jìn)制

  MEMORY_INITIALIZATION_VECTOR= 初始化向量

  值得注意的是:XILINX的RAM初始化后會(huì )自動(dòng)生成MIF文件,而此mif文件與ALTERA mif文件格式不同。不能用于初始化ALTERA的 RAM。

  鑒于例化不同IP的復雜性,現在編譯工具也支持利用VERILOG語(yǔ)言來(lái)描述RAM,而編譯工具自動(dòng)識別為RAM,自動(dòng)產(chǎn)生相應的IP核,下面以XILINX的EDA工具為例簡(jiǎn)要介紹。

  module ram(

  clk, wr,addr,din,dout

  );

  input clk;

  input [7:0] addr;

  input wr;

  input [31:0] din;

  output [31:0] dout;

  reg [31:0] mem [0:255];

  reg [31:0] dout;

  always@(posedge clk)

  if(wr)

  mem[addr] <= din;

  always @(posedge clk)

  dout = mem[addr] ;

  endmodule

  上述描述可以被描述成RAM,自動(dòng)產(chǎn)生RAM.其例化的報告為:

  =========================================================================

  * HDL Synthesis *

  =========================================================================

  Performing bidirectional port resolution...

  Synthesizing Unit .

  Related source file is "ram.v".

  Found 256x32-bit single-port RAM for signal .

  Found 32-bit register for signal .

  Summary:

  inferred 1 RAM(s).

  inferred 32 D-type flip-flop(s).

  Unit synthesized.

  =========================================================================

  HDL Synthesis Report

  Macro Statistics

  # RAMs : 1

  256x32-bit single-port RAM : 1

  # Registers : 1

  32-bit register : 1

  =========================================================================

  綜上: RAM作為內部一種基本資源,掌握RAM的特性和基本用法,則是FPGA工程師的基本技能,能夠充分利用FPGA內部的資源,畢竟對于FPGA來(lái)說(shuō)“資源就是金錢(qián)”,節省資源就是省錢(qián)。

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: FPGA RAM ROM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>