« 2014年12月 | トップページ | 2015年2月 »

2015.01.30

フォトマルの筐体

今日、アルミの材料が届きました。

すんげーひんやりしてて気持ちいい。

Pmt_al


プラスチックシンチレータとフォトマルを入れる筐体に使います。

自分は穴あけとか金属加工は苦手なので、材料持ち込みで加工してくれる業者さんを探して依頼することにします。

完成すると、

Pmt_kansei

フォトマルが二重のアルミ箱の中に納まる形になります。

四角柱の筐体の中から、にゅっと、円柱が出てくるのです。

結構重い。

| | コメント (0)

2015.01.29

MITOUJTAGに波形エクスポート機能を追加

MITOUJTAGのロジアナ機能で取った波形を、他のツールで読み込みできるよう、波形のエクスポート機能を作りました。

画面左のツリーでロジアナの項目を右クリックして、エクスポートを選ぶだけ。

Wave_export

ダイアログが開いて、そのままVCDファイルとしてエクスポートできます。

Wave_export2

VCDというのは、Value Change Dumpのことで、値が変換したときだけその値を記録するというファイル形式です。Verilogの一部として、IEEEで規格化もされている業界標準形式なのです。

実験として、楽天Koboの動作中のCPUの端子の状態をバウンダリスキャンで取得し、それをMITOUJTAGで見ましょう。

Kobobscan

Koboの画面をタッチしたり、ボタンをおしたり、いろいろいじくりまわしました。

そのときのCPUの端子をバウンダリスキャンでキャプチャして波形にしてみます。赤い波形は出力信号、緑の波形は入力信号です。

Kobomitoujtag

これをVCDでエクスポートします。VCDを読み込めるツールは、フリーのものではGTKWaveがあります。GTKWaveで波形にすると、

Kobogtkwave

GTKWaveは画面上のボタンなどがGTKなのでWindowsの標準的なものとはちょっと異なりますね。

他にVCDが読めるツールとしては、シェアウェアのVerilogシミュレータのVeritakなどがあります。普通にVCDをオープンできて、このように読めました。

Koboveritak

ここにKoboの動作時の波形ファイルを置いておくので、みなさん、よかったら試してみてください。

あと、MITOUJTAG2.6のロジアナを強化するパッチはこちらから無償でダウンロードできます。

お楽しみに!

| | コメント (0)

2015.01.24

本日発売のFPGAマガジン

本日、1月24日、FPGAマガジンNo.8が発売されます。

私「なひたふ」は特集記事を2本書かせていただき、また、特電スタッフの木村が一般記事を1本書かせていただきました。

それから、当社のZYNQ搭載ADCボード「Cosmo-Z」が表紙の写真を飾ることができました。

Fpgamag8

私は、高精度なADCのアナログフロントエンド回路を作るノウハウと、LVDSで送られてきた高速ADCの信号をデコードする話を書かせていただきました。

木村のほうは、ZYNQのLinuxでハードウェア割り込みを使う方法を書かせていただきました。ZYNQで割り込みを使う話は、これまでのZYNQ解説本や解説記事では出てこなかった話なので、他では読めない記事だと思います。

どうぞお楽しみに!

| | コメント (2)

2015.01.22

新しいハイボル

光電子増倍管用の高電圧源(ハイボル)に、いままではaidtendoで購入したインバータに倍電圧整流回路を使っていたのですが、

Old_hv

あまりにもノイズが大きいという問題がありました。

下の図はaitendoのインバータで作ったハイボルの出力を、100MΩと1MΩで100分の1に分圧して測った波形なのですが、3V程度のノイズが乗ってしまっています。単純に考えれば300Vものリップルが乗っていることになりますが、実際にはそんなに多くはない(飛んできているノイズをオシロの同軸ケーブルで拾っているため)でしょうが、相当な量のノイズをばらまいているので、リップルは少なくはないはずです。

Scope_1

このノイズは、コイルやコンデンサでは取り切れません。蛍光管インバータで作ったハイボルがノイズだらけだったので、新しくハイボルを作り直すことにしました。

aitendoのインバータの問題はノイズです。ノイズが出る原因は、コイルに流れる電流をバチバチとON/OFFしてしまうことです。

急激な電流変化は激しいノイズを起こすので、つるつるの正弦波を作ってトランスで昇圧することにしました。

それが↓の波形。

Scope_5

逆位相で振幅5Vくらいの正弦波を2個つくって、1:100トランスの1次側に入れると、2次側から1000Vになって出てくるというしくみです。

作った回路はこんな感じ。

Hv

100分の1にしてノイズを測ってみると、ノイズのピークツーピークは6.7mVでした。ノイズが50分の1に減りました。

Scope_3

本当かどうか疑いたくなりますが、ちゃんと1000Vの高電圧は出ているのは間違いないので、1000Vでリップルが0.6Vくらいの電源として動いているようです。

| | コメント (0)

2015.01.21

シンチレーション検出器の開発

マルチチャネルアナライザといって、パルスの高さでヒストグラムを取る回路をFPGAに入れてみたところ、プラスチックシンチレータ+光電子増倍管+Cosmo-Zでバックグラウンドのスペクトルを測れるようになってきました。

カリウム塩を置いた場合と、何も置かない場合で比較してみることにしました。

減塩しおは、塩化ナトリウムの代わりに塩化カリウムが含まれています。天然のカリウムには放射性同位体が含まれているので、減塩しおは簡単に入る放射線源として使うことができます。

Cosmozsalt

減塩しおのあるなしで1.5時間測ってみた結果は、

Cosmozsalt_mca

横軸がパルスの大きさ、縦軸がカウント数です。

140ch目くらいのところから差が出ていますが、まだ有意なものかどうかはわかりません。

せっかくフォトマルが2個あるのだから、コインシデンスの処理をしてみて、特定の方向から来たものだけをカウントするように改造してみようかと思います。

| | コメント (0)

2015.01.19

Cosmo-Zをインターネット経由で見られるようにしました

Cosmo-Zをインターネット経由で見られるようにしました。

???と思うかもしれませんが、こういうことです。

Cosmozredirect

特電のオフィスにおいたプラスチックシンチレータ+PMTで計測している波形を、Cosmo-Zで集計し、それをインターネットで見られるようにしています。

ただし、特電オフィスはIPアドレスを公開していないので、特電サーバ(IPアドレス固定のレンタルサーバ)に来たリクエストをPHPのプログラムで受けて、それをfile_get_contentsで特電オフィスに飛ばしています。

このような形で、ユーザは特電社内に置いたCosmo-Zのページを見ることができるというわけです。

実際に、初詣に行きながらマルチチャネルアナライザの結果を見たりすることができました。

Cosmozweb1


いつでもどこでも、計測結果が見られるのは、ZYNQでLinuxが動き、ネットワーク経由でつながるからです。

| | コメント (0)

2015.01.17

Cosmo-ZのWeb UI画面

今週は、ZYNQ搭載ADCボード「Cosmo-Z」のWebユーザインタフェースを作っていました。

みんながみんなZYNQのLinuxにログインして、コマンドを叩いて操作できるわけではないし、WindowsマシンからUSB3.0でつないでキャプチャできるわけでもありません。

でも、ZYNQのLinuxでWebサーバを動かして、Web画面で波形が見られれば、誰でもどこからでも見れますよね。

Cosmo-Zは、もともとミューオンという宇宙線を検出するために開発されました。

ミューオンの検出には、プラスチックシンチレータと光電子増倍管を使っています。

Pmt


プラスチックシンチレータと光電子増倍管からの信号をCosmo-Zにつないで、

Csz_20150116_1

それをオシロにつないで波形をモニタしつつ、Web画面でもみてみると、確かに一緒のタイミングで連動して、何かトリガしながら動いていることが確認できました。

Csz_20150116_2



Webの画面をさらに進化させていたら、このようなになりました。

Csz_monitor

Web上で、トリガレベル(ディスクリ)や、現在のペデスタルレベル(無信号時の値)を見ることができ、画面上の波形がリアルタイムに更新されるようになりました。

波形の更新やトリガレベルの設定はAjaxを使っているので、画面全体の更新を伴わず、とてもスムーズです。

これで、世界中どこに置いた光電子増倍管でも、Webでモニタできますね。

| | コメント (0)

2015.01.14

第二回MITOUJTAGセミナーを開催します!

MITOUJTAGの導入を検討されているお客様や、よりMITOUJTAGを活用したいお客様向けに、MITOUJTAGセミナーを開催します!

今回は「タイ語」の教室をお借りして実施します。午前中はタイ語の教室だけど、午後は会議室として貸し出している・・!?という場所です。入るとアロマの匂いがしてタイ文字がいっぱい書いてあるようなところですが、そのうち慣れます。

「MITOUJTAGには興味があるけど、まずは評価版で試してみたい」 

「開発者に直接いろいろ聞いてみたい」

 

など、皆様のご要望にお応えできればと思っています。3時間かけて、いろいろなボードでMITOUJTAGの使いかたや、ハマりやすいポイントを解説できたらと思います。

第2回セミナー開催

日時:平成27年1月21日(水) 14:00~17:00

場所:TLS秋葉原校 (東京都千代田区神田和泉町一丁目8番10号 4階) 地図

参加費:無料

Mitoujtag_event

概要

このセミナーは、JTAGの基礎や仕様を解説するものではなく、MITOUJTAGを実際に使っていろいろな基板の動作を見て、デバッグするための実践的なセミナーです。

お客様のPCにMITOUJTAG Pro(体験版)を入れていただいて、実際にケーブルをつないで、いろいろなボードを見ます。そして、書き込んだり、ロジアナで波形を見たり、フラッシュROMを見たり、基板の導通検査をしたりします。

MITOUJTAGの使い方から、実際の基板のデバッグのコツ、そういったものを説明させていただきたいと思います。

内容

  1. MITOUJTAGのインストールから、JTAGケーブル認識まで
  2. バウンダリスキャンによるFPGAの可視化と操作
  3. XILINX FPGAの書き込みと、SPI FlashROMに書き込む方法
  4. FPGAにIPコアを埋め込んで内部信号を数百MHzでサンプリング
  5. C言語でバウンダリスキャン手順をプログラミングする方法
  6. 基板の実装不良をバウンダリスキャンで発見する方法

具体的にいうと、当社で様々なFPGA評価ボードや、CPU評価ボードをご用意いたします。評価ボードのメーカーや、ICのメーカーはさまざまです。

もちろん、特電製ボードもありますし、他社製ボードもあります。

ALTERA FPGAボードもあればXILINXやLatticeもあります。

Art7

お客様は、ご自身のPCにMITOUJTAGをインストールしていただき、JTAGケーブルをそれらの評価ボードと接続し、MITOUJTAGでまず可視化していただきます。

そして、書き込みが可能なデバイスならば書き込んでいただき、また、MITOUJTAGで可視化していただきます。

それから、回路図を見ながら端子を操作したり、フラッシュROMに読み書きしたりすることを実践していただきます。

Zynq_bscan

そういったことを2~3時間かけて行い、MITOUJTAGを使って基板の状態をみたり書き換えたりします。

持ち物

  • MITOUJTAGをインストールするためのノートPCをご持参ください。※Windows XP以降で、Intel製のCPUが乗ったもの。(ARM系のWindows Surfaceは不可)
  • もし、お客様の開発されたボードを見たい、というご要望がありましたらお持ちください。

参加人数

場所は貸会議室を利用させていただくのですが、スペースの関係から人数は4名程度を予定しています。

もし、4名以上のご応募があった場合には抽選とさせていただきます。その際、お申込み順は大いに考慮させていただきますので、何卒、お早目のお申込みをお願いします。

●MITOUJTAG活用セミナーのページはこちらです。http://www.tokudenkairo.co.jp/seminar.html

●イベントの告知は「こくちーず」様のページを活用させていただいております。
http://kokucheese.com/event/index/240059/

こういうイベントの企画はまだ二度目なので、いろいろ至らない点や、お客様が知りたい点とずれていることがあるかもしれません。ご意見、ご要望などございましたら、当ブログのコメント欄にお書きいただくか、メールでご連絡いただければ幸いです。

多くの皆様のご参加ならびに、ご意見をお待ちしております。

| | コメント (0)

2015.01.13

ZYNQ上のCGIでグラフの画像を作ることができた

ZYNQで動くLinux上で、波形のような画像を動的に生成し、CGIで返すことができるようになりました。

Cosmo-ZにHTTPでアクセスして、「波形モニタ」というところを押します。

Cosmozwebui_1

ぺこっと押す。

すると、このように

Cosmozwebui_2

このように、波形のようなものが右側に表示されます。

現在は実際のADCの波形ではなく、ZYNQの中で作り出しているダミーのデータを表示しています。ADCのデータをテキストとして取り出すことはすでにできているので、この波形ビューワーと組み合わせれば、Webインタフェースの8chモニタができるはず!

ちなみに、昨日作ったlibpngライブラリは、メモリ上の二次元配列の望みの座標に点を打つことしかできません。

線を書いたり塗りつぶしたりするのはlibpngだけではできませんので、GDというライブラリを使いました。GDは、線を書いたり塗りつぶしたりするためのグラフィックライブラリです。GDのバージョンは2.1.0です。

GDをARM用にクロスコンパイルする方法は、ここのページを参考にしました。

こんなファイルを作っておいて、myconfとかいう名前で保存し、

#!/bin/bash

# architecture prefix
ARCH="arm-linux"

# path to the toolchain and kernel base
TOOL_PATH=/usr/local/arm-linux

# path to the toolchain base
BASE_PATH=$TOOL_PATH/2.95.3

# cumulative toolchain prefix
PREFIX=arm-xilinx-linux-gnueabi

export CC=$PREFIX-gcc
export CXX=$PREFIX-g++
export LD=$PREFIX-ld
export NM="$PREFIX-nm -B"
export AR=$PREFIX-ar
export RANLIB=$PREFIX-ranlib
export STRIP=$PREFIX-strip
export OBJCOPY=$PREFIX-objcopy
export LN_S="ln -s"

export CFLAGS="-g -O2 -I/usr/local/arm-linux/include"
export CPPFLAGS="-I/usr/local/arm-linux/include"
export CXXFLAGS=""

export LDFLAGS=""

./configure \
            --host="arm-linux" \
            --prefix=/usr/local/arm-linux \
            --with-png=/usr/local/arm-linux \
            --with-jpeg=no \
            --with-freetype=no \
            --with-fontconfig=no \
            --with-xpm=no

libgd-2.1.0$ . myconf

でconfigureが実行されます。

そのあとはmake と make installで完成です。

| | コメント (0)

2015.01.12

ZYNQ上のLinuxでPNG画像を生成する

ZYNQ上でPNGの画像を生成するには、libpngというライブラリが必要です。

パソコンのLinuxで動くlibpngならバイナリがいくらでもダウンロードできますが、ZYNQのLinuxで動くものなどそう簡単にはありません。

だから、libpngは自分でビルドします。


まず、デスクトップPCのLinux上にXILINXのSDKを入れたら、
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
source /opt/Xilinx/SDK/2013.2/settings32.sh
でパスを通します。

② zlib

libpngを作るにはzlibが必要です。zlibはPNGで使われる圧縮形式です。

まず、zlibをとってきます。
http://www.zlib.net/
のページの真ん中ほどにあります。
http://zlib.net/zlib-1.2.8.tar.gz

これを解凍し
gunzip zlib-1.2.8.tar.gz
tar -xvf zlib-1.2.8.tar
cd zlib-1.2.8

ビルドします。
export CC=arm-xilinx-linux-gnueabi-gcc
として、
./configure --prefix=/usr/local/arm-linux
make
で通ります。

できあがったら、

sudo make install

で/usr/local/arm-linux/includeにヘッダファイル類が、/usr/local/arm-linux/libにライブラリのバイナリがインストールされます。

これは問題なく通ると思います。

③libpng

libpngはPNGファイルを作るライブラリです。libpngは1.6.16が最新版ですが、configureファイルがなく設定がよくわからないので、古いバージョン 1.2.52 を使います。

下記のURLからダウンロードしてきます。

http://sourceforge.net/projects/libpng/files/libpng12/1.2.52/

configureするときに、いろいろなオプションが必要です。NEONの命令を生成するなどこちらのページを参考にしました。

./configure --host=arm-xilinx-linux-gnueabi CC=arm-xilinx-linux-gnueabi-gcc AR=arm-xilinx-linux-gnueabi-ar STRIP=arm-xilinx-linux-gnueabi-strip RANLIB=arm-xilinx-linux-gnueabi-ranlib CPPFLAGS="-mfpu=neon -I/home/naitou/libpng/zlib-1.2.8/" LDFLAGS="-L/home/naitou/libpng/zlib-1.2.8/ prefix=/usr/local/arm-linux

make

でライブラリが作成され、

make install

でインストールされます。 私の環境ではなぜかranlibが最後まで動かなかったので、いくつかのファイルは手動でコピーしました。

④テストプログラムを作る

libpngのプログラムは、

http://www.cnx-software.com/2011/10/06/cross-comping-zlib-for-arm-target/

のページを参考にして作るのが一番簡単だと思います。

arm-xilinx-linux-gnueabi-gcc -I/usr/local/arm-linux/include test.c -o test.cgi -L/usr/local/arm-linux/lib -lpng -lz

でコンパイルできます。

できあがった、test.cgiを、ZYNQのボードの/var/www/cgi-binに置き、パーミッションを755に設定します。

⑤ .soのインストール

-lpngでビルドすると、シェアードオブジェクトのほうをリンクします。

コンパイルに使ったローカルPCの、/usr/local/arm-linux/libにlibpng.so.3.52.0というファイルができているので、これをZYNQのボードの/usr/lib/に置き、

ln -s /usr/lib/libpng.so.3.52.0 /usr/lib/libpng.so.3
ln -s /usr/lib/libpng.so.3.52.0 /usr/lib/libpng.so

でシンボリックリンクを作っておきます。これがないと、ldがエラーを出してしまいます。

ダイナミックリンクをせずにスタティックな実行ファイルを作るには-lpngではなく、-lpng12にするようです。そうすれば、libpng12.aのほうがリンクされるので実行時に.soは必要ありません。

ただ、私の環境ではranlibが失敗したとかでエラーがでているので、そのせいかもしれません。

これでCGIでPNG画像を作って返せるようになります。

Cosmozzynqpng

上のグラデーションの画像は、ZYNQの中のプログラムで作っています。

| | コメント (0)

2015.01.10

Cosmo-ZのLinuxでADCの波形が取れるようになった

Cosmo-ZのLinuxアプリを鋭意開発中です。

ついに、Linux上でADCの波形を取れるようになりました。

./cosmoz.elf <command>

で、様々なコマンドを与えることができます。

今日作ったのはadcwaveというコマンド。

このコマンドを打つと、8ch 1024個の波形をキャプチャしてコンソールに表示してくれます。

Cosmozadc

アナログ入力端子を指で触って、データを取得し、Excelで適当なグラフにしてみると・・

Cosmozadc2

こんな感じになりました。

これを、SSHでのログインで波形を取るのではなく、Cosmo-ZのLinuxでWebサーバを動かし、ユーザはブラウザ上でグラフにしたいものです。

JavaScript (jQuery)でやるか、ZYNQ上でPNG画像を生成してブラウザに表示するかを考えることにします。

| | コメント (0)

2015.01.08

Cosmo-ZのLinuxを本格的に・・

Cosmo-ZのLinuxを本格的にいじり始めました。

まず、ZYNQ Linuxの構築手順をこちらのページにまとめました。

http://www.tokudenkairo.co.jp/cosmoz/sdk.html

環境の準備から、u-boot、ramdisk、linux、devicetree・・とひととおり書きました。

また、LinuxやU-BootをビルドしているディレクトリをそのままZIPで固めて「Cosmo-Zダウンロードページ」で公開を始めました。SDカードに書くべき起動データなども一式そろっています。

それから、現在、Cosmo-Zの中にWebサーバを入れて(busyboxのhttpdですが・・)、こんな管理画面を作ろうとしています。

Cszcontrol1

BusyBoxのhttpdはCGIも使えてかなりGoodです。しかしPHPとか使えるわけではないので、ページ全体をCGIで作るのはちょっと大変。

そこで、Ajaxを使うことにしました。

Cosmo-Zの管理画面ではJavaScriptを動かして、Cosmo-Zのbusyboxの中にあるCGIをAjaxでつっついて、キャプチャの開始や波形の取得などをしようという考えです。


| | コメント (2)

2015.01.07

Cosmo-ZのADCが安定して受信できるようになった

Cosmo-ZのADCが安定して受信できるようになりました。

今まで、Cosmo-ZのADCは、電源投入時にこんな

Cosmozerr_1

波形になることが多く、温まってくると正常に動作するという非常に怪しい状態でした。

それは、高速ADCからのLVDS信号を受信している回路の問題でした。600Mbpsで送ってくるので、1つのビットは1.6nsなので、信号の変化点から800ps経過したところでサンプリングするように合わせないといけなかったのですが、そのタイミングを間違えていました。

