Product Updates

日付

著者

Product Updates

さらなる高速化で、ジョブが1時間未満で完了

日付

初回公開日

July 1, 2024

シリーズ全体を読む

/ 6

この記事は、Quilterの物理法則に基づくレイアウト自動化を使い、NXP i.MX 8M Mini搭載コンピューターを再現した過程を詳しく紹介するシリーズの一部です。 

Quilterでは、手作業の設計に数日から数週間かかっていた基板が数分で生成されるようになったとき、電子機器の開発がどのように変わるのか、日々考えています。

2月にQuilterを初めて公開したとき、特によく寄せられた意見の1つが「Quilterは遅すぎる」でした。当時、平均的なジョブでは、最初の成功した候補が返されるまでに2〜3時間、すべての候補の探索を終えるまでに約4〜8時間かかっていました。

Quilterを一晩動かす必要があると、反復を通じて学び、発見するためのツールとしての有用性は大きく下がります。そこで、公開以来、「数分でPCB設計」という約束を実現するため、Quilterの性能向上に注力してきました。

本日は、Quilterのコンパイラに対する2回目の大幅な高速化をお知らせします。大域配線サブモジュールを再構築したことで、配線がさらに4倍高速化し、Quilterの平均ジョブ時間が<1時間になりました。

コンパイラの処理段階:全体計画、部品配置、全体配線計画、局所配線、設計の仕上げ。

<1時間で数十の選択肢

4月のブログ記事をお読みになった方は、Quilterが5つの主要サブモジュールで構成され、すべてのレイアウトジョブの配置、配線、後処理を担っていることを覚えていらっしゃるかもしれません。

同じ基板にも配線方法は無数にあるため、ほぼ無限の探索空間から最良の解を見つけることは、部品配置よりも配線のほうがはるかに困難です。社内ベンチマークにもそれが表れており、公開当初、Quilterに送信された平均的なジョブでは、配線がジョブ時間の約70%を占めていました。

4月にリリースした最初の大幅な配線の高速化は、局所配線サブモジュールの再構築によるものでした。このモジュールは、配線経路の指定と障害物の回避を担います。PythonからネイティブのC++へ実装し直すことで、配線を6.7倍高速化し、平均ジョブ時間を3.6分の1に短縮しました。

続く改善として、大域配線計画サブモジュールも全面的に再構築しました。これは、主要な配線をどのようにまとめ、基板のどの領域に通すかを決めるモジュールです。

オープンベータと2回の高速化リリースにおける、平均配線時間とジョブ全体の所要時間を比較した棒グラフ。

この再構築により、次のような結果が得られました。

  • 配線時間 については、公開当初に対する高速化が6.7倍から → 27倍になりました
  • ジョブの総所要時間 については、公開当初に対する高速化が3.6倍から → 9.4倍になりました

最も重要なのは、これにより、典型的な成功ジョブでは50以上の異なる設計を探索し、DRC違反がなく100%完了した候補を20件生成できるようになったことです。しかも、すべて1時間未満で完了します。

Quilterは、一晩かけて使うだけのツールではなくなりました。全社会議や昼休みの間にも設計を探索できるようになり、プロの電気エンジニアにとって、設計パートナーとしての有用性が大きく高まりました。

高速化を実際の価値につなげる

今回の高速化を本当に役立つものにするには、Quilterは優れた設計を生成しなければなりません。単に完了した設計では十分ではありません。

そのため、この数か月間、回路図に含まれる物理的要件を理解し、それをPCBレイアウトに忠実に反映するQuilterの能力を高めることに力を注いできました。

検出された差動ペアとインピーダンス、周波数の設定を表示するQuilterの回路理解画面。

予告:差動ペア

差動ペア配線は、高速デジタル設計で一般的に求められます。しかし、層構成の定義、インピーダンス特性の計算、煩雑な配線作業、期待に合わない製造業者の納期、そしてまた最初から、という堂々巡りに陥りがちです。

Quilterは間もなく、回路図内の差動ペアを自動で検出して配線できるようになります。さらに、次のことも可能になります。

  • 配線幅と配線間隔を自動計算し、ユーザーが定義した差動インピーダンスの目標値に必要な条件を求めます。
  • 主要な製造業者と連携して作成した、定義済みの層構成のライブラリから、独自の設計を生成します。
  • IPC規格を用いて「自らの成果を評価」し、ヒューリスティクスも活用して、製造性と性能のトレードオフを明らかにします。

差動ペアは、新しい制約タイプを追加するロードマップの第一歩です。これらの制約によって、Quilterはより優れた設計を、これまで以上に速く生成できるようになります。

次は何を開発すべきでしょうか?

Quilterの今後の製品ロードマップづくりにご協力いただける方は、公開プロダクトポータルで、追加してほしい機能の閲覧、提案、投票をお願いします。

Quilterを実際に試す

Project Speedrunは、自律的なレイアウトの実際の姿と、Quilterが実現する時間短縮を示しました。次は、ご自身のハードウェアでお確かめください。

利用を始める

設計の検証

仕上げが完了したら、最後に確認するのはハードウェアが動作するかどうかです。電源投入時には電気的な不具合の多くが現れます。エンジニアにとって、緊張と期待が入り交じる瞬間です。

第4回に進む

設計の仕上げ

自律的なレイアウトにより、DRCを実施済みの完成した設計が得られます。仕上げは、製造に向けて最終調整するための短い精密な作業です。

第3回に進む

設計のコンパイル

設計の準備ができたら、次はQuilterに引き渡します。従来のワークフローでは、この段階でエンジニアとレイアウト担当者が設計意図を確認します。Quilterはこの打ち合わせを回路理解のプロセスに置き換えます。プロジェクトをアップロードし、制約条件がどう解釈されたかを確認して、ジョブを実行します。

第2回に進む