Clisoft SOS与CAD系统集成
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 presentexec_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
相关文章:
Clisoft SOS与CAD系统集成
Clisoft SOS与CAD系统集成 以下内容大部分来自官方文档,目前只用到与Cadence Virtuoso集成,其他还未用到,如有问题或相关建议,可以留言。 与Keysight ADS集成 更新SOS客户端配置文件sos.cfg,以包含支持ADS的模板&am…...
【linux系统之redis6】redis的安装与初始化
下载redis的linux对应的安装包,并上传到linux虚拟机里面 解压压缩包 tar -zxzf redis-6.2.6.tar.gz解压后,进入redis文件 cd redis-6.2.6执行编译 make && make install看到下图,就说明redis安装成功了 默认的安装路径,…...
Backend - EF Core(C# 操作数据库 DB)
目录 一、EF Core 1. 使用的ORM框架(对象关系映射) 2. EFCore 常见两种模式 3. EFCore 提供程序 二、 EF 操作数据库(Code First) 1. 下载NuGet插件 2.创建模型类文件 3.创建DBContext文件 4.Programs.cs文件 5.appsettings.Devel…...
WebSocket 性能优化:从理论到实践
在前四篇文章中,我们深入探讨了 WebSocket 的基础原理、服务端开发、客户端实现和安全实践。今天,让我们把重点放在性能优化上,看看如何构建一个高性能的 WebSocket 应用。我曾在一个直播平台项目中,通过一系列优化措施,将单台服务器的并发连接数从 1 万提升到 10 万。 性能挑…...
我用AI学Android Jetpack Compose之入门篇(2)
我跑成功了第一个Compose应用,但我还是有很多疑问,请人工智能来解释一下吧。答案来自 通义千问 文章目录 1.请解释一下Compose项目的目录结构。根目录模块目录(通常是app)app/build.gradleapp/src/mainapp/src/main/uiapp/src/ma…...
以太网协议在汽车应用中的动与静
为了让网络中的设备能够随时或随地接入网络或离开网络,做到:接入时无需多余的配置就能和其他设备互相通信;离开时又不会导致设备或网络崩溃。以太网从物理层到协议层展现出多方面的灵活性,,使其成为连接各种设备和系统…...
【C语言】_指针与数组
目录 1. 数组名的含义 1.1 数组名与数组首元素的地址的联系 1.3 数组名与首元素地址相异的情况 2. 使用指针访问数组 3. 一维数组传参的本质 3.1 代码示例1:函数体内计算sz(sz不作实参传递) 3.2 代码示例2:sz作为实参传递 3…...
Selenium 的四种等待方式及使用场景
Selenium 的四种等待方式及使用场景 隐式等待(Implicit Wait)显式等待(Explicit Wait)自定义等待(Custom Wait)固定等待(Sleep) 1. 隐式等待 定义: 隐式等待是为 WebD…...
React知识盲点——组件通信、性能优化、高级功能详解(大纲)
组件通信 React 组件通信详解 在 React 中,组件通信是一个核心概念,主要指的是如何让不同的组件共享和传递数据。React 提供了多种机制来实现组件间的数据传递和状态共享。以下是几种常见的组件通信方式,包括:父子组件通信&…...
Vue 按键生成多个表单
本文通过 vueele,通过循环ref的方法生成多个表单,代码如下: <template><div><el-button click"addText" style"margin: 15px 0; ">添加字段</el-button><div v-for"item, index in dataList"…...
网络安全:交换机技术
单播,组播广播 单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。组播(multicast): 也叫多播&am…...
Flask 快速入门
1. Flask 简介 1.1 什么是 Flask Flask 是一个用 Python 编写的轻量级 Web 框架,被誉为 微框架。它提供基础功能,如路由、请求处理和模板引擎,但不强迫开发者使用特定库或工具,赋予开发人员高度的自由选择权,以满足不…...
C#设计模式(行为型模式):备忘录模式,时光倒流的魔法
C#设计模式:备忘录模式,时光倒流的魔法 在软件开发中,我们经常会遇到需要保存对象状态,并在未来某个时刻恢复的场景。例如: 撤销操作: 文本编辑器中的撤销功能,游戏中的回退操作。事务回滚&am…...
数据库高安全—角色权限:权限管理权限检查
目录 3.3 权限管理 3.4 权限检查 书接上文数据库高安全—角色权限:角色创建角色管理,从角色创建和角色管理两方面对高斯数据库的角色权限进行了介绍,本篇将从权限管理和权限检查方面继续解读高斯数据库的角色权限。 3.3 权限管理 &#x…...
FastAPI 的依赖注入与生命周期管理深度解析
FastAPI 的依赖注入与生命周期管理深度解析 目录 🔧 依赖注入与 FastAPI 高级特性 1.1 依赖注入的基础与核心概念1.2 FastAPI 的依赖注入机制与设计理念1.3 FastAPI 依赖注入的异步特性 🕹 生命周期与依赖的异步管理 2.1 依赖的生命周期管理࿱…...
【express-generator】05-路由中间件和错误处理(第一阶段收尾)
一、前言 上篇文章我们介绍了express-generator的请求体解析,重点讲了常用的请求体数据格式(JSON/URL 编码的表单数据)以及一个FILE文件上传,同时搭配代码示范进行辅助理解。 二、本篇重点 我们继续第一阶段的知识,…...
Linux环境下确认并操作 Git 仓库
在软件开发和版本控制中,Git 已成为不可或缺的工具。有时,我们需要确认某个目录是否是一个 Git 仓库,并在该目录中运行脚本。本文将详细介绍如何确认 /usr/local/src/zcxt/backend/policy-system-backend 目录是否是一个 Git 仓库,…...
UDP -- 简易聊天室
目录 gitee(内有详细代码) 图解 MessageRoute.hpp UdpClient.hpp UdpServer.hpp Main.hpp 运行结果(本地通信) 如何分开对话显示? gitee(内有详细代码) chat_room zihuixie/Linux_Lear…...
NVIDIA在CES 2025上的三大亮点:AI芯片、机器人与自动驾驶、全新游戏显卡
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【通俗理解】AI的两次寒冬:从感知机困局到深度学习前夜
AI的两次寒冬:从感知机困局到深度学习前夜 引用(中英双语) 中文: “第一次AI寒冬,是因为感知机局限性被揭示,让人们失去了对算法可行性的信心。” “第二次AI寒冬,则是因为专家系统的局限性和硬…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
