FC2カウンター FPGAの部屋 プリント基板の作成過程
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

基板設計

金曜日に基板設計を担当していただく基板やさんに来ていただいて打ち合わせをした。
事前にネット、指示書、希望の部品配置図をおくってあったのだが、 2つの基板どちらも希望の部品配置では線がクロスして配線しづらいとのこと。
パターン配線していないネットの図面を見せてもらったが、大きい基板はFPGAのピンが1本しか余っていない状況なので、希望の部品配置ではかなり難しそう。仕方が無いのでコネクタの位置をFPGAのピン配置にあわせることにした。これでだいぶ配線は楽になりそうだが、ポートの送信、受信コネクタが離れてしまった。
小さい基板はポートの送信、受信コネクタの位置を反対にした。これでだいぶクロスがなくなった。こっちのFPGAはだいぶ余裕があるのでピンの配置をうまく配線できるように変更。これで大丈夫なようだ。
スピードの速い信号はインピーダンスコントロールをしてくれるようだ。表面の配線はマイクロストリップライン、内層はストリップラインになるはずなのでインピーダンスは合いますかと質問した所、絶縁層の厚さとパターン幅を調整してインピーダンスをあわせるようだ。近くの層はGND層なので切れ目もないしインピーダンスが乱れることも無いそうだ。
今回はPowerPCとSDRAMの出力時間とセットアップ時間の違いからクロックをその間の配線で400ps遅らせてもらうことになった。7cm程度になってかなり長い。クロックはかなりの負荷だしうまく行くかどうか不安である。伝送線路シミュレーションで波形を検討してどうするか決めることになった。
伝送線路シミュレーションは前々回の教訓からしっかりやっていただくことになった。もう、たまにデータが間違ってトラブルシュートするのはごめんである。
  1. 2006年03月26日 05:55 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:5

最近のお仕事2

やっと2枚の基板ともネットのチェックが終了した。
順番が前後してしまうが、電源を試作してちゃんと電圧が出るかどうかをチェックする。
〇Sコンポーネンツとかで買うと、買いやすいのは良いのだがサポートが無いのと一緒なので、データシートに書いてあることだけしかわからない。それで実際にやってみることにした。
もう1つエンピリオンのPGNDのアースの取り方が問題になっている。
http://www.enpirion.com/products/pdf/EN5360%20Datasheet%20Rev%201.01.pdf
物はこれなのだが、アプリケーションノートで一点アースしろといっているのだが、エンピリオンに入力する電圧もICで使う時にはどうしてもサーマルパッドのGNDと出力のGNDをつながなければいけないはず?
今日販売代理店にもう一度聞いてみることにする。
後は基板やさんに指示書を書かなければ、PowerPCとSDRAMのデータホールド時間が合わないので、配線遅延で辻褄を合わせる予定なのだ。SDRAMとPowerPCは少なくとも300psの配線遅延分は離してもらわなくては。。。(データバスがつながっているので)
基板やさんにはその他等長配線などでご苦労をかけると思いますが、よろしくお願いします。(ここで言っても仕方ないか。。。)
  1. 2006年03月09日 06:10 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:2

近頃のお仕事

最近のお仕事は基板の回路図のネットリストを元に回路図の間違い探しという、面白くも無い大変なお仕事。
専用ピン1本でも間違ったら基板パーというプレッシャーと戦いながら、小さい基板は終わったが、大きい基板が残っている。回路図が階層構造になっていて、部品として使っている回路図は確かめなくてもいいはずなので、その辺は楽になるはず。
回路図を書く時に抵抗の型番は抵抗値で変えずに最初の型番だけ書いてあり、コメントで抵抗値を入れてあった。
つまりMCR05シリーズという抵抗があったら100オームの抵抗はMCR05-101の部品を使い(10×10の1乗だから)500オームの抵抗はMCR05-501の部品を使って本当は書くのだろうが、全部抵抗はMCR05の部品を使って、抵抗値はコメントで入れてあった。
これじゃだめだそうだ。ネットを作ってもパーツリストがそれだけじゃ使えないということはわかっていた。以前はそれで基板を作ってくれたのだが、これを作り変えると大変だ。
OrCADに部品のインスタンスを入れ替える機能があればよいのだが。探してみようと思う。

そろそろ技術発表会のほうも大詰めなのでポスターを作った。B1の大きさのポスターを2枚とした。後はポスター発表の時に何を説明するかを考えないと。
  1. 2006年03月07日 06:06 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:4

回路図入力大詰め

新しい基板の回路図入力が大詰めに来ている。
現在も家にいるが、OrCADを使っている研究室の院生とSkypeでやり取りして回路をつめている。もう少しで入力が終わりそうだが、DRCでだいぶエラーが出るだろう。コンデンサなどのシンボルもいい加減にやっているので、種類別にしなくては。。。
設定ピンもどっちのレベルにしていいか迷うのは、設定ピンか0オーム抵抗をつけておくことにする。
0オーム抵抗も1005では変更大変なので1608にしようと思う。どっちもゴミだが、まだましだ。
まだ部品が手配できていないのもあるし、特に32ビット、512Mbitの2.5V動作SDR SDRAMを手に入れるのが大変そうだ。
  1. 2006年02月16日 22:49 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:0

Virtex2proの3.3VのIO電圧

最近こんなのばっかりだが、いろいろ毎日あたふたしながらやっている。またまた、仕様変更でピン割り当てやり直しとなった。
今度はVirtex2proに3.3VのIOを割り当てたのだが、いろいろ振り回されてしまった。
まずはVirtex2proの日本語ユーザーズマニュアルの166ページには”指定されている 3.3V I/O バンクを使用すること。指定されているバンクの位置については、312 ページの表4-1 を参照してください。”と書いてある。
こりゃ大変、もうバンクを割り振ってあるのに。。。
何かおかしい。試しに英語版を見るとそんな事書いていない。
"12/04/02 2.1 Added full support for 3.3V I/O standards PCI-X, LVTTL, and LVCMOS33."と書いてあって、どうやら3.3VI/O大丈夫になったらしい。日本語ユーザーズマニュアル古すぎ。。。日本語ユーザーズマニュアルはVer2.0だった。Ver.2.1から大丈夫になったみたい。
でもアプリケーションノートXAPP659を見ろとある。試しに日本語を見ると、3Vに電源電圧をするか、DCIを使ってインピーダンスマッチングを計れと書いてある。
また英語版を見ると”3Vに電源電圧をする”が削除されて”DCIを使ってインピーダンスマッチング”だけになっていた。
もう空いているピンが無いのでVRP,VRNの抵抗がつけられないので、外にダンピング抵抗をつけることにする。

ともかく日本語のマニュアルだけでは危ない。必ず英語版も見ること。
  1. 2006年01月31日 20:04 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:2

プリント基板の設計

Virtex2proのRocketIOやDDR SDRAMを使うと、電源が沢山必要になるようだ。
RocketIOのVccはロジックと別電源にしなくちゃいけないし、ACカップリングだとVTRX受信用のリファレンス電源が別に必要。
DDR SDRAMのリファレンス電源は消費電力が結構大きいし。。。
FPGAコアも電力を食いそうである。プロセッサコアは強烈に電力を食いそうだ。
大きい基板は十数電源になりそうだ。
それに、2.5V動作の水晶発信器が見つからない。LVCMOS2.5Vは見つからずLVPECLのエプソンの水晶発信器しか見つからなかった。
"Virtex,Virtex2proのIOBのクロック配線の制約"でも書いたが、思いもかけない制約もある。
間違えないように配線しないと。回路図を作る段階はいつも緊張する。1本間違えたら基板パーかもしれないから。使用するいろいろなデバイスのデータシートやユーザーズマニュアル、アプリケーションノートを読まなくちゃ。相当読まないとだめだ。でも必要な所のみ拾い読み。とても時間が足りないし。。。
なるべく安全なように配線することにする。
  1. 2006年01月25日 20:42 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:4

ボード作製初期のデバック

今やっている基板は2002年に最初に作ったので、もう3年以上付き合っている。
基板は回路図はこっちで描いて、基板屋さんに渡して、ボード設計、基板作製、部品実装してもらった。
ボードは2種類あって、パソコンのPCIカードと独立で使う基板がある。
FPGAの回路は全てスクラッチから作った。ボードが出来る少し前から初めて、SDRAM制御回路、PCIインターフェース、PowerPCプロセッサインターフェース、DMA、内部バスアービタ等など。
FPGAの回路設計するのが2人しかいなかったので、最初は本当にきつかった。PCIカードの方のロジックは大部分私1人で作った。休みの日も、自宅のパソコンで回路を書いていた気がする。おまけにシミュレーション用のテストベンチを書くのも大変だった。
という訳で、基板もFPGAの回路もファームウェアも新しいので、デバックの際はどれを信じたら良いのかわからず大変だった。さらにFPGAをAlteraからXilinxに変更したばかりで、FPGAのことも良くわからない。
バグがでたら1つずつ、ファームは大丈夫か、回路は大丈夫か? 自分たちで書いた回路図がだめなのか? それとも基板がおかしいのか? という問いを繰り返した。
ファームは自分の間違いだというのがわかれば、すぐに修正できるが、FPGA内の回路で、シミュレーションでわからないタイミング依存の現象は、FPGA内に検証回路を作りこんでデバックしたりした。
基板も水晶のピン配置が違うといった単純なミスから、グランドバウンズで基板を作り直すというバグもあった。
グランドバウンズと特定するにはとても苦労した。論理回路が間違っているかもしれないし、その可能性を除くためにプロトコルなしの生データを受け渡す回路を作ってテストしたりもした。結局、他のこともやっていたが、それがわかるのには、半年以上かかってしまった。
取り留めなくなったが、やはり、全部動くかどうかわからないというのはデバックが大変すぎる。
今度作る予定の基板では、以前の回路をなるべく使いまわして、基板の動作チェック等を出来るようにしたい。今度はいろいろノウハウがあるので少しはいいだろう。
基板のほうも最初から伝送シミュレーションをしてもらったり、グランドバウンズの配慮をしてもらったりしたい。やはり、それなりのノウハウがあるところに頼まないと後で作り直しとかになってしまうかもしれない。それにその部分がしっかりしていると安心できる。時間の無駄がだいぶなくなると思う。
本当に長かったような気がするが、ちゃんと動くようになってよかった。
普通の企業だったら、3年以上もかかったら首かもしれませんよね。こっちもいろいろノウハウがためられて良かったともいえるが。。。
  1. 2005年12月28日 06:17 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:3