当前位置: 首页 > 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;则是因为专家系统的局限性和硬…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

汇编常见指令

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

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...