« 2014年9月 | トップページ | 2014年11月 »

2014.10.29

18bit 20ch ADボード「AD360」の特性評価

特電では、現在

 one ZYNQ搭載125MHz 32chADCボード「Cosmo-Z」

 two 超高精度 20ch 18bit ADCボード「AD360」

の2種類のADCボードを作っています。両方ともET2014で披露します。

18bit 20ch ADボード「AD360」の特性評価をしました。18bit精度で±10Vを測るので、1LSB≒76μVです。

まず、入力をGNDにしたときのヒストグラムです。

Ad360_adc_8

±2LSBくらいの範囲に固まっています。標準偏差を求めると134μVくらいでした。これがノイズレベルです。

それから、簡易的に測ったINLです。±10Vの範囲でほぼ±100μVに収まっています。ギザギザしているのは、信号源のINLの問題なので、当ボード単体での実力は±50μVくらいではないかと思っています。

Ad360_adc_9

最後に、オーディオアナライザで作った5kHzでひずみ率-100dBの正弦波を入力して、FFTしてみました。

Ad360_adc_10

綺麗なスペクトラムです。入力信号が-25dBで、三次高調波が-115dBですから、-90dBが達成できたといえます。

| | コメント (0)

「Cosmo-Z」のLinuxでネットワークが使えるようになった

特電のスタッフが、ZYNQ搭載ADCボード「Cosmo-Z」のLinuxで、TCP/IPが動作するようにしてくれました。

先日の対策によってCosmo-Zのギガビット・イーサは動き出しましたが、Linuxでネットワークを起動させるにはデバイスツリーの変更が必要だったようです。

起動時のようす

Cosmoz_boot_ether

ちゃんと認識されてlinkupしたようです。

init.shに、

#!/bin/sh
ifconfig eth0 inet 192.168.2.39
route add default gw 192.168.2.1

みたいに書いておけば、外にも出られます。

Cosmozlinuxping

FTPやWGET等もできるようです。

これで、Cosmo-Zの全機能がそろいました。

そろそろ量産体制に入ろうかと思います。

| | コメント (0)

2014.10.27

AD360ボードでデータが取れるようになった

鋭意開発中の18bit 20ch AD変換ボード「AD360」でデータが取れるようになりました。

このAD360ボードはRX63NとSpartan-3Aを搭載しています。ADCのコントロールはFPGAで行い、データの処理はRXマイコンで行います。

Ad360_adc_1

FPGAは、ADCのデータをデコードしてBlockRAMで作ったFIFOに溜めます。FPGAは、RXマイコンの外部バス空間につながっていて、RXマイコンはFPGAのFIFOのステータスを見ながらデータを取得し、そのデータをSDRAMに溜めるという動作を行っています。

このADボードにはキャリブレーション機能というのがあって、入力をGNDに落としてそのときの電圧をオフセットとして引き算できるようになっています。オフセット補正後は、ほとんど0Vの電圧が記録されます。

Ad360_adc_2

平均値と標準偏差の計算もRXマイコンでやっています。

Ad360_adc_3

標準偏差はノイズレベルを表しますが、200~250μVと大きめの値が出ています。

それは、ボードの入力に換算した電圧だからです。このボードは±10Vの電圧を入力できるようにするため、途中で5分の1に分圧しています。ADCのノイズは40μV~50μV程度なのですが、入力に換算すると5倍しなければいけないので、200~250μVとして計算されてしまいます。

ADCのノイズ自体はどうにもならないのですが、ディジタルフィルタを作って何とかできないかなと思っています。

オフセット除去後の各チャネルの入力波形を見てみましょう。

Ad360_adc_4

ほぼ0V付近で推移しています。ギザギザしている1つ1つのレベルが1LSB(約77μV)なので、±2~3LSBの揺れでしょう。

最後に、ファンクションジェネレータで作った振幅約9.8Vの正弦波を入れてみます。

Ad360_adc_5_2

ちゃんと正弦波として表示されました。

ファンクションジェネレータで作った9.8Vppで1.5625kHzの正弦波を入れてみたところ、時間軸で見るとこんな感じですが、

Ad360_adc_6


FFTすると、1本の線となって見えました。

なぜ、1.5625kHzなのかというと、いま、サンプリング周波数が25kHzにしているので、25000/16が半整数になるからです。端数がでない周波数なのでファンクションジェネレータで作りやすいからです。こういう周波数を選ぶと窓関数を使わなくても鋭い周波数分解能が得られます。

