当前位置: 首页 > news >正文

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配置文件。

文件描述
.cdsinitVirtuoso 启动文件
cdsLibMgr.ilCadence库管理器启动文件
cdsinfo.tag包含设计管理器(DM)工具配置的Cadence信息文件

将以上三个文件以及cds.lib文件包含在SOS项目中。这样做可以确保文件被自动复制或链接到每个用户的工位目录中,确保每个人都有正确版本的文件。一个典型的结构如下:

.
├── docs             # 规格和其他文档
├── scripts
├── rtl              # Verilog和VHDL文件
├── testbenches      # 回归测试和测试数据   
└── cds              # Cadence库的父目录├── proj_lib1    # 项目库之一├── proj_lib2    # 另一个项目库└── scratch_lib  # 用户临时工作用的库

.cdsinitcdsLibMgr.ilcds.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

检查集成是否成功

  1. 启动 Virtuoso 并打开任何 schematic、symbol 或 layout cellview。
  2. 点击 Design Manager --> (Check Out | Check In | Manage Hierarchy) 命令。
    在这里插入图片描述
  3. 退出 Virtuoso

与Mentor Pyxis的集成

为了设置用户的环境以使用SOS与Mentor Pyxis软件版本10.5_4或更高版本:

  1. 设置以下环境变量:
setenv MGC_HOME mentor-installation-dir
setenv MGLS_LICENSE_FILE port@host
setenv AMPLE_PATH $CLIOSOFT_DIR/adaptors/dmgr/userware
  1. $MGC_HOME/bin 添加到你的路径中
    将现有的MGC项目添加到SOS版本控制系统并设置项目管理员的工作区:
    1. 创建一个新的SOS工作区。
    2. 将MGC项目文件复制到新的工作区。
    3. 从工作区目录启动Pyxis项目管理器。修订控制菜单应该出现在窗口顶部。
    4. 通过选择 File --> Open Hierarchy 来打开项目。
    5. 通过选择窗口左侧的项目,然后选择 Revision Control > Add Project,将项目添加到修订控制中。

与Synopsys Custom Compiler的集成

按照以下步骤将SOS与Synopsys Custom Compiler软件集成:

  1. 设置$SYNOPSYS_CUSTOM_SITE环境变量,此变量指向包含Synopsys第三方软件集成文件的目录。此目录通常所有用户均可读,但只有管理员可写。
setenv SYNOPSYS_CUSTOM_SITE path_to_directory
  1. $SYNOPSYS_CUSTOM_SITE下创建images子目录。
mkdir $SYNOPSYS_CUSTOM_SITE/images
  1. $SYNOPSYS_CUSTOM_SITE下的images目录中创建SOS符号链接。
ln -s $CLIOSOFT_DIR/adaptors/cdesigner/images/sos \
$SYNOPSYS_CUSTOM_SITE/images/sos
  1. 更新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
      示例:
cat $CLIOSOFT_DIR/adaptors/cdesigner/sos.cfg >> \
path_to_repository/setup/sos.cfg
  1. 更新$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文件中。

这个功能默认是禁用的。按照以下步骤启用库定义管理:

  1. 将这一行添加到每个用户的$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" 
}
  1. 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用户界面,以便用户在检入文件时可以在问题跟踪系统中指定错误编号。按照以下步骤启用并配置此功能:

  1. 更新 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; }
  1. 更新操作的触发定义,例如您想要跟踪问题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 &}
}
  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]
  1. 退出 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软件集成:

  1. 如果文件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安装成功了 默认的安装路径&#xff0c…...

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&#xff0c;通过循环ref的方法生成多个表单,代码如下&#xff1a; <template><div><el-button click"addText" style"margin: 15px 0; ">添加字段</el-button><div v-for"item, index in dataList"…...

网络安全:交换机技术

单播&#xff0c;组播广播 单播(unicast): 是指封包在计算机网络的传输中&#xff0c;目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛&#xff0c;通常所使用的网络协议或服务大多采用单播传输&#xff0c;例如一切基于TCP的协议。组播(multicast): 也叫多播&am…...

Flask 快速入门

1. Flask 简介 1.1 什么是 Flask Flask 是一个用 Python 编写的轻量级 Web 框架&#xff0c;被誉为 微框架。它提供基础功能&#xff0c;如路由、请求处理和模板引擎&#xff0c;但不强迫开发者使用特定库或工具&#xff0c;赋予开发人员高度的自由选择权&#xff0c;以满足不…...

C#设计模式(行为型模式):备忘录模式,时光倒流的魔法

C#设计模式&#xff1a;备忘录模式&#xff0c;时光倒流的魔法 在软件开发中&#xff0c;我们经常会遇到需要保存对象状态&#xff0c;并在未来某个时刻恢复的场景。例如&#xff1a; 撤销操作&#xff1a; 文本编辑器中的撤销功能&#xff0c;游戏中的回退操作。事务回滚&am…...

数据库高安全—角色权限:权限管理权限检查

目录 3.3 权限管理 3.4 权限检查 书接上文数据库高安全—角色权限&#xff1a;角色创建角色管理&#xff0c;从角色创建和角色管理两方面对高斯数据库的角色权限进行了介绍&#xff0c;本篇将从权限管理和权限检查方面继续解读高斯数据库的角色权限。 3.3 权限管理 &#x…...

FastAPI 的依赖注入与生命周期管理深度解析

FastAPI 的依赖注入与生命周期管理深度解析 目录 &#x1f527; 依赖注入与 FastAPI 高级特性 1.1 依赖注入的基础与核心概念1.2 FastAPI 的依赖注入机制与设计理念1.3 FastAPI 依赖注入的异步特性 &#x1f579; 生命周期与依赖的异步管理 2.1 依赖的生命周期管理&#xff1…...

【express-generator】05-路由中间件和错误处理(第一阶段收尾)

一、前言 上篇文章我们介绍了express-generator的请求体解析&#xff0c;重点讲了常用的请求体数据格式&#xff08;JSON/URL 编码的表单数据&#xff09;以及一个FILE文件上传&#xff0c;同时搭配代码示范进行辅助理解。 二、本篇重点 我们继续第一阶段的知识&#xff0c;…...

Linux环境下确认并操作 Git 仓库

在软件开发和版本控制中&#xff0c;Git 已成为不可或缺的工具。有时&#xff0c;我们需要确认某个目录是否是一个 Git 仓库&#xff0c;并在该目录中运行脚本。本文将详细介绍如何确认 /usr/local/src/zcxt/backend/policy-system-backend 目录是否是一个 Git 仓库&#xff0c…...

UDP -- 简易聊天室

目录 gitee&#xff08;内有详细代码&#xff09; 图解 MessageRoute.hpp UdpClient.hpp UdpServer.hpp Main.hpp 运行结果&#xff08;本地通信&#xff09; 如何分开对话显示&#xff1f; gitee&#xff08;内有详细代码&#xff09; chat_room zihuixie/Linux_Lear…...

NVIDIA在CES 2025上的三大亮点:AI芯片、机器人与自动驾驶、全新游戏显卡

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

【通俗理解】AI的两次寒冬:从感知机困局到深度学习前夜

AI的两次寒冬&#xff1a;从感知机困局到深度学习前夜 引用&#xff08;中英双语&#xff09; 中文&#xff1a; “第一次AI寒冬&#xff0c;是因为感知机局限性被揭示&#xff0c;让人们失去了对算法可行性的信心。” “第二次AI寒冬&#xff0c;则是因为专家系统的局限性和硬…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...