カスタムFPGA PCBデザインのヒント


9

カスタムFPGA PCBの設計を計画しています。PCBにはセンサーが含まれます。センサーの出力を読み取り、プロセッサで処理する必要があります。FPGAを使用して多くのプロジェクトを完了しましたが、これはハードウェア構成も考慮する必要がある最初のカスタムデザインになります。最近研究を行っていますが、一から始めるのはまだ難しいです。したがって、私と、カスタムFPGAを設計したい他の個人が各ステップで検討する必要があるポイントを支援するようにお願いします。このプロセスに役立つ本/オンラインリソースはありますか?また、プロジェクトが終了したら、ドキュメントを作成して、人々が利用できるようにします。


おそらく、あなたは...あなたが使用する予定のFPGAの物理的なサイズ、ピン数、必要な電源電圧、言及する必要があります
Dzarda

これらはまだ指定されていません。多分私の質問は不明瞭でしたが、私はガイドラインを探しています。
2014

わかりました。
Dzarda 2014

この質問はトピックから外れているようです
Roh

4
大きな問題は、BGAパッケージを使用するか、または手作業に適したTQFPパッケージで利用可能なオファリングのサブセット(および電気的性能の低下)に制限するかどうかです。次に、すべての電源と信号を2つのレイヤーにルーティングすることを望んでいますか(トリッキーですが、目標が限られている場合は可能です)、それとも4つ以上を使用してもかまいませんか?センサー信号はどれくらい速いですか?内部ロジックにクロックを供給したいと思っていましたか?ノイズに敏感なアナログはありますか?既存のFPGAボードで使用するドーターボードの作成を検討しましたか?
Chris Stratton

回答:


11

私の会社では、以前にいくつかのカスタムFPGAボードを設計しており、最近、カスタムFMCドーターボードを備えた市販の( "COTS")FPGAボードの使用を開始しました。

試作段階

まだプロジェクト定義の初期段階にある場合は、プロトタイピング用に少なくとも1つのCOTS FPGAボードを購入することを計画してください。センサーの1つをI / Oヘッダーに接続して、概念実証をすばやく行うことができます。これにより、多くのセンサーにスケーリングした場合のプロジェクトのパフォーマンスと、特定のFPGAでサポートできる数を推定できます。

FPGAが小さすぎる、または遅すぎる、またはツールがジョブに不十分である場合、この段階で別のCOTS FPGAを簡単に交換できます。(簡単ではありませんが、少なくとも管理可能です...)

この段階でファームウェアが機能しない場合は、カスタムPCB設計エラーではなく、ファームウェアの問題が原因です。カスタムファームウェアとカスタムPCBでは、どちらの側に問題があるのか​​を判断するのが難しい場合があります。

カスタムFPGAボードと市販の市販FPGAボードの比較

カスタムFPGAボードの設計は、プロジェクトのライフサイクルが短い、大量である、またはCOTS FPGAボードとPMODまたはFMCアドオンボードで実現できるよりも小さいフォームファクターが必要な場合に意味があります。

プロジェクトのライフサイクルがDDRメモリチップの製品寿命(数年)を超える場合は、カスタムFMCドーターボードを設計することをお勧めします。

コストはこの決定の要因です。ほとんどのCOTS FPGAボードはある程度汎用的で、最大限の柔軟性を実現するように設計されています。大量生産でコスト重視の製品を製造している場合は、カスタム設計を作成することはおそらく価値があります。しかし、少量の場合は、おそらくドーターカードの作成に集中する方が良いでしょう。

選択する方法に関係なく、明確なマスタードキュメントが必要な特定のインターフェイスがあります。FPGAトップレベルI / Oピンとボードの残りの部分の間のインターフェイス、およびボード間のコネクタインターフェイスです。これらは、ピンの位置、内部ネット名、および外部ネット名が不一致になり、入れ替わる場所です。表は十分なドキュメントです。このインターフェイステーブルは常にバージョン管理を行い、ソース管理下に置いてください。PCBファイルを製造に送る前に、このインターフェーステーブルのコピー、回路図のコピー、およびFPGAピン/パッドレポートのコピーを印刷してください。蛍光ペンを紙全体にドラッグして、必要な場所で各信号接続を確認します。

コネクタについては、ボードと嵌合コネクタの両方を1つの寸法のある図面に一緒に表示する機械的な「システム図」を提供する難しい方法を学びました。最初に、一方のコネクタのピン「A1」がもう一方のコネクタのピン「A1」にマッピングされていないVMEコネクタシステムに火傷しました。また、直角のコネクタのペアが鏡像接続になることを設計者が忘れているのを見てきました(90度+ 90度= 180度)。これは私がマザーボードを担当していて、他のいくつかのプロジェクトマネージャーがさまざまなドーターボードを担当していたときに問題でした。

カスタムFPGAボードのヒント

FPGAベンダーの「リファレンスデザイン」から始めて、アプリケーションに不要な部分は省略します。FPGAからバイパスコンデンサを取り外さないでください。また、PCBレイヤーの数を減らして回避しようとしないでください。レイヤースタックに注意してください(ドリルの図面と一緒によく見られます); ファインピッチコンポーネントは通常、標準の1オンスの銅箔の厚さの代わりに0.5オンスの銅を使用します。

BGAパッケージは扱いが面倒です。歩留まりはTQFPまたはTQFNパッケージほど優れておらず、BGAの再加工はほぼ不可能です。アセンブリの問題を検査する場合でも、X線イメージャーが必要です。信頼できる委託製造サービスプロバイダーを使用してください。

FPGAボードを使用する場合、電源は常に扱いにくいものです。FPGAの実際の電力要件は、コンフィギュレーションビットストリームに大きく依存します。ザイリンクスは「消費電力見積もり」ツールを提供していますが、見積もりはファームウェアが完全な場合にのみ有効です。土壇場でファームウェアを変更する場合、電力要件が予想よりも大きくなるリスクがあります。ある程度の供給電流マージンを残すことを計画します。最初の電力見積もりで560mAが必要と表示された場合は、先に進んで1000mAレギュレータを使用してください。追加の利用可能な出力電流は害を及ぼしませんが、不十分な出力電流があると、異常なシステム動作が発生します。

コミットされていないFPGAピンがある場合は、ヘッダーにできるだけ多く引き出します。問題がある場合、これらのコミットされていないピンは、FPGA内の信号をプローブするための貴重な診断リソースになります。


11

私は、低電力のLattice Mach X02から24のSERDESチャネルを備えた高性能のVirtex 6まで、さまざまな種類のFPGAを採用した12を超えるFPGAベースのボードを設計しました。私が従う通常の手順は次のとおりです。

COTボード(MarkUに類似)を見つけて、必要な内部FPGAリソースの大まかなアイデアを取得します。特に、次のことに注意します。

  • LUT(ルックアップテーブル)カウント:(デザインはリファレンスボードのLUTに適合しますか?)おそらくデザインが完了していないために、LUTの使用の正確な推定(<1K LUT精度)を決定するためのリソースまたは徹底的な方法がない場合。この経験則を使用します。デザインがほぼ完成している場合は、デザインのサイズ(LUTカウント)を使用して、LUTが少なくとも30%多いFPGAを見つけます。デザインが完成に近づいていない場合は、LUTを最大50%または100%増やします。したがって、デザインが9K LUTに適合する場合は、12K LUT以上のFPGAを使用してください。私はやり過ぎる傾向があり、おそらく最大25K LUTになるでしょう。これは、後で耐え難い頭痛を保存します。FPGAの最初のバージョンを特大にしても理解できるように、このボードデザインをコミッショニングする人は、このデザインのスピンが複数あることを理解する必要があります。
  • BRAM(ブロックRAMカウント):FPGAが内部的に持っているよりも多くのメモリリソースがデザインに必要かどうかを判断します。これは最初は見過ごされがちですが、デザインではさまざまな理由でブロックRAMを使用する傾向があります(ROM、FIFOなど)。デザインでブロックメモリが不足し、分散RAMを使用しようとしました(LUTをRAMとして使用) )そして、それは私のすべてのLUTを非常に速く使い果たしました。外部メモリが必要かどうかを判断することが重要です。これは、設計にあらゆるレベルのパフォーマンスが必要な場合、
  • 使用するすべての信号規格と可能な電圧レベルを列挙します。使用する信号規格の一部(LVDS、LVSPEC、LVCMOS)に電圧制限がある場合があるため、これは重要です。ユーザーガイドに目を通し、これらの標準がすべてサポートされていることを確認してください。
  • 電源要件:以前のすべての小型電源がコア電圧仕様を取得することについての不満は同感です。最近、大規模でローエンドのFPGA(Spartan LX45(T)-LX75(T))に多くのTI Nanoモジュールを使用していますおよびラティスECP3)。幸い、I / Oに使用される電源のサイズを決定する際のリスクの一部を軽減できます。特に、このバンクが未知のソース(拡張コネクタ)を駆動していない場合、プロセスは次のとおりです。このバンクが接続するすべてのコンポーネントを見つけ、それらすべてのコンポーネントの入力容量を決定し、最大クロックレートを見つけます。これらの信号を駆動すると、電力要件とバイパス要件の両方を概算できます。

式[P =(1/2)CV ^ 2 *(f)]を使用して、C =入力容量、f =周波数。FPGAが駆動する必要がある入力の(信号ごとに!)すべての出力信号を駆動するために必要な電力量の最悪の場合の見積もりを見つけることができます。

また、(使用するI / O規格に基づいて)内部終端抵抗に関連する電力損失を考慮する必要があります。

最近、TI Webbenchツールを使用することも増え、多くの成功を収めています。

TI Webbench (私はTIで働いていません)

回路図:

  • 馬鹿を念頭に置いて回路図をセットアップするあなたとすべてのHDL設計者はこの回路図に何度も戻ってくるので、誰もが簡単に必要なものを簡単に見つけられるようにして、将来のあなたや回路図全体を調べて調べる必要はありません。ピン20がクロック入力の場合。これには、回路図に関する多くのメモ(可能な場合)、回路の目的、予想される結果、さらには懸念事項までが含まれます。FPGAはバンクに分割できるため、FPGAコンポーネントを複数のパーツに分割することを検討し、回路図ページ全体を個別のバンク専用にすることもできます。

  • 正しいピンに時計を取り付けることについて、あなたの回路図に大きな迷惑なメモを入れてください:デザインの最初のイメージを構築しているときに頭をたくさんの壁にぶつけて、恐ろしい「クロックが有効になっていないピンに配線されたクロック信号」を取得しました。FPGAのさまざまなタイプのクロックピンを恐れて生きてください。一部のクロックピンがFPGAの象限での使用を目的としていることを理解してください。そうでない場合は、「FPGAの象限での使用を目的とした特定のクロックピンがあることを知っていました」と誰もが直面するでしょう。二度と二度としないことを確認するためにこれを言う15人だけがかかります。

  • FPGAコンフィギュレーションデザインに多くの時間を費やす:使用する予定がない場合でも、JTAGピンを引き出すようにしてください。これは、実行可能なエラーと致命的な欠陥の違いです。

  • 疑いで、余分な信号のボタンとLEDとディップスイッチを引き出すときは:私は、ブレイクアウトヘッダのLED、ディップスイッチやボタンに余分な信号のルーティングに関連する余分な仕事について多くのことをgripedしているが、それはしている常にが手伝いました。

レイアウト

  • 早い段階でファブハウスと通信する:特にインピーダンス制御ルーティングが必要な場合は、目的のレイヤー数になるようにレイヤースタックを要求してください。50Ωインピーダンスを実現するために8ミルのトレースの代わりに6ミルのトレースを使用できると考えた場合に最初にトレース幅を定義すると、高速信号をルーティングする方がはるかに簡単になります。

  • バイパスキャップから始めます。電源システムを早期に設計します。最初に、FPGAの下またはピンの近くにすべてのスモールキャップを配置することから始めます。FPGAの外側にある大きいものは、電源回路全体を配線し、大体のところに配置します。このようにして、ルーティングパズルと戦い、妥協することはありません。

  • 高速信号2番目:これらは、あまり多くのレイヤーをジャンプしたくない信号になります。


私は常により多くのことを学んでおり、他のデザイナーが出会った他のヒントを気に入っていたので、それらを追加してください。


6

FPGAを搭載したカスタムPCBの良い出発点は、FPGAベンダーのリファレンスデザインボードになると思います。たとえば電源のこれらのデザインを検査できますが、リファレンスデザインボードのサイズが小さい場合があることに注意してください。電源が小さすぎるため、ザイリンクスML605ボードの構成が失われることで多くの問題が発生しました。

omidのコメントの回答:

私の同僚の1人は、Virtex-6 LXT240に収縮計算アルゴリズムを実装しました。データ入力はギガビットイーサネットによって提供されました。シストリックアプローチにより、入力FIFOにデータがない場合、または新しいイーサネットフレームが到着した場合、FPGAのすべてのフリップフロップが200 MHzでトグルしていた場合、FPGAはほとんど何もしませんでした。この計算の不均衡により、TIの電源回路がML605ボードをシャットダウンしましたが、これはメインの電源スイッチを切り替えることによってのみこの状態から回復できました。

この設計を私たちの大学の電気工学科に与えたところ、彼らは、設置されたコンデンサーに基づいてレギュレーター係数を調整する方法がないことを理解しました。

はい、1つは言うことができます:悪い設計またはより大きいfifosを使用するか...

私の同僚のソリューションは、FPGA使用率を80%削減することでした。

それにもかかわらず、プロトタイピングボードとリファレンスデザインは、特にこのボードがCPUのように通常の電力使用量ではないFPGAを保持している場合、極端なワークロードを処理できる必要があります。


私が知っておくべき「小さすぎる」とはどういう意味ですか?
omid 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.