Cadence中心库配置实战:ODBC、DBC与符号封装联动
1. 先把中心库要管什么想清楚再动手配我见过太多团队在中心库这一步翻车翻车的方式还都挺像的板子打到第三版才发现同一颗 0.1uF 电容在原理图里挂的是 A 工程师做的符号PCB 里指向的却是 B 工程师去年改过的封装焊盘尺寸差了 0.15mm钢网都开好了。追根溯源不是谁手艺差是从一开始就没人把 Cadence 中心库配置流程当回事库文件散在每个人的 D 盘里靠微信群传压缩包维持协作。所谓 Cadence 中心库说到底就是把原理图符号、PCB 封装、焊盘、器件属性、仿真模型这些资源集中放到一个可共享、可检索、可追溯的位置让所有人调用的是同一份数据。它解决的核心问题有三个一是唯一性同一颗料全公司只有一个定义二是可查性选型的时候能按参数筛而不是靠翻文件夹猜三是可维护性改一处所有人下次调用自动拿到新版本。适合谁看如果你是一个人画板子说实话中心库有点重但如果你所在团队超过三个人、或者料号超过五百个这套东西早晚要上早上的成本远低于后补。1.1 散装库文件为什么一定会出事散装库的典型形态是这样的原理图符号放在网络盘的symbol文件夹PCB 封装放在另一个盘的allegro文件夹焊盘又放在某个人的本地目录器件手册干脆没地方放。这种结构在项目少的时候看不出毛病一旦并行三个项目就会爆炸。我举个真实的例子某个项目组同时在做两块板都用同一颗 DC-DC 芯片A 板用的封装是带散热焊盘的B 板用的封装是早期版本没散热焊盘的两个人各自维护一份谁也不知道对方的改动。等到贴片厂反馈 B 板回流焊虚焊返工重开钢网损失的时间和钱远超一次中心库配置的投入。更隐蔽的问题在属性层面。散装库里的原理图符号属性字段全靠手填Value 有的是100nF有的是0.1uF有的是104Part Number 有的填完整料号有的只填型号。结果导出 BOM 的时候采购拿到的清单里同一颗电容出现三行数量还被拆散了议价能力直接归零。中心库的价值就在这儿体现属性字段是强约束的填不对就调不出来导出的 BOM 干净得像洗过一样。1.2 三类中心库方案的取舍实际落地时中心库大致有三种形态选哪种取决于你的团队规模和预算不能一概而论。第一种是纯文件共享型也就是把符号库、封装库、焊盘库放到一台共享服务器上通过路径配置让客户端去读。优点是零成本、部署快、不依赖数据库缺点是检索能力弱只能按文件名找属性字段无法约束谁都能改。适合五人以内的团队或者刚起步的工作室。第二种是数据库驱动型也就是常说的 CIS 中心库Component Information System。原理图符号仍然以.olb文件形式存在但器件的参数、料号、供应商、封装名、手册链接这些信息存在数据库里客户端通过 ODBC 数据源连过去用属性筛选的方式选器件。优点是检索强、属性统一、BOM 直接可用缺点是需要配数据库、配 ODBC、维护 DBC 文件前期投入大。十人以上的硬件团队基本都走这条路。第三种是PLM/ERP 集成型把中心库的物料主数据直接对接公司的物料系统设计端调用的料号就是采购端的料号。这种一般是中大型企业才做涉及跨部门流程不是硬件工程师一个人能推动的。对多数读者来说把第二种吃透就足够了第三种等公司流程成熟了再说。1.3 目录结构与命名约定的硬规则不管你选哪种方案目录结构必须先定死这是后面所有配置的基础。我推荐的结构是按资源类型分层而不是按项目分层因为项目会结束资源要长期复用。CADENCE_LIB/ ├─ schematic/ 原理图符号库 .olb ├─ footprint/ PCB 封装 .dra / .psm ├─ padstack/ 焊盘 .pad ├─ flash/ 隔离焊盘、异形焊盘 .fsm ├─ shape/ 自定义铜皮形状 .osm ├─ step/ 3D 模型 .stp / .step ├─ device/ Device 文件部分流程需要 ├─ datasheet/ 器件手册 PDF ├─ db/ 数据库文件与 DBC 配置 └─ script/ 自动化脚本命名约定比目录结构更重要因为它是唯一能防止同一个东西起三个名字的机制。我给几条我们在用的硬规则你可以直接抄原理图符号名用器件大类缩写加型号比如CAP_0402_100nF、IC_TPS54331PCB 封装名用封装类型加引脚数加体尺寸比如SOIC127P600X175-8N这种命名是国内多数团队的惯例兼容性好焊盘名用形状加尺寸比如RECT_060X080、CIR_025。这三套命名规则一旦定下来就不要允许例外例外一开后面全是坑。注意目录结构定好之后先不要急着往里塞文件。先在共享盘上做一次权限测试确认组内所有人都有读权限、只有库管理员有写权限。我见过因为权限全开某个新人误删了整个padstack目录导致全组停工半天的事故。2. 配置前的准备工作目录、数据库与 ODBC动手改配置文件之前有两件事必须先落地一是共享目录和权限二是数据库和 ODBC 数据源。这两步顺序不能反经常有人先配 DBC 文件配完发现 ODBC 连不上回头再查数据源来回折腾。我的习惯是先确认数据源在 Windows 里能连通再去碰 Cadence 的任何配置。2.1 共享目录与权限的规划共享目录建议放在文件服务器或者 NAS 上用统一路径映射比如全组都映射成Z:\CADENCE_LIB。为什么要统一路径因为中心库的路径会写进配置文件里如果 A 用的是\\server\libB 用的是Z:\CADENCE_LIB配置文件就没法共用一份只能每人自己改改着改着就不一致了。统一盘符是最省事的做法。权限分三层库管理员有完全控制权设计工程师只有读取权其他部门比如采购、工艺如果只需要看 BOM 和手册就给只读权限别让他们碰库文件。写入权限一定要收窄这是纪律问题不是技术问题。我们团队曾经有个不成文的约定任何人要改库必须走变更申请由库管理员执行改完记录在案。听起来官僚但真的省事因为出问题时能立刻定位到是哪次改动引入的。另外提一句备份。中心库是全组的生产资料一定要有版本化备份别指望文件服务器的快照那个恢复粒度太粗。每周打一次压缩包、按月归档成本极低出事的时候能救命。2.2 元件数据库的表结构怎么设计如果用 CIS 方案数据库选型上 Access 和 SQL Server 都能用小团队用 Access 足够大团队建议上 SQL Server因为 Access 在并发写入时容易锁表。数据库里至少要建三张表这是 Capture CIS 的默认约定也是我踩过坑之后认为最稳妥的结构。第一张是主表一般叫PART_NUMBER每一行代表一个可采购的独立器件。字段包括Part Number料号主键、Part Type器件类别、Value参数值、Description描述、Symbol对应的原理图符号名、PCB Footprint对应的 PCB 封装名、Manufacturer、Manufacturer Part Number、Datasheet 链接。这张表是选型时看到的那张表字段设计得好不好直接决定选型体验。第二张是手册表一般叫DATASHEET存 PDF 的相对路径一个器件可能对应多份手册所以是独立表通过料号关联。第三张是引脚表一般叫PIN存每个器件的引脚定义用于原理图符号与器件属性的引脚映射校验。这张表很多人偷懒不建结果后面发现引脚标错、仿真模型对不上回头补齐的成本更高。字段设计上有两个细节值得说。一是字段类型要统一比如 Value 字段统一用字符串不要把100nF和100混着存否则排序和筛选都会出怪问题。二是保留一个保留字段比如NOTE将来临时加需求时不用改表结构直接往里塞改表结构在多人协作环境下是个麻烦事。2.3 ODBC 数据源配置与位数陷阱这是整个流程里最经典的坑值得单开一节讲。Cadence OrCAD Capture CIS 是 32 位程序所以你必须用32 位 ODBC 管理器去建数据源路径是C:\Windows\SysWOW64\odbcad32.exe。如果你从控制面板进去找ODBC 数据源那是 64 位的建完之后 Capture 死活连不上也不报明确错误就在那儿转圈。配置步骤大致是这样先打开 32 位管理器选系统 DSN不要选用户 DSN因为系统 DSN 对所有登录用户生效多人共用机器时不至于每人配一遍点添加选对应的驱动。Access 数据库选Microsoft Access Driver (*.mdb, *.accdb)SQL Server 选SQL Server或SQL Server Native Client。填数据源名这个名要记住后面 DBC 文件里要写一模一样的。然后选数据库文件或者填服务器地址、登录方式。配置完之后有个必做的验证动作点测试连接看到成功提示才算完。别跳过这步我见过有人配完直接去开 Capture结果 DBC 里写错一个字母排查了两个小时。提示如果团队里有人用 64 位 Office装了 64 位 Access 引擎会导致 32 位 ODBC 里看不到 Access 驱动。解决办法是单独安装 32 位的 Access 数据库引擎两个版本可以共存不冲突。3. 把配置落到文件上DBC、Capture.ini 与 env准备工作做完接下来才是真正的配置流程。这一步的核心是三个文件DBC 文件管数据库映射Capture.ini 管 CIS 的全局设置env 文件管 Allegro 侧的库路径。三个文件各管一摊不要混着改。3.1 DBC 文件的字段映射怎么读DBC 文件本质是一个 INI 格式的映射文件告诉 Capture数据库里哪张表对应界面上的哪个标签页哪一列对应哪个属性字段。它的基本结构是这样你可以拿这段当模板改[Part Number] TypeODBC DataSourceCIS_LIB TablePART_NUMBER NumberPART_NUMBER [Part Number Fields] PART_NUMBERPart Number PART_TYPEPart Type VALUEValue DESCRIPTIONDescription SYMBOLSymbol PCB_FOOTPRINTPCB Footprint MANUFACTURERManufacturer [Datasheet] TypeODBC DataSourceCIS_LIB TableDATASHEET NumberPART_NUMBER方括号里的Part Number、Datasheet是界面上显示的标签页名字Type固定写ODBCDataSource必须和你刚才在 ODBC 管理器里起的名完全一致大小写敏感Table是数据库里的表名Number是这张表的主键列。下面Fields段是列到显示名的映射左边是数据库列名右边是 Capture 里显示的名字。实际配置时我建议别从零手写去 Cadence 安装目录下找一个现成的 DBC 模板一般在 Capture 的示例目录里复制一份改能避开很多格式细节问题。特别是字段段的写法不同版本的 Capture 对格式要求略有差异用官方模板最稳。3.2 Capture.ini 与 CIS Configuration 的配合DBC 文件写好后要让 Capture 知道它在哪。两种方式一是直接在 Capture 里点Options CIS Configuration在弹出窗口里指定 DBC 文件路径这种方式直观改完立即生效二是改capture.ini在[Part Management]段里加一行Configuration File指向 DBC这种方式适合批量部署装机的时候直接下发配置文件。两种方式效果一样我个人推荐先用图形界面配一遍确认能用之后再把生成的配置固化到capture.ini里备份。因为图形界面配完它自己也会写进 ini你反向看一下就知道该写什么了。这里还有一个容易被忽略的点库路径。capture.ini里要确保[Part Library Directories]不同版本段落名可能略有不同包含了你的.olb符号库所在目录。如果符号库路径没配会出现数据库里能搜到器件、但放下去的时候提示找不到符号的情况。这个错误信息很含糊容易误判成数据库问题。3.3 Allegro 侧的库路径与 env 文件原理图侧配完PCB 侧还得配一遍因为 Allegro 找封装、找焊盘是走另一套路径机制。有两种配法图形方式是Setup User Preferences Paths Library在里面填padpath、psmpath、devpath、parampath、steppath这几项文本方式是直接改env文件位置在%HOME%\pcbenv\env写入类似下面的内容set padpath Z:/CADENCE_LIB/padstack set psmpath Z:/CADENCE_LIB/footprint set devpath Z:/CADENCE_LIB/device set steppath Z:/CADENCE_LIB/step注意路径分隔符Allegro 的 env 文件里用正斜杠/或者双反斜杠\\都行单反斜杠会被当成转义字符这是个经典错误。另外psmpath要指向封装目录padpath指向焊盘目录这两个是最常出问题的路径写错的表现就是放器件时提示找不到 PSM 文件。注意多台机器部署时直接复制env文件比自己手填靠谱得多。你在一台机器上配好、测试通过然后把这份env和capture.ini一起作为装机模板下发能省掉大量重复劳动和人为失误。4. 符号与封装联动入库与调用实操配置文件的活干完接下来是真正往里塞东西。这一步的难点不在操作而在关联关系的正确性原理图符号的引脚编号、PCB 封装的引脚编号、数据库里的引脚定义三者必须严格一致差一个都可能在网表导入时报错。4.1 原理图符号入库与 Part Number 绑定往中心库里加新器件我习惯按这个顺序走先在 Capture 里新建一个.olb或者打开已有的分类库文件用New Part建符号画外形、放引脚每个引脚必须填对Number和NameNumber 是物理引脚号Name 是功能名这两个别搞混然后给器件加属性至少要加Part Number、Value、PCB Footprint这几项。属性名一定要和 DBC 文件里定义的显示名对得上不然在 CIS 界面里会显示成空白。有个细节很多新手会漏PCB Footprint属性的值必须和 Allegro 封装文件的名字完全一致包括大小写。SOIC127P600X175-8N和soic127p600x175-8n在部分操作系统上能互通但在跨平台共享目录里就是找不到。我们的做法是统一用大写从源头上消灭这个变量。符号画完之后把.olb放到共享目录的schematic文件夹然后在数据库里新增一行把料号、参数、符号名、封装名都填进去。填完刷新 CIS 界面能看到新器件说明这一环通了。4.2 PCB 封装、Padstack 与 Device 文件的关联封装这边的流程是从焊盘开始往上的先做.pad焊盘再做.dra可编辑封装符号然后生成.psm封装存储文件。很多人只保存了.dra没生成.psm结果原理图导网表的时候报找不到封装。.dra是给你编辑用的源文件.psm才是 Allegro 实际调用的文件每次改完.dra都要重新生成一次.psm这个动作不能省。生成.psm的方式是在 Allegro 里打开封装点File Create Symbol它会自动在封装所在目录生成同名.psm。如果你的中心库目录和封装源目录不是同一个记得把生成的文件一起拷过去。关于 Device 文件要看你的流程版本。如果走的是传统 Allegro 流程.txt格式的 Device 文件用于描述引脚到功能的映射如果走的是较新的流程这部分信息可以直接从原理图符号的属性里读取。我建议还是把 Device 文件一并维护因为它对引脚交换、门级交换这类场景有用而且导入网表时如果提示器件未定义很多情况下就是缺了它。提示封装改动的传播是有延迟的。你改了中心库里的.dra并重新生成了.psm但已经打开的项目里Allegro 可能还在用本地缓存的老版本。改完库之后最稳妥的做法是把项目重新打开一次或者手动清一下工作目录里的临时文件。4.3 端到端调用验证与 BOM 输出配完不验证等于没配。我一般会做一个最小验证流程二十来分钟能跑完但能覆盖九成的问题。第一步在 Capture 里新建一个测试原理图从 CIS 里搜一颗器件放进去看能不能搜到、属性显示是否完整。第二步检查器件的PCB Footprint属性值确认和封装库里的文件名一致。第三步导出网表看有没有报错重点是看有没有找不到器件引脚不匹配这类提示。第四步新建一个 Allegro 板文件导入网表看器件能不能正常放下来。第五步导出 BOM检查字段是否完整、同一颗料有没有重复行。这五步走完没问题说明链路是通的。如果哪一步报错排查顺序建议是先查 ODBC 连接再查 DBC 映射再查符号属性最后查封装文件。这个顺序是从外到内能避免在错误的方向上浪费时间。5. 常见问题与排查技巧实录中心库的报错信息普遍不友好很多错误只告诉你结果不告诉你原因。下面这几类是我们踩得最多、也最值得记住的。5.1 数据库连不上、元件搜不到的排查顺序表现是打开 CIS 界面列表是空的或者提示数据源无法连接。排查我按这个顺序走排查点检查动作常见原因ODBC 位数用 SysWOW64 目录下的管理器打开确认用了 64 位管理器建的数据源DSN 名称和 DBC 里的 DataSource 逐字比对大小写或空格不一致驱动确认数据库对应的驱动已安装Access 引擎缺失或位数不对权限用当前登录账号手动打开数据库文件共享目录权限不足表名确认 DBC 里的 Table 和数据库里的表名一致改过表名但没同步 DBC有一点特别提醒Access 数据库放在网络共享盘上时某些环境下 32 位 ODBC 连接会失败表现和配置错误一模一样。遇到这种情况先把数据库文件拷到本地试一次能连上就说明是网络访问问题再针对性解决。5.2 封装找不到、引脚对不上的典型原因表现是导网表时报Could not find footprint或者器件放下来之后引脚位置是乱的。前者八成是路径问题psmpath没包含封装目录或者封装名大小写不一致或者只保存了.dra没生成.psm。后者基本是引脚编号问题原理图符号里的引脚 Number 和封装里的引脚 Number 对不上比如符号里用的是 1、2、3封装里用的是 A、B、C。这种错误在双列直插、BGA 这类封装上尤其常见。排查引脚问题有个高效办法把原理图符号的引脚列表和封装的引脚列表各导出成文本用表格工具对比。手工一个个看容易漏尤其引脚数多的时候。5.3 仿真相关属性的关联注意事项如果你的流程里还要做仿真中心库这边还有一层要考虑器件的仿真模型路径、模型类型这些属性最好也在数据库里留字段。常见的问题是仿真时提示器件未定义原因通常是模型库路径没配或者模型名和器件属性对不上。这类问题的根子往往不在仿真设置而在中心库里压根没登记模型信息。我的建议是数据库里预留SIM_MODEL、SIM_MODEL_TYPE、SIM_MODEL_PATH这几个字段哪怕现在不用将来上仿真的时候直接填省得改表。《信号完整性与电源完整性理论分析与仿真实践》这类内容里讲的方法论很扎实但落到实操第一步还是得先有规范的模型属性管理。6. 中心库的日常维护与团队协作中心库配好只是开始真正决定它能不能长期用下去的是日常维护。我见过不少团队兴师动众搭了中心库三个月后大家又开始各自传压缩包原因基本都是维护流程没跟上。6.1 新增元件的入库流程我们现在的流程是这样你可以参考设计工程师发现需要新器件先填一张入库申请表写清料号、参数、封装需求、手册链接库管理员审核确认库里有没有重复或可替代的现有器件确认要新增后由管理员建符号、建封装、录数据库做完之后跑一次前面说的五步验证验证通过通知申请人。整个过程一般一到两个工作日。这个流程里最关键的是第二步的查重。不查重的后果是库里同一个功能出现五六个器件BOM 上看着乱采购也拿不到量。查重这件事只能靠人没有工具能百分百自动判断。所以库管理员的经验很重要这个角色最好由资深的、对常用料熟悉的人来担当。6.2 版本管理与变更记录中心库要留变更记录方式是给每次改动打标签写清楚改了什么、为什么改、影响范围。不需要复杂的版本控制工具一个 Excel 台账加目录快照就够了。记录字段建议包括变更日期、变更人、器件名、变更类型新增/修改/删除、变更说明、影响项目。为什么要记影响项目因为如果某个封装改了尺寸正在做的项目可能要重新出钢网这个影响必须让项目经理知道。没有这条记录改动就是静默的等板子回来才发现问题。注意删除操作要格外谨慎。理论上中心库里不应该有物理删除只有停用。因为老项目可能还在引用删掉之后老项目打开就报错了。用状态字段标记停用比直接删文件安全得多。6.3 定期体检清单中心库建议每季度做一次体检我列个清单照着走一遍就行核对数据库和实际库文件是否一致有没有数据库里有记录但文件已丢失的情况检查是否有重复器件同一料号出现多条记录检查封装文件是否有对应的.psm有没有只留了.dra的检查手册链接是否还有效失效的更新掉备份一次完整快照归档保存抽查十颗常用器件跑一遍验证流程这套体检做下来大概半天时间但能提前发现大部分隐患。我给身边几个团队推荐过反馈都是早知道该早点做。最后分享一个我在实际操作中的体会中心库这东西配置的难度其实不高难的是让它活下来。技术方案再漂亮如果入库流程超过三天、如果改个封装要发五封邮件大家就会绕开它绕开之后之前所有的投入都白费。所以配置的时候宁可先做简单版本、快速上线也不要一次追求大而全。先让团队用起来用出习惯了再慢慢加字段、加校验、加自动化。我这边的库从最早的纯文件共享到后来上数据库中间隔了两年走的就是这个路子。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →