2015.12.26
クリスマスの夜(26日未明)に会社に泊まり込んで、台形整形回路を調整しています。
本当は家からリモートログインでCosmo-ZのFPGAを書き換えて実験しようとしていたのですが、会社に置いてあったCosmo-Zが頻繁にリブートを繰り返すようになったので、会社に行きました。
リブートの原因はわかりませんが、一度、ハイボルとかフォトマルを分解して綺麗に並べたら治まりました。
台形整形回路も、このようにちゃんと動くようになりました。
茶色の線が入力波形。赤とオレンジが、遅延ラインを通って加減算した後の波形です。
たしかに台形にはなっているのですが、波打っているのがわかると思います。ADCの値に乗っている±1LSB程度のノイズを増幅してしまって大きな波になっています。
また、台形の頂上の部分が少し傾いています。
原因はわかりませんが、入力信号が厳密にexp(-t)のカーブではないからなのかもしれません。
Cosmo-Zのケースのアルミ素材が届いたが・・
2015.12.25
台形フィルタ搭載の32ch版Cosmo-Zを今年中に納品しなければならなくて、タカチのアルミケース用に注文しておいた、Cosmo-Zのケースのアルミ素材が届きました。
自分でアルミに穴あけすると大変だから、タカチのケースのガワだけ使って、フロントパネルやリアパネル、床板の加工したものをアルミ屋さんに発注しようとしたわけです。
組み立ててアルミケースに入れてみると・・あれ? 入らない・・
なんと、アルミ加工屋さんが、曲げの方向を間違えたようです。
ガビーン!![]()
3Dのデータと逆になtっていたので、図面は正しかったようです。

今年中の納品はあきらめました。
・・・
アルミ屋さんに連絡したら、すぐに作って発送してくれるとのこと。
今年の納品は間に合わなかったけど、年末年始に作業ができそうでよかった。
台形整形回路
2015.12.23
放射線の検出信号のようなexp(-t/τ)で減衰する波形を台形に整形する回路をFPGAで作っています。
元は"Digital techniques for real-time pulse shaping in radiation measurements" Valentin T.Jordanov著 NIM A 363(1994) という論文に書かれている、こういう回路です。
入ってきたパルスが台形にシェーピングされて出てきます。
下の図は、実際にテスト波形をFPGAで計算してみた結果です。茶色の線がexp(-t/τ)で減衰する入力信号で、紫の線は出力です。

この回路のパラメータはk,l,m1,m2と4つあります。kは台形の傾斜部分の長さを決め、lは台形の頂上の部分の長さを決めるようです。
m1とm2の比は、τ/クロック数-0.5くらいになるように決めます。時定数1usで減衰する波形でクロックが100MHzならばm1/m2=99.5となるようにし、m2はゲインを決める任意の定数になります。m1とm2の比が多少ずれていても、台形の肩がなだらかになるか尖るかという程度で、大きな問題にはなりません。
波形整形回路はかなり強力な演算のようで、パソコンでシミュレートした限りでは、このくらいのノイズが乗った波形でも、
この回路を使えば、放射線の計測での分解能が飛躍的に向上すると聞いています。
しかし、パイルアップには対応していないのかもしれません。
MPPCが届いた
2015.12.18
先日注文しておいたMPPC(Multi pixel photon counter)が届きました。
購入したのは浜松フォトニクスのS13360-3050CSです。
MPPCというのはフォトダイオードの集合体で、光電子増倍管ではないけど100万倍くらいのゲインがある光センサです。
光電子増倍管と比べると、
- ガラスではないので割れない ○
- 安い ○
- 軽い ○
- ハイボルの電圧が低くて良い ○
- ノイズや偽の信号が出る ×
といった特徴があります。
出力の信号は2~3ns程度だと思うので、それなりの高速アンプを作る予定です。
これと、プラスチックシンチレータを組み合わせて宇宙線検出器を作りたいと思います。
Cosmo-Zのアルミケース
2015.12.17
Cosmo-Zを本格的な計測器として使うためには、アルミケースが必須になってきます。
基本的にはタカチのMS88-16-23をベースにして作ろうとしているのですが、MS88-16-23は奥行が23cmあるのに対してCosmo-Zは基板の長さが175mmくらいなので足りません。
基板の後方にはイーサネットのコネクタや電源ジャック等があるので、基板の後ろがリアパネルに出ていることは必要です。
そこで、こういう窪んだ形のリアパネルを作ることにしました。
2mmのアルミ板を折り曲げて、少し内側に壁を寄せます。
アルバイトさんが3D CADで上の図のようなのを設計してくれました。
タカチのケースは実物を見ながら検討しないと意外と難しいので、この図面をアルミ加工屋さんに送って実際に作ってもらうまえに、工作用紙で試作してもらいました。
3D CADで設計した図面をインクジェットプリンタを使って、1:1で工作用紙に印刷します。
そして、カッターで切ります。出来上がり。
思わず、おおースゲーと言ってしまいます。
上の写真の右上に見えるでしょうか。丸穴の切り抜きもとても丁寧です。
図面を若干修正して、完成だそうです。
本番のアルミが出来上がるのが楽しみです。
EXPARTAN-6TとCOSMO-ZのSATA波形比較
Cosmo-ZでのSATAが動かないので、SATAが動くEXPARTAN-6T(Spartan-6LXT)と何がちがうのかを波形をみて比較しています。
MITOUJTAGを使って、FPGAの内部信号を75MHzでサンプリングします。
まずは、EXPARTAN-6Tのリンクアップ時の波形。AlignPrimitiveを受け取って、そのあとでSYNCやCONTが来ています。
次はCosmo-Zのリンクアップ時の波形。特に違いはないようです。
次はEXPARTAN-6Tで、XRDYが来るときの波形。XRDY→SOF→EOF→WTERMという流れです。

最後はCOSMO-ZでXRDYが来るときの波形。これも全く同じです。

つまり、EXPARTAN-6TもCOSMO-Zも物理層部分の動作は同じということでした。
COSMOZでSATAが動かないのは、上位の層で何かの間違いがあるのだと思われます。
Spartan-6とZYNQのGTP/GTXの波形
特電のボードEXPARTAN-6T(Spartan-6LXT使用)とCosmo-Z(ZYNQ7030)で、SATAの波形を見てみた。
Spartan-6でのSATA受信波形
↑の波形は、すでにリンクアップしてスクランブルがかかったデータなので、何だかわかりません。
Spartan-6LXTでのSATA送信波形
↑これはCONTでしょうか。ちょっと何かはわかりません。
ZYNQでのSATA受信波形
↑これはリンクアップシーケンスのAlignPrimitiveです。
問題は、ZYNQでのSATA送信波形です。
AlignPrimitiveを送っているはずですが・・
少しレベルが高い気がします。
ZYNQのGTXの送出レベルは、sataphy_gt.vhdの中にある
TXDIFFCTRL => "1000",
で設定されています。CoreGenがデフォルトで作ったファイルでは"1000"になっていて、Vppdは0.807Vということなのですが、オシロで見たところでは反射波によってより高い電圧が観測されています。Peak-to-peakで0.9Vくらいでしょうか。
書籍によると、tx diffの標準値は500mVで、最小が400mV、最大が600mVとのことなので、ちょっと、強すぎます。
XILINXのユーザガイドug476によれば、
TXDIFFCTRL => "0010",
にすると、0.407Vになるとのことですので、やってみました。

たしかに400mV程度になりました。これだとちょっと小さいかも。
TXDIFFCTRL => "0011",
のVppd=0.474Vくらいがちょうどいいかもしれません。
↓の図は0011にしたときの波形です。だいたい0.5Vppdになっています。




















