ラベル AnalogArtist の投稿を表示しています。 すべての投稿を表示
ラベル AnalogArtist の投稿を表示しています。 すべての投稿を表示

2024年7月23日火曜日

IC5のライブラリ(CDB)をIC6に変換する

cdb2oa を使う事で,IC5 のライブラリ (CDB) を IC6 のライブラリ (OpenAccess) に変換できる.これは IC6 に入っているので,IC5 は必要ない.

・準備
IC6 の設計ディレクトリを IC5 とは別の設計ディレクトリを用意する.
IC5 の変換対象のライブラリと同名のライブラリを IC6 にも用意する.空っぽで OK.
IC5 の変換対象のライブラリのロックを解除しておくこと.cdb.lock を削除すればよい.
LIB1 が LIB2 のセルを利用している場合,LIB2,LIB1の順番に変換すること.
LIB1 が LIB3 のテクノロジファイルを Attach している場合,LIB3,LIB1の順番に変換すること.

・使い方
IC6 の設計ディレクトリに移動する.
% cd [IC6 dir]
cdb2oa を実行.
% cdb2oa -cdslibpath [path of IC51] -lib [lib name of IC51]

・参考

2024年1月15日月曜日

Milkyway でセルが正常に更新されなくて困っていた

オチ:Virtuoso の StreamOut のログとMilkywayのログをちゃんと確認すること.

ASAP7 ではセルを 4x して配置配線するので,1x ライブラリをコピー→ XScale を使って 4x → StreamOut → Milkyway DB → IC Compiler で配置配線をしていたのだが,一部のセルのサイズが変わらなくて困っていた.オチはは OA ライブラリ中に同名の別セルが存在していたことが原因だった (具体的には,4x ライブラリのセルが 1x ライブラリの INVx2_ASAP7_75t_SL をインスタンスとして読んでしまっていた).

StreamOut はちゃんと警告していて,ダブった方を "INVx2_ASAP7_75t_SL_0" とリネーム("_0")している.リネームされたのが 1x セルならよかったのだが,4x セルがリネームされてしまったのであった.

...
WARNING (XSTRM-145): The structure name 'INVx2_ASAP7_75t_SL' has been changed to 'INVx2_ASAP7_75t_SL_0' by the translator. This could be because multiple cells with the same cell name exist in different libraries, the same cell name has been mapped to multiple cell names, or the cell name length is greater than the '32' that was specified using the '-respectGDSIINameLimit' or '-gdsCellNameLength' option.
...

Milkyway の setPRBdry のログを確認すると正しく電源が抽出されているように見えたのだが,

...
Cell [INVx2_ASAP7_75t_SL_0.FRAM] has 2 horizontal p/g rails on MET1.
         the 1 rail's net type is gnd
         the 2 rail's net type is power
Extracting P/G track for cell INVx2_ASAP7_75t_SL_0.FRAM
power/ground track (low, high): (-144, 144) (4176, 4464)
...

これはリネームされた 4x セルで,本来の名前のままの 1x セルは処理中には異なる位置の電源が抽出されており,ちゃんと「電源おかしいで」と警告されていたのであった.

...
Cell [INVx2_ASAP7_75t_SL.FRAM] has 2 horizontal p/g rails on MET1.
         the 1 rail's net type is gnd
         the 2 rail's net type is power
Extracting P/G track for cell INVx2_ASAP7_75t_SL.FRAM
power/ground track (low, high): (-36, 36) (1044, 1116)
WARNING: cell AOI321xp33_ASAP7_75t_SL.FRAM and NAND2x1p5_ASAP7_75t_SL.FRAM have different PG rail extension.
...

余談だけれど,スタセルの外形情報は Milkyway のログから抽出してもいいかもしれない.Virtuoso をゴリゴリスクリプトで動かすのは結構遅いので.

2023年11月27日月曜日

Virtuoso -nograph が実行できない

オチ:x11の基本フォント(xfonts)をすべて入れる.

Virtuoso -nograph を実行すると,cdsVnc が云々と言って実行が止まる.

.vnc-cds/local:80.log を開いてみると,フォント(fixed)が見つからないと怒られている("could not open default font").'fixed'でググルと fixed フォントが必要なようだ.


フォントが入っていないのが原因なので,基本フォントをすべてサーバー側マシンにインストールしてやる.
https://access.redhat.com/solutions/320563

sudo yum search xorg-x11-fonts*

でフォントをすべて表示させて,すべて install すればよい.
どうも VNC 等を使うと表示されるエラーみたいだけれど,cdsVnc って Cadence ツール内部の VNC なのだろうか.研究室内で VNC を使ってサーバーにつないでいるので,こちら側の問題かと思ってしまった.

2023年11月9日木曜日

AnalogArtist の dbCreateRect の使い方

以下の記事で紹介した Virtuoso の吐き出した SKILL コマンドでレイヤーが dbCreateRect コマンドの集合になるのだけれど,dbCreateRectコマンドの引数がよくわからなかったので調べた.
AnalogArtist(Virtuoso)のCellViewをSKILLコマンドに変換する(dbWriteSkill)

dbCreateRect(
cellViewID, 
list(Layer purpose)
list(x1:y1 x2:y2)
)

2つ目の list 型引数は Layer 名と purpose なのだけれど,これは TechFile の Layer# でなくても Layer 名そのものでも良いみたい,後者はダブルクオートをつける.
list("BOUNDARY" "drawing")
list(100 -1)

2021年10月3日日曜日

AnalogArtist の レイヤー選択を Skill コマンドで実行する (leiMouseSetEntryLayer. leSetEntryLayer)

leiMouseSetEntryLayer コマンドを利用すると AnalogArtist のレイヤー選択を Skill コマンドで実行できる.
x


leiMouseSetEntryLayer ( i_layer )

i_layer は整数で,Layer Select Window (LSW) の最上位の項目から順に0,1,2...である.(テクノロジファイルの techLayerPurposePriorities の順番)

i_layer の選択の Visibility が低いので,番号ではなくレイヤー名を直接指定する場合は leSetEntryLayer コマンドを利用する.

leSetEntryLayer('("s_layer" "s_puopose"))
S_layer はレイヤー名(M1など),s_puopose は Purpose (Drawingなど) である.

2019年11月24日日曜日

SKILL関数 でレイアウトの中心座標を動かす (leMoveCellViewOrigin)

SKILL関数でレイアウトを動かしたい,leMoveCellViewOriginコマンドを使うと,
レイアウトの中心座標を変えることができる.

leMoveCellViewOrigin(
d_cellViewId
l_point
)
=> t | nil

d_cellViewId は Cell View ID,l_point は次に中心座標としたい今の座標である.
例えば右に10 um,上に5 um動かす場合は以下のようにする.

leMoveCellViewOrigin( cellViewId -10:-5)

2019年11月20日水曜日

SKILL関数でセルを開け(dbOpenCellViewByType),所望の位置にインスタンスを貼る(dbCreateInstByMasterName)

特定のセルにインスタンスを貼る SKILL 関数を紹介する.そのためには(1)セルを開く,(2)インスタンスを貼る,の2つの関数が必要.

(1) セルを開く
dbOpenCellViewByType 関数を使う.

dbOpenCellViewByType(
{ gt_lib | nil }
t_cellName
lt_viewName
[ t_viewTypeName
[ t_mode
[ d_contextCellView ] ] ]
)
=> d_cellView / nil

gt_lib はライブラリ名,t_cellName はセル名,lt_viewName はView名, t_viewTypeName は ViewType,t_mode はセルを開くモードである.d_contextCellView はバージョンによっては必要らしいが不要っぽい.
モードはいくつかある.
r : 読み込み(read)
a : 追記(append)
w : 書き込み(write),すでにファイルがある場合は Virtual Memory に捨てられる.
他にもモードがあるが違いがよくわからない.

dbOpenCellViewByType 関数を実行すると,Cell View IDが帰ってくる.このCell View IDを使って後続の処理を行う.

(2)インスタンスを貼る
dbCreateInstByMasterName 関数を使う.

dbCreateInstByMasterName(
d_cellView
t_libName
t_cellName
t_viewName
t_instName
l_origin
t_orient
[ x_numInst ]
)

d_cellView は貼り付け先のCell View ID,t_libName は貼り付け元のライブラリ,t_cellName は貼り付け元のセル名,t_viewName は貼り付け元のView,t_instName はインスタンス名(不要ならnilに),l_origin は貼り付ける座標,t_orient は回転角度, x_numInst は貼り付け個数である.

例えば,設計後のレイアウトにスクライブラインを貼る SKILL は以下のようになる.

cellview = dbOpenCellViewByType("CHIP_TOP" "CHIP_TOP" "layout" "maskLayout" "a")
dbCreateInstByMasterName(cellview "SCRIBE2_5000x5000" "SCRIBE2_5000_5000" "layout" nil list(0 0) "R0" 1) 
cellview = dbOpenCellViewByType("CHIP_TOP" "CHIP_TOP" "layout")
dbSave(cellview)
dbClose(cellview)

よくわからないけれど,貼り付け後もう一度 dbOpenCellViewByType しないとうまくいかなかった.最後は dbSave でセーブ, dbClose でクローズ.

SKILL プログラムというよりは,API を叩いている感じである.マニュアルは Cadence Design Framework II SKILL Functions Reference です.

2019年11月18日月曜日

Skill関数でレイアウトを回転する(dbTransformCellView)

SKILL 関数でレイアウトを回転するには dbTransformCellView を使う.レイアウトの拡大縮小もできる.

dbTransformCellView(
d_cellViewId
f_mag
f_angle
)

d_cellViewId は対象の CellViewID,f_mag は拡大縮小倍率,f_angle は回転角度(°)を指定する
dbOpenCellViewByType と組み合わせると,レイアウトを開いて回転して閉じる事ができる.

cellview= dbOpenCellViewByType("library" "cell" "layout" "maskLayout" "a")
dbTransformCellView(cellview 1.0 180.0)
dbSave(cellview)

f_mag に 1.0 を指定すると拡大しない事になる.

2019年8月26日月曜日

新しい Virtuoso が Cent OS 7で起動しない (lsb_releaseを入れる)

Cent OS 7.6 に Virtuoso (IC06.17) を入れるも起動しない.起動時に lsb_release を使って Linux のディストリビューションとバージョンを確認しようとするも lsb_release が入っていないので起動しないようだ.

% virtuoso &
[1] 129248
/cadence/IC06.17.709/tools.lnx86/bin/.preHostEnvCheck[15]: lsb_release: not found [No such file or directory]
/cadence/IC06.17.709/tools.lnx86/bin/.preHostEnvCheck[16]: lsb_release: not found [No such file or directory]
WARNING: HOST DOES NOT APPEAR TO BE A CADENCE SUPPORTED LINUX CONFIGURATION.
         For More Info,  Please Run '/tools.lnx86/bin/checkSysConf' .

% yum provides lsb_release --disablerepo=epel
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
redhat-lsb-core-4.1-27.el7.centos.1.i686 : LSB Core module support
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/lsb_release

redhat-lsb-core-4.1-27.el7.centos.1.x86_64 : LSB Core module support
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/lsb_release

% sudo yum -y install redhat-lsb-core-4.1-27.el7.centos.1.i686 redhat-lsb-core-4.1-27.el7.centos.1.x86_64

これで解決.

ちなみに,
WARNING: HOST DOES NOT APPEAR TO BE A CADENCE SUPPORTED LINUX CONFIGURATION.
         For More Info,  Please Run '/tools.lnx86/bin/checkSysConf' .
というワーニングは出続けるが,これは lsb_release が CentOS と申告する一方で
.preHostEnvCheck が期待するディストリビューションである RedHat,SUSE LINUX, Ubuntu に該当しないのでワーニングがでるようだ.RedHat Clone の中でメジャーな CentOS と Scientific Linux ぐらい対応しておいてほしい.

2019年1月5日土曜日

Virtuoso Dynamic DRC (DRD)を使う.DRDのルールを上書きする(techSetSpacingRule)

Virtuoso Dynamic DRC (DRD)を使うと,レイアウト編集中にオンデマンドにDRCをかけることができる.有効にするには,Layout Editingのアイコンから選ぶか,Options -> DRD EditからInteractive Modeを変える.


モードは3つある.
DRD Notify:DRDを有効にし,違反がある場合は警告をだす.
DRD Enforce:DRDを有効にし,違反があるレイアウトを許さない.
DRD Off:DRDを無効にする.

DRD のルールは Techfile に書かれている( constraintGroup フィールドに書かれている).このルールを変更するには Techfile を書き換える必要があるが,Techfile の書き換えは設計資産の再利用などに問題が発生する可能性がある.またライブラリ生成時に Techfile を Attach するように指示されている場合は Techfile の書き換えができない. SKILL を利用して制約を上書きするには techSetSpacingRule 関数を使う.

techSetSpacingRule(
d_techFileID
t_rule
g_value
ltx_layer1
[ ltx_layer2 ]
)

引数はそれぞれ,
d_techFileID :対象のライブラリID
t_rule:ルール名.指定可能なルールはそれぞれ以下の通り.
minNotch, minSpacing, minWidth, defaultWidth, maxWidth, sameNet
g_value:スペーシングルールの値.整数もしくは小数.
ltx_layer1:適用するレイヤー名
[ ltx_layer2 ] :(Option)適用する2つめのレイヤー名

d_techFileID は techGetTechFile 関数と ddGetObj 関数を使うとよい.

最終的には以下のように組合わせる.

techFileID=techGetTechFile(ddGetObj("libName"))
techSetSpacingRule(techFileID "minSpacing" 0.1 "Metal1")

ある PDK では Techfile のスペーシングルールが DFM ルールの 0.11 um なのだが,


上記コマンドを実行すれば,以下のようにルールを 0.10 um に変えられる.


minSpacing や minWidth などのルールは,Virtuoso Space-Based Router (VSR)で必須のルールなので,VSRを使うには上記関数で設定してあげれば良さそう(未検証).

On-demand-DRCは,本当はCalibre RealTimeを使えればいいのだけれどなー.

2019年1月3日木曜日

Virtuosoの画面サイズをSKILLコマンドで制御する(hiResizeWindow)

windowid=hiGetCurrentWindow()
hiResizeWindow(windowid list(x1:y1 x2:y2))

x1:y1は左下,x2:y2は右上の座標.
x1=0にするとウィンドウマネージャのバナー分だけ上にずれるので,x1=1にしてやるとずれなくなる.(環境依存?)

2019/07/27追記
これを応用すると,WindowsでいうWindowsキー+上下左右カーソルキーに相当するコマンドを実行できます.超便利.

2018年11月11日日曜日

レイアウトを画像に変換する

大量のセルレイアウトを画像にしたくなったので調べたら,Cadence Community ForumにQ&Aがあった.
https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/21784/export-image

dd=ddGetObj( "libname" "cellname" "layout" "*")
viewType=ddMapGetFileViewType(dd)

wid = hiCreateWindow( list(0:0 800:800) "none" "Export Window")
wid->neverCurrentWindow = t 
deOpenCellView( "libname" "cellname" "layout" viewType wid "r")

sprintf(imageFile "%s.png" "cellname")
hiExportImage(
  ?fileName strcat("pic" "/" imageFile)
  ?exportRegion 'entireDesign
  ?bgType 'transparent
  ?window wid 
)
hiCloseWindow(wid)

hiExportImage ではstrcatを使って,保存ディレクトリ,"/",ファイル名を結合して特定のディレクトリにファイルを保存しているようだ.

Andrewさんいつも的確に答えていて素敵すぎる.

2018年10月9日火曜日

レイアウトを拡大縮小する(XScale)

レイアウトを拡大縮小する(Zoomするのではなく,物理的に拡大縮小する)方法として,Virtuoso についているXScaleを使う手法がある.

% XScale -mag [倍数] -lib [OAlib name] -view layout (-cell [cell name])

-mag にはズーム比を入れる.4であれば,縦横4倍の16倍の大きさとなる.0.5など小数も受け付ける.

2018年9月14日金曜日

Virtuosoが新しいCent OSで起動しない時の対応法

Virtuosoが古い場合,新しいCent OSでは起動しない問題を解決したい.
具体的には,
IC6.1.4.500.10

Cent OS 7.4.1708
で起動したい(ちなみにCent OS 6.8なマシンでは同じバイナリが起動する)

% virtuoso 
virtuoso:   ERROR: The command /cad/cadence/IC610_lnx86/share/oa/bin/sysname returned an error status:
                            unknown
virtuoso:    INFO: Note that OpenAccess (OA) requires running the Configure phase.
virtuoso:          See the "OpenAccess Installation and Configuration Guide" before
virtuoso:          you complete the configuration step. This manual is included with
virtuoso:          the Cadence product documentation.

とエラーが出る.sysname はシェルスクリプトなのでをテキストエディタで開くと,check_global ルーチンで弾かれていることがわかる.これを避けるためには,
[VirtuosoDir]/share/oa/bin
の中に存在する,登録されている(インストールされている)Linuxのバージョンを環境変数OA_UNSUPPORTED_PLATに指定すればよい.
% export OA_UNSUPPORTED_PLAT=linux_rhel40
これでVirtuosoが起動する.

詳細には,sysname 中の check_linux ルーチンでカーネルのバージョンを調べるのだが,2.4 と 2.6 の分岐しか無く,バージョン 3 以上の時にカーネル情報の取得に失敗してしまい起動できなくなる.2.6系列と大きく変わらないはずなので,linux_rhel40 (2.6)と指定すればよいだろう.

2018年6月19日火曜日

Virtuosoの操作結果を表示する(Log Filter)

Virtuosoの操作結果を同等のSKILLコマンドでログに出す事ができる.

CIW→Options→Log Filterを選択する.上から5つ目の[Accelerated Input]を選択すると,操作結果がCIWに表示されるようになる.



使いたいSKILLコマンドをログとして表示し,それを元にSKILLコマンドで操作を記述できるのでお勧め.

2018年2月28日水曜日

異なるテクノロジファイルのセルを同じOAライブラリに混ぜてしまった時の対策法

AnalogArtist において,異なるテクノロジファイルのセルを同じ OA ライブラリに混ぜてしまうと,一方のテクノロジファイルに上書きされてしまい既存のセルライブラリのレイヤーが表示されなかったり,または表示はまともだが StreamOut 時にあべこべのレイヤーになってしまい DRC などが正常にかからなくなる.

この場合,以下のように修正する.
1. 誤って混ぜてしまったセルを取り除く.
2. 壊れてしまった OA ライブラリが本来持っていたテクノロジファイルと同じテクノロジファイルを持つOAライブラリからセルをコピーする
3. この時,data.dm を上書きするか聞いてくるので,上書きする

どうも data.dm がコンパイル済みのテクノロジファイルのようで,これを本来の物に置き換えてやると直るらしい.
data.dm を shell から上書きするだけでも解決できるかもしれない.

2018年2月25日日曜日

AnalogArtistでレイアウトにピンをSKILLを使って貼る(dbCreateLabel)

AnalogArtistでレイアウトにピンをSKILLを使って貼るにはdbCreatelabelを使う.

dbCreateLabel(cellViewID list("layer" "purpose") x:y "label" "pinLocation" "orientation" "font" size) 

例えばバス形式の配線を大量に貼りたい時は以下のようなSKILLを書けばよい.

cellViewID = dbOpenCellViewByType("library" "cellView" "layout")
dbCreateLabel(cellViewID list("M2" "pin") 0:0.2 "word_1" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:0.6 "word_2" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:1 "word_3" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:1.4 "word_4" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:1.8 "word_5" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:2.2 "word_6" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:2.6 "word_7" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:3 "word_8" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:3.4 "word_19" "centerCenter" "R0" "roman" 0.2) 
dbCreateLabel(cellViewID list("M2" "pin") 0:3.8 "word_10" "centerCenter" "R0" "roman" 0.2) 
dbSave(cellViewID)

ここで,M2はLSWのレイヤーの名前,pinはpurposeである.purposeを指定しないときは,デフォルトでdrawingになる.
dbCreateLabel(cellViewID "M2" 0:3.8 "word_10" "centerCenter" "R0" "roman" 0.2) 

2017年7月13日木曜日

AnalogArtist のセルをSKILLコマンドでリネームする(ccpRename)

AnalogArtist 中のセルをリネームするには,ccpRenameコマンドを使う.
リネーム前,リネーム後のセルは,gdmSpecオブジェクトを指定する.従って以下の様に組み合わせてやればよい.

mySpecSrc = gdmCreateSpec("lib" "srcCellName" "view" nil "CDBA")
mySpecDst = gdmCreateSpec("lib" "dstCellName" "view" nil "CDBA")
ccpRename(mySpecSrc mySpecDst)

ここで,srcCellName がリネーム前のセルの名,dstCellNameがリネーム後のセル名,view 対応するview(layout/schematic/symbol...)である.

2016年6月9日木曜日

Cadence AnalogArtistにおいてCUIからspiceInを行う

Virtuoso (AnalogArtist) において CDL や SPICE 形式のネットリストを読み込むときに spiceIn を利用する.GUI でも可能だが,大量にある場合は CUI で実行したい.
ここでは,spiceIn を実行する時のパラメータを記述した SKILL ファイルを用意する方法について述べる.

(a) conn2sch parameter file
spiceIn した schematic のオブジェクトの配置やラベルの大きさを制御している様だ.GUI で実行する時は用意する必要がなく,一方で実行後に勝手にできている.(しかし CUI では必要)

% cat schOpts_spiceIn.params                                                              
--  conn2sch parameter file prepared by Spice In:
sheet_symbol := none
page_row_limit := 1024
page_col_limit := 1024
label_height := 10
line_line_spacing := 0.200000
line_component_spacing := 0.500000
density_level := 0
pin_placement := left_and_right_sides

(2) DeviceMap file
ネットリスト中のトランジスタを schematic (正確にはトランジスタライブラリの)のトランジスタに対応させるファイル.これは GUI で実行する時であっても必要.PDK に依存する.
以下は,ネットリスト中のトランジスタ(*mos_net)を schematic のトランジスタ(*mos_sch)にマップしている.

% cat fet_map.spicein_map         
-- Device Mapping file generated from SpiceIn GUI
devSelect := pmos_net pmos_sch
        propMatch := pmos_sch
devSelect := nmos_net nmos_sch
        propMatch := nmos_sch

(3) spiceIn.param file
spiceIn に入力するファイル.

%cat spiceIn.param
piceInParams = list(nil
        'conn2schParamFile "schOpts_spiceIn.params"
        'language       "CDL"
        'netlistFile    "NAND4_4X.cdl"
        'outputLib      "CellLibrary"
        'refLibList     "cmos"
        'outputViewName "schematic"
        'simName        "auCdl"
        'outputSimName  "auCdl"
        'devMapFile     "fet_map.spicein_map"
)

(1)~(3)は,一度 GUI で spiceIn を実行すると生成されるので,保存してテンプレートとして利用するのも手である.

(4) spiceInの実行
Terminal において以下の様に実行すれば,spiceIn が起動する.
%spiceIn -param spiceIn.param

spiceIn は,上記に挙げたパラメータファイルをあらかじめ用意する方法と,引数にオプションとして記述する方法の2つの方法がある.
私の環境では後者は"conn2schParamFile"の場所を指定できず正しく動かない ($HOME/cadence/以下を探しに行く).

また,私の環境だと以下の2つのエラーがでてしまう,が schematic 生成には特に問題はない様だ.
*Error* eval: undefined function - ls
*Error* eval: undefined function - drLoadDrf

2015年11月27日金曜日

AnalogArtist(IC61)でLayout Editorのメニューが消える

久々にIC61を起動すると,以下の図のようにメニューが消えてしまっていた.




調べると,環境変数$ASSURAHOMEの設定がおかしいとこのように消えるらしい.

$ASSURAHOMEがIC51用のAssuraのインストールディレクトリを指していたので,IC61用のAssuraのインストールディレクトリを指定したところ,以下の図のように直った.


IC51とIC61で異なるAssuraを指定しなくてはいけない所が,Cadenceの駄目なところだと思う.せめてAssuraIC61とか名前を変えてほしい.

参考:Layout missing menu bar items - Cadence Technology Forums - Cadence Community