Rocky Linux 8.6でVirtuoso IC6.18とICADVM23.1を動かす

軽率にZen4のサーバーを買ったらCentOS7に非対応だった。Rocky Linux 8.6をインストールしてみたが、私の所属研究室でメインのアプリケーションであるVirtuosoを動かすのに苦労したので誰かの役に立つことを願ってメモしておく。ここで示すセットアップでIC6.18とICADVM23.1が起動することは確認している。

IC/ICC2とかも動かせれば追記する予定(まだ対応しているのかも調べてない)。

やることはライブラリのインストール、シンボリックリンクの作成、Virtuosoが持っているOS判定スクリプトの改変である。 まず以下のコマンドでライブラリを用意する(不要なものも含んでいるかもしれないが、面倒なので調べていない)。

# #ライブラリのインストール
# dnf install tcsh ksh xterm redhat-lsb libnsl motif motif-devel libXScrnSaver glibc.i686 libXext.i686 libXtst.i686 libXt.i686 libXrender.i686 libXp.i686 libXrandr.i686 libXss.so.1 libstdc++.i686 libicu50
# dnf install compat-openssl10
# #フォントのインストール。100dpiフォントが入っていなければそれも入れる
# dnf install xorg-x11-server-Xvfb xorg-x11-fonts-ISO8859-1-75dpi-7.5-19.el8.noarch

# #シンボリックリンクの作成
# cd /usr/lib64
# ln -s libcrypto.so.1.0.2o libcrypto.so
# ln -s libssl.so.1.0.2o libssl.so 
# ln -s libdb-5.3.so libdb-4.7.so 
# ln -s libdb-5.3.so libdb.so
# ln -s liblzma.so.5.2.4 liblzma.so.0
# #libsaslが無いとADEからシミュレーションのjobがスタート出来ない
# ln -s libsasl2.so.3.0.0 libsasl2.so.2

続いてgeditとかで${CDSHOME}/share/oa/bin/sysnameを開き、

         4.[4-12].*)
                  # SLES 12 SP2 - SP4
                  sysname=`whichCompiler $linuxName`
                  sysnames="$sysname `whichCompiler $otherName` $sysnames";;

を探す。(多分240行目くらい。なお、IC23.1系ではこのスクリプトがガッツリ変わっていたので別の書き換えが必要かも) この下に、

         4.*)
                  # Rocky Linux
                  sysname=`whichCompiler $linuxName`
                  sysnames="$sysname `whichCompiler $otherName` $sysnames";;

を足す。これらを済ませた後、CentOS7の頃と同様に環境変数をロードすればvirtuosoが起動するはずである。

卵不使用のラーメン店

2024/3/28時点

自分のメモを兼ねて卵アレルギーでも行けるラーメン店をまとめておく。 (注文前に必ず店員に確認すること。突然原材料が変化することはよくある。)

  • ちゃぶとんラーメン: 最近味玉が入るようになってしまったが、麺自体は卵不使用なので卵を抜いてもらえば食べられる。
  • 横濱家: こちらも最近味玉が入るようになってしまったが、麺に卵不使用の旨がメニューに記載されている。
  • 町田商店: つけ麺が卵不使用。他のラーメンも麺は卵不使用なのでは?今度行って聞いてみる
  • 幸楽苑: ねぎラーメンなどが卵・乳不使用。乳アレルギーでも食べられそう。
  • らーめん堂 仙台っ子: 個人的に一番好み。アレルゲン表示は無いが、麺に卵不使用を店員に確認。私が食べて大丈夫だったので本当だろう。
  • 旭川ラーメン 梅光軒: 卵不使用が売りっぽい?新千歳空港店では卵アレルギーを伝えると伝票に卵アレと記載してくれた。別調理器具があるのかもしれない?(未確認)
  • 喜多方ラーメン: ほとんどのメニューが卵不使用。アレルゲン表示も見やすい。
  • 無鉄砲: アレルゲン表示あり。宅麺でも買える。
  • がっとん
  • 豚山
  • 岐阜タンメン

食べられそうな店の調査には、アレルゲン表示が必ずある宅麺が便利である。

九州系と家系は食べられる可能性が高い印象。

本来は食べられるはずのラーメンが、味玉が入っていることで食べられないように見えてしまうのが残念。 ラーメンじゃないが、同じ理由で定食屋がボリュームを出すためにポテトサラダを入れるのもやめてくれたらなぁと。ポテトサラダを抜けば食べられるかもしれないのにアレルゲン表示上は卵利用になってしまう。

Synopsysツールで出てくる略称とか

適宜追加するつもり。

  • DFT: Design for Testability
  • MCMM: Multi-Corner Multi-Model
  • Scenario: 遅延解析などに使うCornerとModelの組み合わせ。
  • UPF: Unified Power Format
  • NDR: Non-Default Rule
  • CTS: Clock Tree Synthesis
  • AOCV: Advanced?(わからん) On-Chip Variation
  • POCV: Parametric On-Chip Variation
  • SPG: Synopsys Physical Guidance
  • ICG: Integrated Clock Gating
  • SAIF: Switching Activity Interchange Format

ICC2でピン位置を設定する方法

ICCで出来ていたピンの順番の設定がICC2では出来なくなった(sideの設定は出来る)。トップの設計までICCで完結する場合は問題ないが、virtuosoにインポートして手配線する場合はとても面倒である。

しかし、ピン座標を直接指定する方法はまだ生きているのでこれを使うことにする。

    set left 1
    set top 2
    set right 3
    set bottom 4

    set offset 5
    set space 0.3

    % n is pin order
    set_individual_pin_constraints -ports {HOGE} -allowed_layers "M3" -sides ${top} -offset [expr ${offset} + ${space}*n]

これで左右の辺なら下から、上下の辺なら左からoffset + n*spaceの位置にピンが置かれる。

同じことをICCでするとこんな感じ。同じ機能なのに微妙に名前変えるのやめてほしい。

set_pin_physical_constraints -pin_name {HOGE} -layers "M3" -width ${wire_width_pin} -depth ${wire_width_pin} -side ${top} -offset [expr ${offset} + ${space}*n]