通信のための簡単なデータフォーマット

ソフトウェアとデジタル回路、またはソフトウェアの異なるプロセス間で通信する際の利用できるアプリケーション・レベルでの簡単なデータフォーマットについて説明する。 データ通信にはシリアル通信、TCP/IP, PCIe, USB等様々な規格があるが、ここで導入するのはこれらに変わるものではなく、これらに乗っかったアプリケーション・データのフォーマットについてである。データは1バイト単位とする。

フォーマット

バイト順

意味

内容

0

先頭文字

'M'

先頭バイトを示す目印

1

データ長

4以上の整数

パケット全体のバイト数

2

データ・タイプ

整数

アプリケーション毎に決める任意の値

3

予備バイト

0

予備

4~N-1

データの中身

アプリケーションによる

個別のアプリケーション例

NexysVideoによるFEI4との通信

データ・タイプ

役割

データの内容

1

echo

任意のデータ

2

レジスタへの書き込み

アドレス(1 byte)+データ(4 bytes)

3

レジスタからの読み出し

アドレス(1 byte)

4

フロントエンドへのコマンド送信

FEI4へ送るコマンド列

5

IDELAYにDelay値を設定

無し。値は事前にレジスタに書き込んでおく。

6

BERT開始

無し

7

BERT終了

無し

複数バイトのデータを送る場合、バイト列の並びはbig endianとする。

内部レジスタ(一例なので使いやすいように決めて下さい。)

バイト順

意味

内容

ソフトウェアからの読み出し/書きこみ

 回路ブロックからの読み出し/書きこみ

0

コマンド

W

-

1

DELAY

Delay値1+Delay値2

R/W

R/W

2

BERT_PRESET_N0

BERTでテストするビット数(下位の数字)

R/W

W

3

BERT_PRESET_N1

BERTでテストするビット数(上位の数字)

R/W

W

4

BERT_N0

BERTでテストしたビット数(下位の数字)

R

W

5

BERT_N1

BERTでテストしたビット数(上位の数字)

R

W

6

BERT_E0

BERTでのエラービット数(下位の数字)

R

W

7

BERT_E1

BERTでのエラービット数(上位の数字)

R

W