(本当は25000/512×17、とか互いに素な値を選ぶのがよいのですが、ファンクションジェネレータがうまく合わせられない)

Ad360_adc_7

ざっと測ったところ、ひずみ率は-75dB程度でした。

ここで使っているファンクションジェネレータというのが、GWINSTEK社のSFG-2104で、ひずみ率は-55dBcなので、上のグラフが得られただけでも上出来です。

つまり、この高調波はADCボードのものではなく、ファンクションジェネレータから出ていると考えられます。

明日、会社に行ったら-100dBのオーディオアナライザで測ってみます。



| | コメント (0)

2014.10.26

18bit AD変換ボードのサンプルアプリを更新

特電18bit AD変換ボードのサンプルアプリを更新しました。

Ad18brd_2

→ 18bit A/D変換ボードの紹介ページへ


今回の更新でFFTができるようになりました。1MHzまで見えるスペアナができるようになりました。

ダウンロードはこちらです。全ソースコードも付いています。

● 18bit A/D テストアプリケーション 2014/10/26 Rev1.2

下の図は、CH1(青)は市販のファンクションジェネレータの出力する信号をFFTしたもので、CH2(赤)は18bit A/D変換ボード上の簡易DACが出力した疑似乱数(XorShift128)です。

18bitadc_fft_1

使ったファンクションジェネレータはDDS式なので、スプリアスが結構でています。アナログ式のオーディオアナライザをつなげば-100dBくらいまで減るでしょう。

このFFTの画面は毎秒47回ほど更新できているようです。やはり、ソフトウェアでFFTしたり、窓関数をかけたり、対数を取るところが重いです。本当ならばFPGA内のハードウェアでやらせてしまえばいいのでしょうが、18bitのデータを扱っているので、浮動小数点数のロジックを組むのが大変そうです。

さて、窓関数も何種類か選べます。

18bitadc_fft_2

ハニング、ハミング、ブラックマンくらいで十分だと思います。

このソフト結構すぐれもので、ヒストグラムとかも取れます。

18bitadc_fft_3

入力がGNDのときのノイズは40μVくらいで、上の図のヒストグラムは踊っているように見えます。

入力GND時のヒストグラムは・・綺麗なものです。

18bitadc_fft_4

FFTができるようになったら、面白くて、我ながらハマってしまいました。

インバータ式の蛍光灯に近づけてみたり

18bitadc_fft_5

うーん、何か面白い信号源がほしい。1000Vくらいの放電をさせてみてスペクトルをとってみようかな・・

このボードは、特電Artix-7ボードや、Spartan-6ボードを乗せて使います。

ご興味おありの方は、どうぞオンラインショップへお越し下さい。

↓↓↓↓

https://shop.tokudenkairo.co.jp/shopping/detail.php?shpdi=ADC18BRD

| | コメント (0)

2014.10.24

Cosmo-Zでギガビットイーサがはじめて動いた

ZYNQ搭載のADCボード、「Cosmo-Z」でギガビットイーサが初めて動きました。

1か月ほど前から動かそうと頑張ってきたのですが、なかなか動いてくれなかったこのギガビットイーサPHY。ついに原因がわかりました。

要するに、ZYNQとの相性が悪かったのです。

※「相性」の詳細は、月刊特電Vol6に書きます。ここでは相性とだけ書いておきます。

まず、このPHYチップを取り換えなければなりません。

Cosmozgbe_1

QFNだし、裏目にパッドがあるので、半田ごてでは外せません。

そこで、ヒートガンを使います・・・が、周りの部品まで外れてしまうこと困るので、アルミホイルで隠すように包みます。

Cosmozgbe_2

熱風が入り込まないようにカプトンテープで固定したりします。

そして、いざ、ヒートガン。

Cosmozgbe_3

ぶおおおおーん ぶおおおおーん

・・

ICが外れてパッドが出てきました。

Cosmozgbe_4

フラックスクリーナーで綺麗に拭いたら軽く半田メッキして、そこに新しいチップを載せて、再びヒートガンであぶります。

そして、新しいICに取り換えができました。

Cosmozgbe_5

なお、このように簡単に書きましたが、5回くらい挑戦してようやくできました。楽じゃないです。

