« ET2014に出展します! | トップページ | 月刊特電Vol5を発送しました! »

2014.10.01

MITOUJTAGでインターコネクトテストに成功

MITOUJTAGの新・基板検査機能として、インターコネクトテスト機能を開発しています。

インターコネクトテストというのは、JTAGバウンダリスキャン対応のデバイス同士の配線の接続検査です。一方のICからテストパターンを出して、もう一方のICで正しく受け取れるかどうかを見ます。

したがって、FPGAやCPUやCPLDが2個以上、太いバスでつながっている基板を使って検証するのですが、そういう基板はなかなかありません。最近では大きなFPGA1個に入れてしまうので・・なかなかそういったものは・・

・・

いや、あるじゃないですか!

Mj_intercon_blanca


それは、BLANCAです。

BLANCAは、確か、2つのFPGAがローカルバスとPCIバスでつながっていて、しかも、SDRAMやNORフラッシュもついているはず。

想像ですが、こんな感じだったような・・

Blanca_connect

BLANCAでは、2個のFPGAの間を、ローカルバスとPCIバスでつないでいて、中央のFPGAはSDRAM(32bitデータ幅)とCPLDがつながっていて、CPLDにはNOR型フラッシュROMがつながっています。

FPGA間のローカルバスは、アドレス29bit、データ32bitという超太い配線です。他にも割り込み信号があったと思います。

まさにインターコネクトテストのために生まれてきたようなボードではないでしょうか!??

手元にネットリストのファイルがないので、自分で作るしかありません。とりあえず回路図をみながらネットリストのようなものを打ち込んでいきます。

$PACKAGES
FG456! XC3S1500-FG456; U1
FG456! XC3S400-FG456; U2
TSOP! MT48LC4M32B2TG; U4
TQ144! XC95288XL-TQ144; U7
$NETS
SD_CLK;  U1.N3 U4.68
SD_CKE;  U1.M3 U4.67
SD_nCS;  U1.W1 U4.20
SD_nRAS;  U1.M2 U4.19
SD_nCAS;  U1.Y2 U4.18
SD_nWE;  U1.N1 U4.17
SD_DQM<0>;  U1.N2 U4.16
SD_DQM<1>;  U1.P4 U4.71
SD_DQM<2>;  U1.H1 U4.28
SD_DQM<3>;  U1.H2 U4.59
SD_MBA<0>;  U1.L2 U4.22
SD_MBA<1>;  U1.K2 U4.23
・・・

こんな感じで書いていきます。全部を書くと大変なので、SDRAMと最低限の接続だけ書いてみました。

接続検査のための配線接続を抽出すると、次のようになります。

Name     PCI_AD
FromAddr IOB
ToAddr   AVP
From     2:B19 A12 F17 E13 B14 A14 B15 A15 F12 F13 E14 F16 B16 A16 B17 B18 D19 E18 G18 F18 C22 D21 F19 E21 E20 E19 D20 G22 E22 F21 D22 G21
To       3:F13 D13 E14 D14 B13 A14 B14 B19 E15 D15 F16 E16 B18 C17 B17 B15 G17 D19 D20 E19 K22 K21 G22 G21 E20 E18 F20 G18 F21 E22 E21 D21

Name     PCI_AD
FromAddr AVP
ToAddr   IOB
From     3:F13 D13 E14 D14 B13 A14 B14 B19 E15 D15 F16 E16 B18 C17 B17 B15 G17 D19 D20 E19 K22 K21 G22 G21 E20 E18 F20 G18 F21 E22 E21 D21
To       2:B19 A12 F17 E13 B14 A14 B15 A15 F12 F13 E14 F16 B16 A16 B17 B18 D19 E18 G18 F18 C22 D21 F19 E21 E20 E19 D20 G22 E22 F21 D22 G21
 
Name     PCI_CTRL
FromAddr IOB
ToAddr   AVP
From     2:D18 C18 A13 B13 K17 K18 H22 C19 D17 C17 B11 C12 E17 A18 C21 C20
To       3:C13 E12 A13 A12 E13 A19 G19 F17 D17 B11 C18 A11 E17 A15 F18 C22
 
Name     PCI_CTRL
FromAddr AVP
ToAddr   IOB
From     3:C13 E12 A13 A12 E13 A19 G19 F17 D17 B11 C18 A11 E17 A15 F18 C22
To       2:D18 C18 A13 B13 K17 K18 H22 C19 D17 C17 B11 C12 E17 A18 C21 C20

上のデータは、PCIのADバスと制御信号の接続検査をするためのものです。出力側と入力側を入れ替えて、このパラメータでインターコネクトテストを行ってみました。

Mj_intercon_6


まず、PCI_ADバスが1ビットずつ動いていきます。

Mj_intercon_1


それが終わったら、こんどは制御線が1ビットずつ動いていきます。

Mj_intercon_2

コンソールの画面にはこのように表示されます。

Mj_intercon_3

以上で示したように、指定されたバスに対してWalking '0'とWalking '1'を行って、接続が正しく行われているかを調べるというわけです。

今は配線接続を抽出が完全には自動化できていないのですが、もう少し進めば、マウスでポチポチとやるだけで、基板全体を網羅するような接続検査ができるようになると思います。

また、BLANCAのネットリストからSDRAMの配線を自動的に推定することもできました。以下が、SDRAMを制御するためのFPGAの端子です。

CAS 2:Y2
CKE 2:M3
CLK 2:N3
CS 2:W1
RAS 2:M2
WEN 2:N1
DQ 2:G4 2:G3 2:G1 2:F2 2:F3 2:E2 2:F4 2:E3 2:C2 2:D3 2:D1 2:D2 2:C3 2:C4 2:E1 2:C1 2:Y1 2:W2 2:V2 2:M1 2:N4 2:T3 2:T4 2:R4 2:P1 2:P2 2:R1 2:R2 2:T1 2:T2 2:U3 2:V1 
ADDR 2:Y3 2:K1 2:G2 2:L3 2:L4 2:K3 2:K4 2:J4 2:H4 2:J1 2:L1 2:J2 
BA 2:K2 2:L2 
DM 2:H2 2:H1 2:P4 2:N2 

例えば、RASを動かしたいならば、2番目のJTAGデバイスのM2番ピン動かすということです。

こうしてSDRAM検査アルゴリズムを実行したらちゃんと読み書き検査ができました。

Mj_intercon_5

検査時はバウンダリスキャンを使って、FPGAからこんな波形を送り込んでいます。

Mj_intercon_4



このように、ほぼマウスクリックだけで様々な検査ができるようなツールをめざして、日々改良を続けています。

|

« ET2014に出展します! | トップページ | 月刊特電Vol5を発送しました! »

コメント

コメントを書く



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




« ET2014に出展します! | トップページ | 月刊特電Vol5を発送しました! »