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

2008.10.30

DDR2の基板設計

DDR2メモリを使用するための基板設計を行っています。

DDR2メモリSSTL18というI/Oを規格を使っています。
SSTL18とは終端することを前提とした、1.8V振幅のディジタル信号です。この信号を受信するときにはVref(=0.9V)と比較して高いか低いかでH/Lを判断します。

SSTLの終端抵抗は、本来ならば原則として、一つの信号あたり2個必要です。
ドライバの送信直後に行う直列終端と、デバイスの後ろでVTT(=0.9V)に対して行う終端の2つが必要になります。
双方向信号はこの2倍の4個必要です。

なお、VTTとVrefは異なります。VTTは電流の掃き溜めみたいな感じですが、Vrefは清らかです。

さて、DDR2メモリを真面目に扱うならば、アドレスや制御信号やその他すべての信号に対して下の図のような終端を施さなければなりません。
DDR2の終端方法

これを全部やるのはあまりにも大変です。チップ抵抗を並べるのは面積を食います。
Virtex4とかVirtex5ならばI/OにDCIという仕組みがあるので、直列終端抵抗は省けますが、Spartan3系ではそういうのはないので、FPGAの出力に真面目に22Ωとか75Ωとかをいれてやらねばなりません。
データ信号とデータストローブ信号についてはDDR2メモリではオンチップで内蔵されているのでそれを使うこともできまうが、2種類の終端抵抗をすべてのアドレス線に入れるのはあまりにも大変なので、省略してしまっている評価ボードもみかけます。

とりあえず真面目に前信号に直列終端を入れ、アドレスと制御信号はVTTへ終端するような回路を作ってみました。
DDR2のパターン設計

P板ルールでもパターンが引けて嬉しかったです。
すでに4層基板としては限界までやった気がします。
4層基板というのは配線領域が意外と少ないです。

| | コメント (6)

2008.10.29

BGAの基板設計

今夜は特電オリジナルのPCI Expressボードを設計しています

Pcieboard

このボードはBGAパッケージのFPGAやPCI Express PHYチップやDDR2 SDRAMを乗せます。
DDR2メモリとPCI Express PHYはBGAパッケージなのですが、0.8mmピッチの狭いピッチでした。いきあたりばったりで設計してみると、DDR2メモリの3列に並んだ端子で、真中の列が引き出せない!となりました。
Bga08ng

P板のルールでは配線幅は5mil以上なので、内部のピンの配線が引き出せないのではないかと悩んでしまいました。0.1mmルールで国内で製造してくれる業者はないかとか、0.8mmピッチのBGAを使うんじゃなかったとか嘆いていたのですが、いろいろとBGAの基板設計方法をしらべてみると、どうやらP板の製造基準でも十分に0.8mmピッチに対応できることがわかってきました。

一般的に、BGAの内側の配線を引き出すには、
●  ●
  ◎
●  ●
のように、BGAのランドの間にビアを打ちます。
しかし、P板の製造基準は、
 ・ドリル径は0.3mm以上
 ・線幅は0.127mm以上
 ・クリアランスも0.127mm以上
となっています。この基準はP板に限ったものではなく、アジア諸国(日本を除く)で製造する場合の一般的な基準のようです。したがって、この基準で製造できるような基板にするのがよいわけです。

Viaを作るには穴の周りをランドが囲うので、0.3+0.125+0.125=0.55mm(約21.7mil)が最小サイズになります。
ドリルの位置はずれることがあるので、余裕を見てもう少し大きくします。
最小のViaの直径は0.6mmくらいになります。

それでも0,8mmのBGAで
●  ●
  ◎
●  ●
をやろうとすると、対角線の距離は0.8mm*1.41=1.13mmで、パッドの直径を0.4mmとすると、対角線のパッド間は0.73mmしかありません。真中にViaを置くとクリアランスは0.06mmしかないので、ちょっと無理です。
したがって、P板ルールでは、0.8mmではパッドの間にViaは置けません。

0.8mmピッチのBGAの場合、パッド間にViaは置けませんが、パッド直径0.4mm、線幅0.14mm、クリアランス0.13mmとすれば、パッドの間にぎりぎり一本配線を通すことができます。
Bga08

これならP板でも製造可能ですし、片面で引き出すこともできます。
うーん、なんだか0.8mmピッチのBGAでは、ピンが各辺3列までしかない理由がわかってきました。なるほど、安価なアジア諸国の基板製造基準で作れるようにするためなのですね。

さて、このBGAパッドのサイズを何mmにすればよいかは難しいところです。
調べたところ、パッドの形状にはSMDとNSMDという2つの方式があるようです。

Nsmd

SMDはパッド直径よりもレジスト(半田マスク)の開口部を小さくする方式です。
NSMDはパッド直径よりもレジストの開口部を広くします。レジストとパッドの間隙に半田が入るので丈夫だそうです。
BGAの基板の場合は配線を引き出すのに必死ですから、銅箔の直径は小さいほうが望ましいとされます。そのため、最近ではNSMDが主流になっているようです。

NSMDを使う場合のパッドサイズと開口部のサイズは、確定的なベストな値はないのかもしれません。
推奨値はメーカーによっても異なるようです。

Bga10

1.0mmピッチのBGAパッケージの推奨ランドサイズを、メーカーごとに調べてみました。
Table1

MicronのDDRメモリでは、0.33mmなんていうのもありました。
同じXILINXでも、xapp426は2002年の発行ですが、xapp489は2006年です。後から発行されたアプリケーションノートのほうが小さいパッドを紹介しているのは興味深いところです。

0.8mmピッチは次のようになっていました。
Table2

結局、どのサイズにすればよいのか迷うところですが、当然、大きいバッドほど接着力は増すと思われます。
推奨サイズはベンダごとパッケージごとに違うのですが、BGAのボール直径-0.1mm~-0.15mm程度にしておけばよいのでしょうか。
メーカーによって、あるいは同じメーカーでも推奨値には差があります。
基板設計者はパッドを小さくしたいけど、信頼性を考えるとあまり小さくできないのでしょう。

ともかく、1.0mmや0.8mmピッチのBGAのパターンを作る際には、ランドは0.4mm、マスク開口径は0.45mm~0.5mmくらいにしておけば、多くの場合で上手く実装でき、かつP板でも製造できる基準になるのではないかと思われます。

ちなみに、XILINXのXAPP489によれば、BGAのピン間2本引き出すためにランド径を 15mil(0.381mm)にしてしまうのもありなようです。こうすればP板の製造でも、256ピンBGAの全配線を4層で引き出せます。
15mil
(XILINXのアプリケーションノートxapp489より引用)
どうせ小さくするならここまで小さくしてピン間2本通さなければ意味がありませんよね。

| | コメント (0)

2008.10.24

DOS版JTAG書き込みツールをリリースしました

DOS版のJTAG書き込みツールをリリースしました。
知る人ぞ知る「NAXJP」の後継ソフトです。

MITOUJTAG BASIC 1.50をご利用のお客様は、下記のURLから無償でダウンロードしていただくことができます。
http://www.tokudenkairo.co.jp/jtag/sp.html#bas15

対応デバイスは、
XILINX: XC9500,9500XL,CoolRunner2
 Spartan2/2E Spartan3/3E/3A/3AN/3ADSP
 Virtex E,Virtex 2/2Pro,Virtex 4,Virtex5/5LXT
 XCF00S,XCF00P,XC18V00
ALTERA: MAX2、Cyclone、Cyclone2
です。

実行したときの画面は以下のような感じになります。
JTAG書き込みツールの画面

このツールの使い方はとても簡単です。
使い方を簡単に文書にまとめましたので、ご興味のある方は下記のリンクをクリックしてください。
「readme.txt」をダウンロード

起動するには、まずデスクトップ上(またはスタートメニューのMITOUJTAGの中の)アイコンをクリックします。
JTAG書き込みツールのアイコン
するとDOSプロンプトが起動します。

例えば、下の図のように、JTAGチェーン上にSpartan3ANとXCF04Sがチェーン接続されている場合を考えてみます。(ちなみに、これはSpartan3AN評価ボードの構成です)
JTAGチェーンの構成

Spartan3ANはバイパスしてXCF04SのみにBitStreamファイル書き込みたい場合、
 mjisp -bypass any -auto ファイル名 [-cf]
と記述します。最後の-cfはオプションで、書き込み完了後にFPGAの再コンフィギュレーションを促すものです。
上記のコマンドを実行すると、以下のような画面が現れて書き込みが完了します。
コンフィグROMに書き込んでみたところ

コンフィグROMはバイパスしてFPGAだけ書き換えたい場合は、
 mjisp -auto ファイル名 -bypass any

anyというのは、見つかったデバイス何でもという指定です。例えば、
 mjisp -erase XC2C256
と書けばJTAGチェーン上にXC2C256が見つかればそれを消去します。
 mjisp -erase any
と書けば、JTAGチェーン上に見つかったデバイスを片っ端から消去します。


iMPACTやQualtusなどのベンダー製JTAGプログラマと比べての利点は、異なるメーカのデバイスが混在したJTAGチェーンでも動作することなどが挙げられます。
異ベンダー混在JTAGチェーン
このような異ベンダー混在JTAGチェーンでは、iMPACTもQualtusも扱うのが大変難しくなります。
MJISPなら、上の図のようなJTAGチェーンでも威力を発揮します。
何も難しいことはありません。それぞれのデバイスでやりたいことを淡々と指定していくだけでよいのです。
 mjisp -auto file_xc2 -auto file_max2 -bypass SH7780


また、このツールはマウスでGUI操作をしなくてよく、バッチファイルから呼び出すこともできます。
JTAGデバイス書き込みの自動化や、他のプログラムからの書き込みジョブの呼び出しなどをしたい場合、異なるメーカーのデバイス混在させたJTAGチェーン上での書き込みなどにご活用ください。



本ツールは、MITOUJTAGの次期バージョンで標準ツールとして同梱される予定です。
もし、MITOUJTAG BASICではなく本ツールだけ使用したい場合などのご要望を多くいただいた場合には、本ツール単体でのリリースの検討もいたしますので、よろしくご検討ください。

| | コメント (0)

2008.10.23

CoolRunner2とMAX2に対応しました!

大変お待たせしました。

2週間の苦労の末、CoolRunner2とMAX2の書き込みアルゴリズム自体をMITOUJTAGの中に実装することができました。特に、CoolRunner2書き込みアルゴリズムの開発は困難を極めました。

Miscboard
いろんなボードに書き込んでいるようす

今回、これらのデバイスへの書き込みはMITOUJTAGのネイティブで対応したので、もうSVFファイルを経由する必要はありません。
iMPACTやQualtus2Programmerを使わずに、JEDファイルやPOFファイルを直接CPLDに書き込むことができるのです。つまり、iMPACTやQualtus2をインストールしていないパソコンでも、JEDファイルやPOFファイルさえ持ってくれば、即、実機に書き込むことができます。

Xc2c_max2

書き込みアルゴリズムの追加パッチは下記のURLからダウンロードできます。
http://www.tokudenkairo.co.jp/jtag/sp.html#bas15

現在の対応状況としては、
① CoolRunner2
XC2C32,XC2C32A,XC2C64,XC2C64A,XC2C128,XC2C256,XC2C384,XC2C512
 書き込み・ベリファイ・消去・リードバックに対応

② MAX2
EPM240,EPM570,EPM1270,EPM2210
 書き込みと消去に対応
ベリファイおよびリードバックにはまだ対応していません。
また、MAX IIG、MAX IIZの書き込みにも対応していません。

CoolRunner2のほうはほぼ完成しました。
今後、動作の検証を含めてさらにMAX2のアルゴリズムを充実させていきたいと思います。
ますます便利になるMITOUJTAGをよろしくお願いします。


また、現在、こんなツール↓も作っています。

Mjisp1Mjisp2
クリックで拡大します

GUIを使わずにDOSプロンプトからJTAG 書き込みを実行するツールです。
mjisp.exe -auto <データファイル名>
という簡単な記述で動くので、バッチファイルなどに入れることもできます。

データファイルは、JED、POF、BIT、MCS、RBFなど、論理合成ツールが出力したものを指定します。
このツールも、明日には公開したいと思います。


| | コメント (0)

2008.10.14

ET2008に出展します!

今年はET2008に出展します!(たしか、昨年は講演のみで出展はしませんでした)
日時は2008年11月19日(水)~21日(金)、場所はパシフィコ横浜です。

弊社ブースの場所はIPA(情報処理推進機構)内です。
今年も情報処理推進機構殿のご好意により出展することができる見通しです。

ET2008では、おそらくMITOUJTAG BASICとProの展示を行うと思います。
構想中の新しいFPGAデバッグツールもETに間に合わせたいです。

詳細は決まり次第発表していきたいと思います。

| | コメント (2)

2008.10.10

東北FPGAカンファレンスに出展しました

東北FPGAカンファレンスが行われ、弊社も出展しました。
やっぱり展示会は東京がいいなと思いました。
でも、前もってご案内を出しておいた弊社のお客様が来ていただいたり、たまたま当社のブースに来られたお客様がとても喜んでくれた方がいたり、出展業者間の親睦が深まったりなどという良いこともありました。



さて、展示会も終わって帰ろうと思ったら、上りの東北新幹線が激込み。

切符を買うのに20分くらいかかるので目的の新幹線には乗れません。
仙台駅でお土産を買っていこうと思い、仙台名物の牡蠣と牛タンを買うことにしました。

お店の人に牛タンは芯タンが最高だよといわれて買ってみたものの、後でよく見てみると、ニュージーランド・オーストラリア産と書いてあるではないですか
Gyutan1_2

米●産や中●産ではないだけましだったけど、土地の名物であっても、必ずしもその土地で獲れた食材が使われているとは限らないわけなのですね。今度からは気をつけようと思います。

Gyutan3

生牡蠣は水質がどうのこうのでまだ発売できないと言われ、牡蠣の佃煮みたいなのを買うことに。これは美味しかった。

| | コメント (0)

2008.10.09

CoolRunnerIIの書き込みアルゴリズムを開発中

MITOUJTAGは、XILINXの様々なデバイスに書き込みができますが、
CoolRunnerとCoolRunnerIIの書き込みには対応していませんでした。

これまで、CoolRunnerIIを書き込むためには、
ISEで作ったJEDファイルをiMPACTを使ってSVFファイルに変換し、
そのSVFファイルをMITOUJTAGでPlayするという形で書き込まざるを
得ませんでした。

CoolRunnerIIは比較的良く使われるCPLDでありながら、
MITOUJTAGがネイティブで対応していないため、
操作的に不便でありました。

そういうわけで、CoolRunnerIIの書き込みをネイティブで
できるようにしようとしています。

ようやくXC2C32とXC2C256の書き込みアルゴリズムが解析できました。

絵に表すと、こんな感じです。
・XC2C32
Xc2c32
・XC2C256
Xc2c256

何の絵かわかりにくいですが、CPLDの内部のある部分の構造をイメージにしたものです。この絵を正確に描ければ、書き込みアルゴリズムを作れるというわけです。

早速、CoolRunnerIIの書き込みプログラムを作って実験してみたところ、
XC2C256の書き込みにも成功しました。
500種類以上のJEDファイルをランダムに生成し、iMPACTの動作とMITOUJTAGの動作に違いがないことを確認できました。アルゴリズムの考えは間違っていなかったようです。
Xsp014

このまま開発を進めていき、近いうちにMITOUJTAGをCoolRunnerII書き込み対応にするためのパッチをリリースします。
ご期待ください。

| | コメント (0)

2008.10.08

モバイル回路エディタの続き

今夜は久しぶりにモバイル回路エディタの開発を行いました。
とりあえず、好きな部品を好きな場所に配置したり移動できるようになりました。

Mobsch1

画面の下にいくつかのボタンを用意しました。例えば、トランジスタの絵のボタンを押すと、部品ライブラリの中から部品を選択して置けるようになります。

Mobsch2

これで部品を選択、置く、選択、置く・・を繰り返すと一応回路図らしきものが描けます。
AdESでも動きました。

Mobsch3

Adesと、エミュレータでは画面のサイズが違うため、エミュレータでは画面が崩れてしまいます。これもいずれ何とかしたいです。

あと、WireやLineも描きたいのですがDraw系のアイコンを並べると狭い画面がすぐにいっぱいになってしまうので、必要なときだけパレットを開くようにしてみました。(上の写真)

これで、部品や、絵の材料を置いていく土台はできたので、あとは使いやすくしていこうと思います。
タッチパネルだと、「ボタンを押さないでマウス移動」ということがありえないので、普通のWindows用ソフトを作る場合と比べて操作性に悩みます。盲点がたくさんあります。

まだ置いた部品や線を削除することができません。なので、上の写真では配線に失敗したごみがいっぱい映っています。片手で操作できるようにするには、削除ボタンを設けたくないので、どうしようかと考えるのが楽しいところです。

この、モバイル回路エディタという企画はのんびりやっていきたいと思います。

| | コメント (2)

2008.10.07

いよいよ開幕FPGAカンファレンス・東北

今週の金曜日に、FPGAカンファレンス(東北)が開催されます。
特殊電子回路は東北会場に出展します。

展示内容は、FPGAを論理合成せずに動かすことができる新製品、
『MITOUJTAG Pro』のデモ展示と、体験版CD-ROMの配布を予定しております。

会期 平成20年10月10(金) 9:30~17:00
会場 仙台市情報産業プラザ(仙台駅前アエル内)
交通 JR仙台駅下車 中央改札から名掛丁方面 8番出口より徒歩2分

電子回路、とりわけ、組み込み機器のデバッグでは、ひとたび「ちゃんと設計したはずの基板が動かない」、「CPUが動いているのかどうかさえわからない」、「FPGAが起動しない」、「配線がちゃんとつながっているのか怪しい」などの問題が発生すると、原因究明に無駄な時間を費やしてしまうことになりかねませんでした。
従来は、このような問題の解決には経験と勘のようなものが必要とされてきましたが、MITOUJTAGを使うとこれらのデバッグに要する時間を大幅に削減することができ、問題点を素早く見つけることが可能になります。

MITOU JTAG Pro

 また、昨今のFPGAは、論理合成と配置配線に莫大な時間を求めるようになってきています。FPGAの端子を意のままに操作してデバッグしたいような場合、毎回論理合成や配置配線を行っていたのでは貴重な時間が無駄になってしまいます。
 そのような場合、MITOUJTAG Proを使えば、C言語で記述したとおりにFPGAの端子だけを操作することができ、ソースの変更からFPGAの動作変更まで5秒とかかりません。エンジニアの思考の速さでFPGAの動作を変えることができます。

弊社のJTAGソリューションについて忌憚のないご意見をお聞かせ下さい。
皆様に直接お会いすることができるのを楽しみにしております。




P.R. 特殊電子回路ではエンジニア(正社員およびアルバイト)を募集しています。

| | コメント (0)

2008.10.03

折りたたみ自転車を買った

折りたたみ自転車を買いました。

車輪が26インチなので、見た感じ折りたたみ自転車には見えません。
乗り心地も良好。

レバーを引くと、真ん中でくしゃっと折れ曲がります。
Bicycle

折りたたまないと事務所のエレベータに乗れないのですが、
折りたたんだ状態で持ち運ぶのはちょっと大変。

神田界隈を自転車で走るのが楽しみだ~

| | コメント (0)

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