[[ASAP Top]]

data2mem はビットファイルに含まれたBlockRAMの情報を編集して、
論理合成配置配線のプロセスなしに合成をしてくれる偉いコマンド。

しかしその実行プロセスが複雑なので、ここに使い方を示したい。

-メモリの書き方
-必要なファイル
1.bitfile
2.*.ll
3.*.syr
 1.まずビットファイルを生成する。これはいうことないよね。
 2.*.llにはBlockRAMがどこに配置されたかの情報が示されているため、これを参照する。
 例えば
Bit  2235597 0x04000024   2285 Block=RAMB16_X1Y3 Latch=DOA6 Net=memOut<6>
Bit  2235611 0x04000024   2299 Block=RAMB16_X1Y3 Latch=DOA5 Net=memOut<5>
Bit  2235625 0x04000024   2313 Block=RAMB16_X1Y3 Latch=DOA4 Net=memOut<4>
Bit  2235653 0x04000024   2341 Block=RAMB16_X1Y3 Latch=DOA3 Net=memOut<3>
Bit  2235667 0x04000024   2355 Block=RAMB16_X1Y3 Latch=DOA2 Net=memOut<2>
Bit  2235681 0x04000024   2369 Block=RAMB16_X1Y3 Latch=DOA1 Net=memOut<1>
Bit  2235695 0x04000024   2383 Block=RAMB16_X1Y3 Latch=DOA0 Net=memOut<0>
 っとあれば、あぁこれは X1Y3にBRAMが配置されたんだとわかる。
 ここで、該当RAMがいかなる名前に推論されたかは、.syrレポートを読めばわかる。
 例えば、
Synthesizing (advanced) Unit <memory>.
INFO:Xst - The ROM <Mrom__varindex0000> will be implemented as a read-only BLOCK RAM, absorbing the register: <OUT>.
INFO:Xst - The RAM <Mrom__varindex0000> will be implemented as BLOCK RAM
-----------------------------------------------------------------------
| ram_type           | Block                               |          |
-----------------------------------------------------------------------
| Port A                                                              |
|     aspect ratio   | 1024-word x 18-bit                  |          |
|     mode           | write-first                         |          |
|     clkA           | connected to signal <CLK>           | rise     |
|     weA            | connected to internal node          | high     |
|     addrA          | connected to signal <ADDRESS>       |          |
|     diA            | connected to internal node          |          |
|     doA            | connected to signal <OUT>           |          |
-----------------------------------------------------------------------
| optimization       | speed                               |          |
-----------------------------------------------------------------------
Unit <memory> synthesized (advanced).
 とあれば、これはROMの名前がMrom_varindex0000なので、.ucfファイルには
* INST "MEM/Mrom__varindex0000" LOC = "RAMB16_X1Y3" [#hf05a0c7]
 と記述する。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS