Cadence 16.6 从 OrCAD Capture 原理图到 Allegro PCB 全流程(含 5 个常见坑)

Cadence 16.6 从 OrCAD Capture 原理图到 Allegro PCB 全流程(含 5 个常见坑)

环境:Cadence SPB 16.6 + OrCAD Capture CIS + Allegro PCB Editor

中心库:D:\CIS_LIBRARY(SCH 符号 / PCB\symbol 封装 / PCB\pad 焊盘)

本文记录一次完整的"原理图 → 网表 → PCB 板文件"实战过程,以及过程中踩到的 5 个坑。


一、整体流程

复制代码
OrCAD Capture 原理图
        │
        │  Create Netlist → PCB Editor 选项卡
        ▼
   生成 allegro/ 下的 pstchip.dat / pstxprt.dat / pstxnet.dat
        │
        │  netrev(Create or Update PCB Editor Board)
        ▼
   GD32.brd(器件进入板文件,但位置待摆放)
        │
        │  Place → Quickplace
        ▼
   器件沿板框排开,开始布局布线

关键点:Capture 负责生成网表,netrev 负责把网表变成板文件,Allegro 负责摆放和布线。三步任何一步配置不对,都会表现为"板子是空的"。


二、坑 1:Allegro 找不到封装(SPMHNI-194)

导入网表时报几十条警告:

复制代码
WARNING(SPMHNI-194): Symbol 'C0603' for device 'CAP_NP_C0603_100NF'
not found in PSMPATH or must be "dbdoctor"ed.

原因 :不是库里缺封装,而是 Allegro 的封装搜索路径 PSMPATH / PADPATH 只包含 Cadence 安装目录,没有包含自己的 CIS 库。

排查 :直接看 netrev 日志里的 ------ Library Paths ------ 段,确认自己的库目录在不在列表里。

解决 :在 Cadence 用户环境文件 $HOME\pcbenv\env 中追加路径。本机 HOME=D:\Cadence\SPB_Data,即编辑:

复制代码
D:\Cadence\SPB_Data\pcbenv\env

内容如下(第一行必须是 source $TELENV,见坑 2):

tcl 复制代码
source $TELENV

# 用户库放在 Cadence 默认目录之前,同名时优先使用自己的库
set PADPATH = . symbols .. ../symbols D:/CIS_LIBRARY/PCB/pad D:/Cadence/SPB_16.6/share/local/pcb/padstacks D:/Cadence/SPB_16.6/share/pcb/pcb_lib/symbols D:/Cadence/SPB_16.6/share/pcb/allegrolib/symbols
set PSMPATH = . symbols .. ../symbols D:/CIS_LIBRARY/PCB/symbol D:/Cadence/SPB_16.6/share/local/pcb/symbols D:/Cadence/SPB_16.6/share/pcb/pcb_lib/symbols D:/Cadence/SPB_16.6/share/pcb/allegrolib/symbols
  • PSMPATH:封装符号(.psm)搜索路径
  • PADPATH:焊盘(.pad)搜索路径
  • 顺序很重要:越靠前优先级越高,所以自己的库放前面

改完后必须重启 PCB Editor(env 只在启动时读取)。


三、坑 2:Unable to find the messaging system module definitions file 'allegro_smi_modules.txt'

原因 :pcbenv\env 文件没有以 source $TELENV 开头。Allegro 在启动时先读系统环境,再读用户 env;用户 env 若没有这一行,整个环境链初始化失败,就会报这个看似"文件丢失"的错误------实际上 allegro_smi_modules.txt 一直都在安装目录里。

解决:确保 env 文件第一行是:

tcl 复制代码
source $TELENV

哪怕 env 文件是空的,只要它存在就会触发这个问题;空文件同样报错。


四、坑 3:器件导入了,但画布是空的

检查板文件能确认器件其实已经在里面(可用十六进制/字符串搜索,能读到 C31、R24、SW6 等位号),说明网表导入成功,只是视图没定位到器件。

4.1 正确的查看方式

菜单 View → Zoom Fit (对应命令 zoom fit)。

注意:如果底部命令窗口提示 Command not found: zoom fit,通常是因为当前还有一个命令没退出(例如 slide),先按 Esc 取消,再执行 Zoom Fit。

4.2 器件是"未摆放"状态

netrev 把器件加进板文件后,器件通常堆在原点附近或处于未摆放状态。菜单 Place → Manually... ,Options 面板才会出现 Components by refdes 器件列表------这个面板不是默认显示的,只在摆放命令激活时出现。

4.3 一键摆放

  1. 先画板框:Add → Line ,右侧 Options 里 Class = Board Geometry、Subclass = Outline,画一个矩形;
  2. 菜单 Place → Quickplace...,选择沿板框排列,点击 Place;
  3. 60 个器件会沿板框一圈自动排开;
  4. File → Save。

五、坑 4:E- Command not found: cinsert,导入后板子仍然空白

原因:用了错误的产品入口。开始菜单里有多个 Allegro 产品:

入口 说明
PCB Editor 完整设计产品,支持器件插入/布局布线 ✅
PCB SI 信号完整性仿真,不是布局工具 ❌
Allegro PCB Planner 只做布局规划,缺少 cinsert 等插入命令 ❌

现象 :在 PCB Planner 里执行 Import Logic,netrev 日志一切正常、ECO 里也列出所有器件,但日志出现 E- Command not found: cinsert,板子始终是空的。

解决 :关闭 Planner,从开始菜单打开 PCB Editor,在 Product Choices 对话框选择:

复制代码
Allegro PCB Designer (was Performance L)

勾选左下角 Use as default,以后不再询问。


六、坑 5:Create Netlist 只生成了网表,没有生成板文件

Capture 的 Tools → Create Netlist → PCB Editor 选项卡里,有两个容易忽略的勾选项:

勾选项 作用
☑ Create PCB Editor Netlist 生成 pstchip.dat / pstxprt.dat / pstxnet.dat
☑ Create or Update PCB Editor Board (Netrev) 自动运行 netrev 并生成/更新 .brd 板文件

只勾第一个:只有网表文件,Allegro 里没有板子。

勾上第二个:Capture 自动跑 netrev,并用 PCB Editor 打开板文件。

推荐配置:

复制代码
Netlist Files:            allegro
☑ Create PCB Editor Netlist
☑ Create or Update PCB Editor Board (Netrev)
    Input Board File:     (留空 = 新建板)
    Output Board File:    allegro\GD32.brd
    Place Changed Components: Always
    Board Launching Option:  ● Open Board in Allegro PCB Editor

点"确定"后,Capture 会自动完成网表 → netrev → 打开 PCB Editor 的全过程。


七、验证清单

导入完成后,按下面三项确认:

  1. 看 netrev 日志 :工程目录 allegro\netrev.lst 末尾应为

    复制代码
    No error detected
    No oversight detected
    No warning detected
  2. 看库路径 :日志中 ------ Library Paths ------ 段应包含自己的库目录(如 D:/CIS_LIBRARY/PCB/symbol)。

  3. 看板文件:Allegro 中用 View → Zoom Fit 能看到器件;Place → Quickplace 能正常摆放。


八、常见现象速查表

现象 原因 解决
SPMHNI-194 Symbol not found in PSMPATH 库路径未配置 在 pcbenv\env 加 PSMPATH/PADPATH
Unable to find ... allegro_smi_modules.txt env 文件缺 source $TELENV env 第一行补上
Command not found: cinsert,板子空 用了 PCB Planner 换 PCB Editor + Allegro PCB Designer
Command not found: zoom fit 有命令未退出(如 slide) 先按 Esc
Options 面板没有 Components by refdes 未进入摆放模式 Place → Manually...
板子打开是黑的,看不到器件 视图未定位 / 器件未摆放 Zoom Fit + Quickplace
导入后 symbol 警告一条不少 env 改了但没重启 重启 PCB Editor

九、总结

原理图转 PCB 的核心就三件事:

  1. 路径通 :Allegro 的 PSMPATH / PADPATH 必须包含自己的封装库,且 env 文件必须 source $TELENV;
  2. 网表通 :Capture 的 Create Netlist 勾选 Create or Update PCB Editor Board (Netrev),让 netrev 自动生成板文件;
  3. 产品对 :用 PCB Editor + Allegro PCB Designer,不要用 PCB SI 或 PCB Planner。

把这三步做对,No error / No oversight / No warning,60 个器件一次导入成功,剩下的就是画板框、Quickplace、布局布线了。

相关推荐
水饺编程2 小时前
第2章:Linux 基础,关机命令
linux·c语言·汇编
Brilliantwxx3 小时前
【Linux】IO(上)全篇:文件本质、C 接口、系统调用与文件描述符
linux·运维·服务器·c语言
坐看风云变幻3 小时前
《嵌入式工程师的软硬件修仙之路》第 2 期|C 语言筑基:指针与内存模型
c语言·开发语言
爱读书的小胖1 天前
Codewars:Rot13(C)解题分析
c语言·开发语言
Code_Solitude1 天前
c语言:关于qsoet函数知识点
c语言·数据结构·算法
鸽鸽程序猿1 天前
【项目】【在线判题系统】c端:竞赛报名
c语言·开发语言
H.莓飛1 天前
【Linux】自主 Shell
linux·运维·服务器·c语言·开发语言·visual studio
爱读书的小胖1 天前
Codewars:Last digit of a large number(C)解题分析
c语言·开发语言·r语言
想做小南娘,发现自己是女生喵1 天前
第二周学习文档 Linux C 文件操作
linux·c语言·学习