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寒冬,则是因为专家系统的局限性和硬…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...