Clisoft SOS与CAD系统集成
以下内容大部分来自官方文档,目前只用到与Cadence Virtuoso集成,其他还未用到,如有问题或相关建议,可以留言。
与Keysight ADS集成
更新SOS客户端配置文件sos.cfg
,以包含支持ADS的模板:$CLIOSOFT_DIR/adaptors/ads/sos.cfg
- 如果所有项目都使用Keysight ADS,请将模板追加到站点自定义文件
$sosd_config_dir/sos.cfg
或系统默认文件$CLIOSOFT_DIR/data/sos.cfg
。 - 如果某些项目使用其他设计工具,请更新
server_name.rep/project_name/setup
中每个ADS项目的特定sos.cfg
文件。 - 对于Windows系统上的工作区,请更新
sos.win.cfg
文件而不是sos.cfg
。
例如
cat $CLIOSOFT_DIR/adaptors/ads/sos.cfg >> path_to_repository/setup/sos.cfg
与Cadence Virtuoso集成
将SOS与Cadence Virtuoso软件集成需要更改三个Virtuoso配置文件。
文件 | 描述 |
---|---|
.cdsinit | Virtuoso 启动文件 |
cdsLibMgr.il | Cadence库管理器启动文件 |
cdsinfo.tag | 包含设计管理器(DM)工具配置的Cadence信息文件 |
将以上三个文件以及cds.lib
文件包含在SOS项目中。这样做可以确保文件被自动复制或链接到每个用户的工位目录中,确保每个人都有正确版本的文件。一个典型的结构如下:
.
├── docs # 规格和其他文档
├── scripts
├── rtl # Verilog和VHDL文件
├── testbenches # 回归测试和测试数据
└── cds # Cadence库的父目录
├── proj_lib1 # 项目库之一
├── proj_lib2 # 另一个项目库
└── scratch_lib # 用户临时工作用的库
.cdsinit
、cdsLibMgr.il
和 cds.lib
文件将存储在本示例项目结构中的 cds
目录下。在每个 Cadence 库目录中创建一个 cdsinfo.tag
文件。
.cdsinit
在.cdsinit
文件的末尾添加以下几行:
let( (clioDir)
clioDir = getShellEnvVar("CLIOSOFT_DIR")
load((strcat clioDir "/scripts/cds_sosviadfII.il"))
)
注意:为了确保所有用户都能运行SOS,请对全局的
.cdsinit
文件进行此更改,或者更改包含在项目工作区目录中的.cdsinit
文件中。
cdsLibMgr.il
在Cadence库管理器启动时加载SOS菜单。
let( (clioDir)
clioDir = getShellEnvVar("CLIOSOFT_DIR")
load((strcat clioDir "/scripts/cdsLibMgr.il"))
)
cdsinfo.tag
cdsinfo.tag
文件告诉 Virtuoso 使用哪个设计管理(DM)系统,如果有的话。每个库目录应该包含一个具有该库正确设置的 cdsinfo.tag
文件:
- 使用 SOS 管理的项目库需要指定 SOS 作为 DM 系统,在文件中包含这一行
DMTYPE sos
- 未管理的参考库或临时库不应指定任何 DM 系统。在文件中包含这一行:
DMTYPE none
cdsinfo.tag
文件中不应有其他DMTYPE
设置。
cds.lib
每个用户的个人cds.lib
文件应该是一个不受管理的文件(在SOS版本控制之外),位于他们工作区的cds目录中。并且cds.lib
文件中包含一个共同的project.lib
文件:
INCLUDE ./project.lib
project.lib
文件在SOS中进行管理。以下是一个示例:
# Reference libs not manaåed by SOS
DEFINE ref_lib1 /projects/common/reflibs/ref_lib1
DEFINE ref_lib2 /projects/common/reflibs/ref_lib2
DEFINE ref_lib3 /projects/common/reflibs/ref_lib3
DEFINE pdk_lib /projects/common/pdks/pdk_lib
# Project libraries
DEFINE proj_lib1 ./proj_lib1
DEFINE proj_lib2 ./proj_lib2
检查集成是否成功
- 启动 Virtuoso 并打开任何 schematic、symbol 或 layout cellview。
- 点击 Design Manager --> (Check Out | Check In | Manage Hierarchy) 命令。
- 退出 Virtuoso
与Mentor Pyxis的集成
为了设置用户的环境以使用SOS与Mentor Pyxis软件版本10.5_4或更高版本:
- 设置以下环境变量:
setenv MGC_HOME mentor-installation-dir
setenv MGLS_LICENSE_FILE port@host
setenv AMPLE_PATH $CLIOSOFT_DIR/adaptors/dmgr/userware
- 将
$MGC_HOME/bin
添加到你的路径中
将现有的MGC项目添加到SOS版本控制系统并设置项目管理员的工作区:- 创建一个新的SOS工作区。
- 将MGC项目文件复制到新的工作区。
- 从工作区目录启动Pyxis项目管理器。修订控制菜单应该出现在窗口顶部。
- 通过选择 File --> Open Hierarchy 来打开项目。
- 通过选择窗口左侧的项目,然后选择 Revision Control > Add Project,将项目添加到修订控制中。
与Synopsys Custom Compiler的集成
按照以下步骤将SOS与Synopsys Custom Compiler软件集成:
- 设置
$SYNOPSYS_CUSTOM_SITE
环境变量,此变量指向包含Synopsys第三方软件集成文件的目录。此目录通常所有用户均可读,但只有管理员可写。
setenv SYNOPSYS_CUSTOM_SITE path_to_directory
- 在
$SYNOPSYS_CUSTOM_SITE
下创建images
子目录。
mkdir $SYNOPSYS_CUSTOM_SITE/images
- 在
$SYNOPSYS_CUSTOM_SITE
下的images目录中创建SOS符号链接。
ln -s $CLIOSOFT_DIR/adaptors/cdesigner/images/sos \
$SYNOPSYS_CUSTOM_SITE/images/sos
- 更新SOS客户端配置文件
sos.cfg
,添加处理构成 cellview 的关联文件作为单个包的规则。- 如果所有项目都将使用Synopsys Custom Compiler,您可以更新站点定制文件
$SOSD_CONFIG_DIR/sos.cfg
或系统默认文件$CLIOSOFT_DIR/data/sos.cfg
。 - 如果某些项目使用其他设计工具,请更新特定于项目的文件,
server_name.rep/project_name/setup/sos.cfg
。 - 更改模板在
$CLIOSOFT_DIR/adaptors/cdesigner/sos.cfg
。
示例:
- 如果所有项目都将使用Synopsys Custom Compiler,您可以更新站点定制文件
cat $CLIOSOFT_DIR/adaptors/cdesigner/sos.cfg >> \
path_to_repository/setup/sos.cfg
- 更新
$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
文件。该文件包含Custom Compiler对第三方工具的定制。可以从同一个文件加载多个自定义集成。- 将
$CLIOSOFT_DIR/adaptors/cdesigner/.cdesigner.tcl
追加到$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
文件中。
示例:
- 将
cat $CLIOSOFT_DIR/adaptors/cdesigner/.cdesigner.tcl >> \
$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
使用SOS管理库定义
SOS可以管理一个由Custom Compiler处理的库定义文件,即sos_project.defs
。这个由SOS管理的文件会被包含在用户工作区的未管理的lib.defs
文件中。如果用户创建、复制、移动或检入一个库,SOS会检查该库是否在lib.defs
文件中定义。如果SOS在lib.defs
中找到该库,SOS会从lib.defs
中删除库的定义,并将定义移动到sos_project.defs
中。每当用户创建一个新的工作区时,SOS会创建一个lib.defs
文件,并将sos_project.defs
包含在那个新的lib.defs
文件中。
这个功能默认是禁用的。按照以下步骤启用库定义管理:
- 将这一行添加到每个用户的
$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
文件中:
namespace eval sos {
global sosLibMgt
set sosLibMgt 1
}
这个变量值使得库定义管理成为可能。
2. 检查 sos_project.defs
文件的初始版本
3. 可选,通过更新$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
文件来为SOS库定义文件指定一个特定站点的名称:
namespace eval sos {
global sosLibMgtFilename
set sosLibMgtFilename "sos_my_project.defs"
}
- 在
sos.cfg
中定义这个触发器,以便当用户创建并填充一个新的工作区时自动创建lib.defs
文件:
trigger cc_SosLibMgt_trigger {
populate {
-- Checks for the lib.defs file and creates it if one is not present
exec_after "$CLIOSOFT_DIR/scripts/cc_soslibmgt"
}
}
与问题跟踪系统的集成
您可以在Custom Compiler中选择自定义SOS用户界面,以便用户在检入文件时可以在问题跟踪系统中指定错误编号。按照以下步骤启用并配置此功能:
- 更新
sos.cfg
文件以定义issue_id
属性。
list issue_type {
value java -jar $CLIOSOFT_DIR/cr_scripts/jira/jira_get.jar
}
attribute issue_id
{ type issue_type;
label "IssueID";
mode set;
export yes;
display yes;
prompt yes; }
- 更新操作的触发定义,例如您想要跟踪问题ID的签入操作。例如:
trigger dflt_file_trigger {
ci {
attribute issue_id;
exec_after java -jar $CLIOSOFT_DIR/cr_scripts/jira/jira_put.jar
$SOS_issue_id 1>/dev/null 2>&1 &
}
}
trigger dflt_package_trigger {
ci {
attribute issue_id;
exec_after java -jar $CLIOSOFT_DIR/cr_scripts/jira/jira_put.jar
$SOS_issue_id 1>/dev/null 2>&1 &
}
}
- 更新
$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
文件以在 Check In 表单中定义问题ID字段。
set clioDirScr "$env(CLIOSOFT_DIR)/bin/soscr report summary"
set clioIssue [list "issue_id" "IssueID" $clioDirScr "ci"]
set sos::sosAttrListG [list $clioIssue]
- 退出 Custom Compile 和SOS,然后重新启动它们。
自定义对话框中的属性列表
您可以在Custom Compiler中选择自定义SOS用户界面,以指定对象列表中显示哪些属性。每个用户都可以使用对话框中的Customize按钮来自定义列表。要设置一组标准的默认属性(用户仍然可以覆盖),有两种选项:
- 创建一个
.sosInit.tcl
文件,该文件指定了属性,并让每个用户在他们启动Custom Compiler的目录中安装该文件。
要创建文件,请使用Customize按钮定义属性列表并保存更改。这将创建一个名为.sosInit-user.tcl
的文件。接下来,将文件重命名为.sosInit.tcl
并分发给每个用户。 - 在
$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
文件中指定属性。在此文件中指定属性的格式为:
array set sos::sosDisplayAttributesTabG {Revision
{label Revision}
}
array set sos::sosDisplayAttributesTabG {LatestRev
{label Latest}
}
array set sos::sosDisplayAttributesTabG {CheckedOutBy
{label Locked}
}
set sos::sosDisplayAttributesColOrderG
{ "Revision" "LatestRev" "CheckedOutBy" }
定制杂项命令列表
您可以创建特定于站点的自定义设置,以从 Design Manager > Miscellaneous 命令中获得可用的命令。
要将SOS命令添加到杂项对话框中的命令列表,请在$SYNOPSYS_CUSTOM_SITE/.cdesigner.tcl
文件中的全局数组
中添加项目。
例如:
array set sosMiscCmdTabG
{Listing "ls -l @SELECTION >@POPUP "}
在这个例子中,Listing
是在对话框中显示的命令名称,而ls -l
是用户在对话框中看到的命令。@SELECTION
关键字指定当前选定的项目。@POPUP
关键字指定结果应该在文本编辑器窗口中显示。
你可以使用>字符来重定向结果,如这个例子所示:
"soscmd status -sm -sor -sunm @SELECTION > myFile.log"
你还可以定义Tcl函数来执行。默认情况下,SOS有注册的函数sos::scdMiscellenousProc
。单一参数是选定项目的路径列表;返回值是结果。你可以覆盖这个函数以获得不同的结果。
与Synopsys Laker的集成
要将SOS与Synopsys Laker软件集成:
- 如果文件
laker_install_path/integration/SOS/integ.tcl
尚未安装,请运行以下命令:
mkdir laker_install_path/integration/SOS
cp $CLIOSOFT_DIR/scripts/sos_laker_main_menu.tcl \
laker_install_path/integration/SOS/integ.tcl
Laker软件的最新版本已经预装了这个文件。
2. 更新laker.rc
文件以启用SOS数据管理,通过包含或编辑以下行:
[DataManagement] DMAutoCheckOutCV = Prompt DMAutoCheckInCV = Never
DMAutoCheckOutInFile = Prompt DMToolType = SOS
[LeoPreference] MCellVersionControl = TRUE