data2mem
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[ASAP Top]]
data2mem はビットファイルに含まれたBlockRAMの情報を編集し...
論理合成配置配線のプロセスなしにRAM/ROMの値を書き換えて...
しかしその実行プロセスが複雑なので、ここに使い方を示した...
-メモリの書き方
とりあえず何でもよし。
例えば僕は次の感じで書きました。
#ref(memory.v)
-必要なファイル
1.bitfile~
2.*.ll~
3.*.syr~
4.*.ucf~
5.*.bmm~
6.*.mem~
1.まずビットファイルを生成する。これはいうことないよね。
2.3.4. *.llにはBlockRAMがどこに配置されたかの情報が示さ...
例えば
Bit 2235597 0x04000024 2285 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235611 0x04000024 2299 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235625 0x04000024 2313 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235653 0x04000024 2341 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235667 0x04000024 2355 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235681 0x04000024 2369 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235695 0x04000024 2383 Block=RAMB16_X1Y3 Latch=DO...
っとあれば、あぁこれは X1Y3にBRAMが配置されたんだとわか...
ここで、該当RAMがいかなる名前に推論されたかは、.syrレポ...
例えば、
Synthesizing (advanced) Unit <memory>.~
INFO:Xst - The ROM <Mrom__varindex0000> will be implement...
INFO:Xst - The RAM <Mrom__varindex0000> will be implement...
---------------------------------------------------------...
| ram_type | Block ...
---------------------------------------------------------...
| Port A ...
| aspect ratio | 1024-word x 18-bit ...
| mode | write-first ...
| clkA | connected to signal <CLK> ...
| weA | connected to internal node ...
| diA | connected to internal node ...
| doA | connected to signal <OUT> ...
---------------------------------------------------------...
| optimization | speed ...
---------------------------------------------------------...
Unit <memory> synthesized (advanced).~
とあれば、これはROMの名前がMrom_varindex0000なので、*.uc...
INST "MEM/Mrom__varindex0000" LOC = "RAMB16_X1Y3"
と記述する。
5. bmm ファイルは例えば以下のように書ける。
ADDRESS_SPACE MEM RAMB16 INDEX_ADDRESSING [0x00000000:0x0...
BUS_BLOCK~
MEM/Mrom__varindex0000 [15:0] LOC = X1Y3;~
END_BUS_BLOCK;~
END_ADDRESS_SPACE;~
ADDRESS_SPACE の次の MEM は何を書いても構わない。
続いてRAMB16 は他に RAMB18, RAMB32, RAMB36などインスタン...
INDEX_ADDRESSINGはおまじない。(誰か教えてください)
その次の空間にはアドレスの開始位置から終了位置までを書く。
今回の場合は0〜1023番地までのメモリなので 0 〜 3ff まで...
6. mem ファイルは
@00000000
から書き始め、その後、値を16進数で書いていく。
今回の場合は
0001~
0002~
0004~
.....
のように書いてよい。んですべてを記述しなくても何も記述が...
最後に
$ data2mem -bm hoge.bmm -bd hoge.mem -p <デバイス名スピ...
具体的には
$ data2mem -bm ledTop.bmm -bd ledTop.mem -p xc5vsx50t-1-...
このコマンドによってledTop_rp.bit が生成されて目出度し。
Xilinxによると作業効率が100倍以上向上する手法らしいので...
終了行:
[[ASAP Top]]
data2mem はビットファイルに含まれたBlockRAMの情報を編集し...
論理合成配置配線のプロセスなしにRAM/ROMの値を書き換えて...
しかしその実行プロセスが複雑なので、ここに使い方を示した...
-メモリの書き方
とりあえず何でもよし。
例えば僕は次の感じで書きました。
#ref(memory.v)
-必要なファイル
1.bitfile~
2.*.ll~
3.*.syr~
4.*.ucf~
5.*.bmm~
6.*.mem~
1.まずビットファイルを生成する。これはいうことないよね。
2.3.4. *.llにはBlockRAMがどこに配置されたかの情報が示さ...
例えば
Bit 2235597 0x04000024 2285 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235611 0x04000024 2299 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235625 0x04000024 2313 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235653 0x04000024 2341 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235667 0x04000024 2355 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235681 0x04000024 2369 Block=RAMB16_X1Y3 Latch=DO...
Bit 2235695 0x04000024 2383 Block=RAMB16_X1Y3 Latch=DO...
っとあれば、あぁこれは X1Y3にBRAMが配置されたんだとわか...
ここで、該当RAMがいかなる名前に推論されたかは、.syrレポ...
例えば、
Synthesizing (advanced) Unit <memory>.~
INFO:Xst - The ROM <Mrom__varindex0000> will be implement...
INFO:Xst - The RAM <Mrom__varindex0000> will be implement...
---------------------------------------------------------...
| ram_type | Block ...
---------------------------------------------------------...
| Port A ...
| aspect ratio | 1024-word x 18-bit ...
| mode | write-first ...
| clkA | connected to signal <CLK> ...
| weA | connected to internal node ...
| diA | connected to internal node ...
| doA | connected to signal <OUT> ...
---------------------------------------------------------...
| optimization | speed ...
---------------------------------------------------------...
Unit <memory> synthesized (advanced).~
とあれば、これはROMの名前がMrom_varindex0000なので、*.uc...
INST "MEM/Mrom__varindex0000" LOC = "RAMB16_X1Y3"
と記述する。
5. bmm ファイルは例えば以下のように書ける。
ADDRESS_SPACE MEM RAMB16 INDEX_ADDRESSING [0x00000000:0x0...
BUS_BLOCK~
MEM/Mrom__varindex0000 [15:0] LOC = X1Y3;~
END_BUS_BLOCK;~
END_ADDRESS_SPACE;~
ADDRESS_SPACE の次の MEM は何を書いても構わない。
続いてRAMB16 は他に RAMB18, RAMB32, RAMB36などインスタン...
INDEX_ADDRESSINGはおまじない。(誰か教えてください)
その次の空間にはアドレスの開始位置から終了位置までを書く。
今回の場合は0〜1023番地までのメモリなので 0 〜 3ff まで...
6. mem ファイルは
@00000000
から書き始め、その後、値を16進数で書いていく。
今回の場合は
0001~
0002~
0004~
.....
のように書いてよい。んですべてを記述しなくても何も記述が...
最後に
$ data2mem -bm hoge.bmm -bd hoge.mem -p <デバイス名スピ...
具体的には
$ data2mem -bm ledTop.bmm -bd ledTop.mem -p xc5vsx50t-1-...
このコマンドによってledTop_rp.bit が生成されて目出度し。
Xilinxによると作業効率が100倍以上向上する手法らしいので...
ページ名: