« UltraScale+のPLにJTAGで書き込み成功 | トップページ | MITOUJTAGがネイティブでUltraScale+の書き込みに対応 »

2018.10.13

UltraScale+のバウンダリスキャンがおかしい件

UltraScale+のバウンダリスキャンにおいて、コントロールセルがおかしい問題は、Answerに書かれていました。

https://japan.xilinx.com/support/answers/62985.html

実はSpartan-6のときにも同様の問題があったのです。

6シリーズのときは出力ピンとして誤認識されてしまうのに対して、UltraScaleでは入力ピンとして誤認識されます。

7シリーズでは全く問題なかったので、6シリーズとUltraScaleを設計したのは同じグループなのかもしれない。偶数シリーズと奇数誤で設計担当グループが交互に変わるとか、そういう事情があるのかもしれない。

さて、上記のAnswerによると、バウンダリスキャンで方向セルを正しく読めるようにするには、OBUFの代わりにT=0にしたOBUFTを使えとのことでした。

出力ピンにOBUFTを使うようにしたら、PLの入出力セルの方向が正しく読めるようになりました。

Zubscan_1

この波形を作るために書いたコードはこんな感じです。

Zubscan_2

カウンタがある一定値以上になると入力になり、一定値未満ならばバイナリでカウントアップする値を出力するというものです。

これまでにわかっているUltraScale+のJTAGの仕様(バグ?)をまとめると、

  • PLはコントロールセルから正しくない値が読み出される。PSは問題ない。
  • PSはSAMPLE時に入出力セルが逆になる。PLは逆にならなない。
  • EXTEST時はPSでも入出力セルは逆にならない。
  • DDR4 SDRAMとのやりとりは見えない。

ということなのですが、PSとPLとDDR4でバウンダリスキャンの作りが違って、みんなどこかしら問題を抱えているわけなのです。

どうなっているんでしょう!?

|

« UltraScale+のPLにJTAGで書き込み成功 | トップページ | MITOUJTAGがネイティブでUltraScale+の書き込みに対応 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« UltraScale+のPLにJTAGで書き込み成功 | トップページ | MITOUJTAGがネイティブでUltraScale+の書き込みに対応 »