FC2カウンター FPGAの部屋 ボード作製初期のデバック
FC2ブログ

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

FPGAの部屋

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

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

今やっている基板は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

コメント

基板設計としては

FPGAが乗っかってる基板は気を使いますね。以前もお話にありましたDDRとの組み合わせとかは、「線引いて終わり」のレベルですと想定スペックで動いたっていう声を聞いたことがございません。
要因として
・リターンが確保できていない
・電源が不安定(バウンズ)
の2点がほとんどだそうです。

開発段階の基板で安定動作を前提とした基板では、VIAの内層逃げを小さくして内層の多層化で各電源をしっかり確保し、パスコンとかもここ最近は0603チップを使ってFPGAの裏面にぎっしり置くことが多いですね。多層化での基板代やら0603部品やらの対策でコストがかかるような感じはしますが、意外と設計の時間は軽減されますし基板上の問題はかなり防げるだろうと考えます。まぁ、量産ですとまた別の話になりますけど。。
後、伝送線路解析を踏まえた設計をする際には特にインピーダンス基準となる層に気を使います。せっかく解析で良い波形が得られていたのに基準面にスリットが入っていてリターン経路が形成できずに実機波形にリンギングが入ってしまったというお話を結構聞きます。

今年もいよいよ暮れを迎えますね。
こちらは天候には恵まれておりませんが、、良いお年を。
  1. 2005/12/29(木) 21:22:20 |
  2. URL |
  3. kanata #jxT87rSU
  4. [ 編集 ]

いろいろ教えていただいてありがとうございます。
作り直した基板は6層から8層に変更になって、FPGAのパスコンも0603を裏面に入れてもらいました。100MHzの動作周波数のピンが256本あって、同時スイッチングしますから、このくらいしないとミスってしまったようです。特に0xff7fffffの次に0x0080000を繰り返して送ると、66MHzに落としてもデータが送れませんでした。基板作り直した後は問題なく動作し、やはりグランドバウンズや、クロストークの恐ろしさを実感したような気がします。
今度はPCI Expressとか2.5Gbpsのラインがあるので、特に下の層のスリットには気をつけてもらうように基板設計者の方にお話しようと思います。言わなくてもご存知とは思いますが。。。
  1. 2005/12/30(金) 06:32:58 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

このあたりは天気は良いのですが、風が強い日が多いです。本当に寒いのであ体を大切にしてください。
良いお年を。
  1. 2005/12/30(金) 09:00:51 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/112-31e2fefa
この記事にトラックバックする(FC2ブログユーザー)