01 / GET STARTED
安装与首次启动
普通用户选择 CAD 已部署的完整安装,再加载项目环境。安装根、Python 和 Virtuoso 初始化入口需要成套使用。
准备运行环境
| 组件 | 何时需要 | 要求 |
|---|---|---|
| Linux x86_64 | 全部功能 | 使用经站点确认的平台组合。当前运行包已有 EL7 / EL8 及当前 EL9 主机验收记录,具体资格以所选包为准。 |
| Cadence Virtuoso / OpenAccess | OA 输入、菜单、MTS、文本 view | 站点提供工具和许可证;context 必须匹配发行验证的 Cadence 版本,当前验证基于 IC23.1。 |
| Python / Qt | SiCo 与图形工具 | 二进制安装使用 runtime/python/;源码测试使用配置好依赖的站点 Python。当前 Assistant 要求 Python 3.9.13。 |
| X11 与系统图形库 | GUI | 有效的 DISPLAY 与 X11 授权。中文输入所需的 IBus/libpinyin、D-Bus、Qt 插件及安装命令见拼音输入法。 |
| Calibre / Quantus / StarRC / Abstract | 对应 CAD flow | 按使用范围配置 PATH、许可证和 PDK 规则;SiCo 安装不代替这些 EDA 工具。 |
| LSF / Environment Modules | 集群运行 / MTS 项目选择 | LSF 按需启用;MTS 项目选择要求可用的 modulecmd 与明确的 modulefiles 目录。 |
部署完整运行包
如果站点已有 SiCo,请直接进入下一节。首次部署时,由 CAD 将已验收的运行包解压到一个新的版本目录,保留原版本以便切换。
- 取得同一版本的归档及其 SHA-256 校验文件,先校验,再查看归档顶层目录。
- 解压到新的空目录,确认
bin/、tools/、runtime/python/、etc/config/sico-install.json和RUNTIME-MANIFEST.json齐全。 - 将
SICO_HOME指向包含上述目录的实际安装根;如果归档自带顶层目录,要指向该顶层目录内部。 - 按下面的检查启动新进程。安装更新时先核对 CAD 已维护的
etc/flow-defaults/,将站点修改合并到新版本。
sha256sum -c /path/to/sico-release.tar.gz.sha256
tar -tzf /path/to/sico-release.tar.gz
mkdir /path/to/new-sico-install
tar -xzf /path/to/sico-release.tar.gz -C /path/to/new-sico-install校验文件若使用相对文件名,应在归档所在目录执行校验。运行包已带 Python,不需要向系统 Python 安装 SiCo;站点的 EDA、许可证、图形与调度器环境仍需单独就绪。
配置启动 shell
以下示例使用二进制安装 /software/sico/latest-bin。先加载站点项目 setup,再执行这些设置;将安装路径替换为实际位置。
source /path/to/project/setup.bashrc
export SICO_HOME="/software/sico/latest-bin"
export SICO_PYTHON_ROOT="$SICO_HOME/runtime/python"
export SICO_PYTHON="$SICO_PYTHON_ROOT/bin/python3"
export SICO_SYSTEM_LD_LIBRARY_PATH="$SICO_PYTHON_ROOT/lib:$SICO_HOME/lib"
export SICO_AI_PYTHON_LIBRARY_PATH="$SICO_SYSTEM_LD_LIBRARY_PATH"
export SICO_RUNTIME_TOOLS="$SICO_HOME/tools"
export LD_LIBRARY_PATH="$SICO_HOME/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export PATH="$SICO_HOME/bin:$PATH"
unset SICO_AI_PYQT_ROOT SICO_AI_QTERMWIDGET_RUNTIME
unset SICO_AI_RELEASE_ROOT SICO_AI_CONTEXT SICO_AI_QT_PLUGIN_PATHCsh / Tcsh 的等价配置
source /path/to/project/setup.cshrc
setenv SICO_HOME "/software/sico/latest-bin"
setenv SICO_PYTHON_ROOT "$SICO_HOME/runtime/python"
setenv SICO_PYTHON "$SICO_PYTHON_ROOT/bin/python3"
setenv SICO_SYSTEM_LD_LIBRARY_PATH "$SICO_PYTHON_ROOT/lib:$SICO_HOME/lib"
setenv SICO_AI_PYTHON_LIBRARY_PATH "$SICO_SYSTEM_LD_LIBRARY_PATH"
setenv SICO_RUNTIME_TOOLS "$SICO_HOME/tools"
if ( $?LD_LIBRARY_PATH ) then
setenv LD_LIBRARY_PATH "$SICO_HOME/lib:$LD_LIBRARY_PATH"
else
setenv LD_LIBRARY_PATH "$SICO_HOME/lib"
endif
setenv PATH "$SICO_HOME/bin:$PATH"
unsetenv SICO_AI_PYQT_ROOT
unsetenv SICO_AI_QTERMWIDGET_RUNTIME
unsetenv SICO_AI_RELEASE_ROOT
unsetenv SICO_AI_CONTEXT
unsetenv SICO_AI_QT_PLUGIN_PATHSICO_SYSTEM_LD_LIBRARY_PATH 传给 SiCo 子进程。不要把整套 Python/Qt 库直接前置到 Virtuoso 的 LD_LIBRARY_PATH。上面加入全局路径的仅是安装的 lib/ 兼容库目录。拼音输入法:运行要求
SiCo 主界面、快捷输入框与 AI 终端使用同一套输入法接入。本地桌面启动时沿用已有的 IBus / Fcitx / XIM 配置及切换快捷键;通过 LSF 启动 GUI 时,SiCo 自动创建独立的 IBus 会话并选中 libpinyin,在输入框中键入拼音、按空格选择候选字即可。
| 组件 | 作用与要求 |
|---|---|
| IBus / libpinyin | ibus 提供输入法总线及 ibus-daemon;ibus-libpinyin 提供拼音引擎,libpinyin 与 libpinyin-data 提供运行库和词库。 |
| D-Bus / dconf / GLib | 需能执行 dbus-daemon、dbus-run-session 和 gsettings,并具备 dconf 后端与 IBus 的 GSettings schema,用于建立独立输入会话。 |
| 匹配的 Qt IBus 插件 | 所选 Python/Qt 必须包含 platforminputcontexts/libibusplatforminputcontextplugin.so。完整二进制运行包已自带该插件;系统输入法引擎仍需在主机安装。 |
| X11、UTF-8 与中文字体 | DISPLAY 和 X11 授权有效,图形动态库可加载,并使用已安装的 UTF-8 locale。中文字体用于显示候选词及输入结果,系统界面语言可以保持英文。 |
安装系统软件包与 lib
以下命令由管理员在执行节点运行,包含输入法、常用 X11/Qt 系统库、中文字体和英文 UTF-8 locale。按操作系统版本选择一组;软件源使用站点批准的对应版本仓库,已有软件包由包管理器处理。
sudo dnf install -y \
ibus ibus-libpinyin libpinyin libpinyin-data \
dbus-daemon dbus-x11 dbus-libs dconf glib2 \
libX11 libxcb libxkbcommon libxkbcommon-x11 \
xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm \
mesa-libGL fontconfig xorg-x11-xauth \
google-noto-sans-cjk-ttc-fonts glibc-langpack-ensudo yum install -y \
ibus ibus-libpinyin libpinyin libpinyin-data \
dbus dbus-x11 dbus-libs dconf glib2 \
libX11 libxcb libxkbcommon libxkbcommon-x11 \
xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm \
mesa-libGL fontconfig xorg-x11-xauth \
wqy-zenhei-fonts glibc-commonEL8/EL9 将 D-Bus 守护进程单独放在 dbus-daemon 包中;EL7 由 dbus 包提供。若节点采用其他中文字体,可使用站点已确认覆盖中文字形的字体包。
若启动时提示缺少 libxcb-cursor.so.0,且所选安装的 lib/ 未提供兼容库,EL8/EL9 执行 sudo dnf install -y xcb-util-cursor,EL7 执行 sudo yum install -y xcb-util-cursor。该包在部分版本需要补充仓库,由管理员启用站点批准的软件源;不要从其他操作系统版本复制动态库。
源码测试安装还需站点 Python 自身具备匹配的 Qt 插件。系统包 qt5-qtbase-gui 提供的是系统 Qt 插件,不能用于补齐另一套 Python/Qt;缺失包内插件时,应修复对应的 SiCo 或站点 Python 安装。
安装后检查与使用
在实际执行节点、与 SiCo 相同的用户环境中检查。下面五个命令都应能找到;IBus schema 应有匹配输出,字符集应为 UTF-8,字体查询应列出可显示中文的字体。
command -v ibus ibus-daemon dbus-daemon dbus-run-session gsettings
rpm -q ibus ibus-libpinyin libpinyin libpinyin-data dconf
gsettings list-schemas | grep -Fx org.freedesktop.ibus.general
locale charmap
fc-list :lang=zh family | head若字符集不是 UTF-8,用 locale -a 查看已安装的 locale,并在站点启动环境中选择对应的 UTF-8 配置;同时检查 LANG、LC_CTYPE 和优先级更高的 LC_ALL。
进一步检查 Qt 插件与缺失动态库
先加载上面的 SiCo shell 环境,再用所选 Python 查询真实插件目录。两个插件都应存在,ldd 输出中不应有 not found,Qt 库应来自匹配的运行环境。
sico_qt_plugins=$(
LD_LIBRARY_PATH="$SICO_SYSTEM_LD_LIBRARY_PATH" \
"$SICO_PYTHON" -I -B -c 'from PyQt5.QtCore import QLibraryInfo; print(QLibraryInfo.location(QLibraryInfo.PluginsPath))'
)
ls "$sico_qt_plugins/platforminputcontexts/libibusplatforminputcontextplugin.so"
LD_LIBRARY_PATH="$SICO_SYSTEM_LD_LIBRARY_PATH" \
ldd "$sico_qt_plugins/platforminputcontexts/libibusplatforminputcontextplugin.so"
LD_LIBRARY_PATH="$SICO_SYSTEM_LD_LIBRARY_PATH" \
ldd "$sico_qt_plugins/platforms/libqxcb.so"根据缺失的库补装对应系统包;不要把 EDA 自带的 Qt 目录混入 SiCo 的插件或动态库路径。仅在登录节点完成检查,不能证明队列执行节点也已就绪。
安装后重新启动 SiCo,在实际使用的输入框中输入 zhongwen、按空格选出“中文”,再输入 shuru、选出“输入”,确认最终得到“中文输入”。本地桌面需要先用原有快捷键切到中文;LSF 模式由 SiCo 自动选择拼音引擎。
| 现象 | 处理方式 |
|---|---|
提示 pinyin input is unavailable on this LSF host | 查看同一行括号内的原因,检查执行节点上的命令、引擎、dconf 和 Qt 插件。此时 GUI 可能继续运行,但拼音尚未就绪;修复后重新启动。 |
| 提示找不到 Qt 插件或动态库 | 按上面的插件检查定位缺项,核对所选 Python、Qt 和系统库是否配套。 |
| 候选词或中文显示为方框 | 检查该节点的中文字体与 UTF-8 locale,并确认 fc-list :lang=zh 有有效输出。 |
LSF 输入会话由 SiCo 管理,无需手动启动全局 ibus-daemon、切换全局引擎或修改桌面 GSettings。不要复制提交主机的 IBus/D-Bus 地址,也不要把 XDG_RUNTIME_DIR 指向 HOME;这些设置由独立会话管理。
进入个人工程并检查安装
cd /path/to/my/project
test -f "$SICO_HOME/etc/config/sico-install.json"
test -x "$SICO_PYTHON"
command -v sico virtuoso
"$SICO_PYTHON" -I -B -c 'import sys; print(sys.version)'
sico --help
drc --help
lvs --help
rce --help
mts-netlistor --help共享安装时,每个用户在自己的工程工作目录启动。通常保持 SICO_TEMP_DIR 未设置,SiCo 自动使用 <启动目录>/.sico。若旧环境指定了错误的状态根,可在启动前清除 SICO_TEMP_DIR 和已退出的 CAD_TEMP_DIR。不要删除已有会话目录来解决配置错误。
启动与模型配置
执行 sico 打开独立首页,启动或复用当前工程服务。它不会自动启动 Virtuoso。要在 Virtuoso 内使用菜单,请继续配置 .cdsinit。
export SICO_BACKEND="codex"
export SICO_PROVIDER="responses"
export SICO_API_BASE_URL="https://api.example.com/v1"
export SICO_MODEL="your-model-name"
# SICO_API_KEY 由站点的私有凭据配置注入。
sico模型地址与模型名配套设置。现行 Codex 后端要求上游提供 Responses 接口;仅提供 Chat Completions 的地址不能直接用于此配置。旧 SICO_API_URL 暂可读取,但与新地址冲突会报错。模型可选值由站点服务提供,SiCo 不设固定模型默认值。
模型部署建议:专用队列与内网转发节点
企业部署建议将 SiCo 工作会话统一提交到指定的 LSF 队列,并在一台专用的本地内网服务器上转发 LLM 请求。员工同时具备专用队列的提交权限与模型转发节点的访问权限,才可使用受控的模型服务。队列示例名为 sico,转发地址示例为 https://llm-gateway.example.internal:8443/v1。
队列成员资格02SiCo 专用队列
受控执行节点03内网 LLM 转发
HTTPS 指定端口04上游模型服务
由转发节点接入
两层权限如何配合
| 控制位置 | 建议设置 | 生效范围 |
|---|---|---|
| LSF 队列 | 建立专用队列,提交权限仅授予获准使用 SiCo 的员工或用户组;将该队列限定到指定执行主机组。 | 决定谁可以提交,以及 SiCo 在哪些节点运行。由 LSF 服务端维护队列成员和主机范围。 |
| 转发节点的网络入口 | 防火墙仅允许上述执行节点或受控出口地址访问模型 HTTPS 端口;办公终端、普通登录节点和其他计算节点不直接访问该端口。 | 限定模型调用的网络来源与目标端口;返回流量通过已建立连接放行。 |
| 转发节点的调用权限 | 在转发服务上校验员工或用户组的调用凭据,并维护允许使用的模型。上游模型密钥由转发节点保管。 | 决定请求身份是否获准调用。即使请求来自允许的节点,未授权或已撤销的凭据也应被拒绝。 |
有效使用资格取两侧权限的交集:获准提交队列,并且获准访问模型 URL。入职、岗位调整或离职时,分别更新队列成员和转发服务授权;需要立即撤销权限时,还应处理该用户已运行的作业、服务和有效凭据。
转发节点的网络边界
| 通信路径 | 端口与访问建议 |
|---|---|
| 专用队列执行节点 → 内网 LLM 转发节点 | 仅开放约定的模型 HTTPS 端口,例如 TCP 8443。该端口使用 TLS,证书由执行节点信任。 |
| 其他用户节点 → 内网 LLM 转发节点 | 默认拒绝模型端口;转发节点的管理端口仅向管理员的管理网络开放。 |
| 内网 LLM 转发节点 → 上游模型服务 | 仅允许所需模型地址和端口;由转发节点统一处理上游认证与请求转发。 |
| SiCo 执行节点 → 上游模型服务 | 限制直接访问,将受控模型调用统一经转发节点。仅修改 SiCo 的 URL 不会自动形成网络限制。 |
这里的“本地机器”指站点内网的专用服务器,配置地址应能从队列执行节点解析和访问。8443 是端口示例,应与站点实际监听端口和防火墙规则一致。转发服务需要保留 Responses 接口及流式响应能力。
站点配置与队列启动示例
管理员先完成队列、执行主机组、转发服务和网络规则,再将下面的模型配置放入受管理的项目环境。凭据通过站点私有配置注入;启用转发认证时,SICO_API_KEY 使用发给该员工或组的转发服务凭据,上游供应商密钥留在转发节点。
export SICO_BACKEND="codex"
export SICO_PROVIDER="responses"
export SICO_API_BASE_URL="https://llm-gateway.example.internal:8443/v1"
export SICO_MODEL="your-model-name"
# SICO_API_KEY 由站点私有配置提供,不写入公共 setup 脚本。
cd /path/to/my/project
bsub -I -XF -q sico "$SICO_HOME/bin/sico"此命令将 SiCo 及其新启动的工程服务放到队列分配的节点,适用于已配置 X11 转发的站点。安装、项目和模型环境须在执行节点有效;使用 Virtuoso 联动时,由站点把 Virtuoso 与 SiCo 安排在同一运行节点、同一工程中。切换部署方式前,先正常停止旧工程服务,避免复用原位置的服务。
若站点采用本地 GUI、仅将模型 HTTP 请求送往队列的模式,使用 SICO_CODEX_LSF_EXE / SICO_CODEX_LSF_ARGS 指定同一受控队列;这种模式约束的是模型请求的执行位置。完整工作会话按上面的站点入口提交。
队列参数、modulefile 和启动脚本用于选择配置;实际限制由 LSF、操作系统、网络及转发服务执行。需要同时限制整个 SiCo 程序的使用时,还应为安装目录和启动入口设置相应的用户组访问/执行权限。SiCo 本身不会因为配置了模型 URL 就自动建立这些权限。
启用前用授权和未授权测试账户核对:两侧均获授权时可以在指定队列完成模型请求;无队列资格时提交被拒绝;有队列资格但无转发授权时模型调用被拒绝;从未放行的节点访问模型端口也被拒绝。确认后再将入口交给员工使用。
源码测试安装
站点指定源码测试时,选择 /software/sico/latest,将 SICO_PYTHON_ROOT 改为站点 Python 3.9.13 目录,并设置 SICO_AI_PYQT_ROOT="$SICO_HOME/tools/ai/terminal/pyqt"。其余共享变量保持同一安装。源码测试树还需站点准备匹配的 worker context 和 Qt 终端依赖。
源码树通过 scripts/sicoAutoLoad.il 接入;二进制安装通过 sicoBoot.cxt 接入。后者缺失时应修复安装,不能用另一份源码树的文件补齐。
更新、切换与排错
- 结束或核对现有任务,关闭 SiCo 窗口,正常停止工程服务。
- 关闭旧 Virtuoso,在新 shell 加载目标版本环境。单纯修改 shell 变量不会更新已经运行的服务。
- 使用同一套安装入口重新启动,检查版本与连接。回退时成套切换到保留的旧安装。
sico service-stop --project-dir /path/to/my/project若仍有活动或待核对任务,停止可能被拒绝;先处理这些任务。出现 SICO_HOME conflicts 时检查 command -v sico 与 SICO_HOME 是否属于同一安装;出现旧变量迁移错误时按迁移表修改启动脚本。