FC2ブログ

data2memでMico32のプログラムを書き換えたい(2)

bitファイル内のMico32プログラム(BRAMの初期値)をdata2memで書き換えてみる実験中。

■データ用プログラムの書き換えに成功?
○ucf
INST "mico32_vga_1/mico32/data_ram32_core/RAMB36_0" LOC = "RAMB36_X0Y6" ;

○bmm
ADDRESS_SPACE mico32inst RAMB32 INDEX_ADDRESSING [0x00000000:0x000003ff]
BUS_BLOCK
mico32_vga_1/mico32/data_ram32_core/RAMB36_0 [31:0] PLACED=X0Y6;
END_BUS_BLOCK;
END_ADDRESS_SPACE;

○mem
  ※ ほんとはRAMB36のメモリ全て埋め尽くす分のmemファイルにすべきだが、
    自分が書いたCコンパイルの結果、データ用に格納される値はこれだけ。
    これ以降は全て0が初期値。
    data2memでは指定しないアドレスは0で埋め尽くすらしいので、下記
    結果検証の通り不一致無しになった。

@00000000
59455300
00000000
00000001

○コマンド
data2mem -i -bm mico32_vga.inst0.bmm -bd data_ram_data.v.inst0.mem -bt fpga_top_ramb36.bit -p xc5vlx50 -o b fpga_top_ramb36_data.bit

○結果検証
zdiff fpga_top_ramb36_data.bit fpga_top_ramb36.bit

○考察
ん?なんだか、出来たっぽいぞ。Cygwinでzdiff不一致無しとの結果が。
ちなみにmemファイルの番地指定(@の行)はdata2memユーザガイドとか見た時は、
CPUのメモリマップという理解でいたのだが、「@0」で成功してるって事は理解が違うのかな?
まあ、深い事は気にせず次に行こう。
(気にするべきだと思うが)面倒な事はせず楽しくやるのが優先だ。

  ※ ちなみに、値がたくさん入ってる命令用プログラムの方を先に同じ事やって不一致多発。
     バイナリエディタStirlingで比較機能使って見たら、不一致多過ぎて萎えた。
     データ用で初めて、zdiffがPassしてうれしい。
スポンサーサイト



コメントの投稿

非公開コメント

カレンダー
01 | 2020/02 | 03
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード