Cosmo-Zのマルチチャネル・サンプリング
平成27年2月22日(日)
Cosmo-Zで複数のチャネルのデータをDDR3 SDRAMにDMA転送できるようにしています。
FIFOにデータが32 QWORD (=128 Word)溜まったらAXI HPポートに送ります。ですから、100MHzでサンプリングする場合、1.28usごとにDMA転送が発生します。
まず、サンプリングするチャネルが1chの場合。
サンプリングしたデータはFIFOに入った後、問題なくAXI HPポートに送れています。
次は3chの場合。
3ch分のデータをAXI HPポートに転送する時間は1.24usでした。ぎりぎりです。
32 QWordのデータ転送を3つで0.96us。ステートマシンの遷移で0.05nsくらい。後は、AXI HPポートからのBREADY待ちです。BREADYは、つまり、DDR3 SDRAMの書き込み完了待ちです。
次は4chの転送です。
4ch分のデータをAXI HPポートに送るには、1.55μ秒かかっていますから、完全にアウトです。FIFO以上のサイズのデータをキャプチャしようとすると、いずれ、あふれてしまうでしょう。
8chにしてみると、AXI HPポートに送るのに2.87usかかっています。FIFOに溜まっているデータもどんどん増えていっています。
というわけで、現在のシステムでは100MHzでサンプリングしたとき、3chまでしか連続して保存できないことがわかりました。
その理由は、AXIのAWVALIDを与えたりする時間のほか、BREADYが返るのを待つ時間が合わせて27クロックくらいあるからです。AXI HPポートは意外と遅いですね。
やはり、AXI HPポートのクロックを250MHzくらいまで上げる必要があります。
Cosmo-ZでDDR3メモリにキャプチャデータを入れる
平成27年2月20日(金)
ZYNQ搭載ADCボード「Cosmo-Z」でDDR3メモリにキャプチャデータを入れることができるようになりました。
いままでのCosmo-ZのサンプルFPGAでは、ブロックRAMにデータをためてUSBやイーサで読み出すというものだったので、数kバイトのデータしか溜められませんでした。
ZYNQのAXI HPを通じてDDR3に投げればいいんだろうなとは思っていたのですが、なかなか億劫で手がでなかったところ、優秀なスタッフがこの機能を作ってくれました。
数十~数百MBの長いデータを連続サンプリングして、AXI HP経由のDMA転送でDDR3メモリに入れらるようになりました。そして、キャプチャが終了したら割り込みを発生させてユーザプログラムに通知し、SDカードに保存するようにしました。

つまり、サンプリングしたデータをDMAと割り込みをつかってメインメモリに格納し、それをファイルとして保存できるようになったということです。
サンプリングしているときの波形はこんな感じ。
12bit 100MHzでサンプリングしたデータを16bitに拡張してFIFOに入れ、256バイト(128個分)溜まったらAXI HPに投げます。だから128クロックに1回、AXIのリクエストが発生します。
一方、AXIバスは64bit 100MHzで動かしているので、32クロックで転送を完了させます。しかし、アドレスの設定などが入るので、32クロックでは128個分のデータを転送できません。
したがって、データを落とさずにサンプリングするなら、1つの100MHz AXI HPポートに投げられるADCは3個までということになります。これでは少し足りないので、とりあえずはクロックを133MHzくらいまで上げ、最終的にはAXIのクロックを266MHzくらいまで上げてみることにします。そうすればAXI HPポート1個で8ch分のADCからデータを投げられるはずです。
AXI HPを4つ使えば、12bit 80MHzのADC結果を32ch全部入れられる計算になります。
Cosmo-Zのケースを作成
平成27年2月19日(木)
アクリルを削って、Cosmo-Zのケースを作成しました。
横からみると、SMAのコネクタ側はこうなっていて、
イーサとかが出ている側はこうなっています。
アクリルの蓋は1mmの厚さしかなく、私は工作が下手なので、パキパキ割ってしまいました。
円柱の直径は90mm。今後、このCosmo-Zの上と下に拡張基板がついて、全部で32ch+ディジタル入出力のごっついシステムになります。
なんで、円柱に入っているかというと、細い穴の中に入れることを想定しているからなのです。人間が近寄れないような場所で使われるのです。
もちろん、本番はステンレス製のケースに入るのでしょうが、特電社内で使うものは展示用に透明なアクリルケースで作っています。

ある種の極限環境に置かれた32ch 125MHz ADCがいったいどのように人類の科学の発展に寄与してくれるでしょうか。楽しみです。
Cosmo-Zの拡張基板の設計
平成27年2月16日(月)
ZYNQ搭載の高速ADCボード「Cosom-Z」は、拡張基板を重ねることで32chまでチャネル数を増やすことができることを目指しています。
ようやく、拡張基板の設計が佳境に入ってきました。
このようなボードをメイン基板の上に1枚、下に2枚重ねます。
サブ基板の幅が82mm、基板の厚さが1.6mm×4、基板間のスタック高さが10mmですから、対角線の長さは89.716mm。
なんとかぎりぎりで直径90mmの円柱に収まるはずです。
図面を描いてみたところ、ちゃんと直径90mmの円柱に収まっていますが、ぎりぎりですね。
Cosmo-Zの新基板を設計中
平成27年2月12日(木)
Cosmo-Zの新基板を鋭意設計しています。
主な変更点は以下のとおりです。
- GTX用SMAコネクタの間隔をあける
- アナログ±5V電源には、LT3439ではなく既製品のモジュールを使う
- アナログ入力用SMAコネクタの下に保護ダイオードを付ける(光電子増倍管の接続間違えをしてHVをかけても平気にする!)
- 差動OPアンプの省電力モード対応
- 1.0Vコア電源を太くして電圧降下を減らす
- SRSTのリセット信号をプルアップしJTAGコネクタにもつなぐ
- スライドスイッチで、SDカードとJTAGブートを切り替えられるようにする(変更前は、SDカードとSPI ROM)
- GbE PHYのロジック電源を1.8Vにする
- FPGAが起動前でもクロックドライバが誤動作しないように抵抗を追加
設計者から見て細かい変更点としては、
- ADCのSPIポートの配線間違いを修正
- サイドマウント型のSMAコネクタに対応
- VREF生成回路をちゃんと動くようにした
- 実装スペースの都合でSATAコネクタとJTAGコネクタを縦にした
- PoE用電源回路用の高耐圧コンデンサを実装できるように部品の配置を変えた
- 高価なわりに意味のない分圧用抵抗を替えた
- ダイオードの向きをシルクで入れた
- GTXコネクタとSATAコネクタの静電気対策を行った
- シルクと穴やパッドが被っていたところをたくさん修正した
です。
明日までにアナログ拡張基板が間に合えば、一緒に面付けして出図しようと思います。
ZYNQにSATAをつないだ
平成27年2月10日(火)
ZYNQのギガビットトランシーバ「GTX」にSATAのSSDをつないでみました。