それから、XILINXのSDKが作り出すPeriphtestのサンプルプログラムを動かそうとしましたが、どうもイーサネットPHYからフレームが送られてこないようです。

その原因は、SDKが作り出すサンプルプログラムは、ZedBoardで使われているギガビットイーサPHY(Marvel 88E1518)用のコードだからです。そのため、今回使った入手性の良いPHYではそのままでは動きませんでした。

なお、Marvel 88E1518は情報が公開されていない上に、入手も困難です。Digikeyとかでは買えません。つまり、ZedBoardと同じPHYは使えなかったのです。

だから、Digikeyでも買えて情報が公開されているPHYを使おうとしたのですが、サンプルのPeriphtestがそのままでは動かなかったのです。

地道にデバッグして問題点を見つけて、サンプルのコードを修正したところ、ちゃんと反応が返ってくるようになりました。

次の図は、イーサPHYのループバックテストで、任意の文字列を送ってみた結果です。C言語のソースコードをそのままイーサフレームに乗せて送り出しています。

Cosmozgbe_6

これで、RGMIIのTXDやRXD、TXENやRXDVなどの配線に問題がないことが確かめられました。

では、実際のLANにつないでみましょう。

Cosmozgbe_7

おっ!何か受信しています。IPのパケットのようです。

ということで、PHYからコネクタ間の配線も問題ないようでした。

ZYNQのギガビットイーサを動かすのになぜこんなに苦労したか、どこを修正したらすんなり動いたかというのは、次回の月刊特電Vol6に詳しく書こうと思います。

ご期待ください。

| | コメント (0)

2014.10.23

特電はET2014のETフェスタにも出店(?)します

特殊電子回路は、ET2014の2日目に開催されるETフェスタにも出展します。

浅草の銘酒「電氣ブラン」と軽食をご用意して、

皆様のご来場をお待ちしております。

※電気の展示会だから、当然、電氣ブランでしょう。

○○の件や、▲▲のことなど、ネットでは書かなかったいろんな話も、
ETフェスタの会場でならオープンにしてしまいます。

 「あの話は結局なんだったの?」

 「あの件の真相は!?」

など、なんでもお気軽にお聞きください。

スタッフ一同、皆様のご来場をお待ちしております。

そうそう、忘れていました。

特電のブースはF-12番です。XILINXの右側の細い路地です。

| | コメント (0)

2014.10.21

AD360ボードの火入れ

本日、開発中の新製品「AD360 データロガー」に火入れを行いました。

※18bitのADを20ch持つのでAD360という名前にしました

まず、現在の写真を掲載します。

表面には、SMAのコネクタやイーサのコネクタを取り付けました。

Ad360_top2

裏面も、足りなかった抵抗やコンデンサを取り付けました。

Ad360_bot2

one 最初の電源ONのとき、スイッチング電源の1.2Vと3.3Vの電圧設定が逆になっていて、Spartan-3Aのコア電圧に3.3Vをかけてしまいました。電源電流もたくさん流れました、が大丈夫でした。結構丈夫なものですね・・

two ±2.5VをつくるLDOの選定を間違えていて、±2.5V出力のところに±3Vくらい出ていたりしました。

three 100Ωの半固定抵抗を発注すべきところを100kΩの半固定抵抗を50個発注してしまっていて、しかも1個600円くらいするので、結構ショック。

four サイド取付型のSMAコネクタの寸法を間違えて、部品やネジ穴と干渉してしまった。

five イーサネットPHYの水晶が発振しない(たぶん裏面のGNDパッドがちゃんとついていない)

six Spartan-3AがなぜかSPI ROMを認識しない。

seven RX63Nにつないだ時計用水晶が発振しない。

eight MEMS発振器の取り付け方向が逆で、逆電圧をかけてしまった・・・

nine SDRAMの容量が異なっていたため、認識されるエリアが狭い

とりあえず、今日のところ出た問題はこのくらいです。①②⑧⑨は解決しました。

    impactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpactimpact

ではかいつまんで説明していきましょう。

まず、今回はRX63Nマイコンを使っているので、RXduinoというライブラリを使いました。RXduinoライブラリを使うとRXマイコンのプログラムを簡単に作れます。今回は、RXduinoの持つ、USB-UART、SPI、SDカード、SDRAM、RTCといった機能を使おうと思います。

