• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. カスタムIC/ミックスシグナル
  3. Virtuoso Meets Maxwell: 効果的な協調設計に向けたVirtuosoとAllegroのSK…
Custom IC Japan
Custom IC Japan

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
Virtuoso Studio
Edit-in-Concert
Co-Design
Virtuoso Meets Maxwell
Virtuoso RF Solution
Allegro Package Designer Plus
Virtuoso Multi-Technology Solution
japanese blog
SKILL APIs
SKILL
Allegro
VMM

Virtuoso Meets Maxwell: 効果的な協調設計に向けたVirtuosoとAllegroのSKILL

17 Oct 2023 • 4 minute read

 'Virtuoso Meets Maxwell'はVirtuoso RFソリューションとVirtuoso MultiTechの機能及びその潜在能力の紹介を目的としたブログの連載です。ではどのようにVirtuosoがMaxwellと出会うのでしょうか。現在、VirtuosoプラットフォームはRF設計をサポートしており、RF設計者は物理的な放射の影響をマクスウェルの方程式で測ります。この連載では、有益なソフトウェアの改善点にスポットを当てて解説するだけでなく、VirtuosoのIC-パッケージ設計環境内の様々なツールの知識や経験についてRF、マイクロ波、及び高周波設計の視点から様々なブロガーや専門家の声をお届けします。月曜日に投稿されますのでチェックしてみてください。

今日のダイナミックなデザイン環境においては、異なるデザイン要素間のコラボレーションが最も重要です。Virtuoso Multi-Technology Solutionは、Virtuoso StudioとAllegro Platformをまたがり、設計者に魅力的な協調設計(Edit-in-Concert)機能を提供するAllegroの優れた機能を備えています。この強力な統合により、設計プロセスが迅速化されるだけでなく、プラットフォーム間でのシームレスなコラボレーションも促進されます。ICとパッケージ設計間のギャップを埋めることで、設計者はVirtuosoとAllegro環境の間でデータをシームレスにやり取りし、関数を活用することができます。

Edit-in-Concert機能エンハンス

VirtuosoとAllegro SKILLの統合により、Edit-in-Concertへの新しいアプローチが提供されます。このコラボレーションを通じて、設計者はICとパッケージ モジュールの両方を同時に編集できるため、設計プロセスが簡素化され、協調設計が強化されます。このアプローチは、これら2つの環境間でのデータの効率的なやりとりと関数の使用を容易にすることで、最新の設計課題に対処します。

簡単な例

Virtuoso SKILLとAllegro SKILLの潜在的な統合を説明するために、Virtuoso Studio内からAllegro SKILL関数を呼び出して2つの環境間でデータをやり取りするシナリオを見てみましょう。

ステップ1: Allegro SKILL関数の定義

  

Allegro SKILLスクリプト (allegroSKILL.il) では、以下に示す2つの関数が定義されています。

(procedure allegroSKILLFunc1()

  printf("In allegroSKILLFunc1\n");

)

 

(procedure allegroSKILLFunc2()

  (let (tmpVirtuosoFile)

    printf("In allegroSKILLFunc2\n");

    tmpVirtuosoFile = infile("forAllegro.txt")

    when(tmpVirtuosoFile

      while(gets(nextLine tmpVirtuosoFile)

        println(nextLine)

      )

    )

    close(tmpVirtuosoFile)

  )

)

ステップ2: Allegro Scriptの作成

Allegro SKILLスクリプト (callAllegro.scr、callAllegro_2.scr) を作成します。ここで、先ほど定義したAllegro SKILL関数が呼び出されます。

  

ステップ3: Virtuoso StudioからAllegro SKILLの呼び出し

Virtuoso Studio内でAllegro SKILL関数を呼び出すためのメニューが作成されます。この統合により、Virtuoso内からAllegro SKILLスクリプトを呼び出す機能が実行され、Edit-in-Concertプロセスがさらに強化されます。

callAllegroSKILL.ilファイル内の(CIWAllegroMenu) により、Virtuoso Studio内に、Allegro SKILL関数を呼び出すためのメニューが作成されます。どちらの例でも、次のコマンドを使用して、バッチ モードでVirtuoso StudioからAllegro SKILLを呼び出します。(バッチモードでAllegro SKILLを呼び出す必要はありません)

apd -nograph -s script_name design-name

Allegro SKILLをバッチ モードで呼び出す方法の詳細については、Cadence Online Support (COS)のArticle How to run SKILL in batch modeを参照してください。

Call Allegro Script Directlyメニューは、VirtuosoからAllegro SKILL関数 を実行するcallAllegroThroughScriptを呼び出します。これにより、ファイル ブラウザが起動し、パッケージ(.sip/.mcm)ファイルを選択するよう求められ、選択されたパッケージの名前がSKILL関数に渡されます。また、Allegro SKILLで読み込むことができるテキスト ファイルforAllegro.txtも作成します。 このようにして、Virtuoso StudioからAllegro Platformに情報を転送できます。同様に、ファイルに書き込むことで、情報をVirtuoso StudioからAllegro Platformに転送することができます。

(procedure CIWAllegroMenu()
    let((myItem menus ismember alreadyOnBanner numMenus menuPosition)
        ciwMenuInit()

        myItem = hiCreateMenuItem(
            ?name 'myItem
            ?itemText "Call Allegro Script Directly"
            ?callback "system(\"apd -nograph -s callAllegro.scr sample.sip\")"
        )

        myItem1 = hiCreateMenuItem(
            ?name 'myItem1
            ?itemText "Call Function for calling Allegro Script"
            ?callback "callAllegroThroughScript()"
        )

         ; create the pulldown menu
    hiCreateMenu(
            'myMenu
            "CIWAllegroMenu"
            list( myItem myItem1)
            "help"
         )
; if old menu is already on banner, remove it before adding new one
    menus = hiGetBannerMenus( hiGetCIWindow() )
    alreadyOnBanner = nil
    ismember=member('myMenu menus)
    if(length(ismember) > 0 then
      alreadyOnBanner = t
      menuPosition=hiGetNumMenus(hiGetCIWindow())-length(ismember)
    )
    if( alreadyOnBanner == t
     then
        hiDeleteBannerMenu( hiGetCIWindow() menuPosition )
    )
; now put up the new menu
    numMenus = hiGetNumMenus( hiGetCIWindow() )
    hiInsertBannerMenu( hiGetCIWindow() 'myMenu numMenus )
);let
);procedure

Virtuoso SKILL関数(callAllegroThroughScript)は、APD+のスクリプトを引数として渡してバッチモードで呼び出します。

procedure(callAllegroThroughScript()
    ; Other code

    selDsgn = hiGetExistingFile(?filter "Packages (*.sip *.mcm)")

    
    (if selDsgn then
        dsgnName = nth(1 seldDsgn)

        fileptr1 = outfile("forAllegro.txt")
        fprintf(fileptr1 "Hello Allegro, from Virtuoso\n")
        fprintf(fileptr1 "Selected Design is %s\n" dsgnName)
        fprintf(fileptr1 "")
        close(fileptr1)

        ; Invoke the Allegro SKILL script
        sprintf(tmpStr, "apd -nograph -s callAllegro_2.scr %s", dsgnName)
        system(tmpStr)
    else
        println("Please select a Package and try again")
    )
)

まとめ:潜在能力の解放

Virtuoso SKILLとAllegro SKILLの統合は、Edit-in-Concertワークフローを簡素化する素晴らしいチャンスを提供します。これは、より総合的で効率的な設計経験の可能性を強調し、最終的にはICおよびパッケージ設計の進歩に貢献します。

これらのプラットフォーム間でデータを効果的にやり取りし関数を呼び出す機能は、協調設計ワークフローに革命をもたらし、強化されたコラボレーションとイノベーションの新時代到来をもたらす準備が整っています。統合設計ソリューションの可能性を探求し続けるにつれて、より効率的で合理化された協調設計プロセスの可能性がますます明らかになってきています。

関連リソース

 Cadence Website

Virtuoso RF Solution

Virtuoso Heterogeneous Integration

 Product Manuals

Virtuoso MultiTech Framework User Guide

Virtuoso RF Solution Guide

Virtuoso Electromagnetic Solver Assistant User Guide

 Free Trials

Virtuoso RF Solution - Module Layout with Edit-in-Concert

Virtuoso RF Solution - EM Analysis

Virtuoso RF Solution - Physical Implementation Flows

Cadenceの回路設計用製品とサービスに関する情報についてのさらなる情報はwww.cadence.comをご参照ください。

Kirti Sikri
Translator: Osamu Chiba

お問い合わせ

ご質問や一般的なフィードバック、または今後のブログ・トピックのご提案は、日本ケイデンス フィールド・マーケティング部 cdsj_info@cadence.com までメールでお問い合わせください。

Virtuoso Meets Maxwellについて

Virtuoso Meets Maxwellの連載では、設計者が設計者として生き抜くための設計プロセスの再構築と最適化にフォーカスする形で次世代のダイ、パッケージ、ボードの設計フローに関する投稿を行っています。ご注目ください! 

カスタムIC/ミックスシグナル Blogs 無料定期購読のご案内

新規ブログが公開された際に通知を受け取る方法を、こちらにてご案内しています。是非ご登録ください。