以前、Spartan-6LXT用に作ったGTPの1.5GbpsのSATAコアがあったので、これをZYNQのGTXに移植してみたのですが、最初、どうしてもうまくいかなくて苦労していたのですが、3.0Gbpsにしたらあっさりつながりました。うーん、謎・・・
リンクアップした後、RegD2Hというパケットが送られてきたときの様子です。
34005001 01000000 …
というシーケンスが読めます。この34というのが、RegDHというパケット(FIS)のタイプで、Statusが50、Errorが01です。Status=50が送られてきたということは、ターゲット(SSD)の初期化が完了したことを意味します。Error=01は、エラーなしを意味します。
Device IDコマンドを実行してみたところ。
先頭部分は46000000 4000ff3f 37c81000 00000000 3f000000と読めます。
全体でみると、データは固まってくるのではなく、ばらけてやってきています。
46000000 4000ff3f 37c81000 00000000 3f000000 32313330 39303638 39300000 30353030 30303030 45310000 31313131 38312020 50534343 53206c6f 64695320 61746574 44207369 426b3832 20202020 20202020
と読めます。
シリアル番号 "2130906890"
デバイスタイプ "Solid State Disk"
と読めそうな感じです。
ロジアナの画面を解析しながら文字列を組み立てていくのは大変なので、EXPARTAN-6Tに実績のあるSATAコアを入れて、DeviceIdentifyコマンドを発行してみると・・
なるほど、こう読むのですか。
シリアル番号は"1203098609500000001E"、デバイスタイプは"SPCC Solid State DiskB28"と読めるので、エンディアンの読む順番がロジアナではわかりにくいです。
とにかく、特電のSATAコアが3Gbpsでも動いたということで、今日のところはヨシとしましょう。
1.5Gbpsだとダメで、3.0Gbpsだと良いというのが謎なのですが、GTXは1.5Gbpsくらいの低い速度が苦手!?まさか、そんなことはないと思いますが・・
光電子増倍管の金属ケース
平成27年2月5日(木)
光電子増倍管の金属筐体を作りました。
昨日作った円筒状のアルミケースを、さらにアルミの四角柱の中に入れました。
蓋の部分は5mmのアルミ板なのですが、特にBNCのコネクタの穴をリーマーで削るのが超大変でした。
でも、苦労して二重のアルミ箱にした結果、遮光は改善したようです。
この四角い箱の中に、丸い筒が入っています。
さて、前回のダンボール製光電子増倍管ケースと比べてどうでしょう!??下の写真はダンボール製のケースです。これも黒い箱が二重になっていて、遮光性は意外とよかったんですよ。
今回、筐体をアルミにしたことで、なんと・・ノイズが増えました。
下の図は光電子増倍管の出力をオシロで見たものなのですが、ギザギザが乗っています。これは80MHzのノイズです。
ハイボルを切っても乗っているので、同軸ケーブルが拾ってしまっているようです。
フォトマルは出力インピーダンスが目茶目茶高いので、どうしてもノイズを拾いやすいのですが、これはちょっと厳しいですね。
そもそもこの80MHzのノイズがどこから飛んできているのか、不明なのです。
従来のダンボール製のフォトマル筐体のほうがノイズが少なかったように思えます。金属筐体が電気的に浮いていて、ノイズを拾っているのでしょう。しかし、アースをつないでもノイズが消えるわけではないので、悩ましいところです。
インチキ工作でフォトマルの筐体を作成
平成27年2月4日(水)
私は金属加工は苦手なので、当初はアルミ加工業者さんに外注しようと思っていたのですが、こんなものを一点物で加工しても業者さん的には儲けにならないのでしょうね。
「丸いものをおさえる治具がなくて・・」「外注先から見積もりの返事がなくて・・」「1式5万8千円になります」「大きな旋盤がなくて・・」「量産できるなら・・」
何社かに問い合わせたのですが、そんな感じでやんわり断られてしまいました。
手元にあるのは電動ドリルが1つと、リーマーくらい。ボール盤もない。
そんな状態でフォトマルの筐体を作りました。
スーパーインチキ工作の開始です。
まず、CADで図面を描いて、印刷して切って、アルミに貼り付けます。そして、けがき針や、ポンチでしるしを付けます。
ドリルで穴開けします。下穴は2mm。
蓋の部分は3.2mmで穴あけし、パイプの淵の部分は2.5mmで穴あけします。
パイプに穴あけしたら、タップでM3のネジを切ります。
これで、パイプと蓋ががっちり固定できます。
パイプと蓋の間には厚さ0.5mmのフッ素ゴム(別にフッ素ゴムでなくても、本当はなんでもいい。名前がかっこいいからフッ素ゴムを選んだ)をはさみ、光が入り込むのを防ぎます。
こんな蓋を両面作ります。
いよいよ光電子増倍管の挿入です。プラスチックシンチレータのまわりにアルミホイルを巻き、その上からフッ素ゴムを巻きます。パイプの内径が80mmで、プラスチックシンチレータの外形が76mm程度なので、その間を薄いゴムで埋めるためです。
にゅるるん。なんか、ワープコアみたい。
蓋にも端子用の穴をあけておき(やはりインチキ工作で)、配線をつなぎます。

そして、ゴムを挟んで蓋を閉めます。蓋には中の配線を描いておきます。落書きのように。
ハイボルをつないでいざ測定!
結果は・・あまり芳しくありませんでした。
容器の上のほうに手をかざすと出力電圧が変わる・・・つまり光が漏れ入っているようです。
金属工作の部分は問題なさそうなのですが、コネクタから光が漏れて入ってきてしまっているようです。コネクタから光が入り込まない工夫をしないといけないようです。

































