2021年3月14日日曜日

MentorGraphics の特定のライセンスが使えるか調べる(mgls_ok)

MentorGraphics (Semens) の CAD で特定のライセンスが提供されているか調べるためには,mgls_ok を使う.
% mgls_ok feature
ライセンスが取れると "License granted" と表示される.提供されていない場合は
"License server does not support this feature" と表示される.

2021年3月11日木曜日

Milkywayでセルの配線可能性を確認する.(check_library)

Milkywayでライブラリの検証を行う事ができる.最初に set_check_library コマンドで検証対象を設定し,check_library コマンドで検証を実行する.

set_check_library
-routeability:配線可能性を確認し,オフトラックのポートの数と名前をレポートする
-drc:FRAMに対してDRCをかける
-view_comparison:CELとFRAMの整合性を確認する
-antenna:アンテナ検証を行う
-signal_em:エレクトロマイグレーションルールの無い配線層を確認する
-same_name_cell:異なるリファレンスライブラリで同じ名前のセルが無いか確認する
-rectilinear_cell:セルが矩形の境界内に収まっているか確認する
-phys_property place:セルの配置制約を確認する.配置配線の境界条件,セルの高さ,UnitCell,タイルパターンなど.
-phys_property place:セルの配線制約を確認する.ポートへの配線層,配線可能性など.
-physical_only_cell:タップやダミーなどタイミング情報の無いセルを確認する.
-rail view_data:セルの電源情報を確認する.PrimeRailで作成するCONN Viewが必要.
-tech_consistency:複数のライブラリ間のテクノロジファイルの整合性を確認する
-tech:ライブラリのテクノロジーデータを確認する.
-cell {list cell1 cell2...} :チェック対象のセルを列挙する.列挙しない場合は全てチェックする.
-all:全て確認する.

実行してみるとこんな感じ
Milkyway> set_check_library -routeability
1
Milkyway> check_library

#BEGIN_CHECK_LIBRARY

   Main library name: /home/****
   Check date and time: Mon Mar  1 19:00:50 2021

#BEGIN_CHECK_PHYSICALPROPERTY

Information: List of routing properties  (LIBCHK-122)
Unit tile : unitTile
  -----------------------------------------------------------------------
              Preferred      Track
   Layer      direction    direction   Offset    Pitch     Remarks
  -----------------------------------------------------------------------
   M1             V            V       0         0.072     OK
   M2             H            H       0         0.072     OK
   M3             V            V       0         0.144     OK
   M4             H            H       0         0.192     OK
   M5             V            V       0         0.192     OK
   M6             H            H       0         0.256     OK
   M7             V            V       0         0.256     OK
   M8             H            H       0         0.32      OK
   M9             V            V       0         0.32      OK
   Pad            H            H       0         0.32      OK
  -----------------------------------------------------------------------

#END_CHECK_PHYSICALPROPERTY

#BEGIN_CHECK_ROUTABILITY


   Total number of pins without on-track routeability: 0 (out of 0)

#END_CHECK_ROUTABILITY

#END_CHECK_LIBRARY

1
Milkyway> 

ちなみに,IC Compiler のマニュアル(Library Data Preparation for IC Compiler, 2011)に「Milkyway の tcl モードでこのような検証ができます」と紹介されていたのだが,マニュアルでは set_check_library_options とされていた (ICCで実行する時は set_check_library_options なのかもしれないが,実行すると「LibraryCompilerがインストールされてないぞ!」と怒られた).一方でMilkywayのマニュアルを調べたところ,調べられた最古の Version 2007 から PDF は「将来リリースするよ」というダミー PDF しか入っていなかった.ダメじゃん.(いろいろ打ち込んでコマンド違いに気がついた)

2021年3月4日木曜日

IC Compilerでcreate_floorplanするとprefferd directionが上書きされる

タイトル通り.解決方法がわからなくて困ってる.
icc_shell> source tcl/direction.tcl # Preffered_directionを設定する.
1
icc_shell> report_preferred_routing_direction # 確認する
 
****************************************
Report : Layers
Design : riscv_core
Version: Q-2019.12-SP2
Date   : Mon Mar  1 19:30:55 2021
****************************************

Layer Name                   Library             Design              Tool understands
M1                           Horizontal          Not Set             Horizontal
M2                           Vertical            Not Set             Vertical
M3                           Not Set             Not Set             Not Set
M4                           Not Set             Horizontal          Horizontal
M5                           Not Set             Vertical            Vertical
M6                           Not Set             Horizontal          Horizontal
M7                           Not Set             Vertical            Vertical
M8                           Not Set             Horizontal          Horizontal
M9                           Not Set             Vertical            Vertical
Pad                          Not Set             Not Set             Not Set

Warning: Consecutive metal layers have the same preferred routing direction. (PSYN-882)
1
M4がHorizontalになってる.

icc_shell> create_floorplan \
? -control_type width_and_height \
? -flip_first_row \
? -bottom_io2core 0.54 \
? -top_io2core    0.54 \
? -left_io2core  0.144 \
? -right_io2core 0.144 \
? -core_height $height \
? -core_width $corew 
308 pads are constrained in TDF table
There are 0 IO pads 0 corner pads in total
Core aspect ratio adjusted to 1.449
Core Utilization adjusted to 0.312
Start to create wire tracks ...
Warning: Revise physical constraint layer of terminal DATA_ADDR_O[28] to M2 -- M3 is not a preferred layer of the edge it resides on. (FPHSM-1626) 
内部でPreferred Directionが変わってしまい,設定とPreferred Directionが異なるから入れ替えるよ!と全ポートに対して警告される
(略)
Number of terminals created: 310.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Name         Original Ports
riscv_core              310
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Completed pin assignment.
Elapsed =    0:00:00, CPU =    0:00:00
Planner Summary:
This floorplan is created by using tile name (unit).
Row Direction = HORIZONTAL
Control Parameter =  Width & Height
Core Utilization = 0.312
Number Of Rows = 507
Core Width = 378
Core Height = 547.56
Aspect Ratio = 1.449
Double Back ON
Flip First Row = YES
Start From First Row = NO
Planner run through successfully.
1
icc_shell> report_preferred_routing_direction 
 
****************************************
Report : Layers
Design : riscv_core
Version: Q-2019.12-SP2
Date   : Mon Mar  1 19:31:04 2021
****************************************

Layer Name                   Library             Design              Tool understands
M1                           Horizontal          Horizontal          Horizontal
M2                           Vertical            Vertical            Vertical
M3                           Not Set             Horizontal          Horizontal
M4                           Not Set             Vertical            Vertical
M5                           Not Set             Horizontal          Horizontal
M6                           Not Set             Vertical            Vertical
M7                           Not Set             Horizontal          Horizontal
M8                           Not Set             Vertical            Vertical
M9                           Not Set             Horizontal          Horizontal
Pad                          Not Set             Vertical            Vertical

変わってしまった.M4 は横だったのが縦になっている.そもそも Library で M1 がHorizontal になっているのも解せない.リファレンスライブラリの Milkyway では Vertical になってるのだけどな.
もしかしたら,M1 で Horizontal に電源レールを引くのでそれにつられて全て Preferred Direction が変更されているのかもしれない.うーん.