UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 7947

Exemplar - Virtex ブロック RAM のインスタンシエートおよび初期化方法について

説明

キーワード : BlockRam+, selectram, init_00, ramb, ramb4, ブロック RAM+

重要度 : 標準

概要 :
Exemplar Leonardo Spectrum を使用した場合の Virtex ブロック RAM のインスタンシエートおよび初期化方法について教えてください。

ソリューション

1

RAMB* セルはブラック ボックスとしてインスタンシエートできます。 また、INIT_** 属性を HDL ファイルおよびスクリプト ファイル内で文字列として受け渡すことができます。 次の HDL コードは、VHDL および Verilog で NIT 属性を受け渡す方法を示します。

別の方法として、Exemplar コマンド スクリプトで次のように指定することも可能です。
set_attribute -instance "inst_ramb4_s4" -name INIT_00 -type string
-value "1F1E1D1C1B1A191817161514131211100F0E0D0C0B0A09080706050403020100"

メモ : Spectrum 1999.1e を使用してテストしたものです。

VHDL

library IEEE;
use IEEE.std_logic_1164.all;

entity spblkrams is
port(CLK : in std_logic;
EN : in std_logic;
RST : in std_logic;
WE : in std_logic;
ADDR : in std_logic_vector(11 downto 0);
DI : in std_logic_vector(15 downto 0);
DORAMB4_S4 : out std_logic_vector(3 downto 0);
DORAMB4_S8 : out std_logic_vector(7 downto 0));
end;


architecture struct of spblkrams is


component RAMB4_S4
port (DI : in STD_LOGIC_VECTOR (3 downto 0);
EN : in STD_ULOGIC;
WE : in STD_ULOGIC;
RST : in STD_ULOGIC;
CLK : in STD_ULOGIC;
ADDR : in STD_LOGIC_VECTOR (9 downto 0);
DO : out STD_LOGIC_VECTOR (3 downto 0));
end component;


component RAMB4_S8
port (DI : in STD_LOGIC_VECTOR (7 downto 0);
EN : in STD_ULOGIC;
WE : in STD_ULOGIC;
RST : in STD_ULOGIC;
CLK : in STD_ULOGIC;
ADDR : in STD_LOGIC_VECTOR (8 downto 0);
DO : out STD_LOGIC_VECTOR (7 downto 0));
end component;

attribute INIT_00: string;
attribute INIT_00 of INST_RAMB4_S4: label is
X"1F1E1D1C1B1A191817161514131211100F0E0D0C0B0A09080706050403020100";
attribute INIT_00 of INST_RAMB4_S8: label is
X"1F1E1D1C1B1A191817161514131211100F0E0D0C0B0A09080706050403020100";

begin


INST_RAMB4_S4 : RAMB4_S4 port map (
DI => DI(3 downto 0),
EN => EN,
WE => WE,
RST => RST,
CLK => CLK,
ADDR => ADDR(9 downto 0),
DO => DORAMB4_S4
);

INST_RAMB4_S8 : RAMB4_S8 port map (
DI => DI(7 downto 0),
EN => EN,
WE => WE,
RST => RST,
CLK => CLK,
ADDR => ADDR(8 downto 0),
DO => DORAMB4_S8
);


end struct;

2

Verilog

module block_ram_ex (CLK, WE, ADDR, DIN, DOUT);
input CLK, WE;
input [8:0] ADDR;
input [7:0] DIN;
output [7:0] DOUT;


RAMB4_S8 U0 (.WE(WE), .EN(1'b1), .RST(1'b0), .CLK(CLK),
.ADDR(ADDR), .DI(DIN), .DO(DOUT));
//exemplar attribute U0 INIT_00
1F1E1D1C1B1A191817161514131211100F0E0D0C0B0A09080706050403020100
endmodule
AR# 7947
作成日 10/26/1999
最終更新日 04/24/2007
ステータス アーカイブ
タイプ 一般