通信のための簡単なデータフォーマット
ソフトウェアとデジタル回路、またはソフトウェアの異なるプロセス間で通信する際の利用できるアプリケーション・レベルでの簡単なデータフォーマットについて説明する。 データ通信にはシリアル通信、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 |