7 |
BSVによるメモリダンプモジュールの設計 |
上位モジュールの設計
1バイトの送信はうまく行ったようなので、上位モジュールMemoryDumpを設計します。概略仕様を以下に示します。
- 1ワードが4bitで構成されるメモリをダンプします。
- メモリのアドレス0からの内容を65536ワード送信します。
- 256行×256列で送信し、1行毎にチェックサムを送信します。
- 1バイトのバイナリは表示可能な2バイトのアスキーコードに変換します。
- 行末は改行します。
メモリ空間は64Kバイトあります。以下にアルゴリズムをC likeの疑似コードにより示します。
疑似コード
int x, y, address;
byte data, checksum, upper, lower;
address = 0;
for (y=0 to 255) {
checksum = 0;
for (x = 0 to 255) {
data = memory[address++];
checksum += data;
data += (data >= 10) ? (-10 + "a") : "0";
uart.load(data);
}
upper = (checksum >> 4) & 8'h0f;
upper += (upper >= 10) ? (-10 + "a") : "0";
uart.load(upper);
lower = checksum & 8'h0f;
lower += (lower >= 10) ? (-10 + "a") : "0";
uart.load(lower);
uart.load(LF);
}