まず、ADCから100000000000という固定のパターンを出力させて、それをZYNQのISERDESで受け取ります。そして、IDELAYを1個ずつ増やしていきますと・・

Iserdes_1

このように20~21個くらいのところで再びデコードの状態が変わります。IDELAYの1タップは75psなのでだいたい1.5nsくらいずらすと信号の状態が変わるということです。

そこで、最初に変わってから11タップ目で止めることにしました。

Iserdes_2

これで、ちょうど、ど真ん中でサンプリングしていることになります。

こうしてCosmo-Zは、電源投入直後でも綺麗な波形をサンプリングできるようになりました。

Cosmozok_1

すべてはミューオンの検出のため。頑張ります。

| | コメント (0)

2015.01.05

LVDSのデフォルト状態に要注意

年末からZYNQ搭載のA/D変換ボード「Cosmo-Z」の納品用4号機を作っていたのですが、うまくADCが動かないというトラブルが起きていました。

ADCのチップ自体は動いていてテストパターンなどは送ってくるのですが、肝心のAD変換データを送ってこない・・

今までに動いていた1号機や2号機と徹底的に見比べていたのですが、ADCまわりにはどこにも差異はありませんでした。

で、ついに10日間悩んだ原因がわかりました。

FPGAが起動した後、AD変換器には100MHzのLVDS差動クロックが与えられます。

Clk100mok

このクロックはFPGAで作った100MHzをクロック分配ICで8個のADCに配っています。

図にすると、以下のようになります。

Clockdist

正常に動作する個体では、FPGAが起動する前には、AD9633のクロックが停止していたのですが、異常な個体では、FPGAが起動する前に次のような波形が出力され、ADCに送られていたのです。

Clkxng

実は、このクロック分配IC「ADCLK854」は、CLK+入力とCLK-入力の内部のプルアップ/プルダウン抵抗の比がわずかに変えられていて、入力オープンの際にどちらかの値に落ち着くようになっているのだとは思いますが、

Adclk854_selfbias
実際にはFPGAの内蔵プルアップ抵抗などのばらつきによって、ちょうど、2つの入力端子が同電位になってしまったのでしょう。

それゆえ、ノイズを拾ってしまい、上のようなふらふらとした波形になったようです。このふらふらしたクロックを受けてしまうと、AD9633は正常に動作できなくなってしまうというのが、今回のトラブルの原因のようでした。

とりあえず、CLK入力の片側をプルダウンすることでこの問題は回避しましたが、ベストなやり方は模索中です。

Adclk854_pulldown

今日の教訓

FPGAが起動する前、LVDSは同電位になって、不安定な状態になっている可能性があるので注意が必要。

| | コメント (3)

2015.01.03

基板年賀状をお送りしました

今年もプリント基板で「基板年賀状」を作りました。

Nenga2015

今回のテーマは「強そうな羊」です。

この年賀状は主に、継続してお取引をいただいているお客様や、12月中に製品をご購入いただいたお客様に送らせていただきました。

28日の夜、29日の夕方、31日の夕方にわけてこれまで61通を出しました。もう、皆様のお手元に届いておりますでしょうか?

届いた方は、ぜひとも当ブログへのコメントや、ツイッターやFacebookなどで紹介していただけると嬉しいです!

基板の裏側がどうなっているのか、とか、どのようにして郵送したのか、などの話は

http://www.tokudenkairo.co.jp/nenga2015.html

のページをご覧ください。

今年もよろしくお願いします。

| | コメント (0)

2015.01.02

VivadoでXILINX Platform Cableを遠隔操作してみる

VivadoでXILINX Platform Cableを遠隔操作して、どのようなパケットが流れるのかを調べようとしました。

まず、2台のPCを用意し、1つを物理的なPlatform Cable USBがつながる「サーバ」、もう1台をユーザが操作する「クライアント」と決めます。

サーバのほうで、Vivadoをインストールしたフォルダの中のbinフォルダを開き、hw_server.batを開きます。

Vcs_1

このバッチファイルを開くと、hw_serverというプログラムが動き、こんな画面が開きます。

Vcs_5

サーバ側の準備はこれで完了です。

次に、クライアント側でVivadoを起動し、Hardware Managerを開きます。そして、Toolsの中にあるOpen New Targetを実行します。

Vcs_2

そして、ウィザードが開くので、「Next」を押します。

