2011年7月16日土曜日

CAN IPのDEBUG 6

VHDL Reference CAN User's Manualに記載されている検証内容を参考にして
simulationを進めているが、3.2.2 biterrorの各項目についてほぼsimulationできた。
ただし、このManualに記載されている項目は規格と矛盾する箇所もあった。 
Test of transmitterの項目14ではError Passive状態時のreserved bitがdominant
場合と、Passive Error Flagの先頭でdominantが検出された場合の動作を検証して
いて後者については、
The transmitter detects a bit error and starts sending a Passive Error Flag again.
となっている。 しかし、規格書には次のような記述がある。
A TRANSMITTER sending a PASSIVE ERROR FLAG and detecting a 'dominant'
bit does not interpret this as a BIT ERROR  (ERROR HANDLING / Error Detection / BIT ERROR)
CAN busに繋がっている全てのnodeの状態がError Passiveとは限らず、Error Active
のnodeも存在する可能性はある筈だ。 Error Passiveが出力するPASSIVE ERROR 
FLAGはRECESSIVE、 Error Activeが出力するACTIVE ERROR FLAGはDOMINANT
でこれらが競合した場合はDOMINANTになる。 従って、Error PassiveのnodeがPASSIVE
ERROR FLAGを出力したのにDOMINANTが検出されたからと言って、それは、bit error
とは言えないと思う。従って、User's Manualの記述は誤りだと思う。 ということで、
この部分は無視することにした。
User's Manual記載の項目以外にも検証項目を幾つか追加した結果、Line coverageは
100%にすることができた。

ただし、改めて規格書を読み返してみると、まだまだ検証できていない項目がある。

0 件のコメント:

コメントを投稿

ERROR: Failed to spawn fakeroot worker to run ...

なにかと忙しくてなかなか趣味の時間を確保できない。 ...orz  家の開発機のOSはLinux Mintなのだが、最近バージョンを22に更新したところ、myCNC用のpetalinuxをビルドできなくなってしまった。ビルドの途中で ERROR: Failed to spawn ...