まずはUSBで通信しないとはじまりません。RXduinoに、このAD360ボードのボード定義を追加して、サンプルプログラムのnahimon(なひたふモニタ)をコンパイルして書き込みます。

USBでつないでTeraTermで仮想COMポートとしてオープンできるようになりました。

Ad360_test1_2

こんな画面が出て、メモリのダンプができます。SDRAMは0x08000000番地から見えるようです。

Ad360_test2

SDRAMのテスト用に乱数を読み書きするプログラムを作りました。XorShiftとうアルゴリズムで作った疑似乱数をSDRAMに書いて、読んで、比較するという単純なものです。16MByteを検査するのに約3秒でした。rand()関数よりずっと速いです。

Ad360_test5

実は、SDRAMを使えるようにするには、結構苦労しました。RX63Nのピンはいろいろな機能で複雑にマトリクスされているのですが、SDRAMとして使うには

 MPC.PFCSE.BYTE      = 0x01;   // CS0を許可
MPC.PFCSS0.BYTE     = 0x01;   // P60をCS0に
MPC.PFAOE0.BYTE     = 0x3f;   // A8~A13出力
MPC.PFBCR0.BYTE     = 0x11;   // PA0~PA7をアドレスバス、PE0~PE7をI/Oポート
MPC.PFBCR1.BYTE     = 0xd4;   // P54をALE端子 SDRAM端子許可 DQM1許可 SDCLK許可

という設定が必要でした。RX62Nと比べて変わっています。

また、非常に許しがたい仕様なのですが、RXマイコンはSDRAMのBAが、ADDRの上の方のビットとして出てきます。

  • 例えば、A13までを通常のアドレスピンとして使ったら、BA0はA14、BA1はA15から出てきます。
  • A12までを通常のアドレスピンとして使ったら、BA0はA13、BA1はA14から出てきます。

SDRAMのアドレスピンにあるNCのところにダミーのアドレス線をつないでおくことができないのです。わかりやすく言えば、「将来の拡張に備えて大きい容量のSDRAMを乗せられるような基板設計にしておくことができない」のです。

Ad360_test4


上の図でいえば、A12の端子はCPUのA13につながっている(16bit接続だから)のですが、ここは今回使用したSDRAMではNCなのですが、RXマイコンのSDRAMコントローラはNCのピンをスキップして次のA14からBAに使うという融通がききません。

※まあ、それでもジャンパを飛ばして、なんとか全16MByteを認識できるようにしました

それから、FPGAのほうも順調に進んでいます。コアに3.3VをかけてしまったSpartan-3Aですが、ちゃんとバウンダリスキャンで端子が見えました。書き込みもできます。

Ad360_test3


しかし、コンフィグ用のSDRAMが見えないのが困っています。

| | コメント (0)

2014.10.20

18bit 20ch ADボードを手実装

新規開発製品の18bit 20ch ADボード、通称「AD360」の基板があがってきたので、最初の1枚を手実装しました。

表面には、Spartan-3AとRXマイコンが乗っています。左側がアナログ部、右側がディジタル部です。中央には基板を上下に重ねるメザニンコネクタがあります。また、SDカードソケットが3つあります。

Ad360_top_2


裏面にはSDRAMと、SDカードソケットが乗っています

Ad360_bot

こんな感じです。抵抗やコンデンサがいっぱいで疲れた!!!

肩がこりました。

| | コメント (0)

2014.10.17

Cosmo-ZのADC波形が取れた

Cosmo-ZのADCで取った波形をUSB経由でパソコンに転送することができました。

100kHzくらいで0.1Vppの正弦波をDDSで作って、それをキャプチャしています。

Cosmozadc1

途中で髭のようなノイズが乗っているのは、DDSにもとからあるノイズです。オシロで見るよりもくっきりと見えています。

次は8chのサンプリング、最終的には32chのサンプリングを目指します。

あと、光電子増倍管とプラスチックシンチレータを2セット発注しました。来週から、これらの機材を使って、二次宇宙線を検出し、ディスクリ(閾値以下の信号を無視する)や、コインシデンス(同時発生)の処理などをVivado HLSでできるかどうか試してみたいと思います。

| | コメント (0)

2014.10.14

A/Dボードを修正して出図

今回の基板はP板.comなので、金曜日の16時ごろに出図しても、火曜日の15時に出図しても、出来上がりは同じ日です。

なので、連休を利用してもう少し見直すことにしました。