このダイアログが出たら、サーバのホスト名とポート番号(デフォルトが3121)を指定し、Nextを押します。

Vcs_3

ここで、サーバにPlatform Cable USBがつながっていてターゲットボードの電源が入っていれば、どのようなFPGAがつながっているかの情報が送られてきます。

今回はZYNQ EPPのXC7Z030をつないでいるので、ARMのDAPとXC7Z030が見えました。

Vcs_4

そして、Vivadoのクライアント側ではSystem Monitorや書き込みができるようになるというわけです。System MonitorではFPGAの温度や電圧を見ることができます。

Vcs_6

さて、この操作を行っているときに、サーバとクライアント間でどのようなパケットが流れているのでしょうか?

Wiresharkというツールを使って調べてみました。

Vcs_7

このようにLANを流れているパケットを解析するツールです。

サーバの中のソフトがJTAGの難しい部分をすべて処理してしまっていて、クライアントとの通信は高レベルな部分で要求や応答をテキストでやりとりしている感じでした。

もはやJTAGの生のデータはLAN上を流れていませんでした。

C→S Locator Hello ["zerocopy"]

S→C Locator Hello ["zerocopy","xicomSysmon","bpi","spi","xsdb","xicom_v1.00","・・・

C→S JtagCable getServerDescriptions

S→C JtagCable serverAdded [{"ID":"jss1","ServerID":"digilent-ftdi","isActive":true}] JtagCable serverAdded [{"ID":"jss2","ServerID":"digilent-djtg","isActive":true}] JtagCable serverAdded [{"ID":"jss3","ServerID":"xilinx-pcusb","isActive":true}]

Jtag contextetAdd [{"ID":"jsn-DLC9-Port_#004.Hub_#0004","Name":"whole scan chain","idcode":255,"irlen":0,"isTap":true}]

こんな感じでやりとりして、ケーブルの情報や、見つかったデバイスなどをテキストで送っています。まったく、JTAGの操作はでてきません。

そして、SystemMonitorで温度や電圧を受け取っている部分は、

Vcs_8

このように数字の羅列をテキストで送りあっているだけなので、何がなんだかさっぱりわからないのです。

Vivadoのケーブルサーバを解析して自分のプログラムから使えるようにするのは、非常に困難であると予想されます。

| | コメント (0)

2015.01.01

2015年の目標

あけましておめでとうございます。

正月に立てた目標は意外と達成されることが多いので、特電の今年の目標を書いておくことにします。

  MITOUJTAGの近代化
  脱・FPGA評価ボード屋
  常時10人の会社を目指す

です。

MITOUJTAGは今年で12周年になります。2004年に未踏ソフトウェアで初めて登場したときには、パソコンのディスプレイのサイズは1280×1024または1024×768の4:3が主流で、CAD等の設計ソフトはアプリの上に16×16くらいのサイズのボタンがずらっと並んでいたわけです。

MITOUJTAGの画面も、そういうソフトを参考に作られてきました。

しかし、現在のデスクトップPCのディスプレイは1920×1080が主流です。小さなボタンだと何のボタンだかわかりません。

ノートPCでは縦が1024ピクセルもありません。MicrosoftのOfficeのUIはリボンになり、スマートホンでは次に操作するためのボタンだけが表示されるようになっていたり、ユーザインタフェースはこの10年間で大きく変わりました。

だから、MITOUJTAGも大きく変えることにします。

特電は2009年ごろからFPGA評価ボードをいろいろ作ってきました。春ごろに小型のZYNQボードを出すかもしれませんが、これからは汎用FPGA評価ボードではなく、もっとアプリケーション寄りのことをやっていきたいと思っています。

具体的には、FPGAを使って放射線検出機器を作るという流れを推し進めていきたいと思っています。

放射線を検出して、何かを測る。そのためのFPGA設計です。

目指せ!脱・FPGAボード屋!

今の特電のオフィスは風水的にもよくて、環境も日当たりもよくて、良い人がいっぱい集まってきてくれたのですが、周辺の道路が静かすぎる感じがします。

現在抱えている経営的課題が解決したら、秋葉原のにぎやかな電気街のどこかに引っ越しして、会社の規模としては常時10人くらいを目指します。

今年もよろしくお願いします。

| | コメント (0)

« 2014年12月 | トップページ | 2015年2月 »