FPGAでBRAMを初期化するには、COREジェネレータを使用することができますが、合成ツールがBRAMまたはルックアップテーブル(LUT)を推論するようにVHDLを書き込むことをお勧めします。注意、私はCore Genを使用してRAMを作成/初期化することはありません。
データがどのようにフォーマットされているのかわかりませんが、各行にバイナリ文字列が含まれているテキストファイルを読み込み、そのファイルの内容で信号を作成する方法については、VHDLコードスニペットを参照してください。あらかじめファイルの形式と長さを知っておく必要があります。
-- define a type for the lookup table (LUT)
type lut_type is array(0 to 2**12-1) of std_logic_vector(15 downto 0);
impure function init_lut_from_file(lut_file_name : in string)
return lut_type is
FILE lut_file : TEXT open READ_MODE is lut_file_name;
variable lut_line : line;
variable bv_temp : bit_vector(15 downto 0);
variable lut : lut_type;
begin
for i in lut_type'range loop
readline(lut_file, lut_line);
read(lut_line, bv_temp);
lut(i) := to_stdlogicvector(bv_temp);
end loop;
return lut;
end function;
signal lut : lut_type := init_lut_from_file("c:\data.txt");
上記不純な関数は2^12 = 4096のエントリを持つLUTにファイルの各行に16ビットのバイナリ文字列を含むc:\data.txt
を読み取ります。
通常、に書き込むコードを追加してlut
に書き込むことができます。
[COEファイルの構文](http://www.xilinx.com/itp/xilinx10/isehelp/cgn_r_coe_file_syntax.htm)および[AR#11744 CORE Generator - メモリコア用のCOEファイルを作成するヒント(ブロックメモリ、Distメモリ、ROM、RAMなど)](http://www.xilinx.co.jp/support/answers/11744.html)を参照してください。 [ザイリンクスFPGA用のCOEファイルでBRAMを初期化する方法](http://tipsarea.com/2014/05/21/how-to-initialize-bram-with-coe-file-for-xilinx-fpga/)も参照してください。 ISEのバージョンがGUIからのメモリエディタアクセスをブロックしている場合。グーグルが見つかりました* COEザイリンクスISE *。 – user1155120
[製品コードv0.01 - ザイリンクスFPGAブロックRAMのバイナリファイルから.coeファイルを生成する](https://wornwinter.wordpress.com/2015/02/07/coegen-v0-01-generate-coe-files-from -binary-files-for-xilinx-fpga-block-ram /)を指定します。検索用語*バイナリをCOE形式のザイリンクスにグーグルグーグルで掲載しています。 – user1155120
[SRecord 1.64](http://srecord.sourceforge.net/download.html)には、同様の検索キーワードであるlibboost(COEGenも必要)が必要です。 – user1155120