結局、A/D変換子基板を別基板にすることにしました。

Ad360_14

これで確定です。

出来上がりは金曜日。それから徹夜で手実装です。


| | コメント (0)

2014.10.10

新しいA/D変換ボードの出図

本日、A/D変換ボードを出図しました。

こんな感じ。

Ad360_11.

ポリゴン貼っていて見にくいので、見やすくしてみましょう。

表面はこんな感じ。

Ad360_12

裏面がかなりキテます。

Ad360_13

このA/D変換基板のスペックですが、

  • RXマイコン搭載でスタンドアローン動作
  • 18bit A/D変換器(250kpsサンプル)を5ch搭載
  • 基板を5段重ねて最大20chまで計測可
  • SD/MMCカードを最大768GByte搭載可(1週間くらい計測)
  • ネットワーク対応
  • 20ch動作時の消費電力2Wくらい

となっています。

簡単にいえば、人が近づけない場所に設置する、高精度のマルチチャネル・データロガーです。

RXマイコンは、RX63Nの144ピンを用い、裏にSDRAMを貼り付けています。20個のA/D変換器の制御はSpartan-3Aで行います。RXとSpartan-3Aの間は16bitのデータバスとSPIバスでつないでいます。データレート的にはおそらくSPIだけで十分でしょうが、念のため16bitのCS0空間にも割り当てておきました。EXDMACを使うかどうかは未定です。

このA/D変換装置は、単に「A/DコンバータをFPGAやCPUにつなげてみました」といった感じの回路ではなく、INL/DNL、SINAD、ノイズ、ゲイン誤差、オフセット誤差を極限まで良好に保つための工夫が行われています。

10月17日(金)に私の手元に届き、週末に1台実装して、10月20日(月)から実装屋さんにて10枚くらいの実装を行う予定です。

さて、うまく動くといいんですが、どうなることでしょう。

| | コメント (2)

CEATECに行ってきました

目的は、効果的な展示ブースを作るためです。

どんなブースなら人が入りやすいか、そんなことを考えるヒントを得るために行ってきました。

| | コメント (0)

2014.10.08

新しいA/D変換ボードの開発が進んだ

設計3日目。

ついにここまできました。

また、イーサコントローラも配線完了。

FPGAやら電源の配線を終え、SDRAMとRXマイコンを配置しました。SDRAMはRXの裏に貼り付けました。

Ad360_5

RXは、RX63NのTQFP144です。

基板は6層で、表面はこんな感じ。

Ad360_6

裏面はこんな感じ。裏にはCやRがたくさんあって、結構キテます。

Ad360_7

3D表示してみますと、

Ad360_8

裏はこんな感じ。

Ad360_9

早く会いたい!










| | コメント (0)

2014.10.07

新しいA/D変換ボードを開発中

新しいA/D変換ボードを開発中です。

今回のA/D変換ボードは、データロガーのようなものです。

18bit 250kspsで最大20chの記録ができます。一度設置したら複数のSD/MMCカード(最大768GB)に長時間記録ができるので、人がいられないような環境(極地とか放射線量の高い場所とか、高所とか)に設置して何日もデータを取り続けるといった用途を想定しています。

サイズは下記の図のとおり。

Ad360_3

しかも、めちゃくちゃ低消費電力です。

この基板を4段重ねることで20chのキャプチャを可能にします。

20個のA/D変換器のオフセットとゲインを厳密に合わせるような工夫を盛り込んでいます。このしくみがうまく動くかどうか楽しみです。

データ処理には、小規模なFPGAと、RXマイコンを積んでいます。FPGAはA/Dコンバータの制御や、ゲインやオフセットの誤差補正の計算、ディジタルフィルタなどを行い、RXマイコンはメモリカードへの書き込みやネットワークの通信を行います。

ET2014でお披露目できるといいなと思っています。

| | コメント (0)

2014.10.02

月刊特電Vol5を発送しました!

お待たせしました!月刊特電Vol5を発送しました!

Gettoku5

いままでは発送だけでも大変だったのですが、みんなで詰めたりラベル貼ったりしていたら、あっという間にできてしまいました。

人がいるってすごい!

| | コメント (0)

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'を行って、接続が正しく行われているかを調べるというわけです。

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

sun

また、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



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

| | コメント (0)

« 2014年9月 | トップページ | 2014年11月 »