實(shí)戰(zhàn):從符號(hào)到封裝再到CIS數(shù)據(jù)庫(kù)管理)
很多剛接觸 Cadence 的朋友拿到軟件后第一件事就是想趕緊畫原理圖、擺封裝、出光繪結(jié)果一打開新建工程反而蒙了元件庫(kù)在哪怎么建為什么別人的原理圖里元件都帶 PCB Footprint、廠家料號(hào)和仿真模型而我放出來的電阻就是一個(gè)光禿禿的方塊這篇內(nèi)容就是專門解決“Cadence 元件庫(kù)到底是個(gè)什么東西、應(yīng)該怎么建、怎么管、怎么用”這個(gè)問題。我會(huì)基于目前主流的 Cadence 16.6、17.2、17.4 版本結(jié)合 OrCAD Capture 原理圖工具和 Allegro PCB 工具來拆解。無論你是學(xué)生、剛轉(zhuǎn)崗的硬件助理還是想規(guī)范團(tuán)隊(duì)庫(kù)管理的硬件主管這篇文章都值得花十分鐘看完。里面涉及的不只是“點(diǎn)哪里建庫(kù)”更多的是我這些年實(shí)際踩坑踩出來的經(jīng)驗(yàn)比如為什么封裝導(dǎo)不進(jìn) PCB、為什么仿真時(shí)報(bào)器件未定義、CIS 數(shù)據(jù)庫(kù)的 ODBC 數(shù)據(jù)源到底怎么配。這些內(nèi)容常規(guī)教程很少講全。1. 元件庫(kù)的整體認(rèn)知Cadence 的庫(kù)到底包含什么1.1 原理圖符號(hào)、PCB 封裝與關(guān)聯(lián)屬性的關(guān)系先建立一個(gè)最基礎(chǔ)的認(rèn)知Cadence 的元件庫(kù)不是一個(gè)“文件”而是一整套“描述一個(gè)元件需要哪些信息”的體系。具體拆開看至少有這幾層原理圖符號(hào)庫(kù).olb 文件這里的元件符號(hào)表示邏輯關(guān)系比如引腳號(hào)、引腳名稱、門電路內(nèi)部結(jié)構(gòu)等。畫原理圖時(shí)從 .olb 里調(diào)用的符號(hào)決定了你圖紙上看的“樣子”。PCB 封裝庫(kù).pad 焊盤文件 .psm 封裝文件這是給 Allegro PCB 用的。封裝定義了元件的物理尺寸、焊盤大小、絲印、裝配層等信息。關(guān)聯(lián)屬性Value、PCB Footprint、Manufacturer、Part Number 等一個(gè)完整的元件必須把原理圖符號(hào)、PCB 封裝、BOM 屬性串起來否則后面做 PCB 導(dǎo)入、導(dǎo)出物料清單時(shí)一定出問題。理解這一層之后再看網(wǎng)上很多人說的“Cadence 元件庫(kù)怎么用”其實(shí)問的是兩層問題一層是“畫原理圖時(shí)從哪里調(diào)符號(hào)”另一層是“畫完原理圖怎么把元件映射到 PCB 封裝”。這兩個(gè)問題必須分開解決。1.2 個(gè)人庫(kù)和團(tuán)隊(duì)庫(kù)該怎么規(guī)劃很多人習(xí)慣把公司公共目錄下的 .olb 文件復(fù)制到自己電腦上或者干脆在自己本地 D 盤建了一堆雜亂無章的庫(kù)文件。短期看是能畫圖時(shí)間一長(zhǎng)就會(huì)發(fā)現(xiàn)這個(gè)電阻在這個(gè)工程里叫 R0603在那個(gè)工程里叫 RES_0603封裝更是五花八門。這些問題本質(zhì)上不是工具不會(huì)用而是庫(kù)的規(guī)劃出了問題。我比較推薦的做法是這樣本地個(gè)人庫(kù)用于學(xué)習(xí)和小項(xiàng)目目錄下區(qū)分 Symbol、Footprint、Datasheet 三個(gè)子目錄。團(tuán)隊(duì)庫(kù)必須放在服務(wù)器或共享盤上有專人維護(hù)按元件類別劃分分立器件、連接器、集成電路、電源模塊等。庫(kù)中每個(gè)元件必須包含原理圖符號(hào)、PCB 封裝、數(shù)據(jù)手冊(cè)、屬性模板包括廠家、料號(hào)、單價(jià)、是否替代料等。這樣規(guī)劃的好處是任何時(shí)候新項(xiàng)目啟動(dòng)直接調(diào)用公共庫(kù)不需要重復(fù)造輪子而且導(dǎo)出的 BOM 可以直接用于采購(gòu)和貼片不用再人工整理。1.3 和 Cadence HDL、Virtuoso 庫(kù)的區(qū)分搜索熱詞里能看到不少人搜“cadence hdl庫(kù)”和“cadence virtuoso”。這里說清楚避免混淆。Cadence 產(chǎn)品線里做原理圖捕捉的至少有兩條線一條是 OrCAD Capture也有叫 Capture CIS 的這是大多數(shù)硬件工程師用的另一條是 Design Entry HDL簡(jiǎn)稱 DEHDL是傳統(tǒng)上用于團(tuán)隊(duì)大型項(xiàng)目、和后端流程結(jié)合更緊密的工具。它們的元件庫(kù)格式不同、界面不同、甚至連設(shè)計(jì)思路都有差異文章里講的元件庫(kù)如果不特別說明都是指 OrCAD Capture 和 Allegro 這一套流程。而 Virtuoso 主要用于模擬集成電路設(shè)計(jì)IC 設(shè)計(jì)它的庫(kù)體系又是另一個(gè)世界常見的有 analogLib、gpdk 工藝庫(kù)等。你要是做芯片設(shè)計(jì)搜“Virtuoso 元件庫(kù)”才有意義要是做板級(jí)硬件就別把精力花在那邊。2. 原理圖符號(hào)庫(kù)從創(chuàng)建到規(guī)范化2.1 新建符號(hào)庫(kù)和元件的完整步驟先說原理圖符號(hào)庫(kù)怎么建。在 Capture 里通過 File - New - Library 新建一個(gè) .olb 文件然后右鍵這個(gè)庫(kù)文件選擇 New Part就能進(jìn)入符號(hào)編輯界面。需要注意的幾件事Part Name 一定要和后續(xù)元件命名規(guī)則一致比如 EEPROM_24LC02、RES_0402、CON_DSUB9。不要用中文不要用特殊字符。Part Reference Prefix 要正確電阻填 R電容填 C芯片填 U連接器填 J。這個(gè)前綴在畫原理圖時(shí)自動(dòng)編號(hào)填錯(cuò)會(huì)導(dǎo)致位號(hào)混亂。PCB Footprint 屬性要在這里先填一個(gè)默認(rèn)值。比如你建的是 0402 電阻PCB Footprint 屬性就寫 R0402。這個(gè)屬性和封裝庫(kù)里的封裝名必須完全一致包括大小寫否則后面導(dǎo)網(wǎng)表、導(dǎo)入 PCB 時(shí)會(huì)出大問題。編輯符號(hào)時(shí)用 Place Pin 放引腳。引腳間距建議默認(rèn)用 100mil 網(wǎng)格不要隨意改小。引腳命名方面電源引腳叫 VCC、VDD、VSS、GND信號(hào)引腳按數(shù)據(jù)手冊(cè)命名。這里有個(gè)經(jīng)驗(yàn)引腳的編號(hào)必須和封裝焊盤編號(hào)一一對(duì)應(yīng)比如數(shù)據(jù)手冊(cè)第 3 腳叫 SDA原理圖符號(hào)的第 3 腳也必須是 SDA順序錯(cuò)了后面對(duì)應(yīng)關(guān)系全亂。2.2 引腳規(guī)劃和電源地的處理技巧高中低頻電路對(duì)符號(hào)引腳排列的要求不太一樣但有一條通用原則盡量讓引腳分布和數(shù)據(jù)手冊(cè)一致同時(shí)方便原理圖閱讀。不要做成長(zhǎng)條狀把所有引腳一字排開最好按照功能分區(qū)左側(cè)輸入、右側(cè)輸出、上面電源、下面地。這樣原理圖畫出來可讀性高評(píng)審和調(diào)試的時(shí)候心情也好。電源引腳有兩種處理方式一種是直接畫出來可見另一種是隱藏起來靠全局電源符號(hào)自動(dòng)連接。兩種做法我實(shí)際都用過給個(gè)建議對(duì)于數(shù)字芯片VCC 和 GND 如果數(shù)量多比如 FPGA、DDR 芯片隱藏引腳并用電源符號(hào)統(tǒng)一連接原理圖會(huì)干凈很多。對(duì)于模擬芯片電源引腳通常和去耦電容的位置強(qiáng)相關(guān)建議可見方便 layout 參考原理圖時(shí)理解電源濾波路徑。隱藏引腳不是不連接而是在 Edit Part 里做好 Power Pins 標(biāo)記并填好 net name。很多初學(xué)者畫完原理圖跑 DRC 時(shí)報(bào)一大堆“GND has no driver”或者“VCC floating”多半就是隱藏引腳沒設(shè)置對(duì)。這個(gè)坑幾乎人人必踩提前了解能省很多時(shí)間。2.3 處理 intersheet references 報(bào)錯(cuò)和跨頁(yè)引用熱詞里有“cadence 添加 intersheet references 報(bào)錯(cuò)”這個(gè)讓我印象很深。Capture 里跨頁(yè)連接器Off-page Connector后面有個(gè)功能叫 Intersheet References用來在圖紙上自動(dòng)標(biāo)注某個(gè)網(wǎng)絡(luò)是從哪一頁(yè)來的、要到哪一頁(yè)去。用 Place Off-Page Connector 放好連接符之后執(zhí)行 Add Intersheet ReferencesCapture 會(huì)自動(dòng)幫你加頁(yè)碼標(biāo)注。但這個(gè)功能報(bào)錯(cuò)很常見常見原因有幾個(gè)某根網(wǎng)絡(luò)在原理圖上只有一端連了 Off-Page Connector另一端漏了軟件無法配對(duì)。網(wǎng)絡(luò)名不一致比如該連的寫成了 SPI_CS另一頁(yè)寫成了 SPI_CS0。原理圖分頁(yè)編號(hào)沒有設(shè)置好有些頁(yè) Title Block 里的頁(yè)碼為空。層次式設(shè)計(jì)中跨頁(yè)引用不能跨越不同層次的模塊只能在同一層級(jí)中使用。遇到報(bào)錯(cuò)我的排查順序是這樣的先看錯(cuò)誤列表里報(bào)的是哪個(gè)網(wǎng)絡(luò)名回到原理圖用 ShiftS 高亮所有同名網(wǎng)絡(luò)再全局檢查 Off-Page Connector 數(shù)量確保所有跨頁(yè)網(wǎng)絡(luò)至少有兩個(gè)連接符最后看一眼 Title Block 里 Page Count 和 Page Number 是否填寫正確。90% 的情況都出在這三點(diǎn)上。3. PCB 封裝庫(kù)從數(shù)據(jù)手冊(cè)到 PCB 落地的關(guān)鍵步驟3.1 焊盤尺寸的計(jì)算邏輯創(chuàng)建 PCB 封裝之前必須先把焊盤Pad做好。Allegro 里焊盤文件是 .pad 后綴獨(dú)立于封裝文件存在。焊盤做錯(cuò)后面封裝做得再漂亮都是白搭。焊盤尺寸不是拍腦袋定的常用的依據(jù)是 IPC 標(biāo)準(zhǔn)和實(shí)際焊接工藝。簡(jiǎn)單說焊盤長(zhǎng)寬至少要比引腳寬度寬出一個(gè)“可焊接余量”。以貼片電阻電容為例比如 0603 封裝的焊盤尺寸常見的經(jīng)驗(yàn)值是焊盤寬度 元件端子寬度加 0.2mm 到 0.4mm。焊盤長(zhǎng)度 元件端子長(zhǎng)度加 0.2mm 到 0.5mm具體視焊接工藝而定。如果是直插元件鉆孔直徑 引腳直徑加 0.2mm 到 0.3mm焊盤外徑一般是鉆孔直徑的兩倍左右。打樣的板廠一般會(huì)要求你控制最小焊盤和最小孔徑所以開封裝前最好先問清楚板廠的能力參數(shù)別等發(fā)板了才改封裝。Allegro 里新建焊盤用 Pad Designer選好單位一般用 mm設(shè)置鉆孔尺寸、焊盤各層尺寸。初學(xué)者最容易犯的一個(gè)錯(cuò)是只設(shè)置了 Default internal 層而忘了設(shè)置 Soldermask阻焊層和 Pastemask鋼網(wǎng)層結(jié)果做出來的板子該露銅的地方被阻焊蓋住或者貼片機(jī)上不了錫。這三個(gè)層在 Pad Designer 里必須都有尤其注意我的習(xí)慣是阻焊層焊盤比焊盤大 0.1mm 左右鋼網(wǎng)層焊接盤大 0.1mm 左右。3.2 封裝創(chuàng)建的實(shí)操流程焊盤文件準(zhǔn)備好之后用 Allegro Package Editor 創(chuàng)建封裝。具體到 Allegro 17.4 里打開 Allegro Package Designer 后可以通過 File - New選擇 Package Symbol輸入封裝名。需要注意的步驟Setup - Design Parameters 里先設(shè)置單位和精度確保和焊盤文件一致。放置焊盤Layout - Pins在 Options 里選擇做好的焊盤文件輸入引腳編號(hào)按坐標(biāo)放置。這一步務(wù)必仔細(xì)每個(gè)引腳都要按數(shù)據(jù)手冊(cè)的推薦焊盤圖案來放。添加絲印Add - Line 畫元件外框放在絲印層Silkscreen Top。注意絲印線不要壓在焊盤上否則會(huì)影影約約影響外觀。添加裝配層和 Place Bound 區(qū)域這是很多新手忽略的一步。Place Bound元件占地區(qū)域在自動(dòng)布局和干涉檢查時(shí)會(huì)用到必須在 Assembly Top 或 Place Bound Top 層畫好大小一般比元件實(shí)體外輪廓大 0.5mm 左右。封裝命名也要有規(guī)則。我見過最亂的項(xiàng)目里同一個(gè)連接器封裝叫法有七八種CONN_2P、J2、USB_5P、USB_MINI_5P、USB_MICRO_B。這里強(qiáng)烈建議統(tǒng)一一下比如使用“類型_引腳數(shù)_關(guān)鍵特征”的命名方式J_USB_MINI_5P、J_HDR_2X5_2.54、R_0603、C_0805、D_SOD123。命名規(guī)則確定后團(tuán)隊(duì)成員之間只要看封裝名基本就能知道元件大概長(zhǎng)什么樣。3.3 封裝名不一致導(dǎo)致無法導(dǎo)入 PCB 的排查原理圖畫好后生成網(wǎng)表然后在 Allegro 里導(dǎo)入網(wǎng)表時(shí)看不到元件或者一堆符號(hào)變成灰色無法放置絕大多數(shù)原因是原理圖元件的 PCB Footprint 屬性值和封裝庫(kù)里的封裝名不一致。比如原理圖里你寫的是 R0603但封裝庫(kù)里叫 R_0603那一定對(duì)不上。而且 Allegro 對(duì)大小寫敏感千萬別以為 R0603 和 r0603 是同一個(gè)東西。解決辦法很簡(jiǎn)單但很容易忽略打開 Capture 的原理圖選中全部元件在 Edit Properties 里檢查 PCB Footprint 這一列保證所有值都在封裝庫(kù)中存在。批量核對(duì)技巧把 PCB Footprint 列復(fù)制到 Excel和庫(kù)目錄下的文件列表做一次 VLOOKUP找出無匹配項(xiàng)。我每完成一個(gè)項(xiàng)目發(fā)板之前都會(huì)做這一步已經(jīng)成了固定動(dòng)作免得到了 PCB 才發(fā)現(xiàn)缺失封裝臨時(shí)補(bǔ)封裝非常被動(dòng)。另外一個(gè)相關(guān)的問題是封裝庫(kù)路徑。Allegro 通過 Setup - User Preferences - Design Paths 里的 padpath 和 psmpath 來指定搜索目錄。沒有把共享庫(kù)目錄加進(jìn)去的話就算封裝文件在電腦里Allegro 也可能找不到。庫(kù)路徑配置好后建議重新啟動(dòng) Allegro 再試因?yàn)椴糠致窂皆O(shè)置需要重啟才能生效。4. 元件庫(kù)管理從手工維護(hù)到 CIS 數(shù)據(jù)庫(kù)4.1 為什么要把元件屬性做成數(shù)據(jù)庫(kù)如果你只是自己畫板元件庫(kù)的維護(hù)可以簡(jiǎn)化.olb 文件和封裝文件放本地就行。但如果團(tuán)隊(duì)里有好幾個(gè)硬件工程師同時(shí)在用而且物料又要對(duì)接采購(gòu)、PMC、貼片廠那靠人工在原理圖里手動(dòng)填廠商和料號(hào)效率低而且容易出錯(cuò)。Capture CIS 的 C 其實(shí)就是 Component Information System它的核心思路是把元件的原理圖符號(hào)、封裝、廠家、料號(hào)、單價(jià)、生命周期狀態(tài)等信息統(tǒng)一存在一個(gè)數(shù)據(jù)庫(kù)里。工程師畫圖時(shí)通過 CIS 界面按照條件篩選器件選中后放置到原理圖上時(shí)所有屬性自動(dòng)帶入。這樣做的直接好處有兩個(gè)從源頭保證 BOM 的一致性不會(huì)出現(xiàn)“原理圖上是這個(gè)料號(hào)采購(gòu)按另一個(gè)料號(hào)買”的情況。方便做元件優(yōu)選和替代料管理禁用物料、停產(chǎn)物料在數(shù)據(jù)庫(kù)里標(biāo)記好就沒人會(huì)誤用。CIS 數(shù)據(jù)庫(kù)可以基于 Access、Excel、SQL Server 或 Oracle。小團(tuán)隊(duì)可以直接用 Access 或 Excel 搭一個(gè)輕量的庫(kù)幾十上百號(hào)人的公司建議用 SQL Server。4.2 配置 ODBC 數(shù)據(jù)源的全過程熱詞里有“cadence 怎么設(shè)置 odbc 數(shù)據(jù)源”這其實(shí)就是 CIS 數(shù)據(jù)庫(kù)連接的關(guān)鍵步驟。很多人卡在這里是因?yàn)椴恢?Capture CIS 讀取數(shù)據(jù)庫(kù)是要先通過 Windows 的 ODBC 管理器配置一個(gè)系統(tǒng) DSN。以 Windows 10 加上 Access 數(shù)據(jù)庫(kù)為例操作流程如下打開 Windows 的“ODBC 數(shù)據(jù)源管理器64位”注意Capture 是 32 位還是 64 位版本要選對(duì)應(yīng)的 ODBC 管理器。64 位的 Cadence 對(duì)應(yīng) 64 位 ODBC32 位的 Cadence 對(duì)應(yīng) 32 位 ODBC弄反了一輩子配不上。在“系統(tǒng) DSN”標(biāo)簽頁(yè)點(diǎn)添加選擇 Microsoft Access Driver填一個(gè)數(shù)據(jù)源名比如 CIS_ACCESS_DB。點(diǎn)選擇按鈕選中你的數(shù)據(jù)庫(kù)文件.mdb 或 .accdb如果有密碼還要在配置里填好?;氐?Capture CIS打開 Options - CIS Configuration新建或修改配置文件把 Database 類型選為 ODBC然后在“Data Source Name”里填 CIS_ACCESS_DB。配置好 symbol、footprint 對(duì)應(yīng)的數(shù)據(jù)庫(kù)字段映射關(guān)系確定哪些列顯示在 CIS 瀏覽器里。配置完以后打開 CIS Explorer 能正常讀取到元件列表并且放置元件時(shí)能自動(dòng)帶入封裝和屬性就說明 ODBC 配置成功了。要是打開時(shí)提示“Database cannot be opened”或者查不到數(shù)據(jù)一般來說三個(gè)方向去查ODBC 位數(shù)和 Cadence 位數(shù)不匹配、數(shù)據(jù)庫(kù)路徑變了導(dǎo)致 DSN 失效、數(shù)據(jù)庫(kù)文件本身有密碼或損壞。4.3 BOM 導(dǎo)出時(shí)屬性設(shè)置對(duì)流程的影響元件庫(kù)管得好不好最后都會(huì)反映在 BOM 上。很多人導(dǎo)出的 BOM 只有位號(hào)和 Value沒有器件型號(hào)、封裝、甚至沒有廠家料號(hào)。采購(gòu)拿到這種 BOM 基本沒法用。要讓 BOM 信息完整本質(zhì)上在建庫(kù)時(shí)就要把對(duì)應(yīng)屬性做進(jìn)去。我的建議是每個(gè)元件至少要包含這些屬性Value標(biāo)稱值或型號(hào)比如 10K 0603、STM32F103C8T6。PCB Footprint封裝名必須和封裝庫(kù)完全一致。Manufacturer原廠名。Manufacturer Part Number原廠完整料號(hào)。Supplier Part Number比如得捷、貿(mào)澤的訂貨號(hào)按公司需求決定是否需要。Minimum QuantityMOQ、Price如果需要采購(gòu)參考可以加。在 Capture 生成 BOM 時(shí)選 Bill of Materials按自己需要勾選 Combined property string把需要的屬性放進(jìn)列表順序排好。CIS 數(shù)據(jù)庫(kù)的好處是這些屬性在元件放置時(shí)就已經(jīng)自動(dòng)填好了手工建庫(kù)的話就得靠設(shè)計(jì)者自覺維護(hù)。這也是為什么我一直勸大家有條件還是盡量把庫(kù)做成 CIS 數(shù)據(jù)庫(kù)一步到位。5. 常見問題與排查技巧實(shí)錄5.1 報(bào)錯(cuò)“This application has quit unexpectedly”怎么處理Cadence 偶爾會(huì)不穩(wěn)定尤其是復(fù)制元件、重開工程時(shí)會(huì)彈出“This application has quit unexpectedly. To help Cadence detect and analyze the problem...”這種提示。遇到這種崩潰提示先不要慌也不要立刻重裝軟件。出現(xiàn)這個(gè)彈窗的大概率原因有幾種軟件異常退出后殘留了日志文件和臨時(shí)文件某些庫(kù)文件被占用顯卡驅(qū)動(dòng)兼容性問題環(huán)境變量路徑配置錯(cuò)誤。我的排查順序先點(diǎn)“確定”關(guān)閉彈窗重新打開軟件看能否正常進(jìn)入。如果反復(fù)退出把當(dāng)前工程目錄下的臨時(shí)文件刪掉比如 Capture 產(chǎn)生的 .DBK 備份文件和 .cpm 文件。檢查電腦上的用戶環(huán)境變量名特別是 HOME、TEMP 等有些精簡(jiǎn)版安裝沒配好變量會(huì)導(dǎo)致繪圖界面異常。更新顯卡驅(qū)動(dòng)并把 Allegro 的硬件加速關(guān)掉試試。很多繪圖崩潰都是顯卡驅(qū)動(dòng)太新或太舊引起的。這里多說一句Cadence 這類 EDA 工具的穩(wěn)定性受系統(tǒng)環(huán)境影響很大建議在專用工作機(jī)上只裝必要的軟件殺毒軟件盡量關(guān)閉文件實(shí)時(shí)監(jiān)控尤其不要用各種優(yōu)化工具去清理注冊(cè)表和臨時(shí)目錄不然很容易把授權(quán)文件或環(huán)境變量弄壞。5.2 仿真報(bào)“器件未定義”和瞬態(tài)不收斂的元件庫(kù)根源熱詞里有“cadence仿真器件未定義”和“cadence瞬態(tài)仿真不收斂”。元件庫(kù)在這兩個(gè)問題里扮演的角色比很多人以為的要大。Pspice 仿真時(shí)如果提示某個(gè)器件未定義十有八九是這個(gè)元件沒有對(duì)應(yīng)的 PSpice 模型屬性或者模型文件。Capture 里放置的每個(gè)仿真元件都要在 Model 屬性里指定模型名并且模型庫(kù)路徑要能被全局找到。你可以這么做檢查元件屬性里有沒有 PSpiceTemplate有沒有 MODEL 和 PKGREF 等仿真相關(guān)屬性。如果是自己從零畫的符號(hào)要手動(dòng)指定 PSpice 模型。簡(jiǎn)單器件可以在模型編輯器里寫一個(gè)模型復(fù)雜芯片只能去找廠家提供的仿真模型文件。模型文件.lib 文件要在 Simulation Settings - Configuration Files 里加載或者添加到全局庫(kù)路徑。瞬態(tài)仿真不收斂Time step too small 之類的錯(cuò)誤一是模型參數(shù)的問題二是電路本身的收斂性問題。這個(gè)可以從元件庫(kù)層面改善的地方是確保電源和地符號(hào)來自正確的庫(kù)確保所有信號(hào)都有明確的參考地避免懸空輸入引腳。尤其很多自己畫的芯片符號(hào)隱藏引腳沒有正確接電源或地跑仿真時(shí)器件內(nèi)部節(jié)點(diǎn)懸空就會(huì)出現(xiàn)奇異點(diǎn)導(dǎo)致不收斂。5.3 器件庫(kù)文件與 PCB 封裝導(dǎo)入的聯(lián)動(dòng)檢查最后再講一個(gè)非常頭疼的問題網(wǎng)表導(dǎo)進(jìn)去但是 PCB 里元件是空心的或者壓根不顯示。這往往是封裝文件沒找到。Allegro 導(dǎo)入網(wǎng)表后如果沒有找到封裝不會(huì)立刻把整個(gè)流程中斷而是把沒找到封裝的元件記為 missing symbol放到未放置列表里。打開 Allegro看右下角消息窗口或者 Display - Status 里未放置元件數(shù)點(diǎn)鼠標(biāo)右鍵選擇 Show Element查看具體報(bào)錯(cuò)路徑確認(rèn)報(bào)錯(cuò)里寫的封裝名。然后做兩件事確認(rèn)封裝文件確實(shí)存在于庫(kù)路徑下。確認(rèn) psmpath 和 padpath 配置正確特別是焊盤文件路徑Allegro 找不到焊盤文件時(shí)封裝即使存在也讀不出來。我見過一個(gè)朋友折騰了半天的案例封裝文件放在同一目錄下但他是通過別人的工程復(fù)制過來的焊盤文件沒復(fù)制全導(dǎo)致所有貼片元件的封裝都開不出來只有直插元件正常。后來把整個(gè) libraries 目錄完整拷貝再指定路徑問題立刻解決。所以如果有人給你傳遞封裝庫(kù)一定記得連同 pad 文件和 psm 文件一起給缺一個(gè)都不行。6. 元件庫(kù)拓展參考開源資源與跨工具遷移現(xiàn)在網(wǎng)上有不少開源硬件項(xiàng)目的元件庫(kù)比如一些開發(fā)板的完整 Cadence 工程可以直接從中復(fù)制成熟元件庫(kù)尤其是常見連接器、電源芯片這類自己畫容易出錯(cuò)的器件。做這件事的時(shí)候有兩點(diǎn)要提醒從開源工程里復(fù)制的元件不要直接當(dāng)標(biāo)準(zhǔn)庫(kù)用。先檢查封裝命名是否符合你的規(guī)則再核對(duì)引腳定義和數(shù)據(jù)手冊(cè)是否一致。開源項(xiàng)目雖然經(jīng)過測(cè)試但不同軟件版本之間可能會(huì)有兼容性問題畢竟別人畫的也可能有筆誤??绻ぞ哌w移也常見。比如用 KiCad 的元件庫(kù)轉(zhuǎn)到 Cadence或者在 AD 和 Cadence 之間相互轉(zhuǎn)換符號(hào)和封裝。這類轉(zhuǎn)換沒有官方的一鍵方案大多需要借助第三方工具或者腳本處理。轉(zhuǎn)換后務(wù)必要仔細(xì)抽查幾個(gè)關(guān)鍵元件的引腳編號(hào)和焊盤位置不要整個(gè)庫(kù)直接拿來用否則很容易出現(xiàn)某個(gè)引腳下錯(cuò)位置板子直接報(bào)廢的情況。我的經(jīng)驗(yàn)是庫(kù)這個(gè)東西“拿來”可以“白嫖”不行。就算用了開源資源也一定要按照自己的規(guī)范過一遍把它變成自己的庫(kù)。這個(gè)流程看起來費(fèi)時(shí)間實(shí)際上是在給后面的設(shè)計(jì)過程買保險(xiǎn)。7. 寫在最后建庫(kù)這件事值得認(rèn)真對(duì)待我在實(shí)際做項(xiàng)目的過程中越來越覺得Cadence 元件庫(kù)的管理水平很大程度上決定了硬件開發(fā)的效率。有些團(tuán)隊(duì)能在兩個(gè)星期內(nèi)完成一塊功能復(fù)雜的板子不是因?yàn)樗麄冊(cè)韴D畫得有多快而是庫(kù)做得好——所有元件調(diào)出來就能用封裝不會(huì)錯(cuò)BOM 不用返工仿真模型齊備PCB 導(dǎo)入一次成功。反觀一些項(xiàng)目拖了很久大部分時(shí)間不是在畫圖而是在跟元件較勁這個(gè)封裝缺了那個(gè)器件沒有模型BOM 對(duì)不上料號(hào)……這些問題幾乎都能追溯到建庫(kù)階段沒有下功夫。所以做項(xiàng)目的時(shí)候別把建庫(kù)當(dāng)雜活?;c(diǎn)時(shí)間把你的元件庫(kù)建好、驗(yàn)證好、管理好這對(duì)整個(gè)開發(fā)流程的影響比多掌握幾個(gè)快捷鍵大得多。如果現(xiàn)在你的庫(kù)還比較亂建議從下一個(gè)項(xiàng)目開始按照文中的思路重新整理一套規(guī)則先立規(guī)矩再擴(kuò)充器件用兩三個(gè)項(xiàng)目迭代下來庫(kù)就能逐漸穩(wěn)定和好用了。