はじめに

お久しぶりです。2015年度に「赤面ブログ」を担当していましたとぷぅです。
今は 3年目社員としてサポートに励んでいます。
さて、今回は HyperLynx® というツールを使ってみたのでご紹介したいと思います。さっそくはじめていきましょう。

私はある日 インテル® PSG(旧アルテラ)のメルマガ(マンスリー・ニュース・アップデート)から以下、IBIS model generationの YouTube のビデオへたどり着きました。

<IBIS model generation>
https://www.youtube.com/watch?v=izcVsZGu2Ws

このビデオでは、Quartus® II (Quartus Prime) での IBIS ファイルの生成方法が紹介されています。この通りにやってみると確かに IBIS ファイルが生成されました。
ですが、、この先の紹介がない!どのように使えばいいのか困った私が先輩に聞いてみると「HyperLynx だよ!」という回答が。というわけで実際にやってみました。

IBIS ファイルを作ってみた

まずは Quartus で IBIS ファイルを作ってみました。ビデオでは、Quartus II でしたが私はもちろん最新版の Quartus Prime ver16.1 を使います。
デバイスは Cyclone® V を選択、IBIS ファイルを生成する設定を ON にして、フルコンパイルを実行します。今回は DDR3 コントローラー IP の Example Design を使ってみました。
作成方法の詳細な手順は上記動画をご覧ください。(7分弱です)

図1:Quartus Prime の Settings から IBIS ファイル生成の設定

フルコンパイルが終了して、プロジェクト・フォルダーを見てみると、、board フォルダーができています。そしてこの中に、、、
ありました!ddr3_ctrl_01_example.ibs というファイルができています。これが IBIS ファイルですね。ファイル名はプロジェクトの名前で生成されています。

さぁ、IBIS ファイルができたので、やっと HyperLynx を使っていきます。HyperLynx は既にインストール済みです。
おっと、その前に。。。

HyperLynx とは?

HyperLynx とは MentorGraphics 社の基板検証ツールです。プリント基板の伝送路の信号品質や電源プレーン解析などをおこなうことができます。基板設計における問題を早期に発見することができるのです。
⇒ 詳細はこちら

HyperLynx 起動

HyperLynx SI/PI を起動します。(HyperLynx シリーズには SI/PI 以外にもありますが、それはまた別の機会にご紹介します)
起動すると下図(図2)のような画面が立ち上ります。今回はこの中の New SI Schematic をクリックします。

図2:HyperLynx が起動したら使用するシート(Schematic / Board / SI / PI 等)を選択

すると、何もないシートが起動しました(図3)。

図3:SI 用の Schematic シートを起動

これが HyperLynx SI の LineSim で使用するシートです。LineSim とはプリシミュレーションやプリ解析などと呼ばれるもので、デバイス間の伝送路のトポロジーをシート上に作成し伝送路シミュレーションをおこないます。
このプリシミュレーションは、基板のレイアウトや配線を決定する前の解析であり、これによってトポロジーの妥当性をチェックしたりすることができます。

トポロジーの作成

シート上にトポロジーを作っていきましょう。
おっと、その前に本来ならば基板の層構成を設定しなければいけません。今回はサンプルということでデフォルトの設定を使っていきます。
ちなみに層構成は Stackup Editor から設定します。デフォルトだと、下記(図4)のような6層基板の設定になっています。

図4:Stackup Editor で基板の層構成を変更可能

Stackup Editor ウィンドウを閉じてトポロジーを作ります。
Cyclone V と DDR3 間のアドレス信号の伝送路をシミュレーションしてみましょう。
まずは、ドライバーを追加します。シート上部にある下記のメニューバーの一番左のアイコンが IC ピンです。

図5:Schematic 用の各要素(これらを組み合わせてトポロジーを作成)

このアイコンをクリックしシート上の置きたい場所で再度クリックすると、下記(図6)のように IC ピンが配置されます。

図6:ドライバーピンを配置

次に伝送路を追加します。伝送路は左から4番目のアイコンです。伝送路を置いたらドライバーの IC ピンと接続します。
最後にもうひとつ IC ピンを置いて、伝送路と接続します。
これで最もシンプルなトポロジーが完成です(図7)。

図7:簡単なトポロジーが完成

さて、シミュレーションをする前にやらなければならないことがもう一つ。それは、IC ピンモデルの割り当てです。
図7 をよく見るとドライバーとレシーバーの IC ピンが ???? となっているのがわかります。これは IC ピンモデルが何も割り当てられていないためです。

IC ピンモデルの割り当て

Schematic 上のドライバーの IC ピンをダブルクリックします。Assign Models というウィンドウが起動するので、Select ボタンをクリックして Select IC Model ウィンドウを開きます。
ここで先ほど作成した ddr3_ctrl_01_example.ibs を選択すると、Device に 5CGXFC7.. というデバイスの型番が表示されます。Signal 欄でシミュレーションするピン(モデル)を選択します。今回はアドレスピンをシミュレーションしたいので mem_a[0] ピンを選択します(図8)。

図8:Quartus で生成した IBIS モデルから mem_a[0] ピンを選択

ここでワンポイント★
このように mem_a[0] と選択しましたが、この mem_a というのはデザイン内のピン名です。これが Quartus で IBIS ファイルを生成する一つのメリットです。
詳しくは次回★

IBIS モデルの中からシミュレーションに使用するピン(モデル)を選択しましたので、 Schematic 上の IC ピンに図9 のようにモデルが割り当てられました。。

図9:ドライバに IBIS モデルの割り当てが完了

レシーバー側も同様に設定します。今度は DDR の IBIS モデルを使用する必要があります。これは使用するメモリーベンダーより入手します。Web からダウンロードできるものもありますので確認してみてください。
レシーバーのモデル設定も完了すると図10 のようになります。これでシミュレーションの準備が整いました。

図10:レシーバにも IBIS モデル割り当て完了

早速シミュレーションしたいところですが、今回はここまで。
次回シミュレーションを実行してみます。お楽しみに!