誤全鏈路排查:從原理圖符號到Allegro封裝)
每次畫完原理圖準(zhǔn)備導(dǎo)出網(wǎng)表電腦屏幕上刷出一長串紅色ERROR心里就咯噔一下。Cadence OrCAD的引腳錯(cuò)誤排查大概是每個(gè)用Capture畫圖、用Allegro做PCB的人都會撞上的事明明原理圖里看著沒問題一導(dǎo)網(wǎng)表就報(bào)“引腳編號不匹配”明明封裝焊盤畫得整整齊齊一調(diào)入PCB就缺引腳有時(shí)候連OrCAD和Allegro之間的關(guān)聯(lián)都莫名其妙斷掉查了半天發(fā)現(xiàn)根子居然在引腳類型、符號庫、封裝庫這些細(xì)節(jié)上。這篇文章我就把自己這些年踩過的坑、排查過的典型引腳錯(cuò)誤整理出來從原理圖、庫器件、網(wǎng)表導(dǎo)出到PCB封裝的完整鏈條給你一套可以直接照著用的排查思路。這套內(nèi)容比較適合用過OrCAD但總被各種引腳報(bào)錯(cuò)卡住的人尤其是剛接觸Capture CIS和Allegro的硬件工程師、學(xué)生以及從AD或PADS轉(zhuǎn)過來還不熟悉Cadence規(guī)則的朋友。即使你暫時(shí)只畫原理圖不做PCB理解清楚引腳的定義機(jī)制也能省下一大堆排錯(cuò)時(shí)間。1. 先搞明白一件事OrCAD里的“引腳”到底由誰管轄1.1 同一根腳在三個(gè)環(huán)節(jié)里長著三張臉很多人一遇到引腳報(bào)錯(cuò)就開始盲改改來改去問題還在本質(zhì)上是沒搞明白一根引腳在Cadence這套流程里其實(shí)有三個(gè)身份。原理圖符號Schematic Symbol里的腳是你在Capture里看到的元件圖形上的小短線它帶著一連串屬性引腳名稱Pin Name、引腳編號Pin Number、引腳類型Pin Type、引腳形狀Pin Shape、引腳長度、引腳所屬的分組等等。你在圖紙上連線連的其實(shí)是這個(gè)符號引腳的“電氣身份”。到了網(wǎng)表Netlist這一步引腳會和網(wǎng)絡(luò)Net的歸屬關(guān)系被寫成文本。比如一個(gè)簡單的電阻它在原理圖上可能是R1兩個(gè)腳分別是1和2網(wǎng)絡(luò)是N00001和N00002。網(wǎng)表文件會把“R1這個(gè)器件封裝名叫R0603引腳1接N00001引腳2接N00002”這種信息結(jié)構(gòu)化地記錄下來。到了PCB封裝Footprint里引腳就變成了實(shí)實(shí)在在的焊盤Pad。每個(gè)焊盤有自己的編號、所在的層、尺寸、形狀還有阻焊和鋼網(wǎng)的開口。Allegro在導(dǎo)入網(wǎng)表的時(shí)候需要拿著網(wǎng)表里的器件信息和封裝里的焊盤信息做一次“身份證核驗(yàn)”核驗(yàn)不通過就是各種花式報(bào)錯(cuò)。我用一個(gè)比較接地氣的類比原理圖符號上的引腳編號相當(dāng)于快遞單上的“樓棟號門牌號”網(wǎng)表是快遞單本身PCB封裝的焊盤則是真正的收件地址。三者只要有一處不一樣快遞就送不到而且報(bào)錯(cuò)的方式千奇百怪。1.2 引腳屬性為什么直接影響報(bào)錯(cuò)在Capture里雙擊一個(gè)引腳或者選中引腳后右鍵Edit Pin能看到的屬性有很多真正決定報(bào)錯(cuò)走向的是這幾個(gè)。引腳編號Pin Number這是硬指標(biāo)必須和PCB封裝的焊盤編號完全一致。原理圖里是1、2、3封裝里也是1、2、3這沒問題。但有人習(xí)慣把原理圖引腳編號寫成A1、A2、B1這種陣列坐標(biāo)而封裝焊盤編號卻是1、2、3、4、5這時(shí)候網(wǎng)表導(dǎo)入Allegro就會報(bào)“Pin number not found”之類的錯(cuò)誤。引腳類型Pin Type包括Power、Ground、Input、Output、Bidirectional、Passive、Open Collector、3-State等。每一種類型在DRC檢查時(shí)的規(guī)則不一樣。Power和Ground類型的引腳天生帶“全局網(wǎng)絡(luò)”屬性也就是同名的Power引腳在整張?jiān)韴D里會被自動認(rèn)為連接在一起這既是OrCAD的智能之處也是無窮無盡的坑源。引腳形狀Pin Shape有Line、Clock、Dot、Dot Clock、Zero Length等。這個(gè)屬性主要影響畫圖和DRC的電氣規(guī)則判斷比如時(shí)鐘引腳用Clock形狀在圖紙上畫出來帶一個(gè)箭頭一樣的標(biāo)記DRC在檢查時(shí)鐘網(wǎng)絡(luò)時(shí)會特別關(guān)注。還有一個(gè)很容易忽略的Pin Group屬性它決定了同一個(gè)器件符號里的引腳屬于哪個(gè)Section。對于多Part器件比如4路運(yùn)放、六反相器Pin Group用不用、怎么用直接影響網(wǎng)表能不能正確生成。每次排查引腳問題我基本都會先打開符號編輯器把這幾個(gè)屬性過一遍再去看封裝而不是一上來就懷疑軟件壞了。2. 原理圖階段繞不開的引腳坑2.1 讓人又愛又恨的Power引腳先聊一個(gè)幾乎人人都遇到過的場景在Capture里你打開一個(gè)器件發(fā)現(xiàn)某個(gè)引腳的Type是Power然后DRC報(bào)了一堆警告大意是“Power引腳連到了一個(gè)非電源網(wǎng)絡(luò)”。很多人的第一反應(yīng)是關(guān)掉DRC眼不見心不煩但問題往往就藏在里面。Power類型引腳的全局連接特性意味著兩個(gè)同名Power引腳不需要畫導(dǎo)線就會自動短接。舉個(gè)例子一個(gè)芯片有兩個(gè)VDD引腳類型都是Power名字都叫VDD你在圖紙上把其中一個(gè)VDD接到3.3V電源符號另一個(gè)VDD什么都不接理論上它也已經(jīng)獲得了3.3V因?yàn)橥鸓ower全局連通。這個(gè)機(jī)制在普通設(shè)計(jì)中很方便但在復(fù)雜的多電源系統(tǒng)里稍不注意就把不同電壓域短接到一起了。真正報(bào)警告的常見原因有這么幾種。一種是你把一個(gè)Power引腳用普通導(dǎo)線連到了一個(gè)信號網(wǎng)絡(luò)DRC檢測到“Power引腳連接到了非電源對象”。這時(shí)要確認(rèn)是不是接線接錯(cuò)了如果是把網(wǎng)絡(luò)名改成電源網(wǎng)絡(luò)或者接上正確的電源符號。如果確認(rèn)沒有錯(cuò)再看一下引腳類型是不是設(shè)錯(cuò)了有些器件的數(shù)據(jù)手冊里某個(gè)腳其實(shí)是輸出或者Passive但建庫時(shí)圖省事全設(shè)成了Power這種時(shí)候要回到符號編輯器里把類型改對。另一種情況是你在畫原理圖時(shí)用了Off-Page Connector或者普通的Port來連接電源而沒有使用Place菜單下的Power符號。Power符號自帶全局網(wǎng)絡(luò)屬性而普通Port沒有于是同一個(gè)名字VCC的電源網(wǎng)絡(luò)在不同頁里可能被當(dāng)成兩個(gè)不同的網(wǎng)絡(luò)。DRC就會提示某根Power引腳懸空或者電源網(wǎng)絡(luò)沒有驅(qū)動源。解決方案是統(tǒng)一使用Power符號并保持網(wǎng)絡(luò)名的大小寫完全一致。VCC和vcc在OrCAD里會被當(dāng)成兩個(gè)網(wǎng)絡(luò)這種大小寫問題坑過無數(shù)人。如果是Power引腳懸空希望它不參與連接可以用No Connect符號NC符號放到引腳上或者在符號編輯里把該引腳標(biāo)記為No Connect。不要用空著不連的方式去“假裝”它不存在DRC會盯上你。2.2 引腳編號或名稱重復(fù)是最低級也最要命的錯(cuò)引腳編號重復(fù)比如一個(gè)芯片里有兩個(gè)引腳都叫6這在Capture里其實(shí)很難創(chuàng)建因?yàn)檐浖旧頃崾?。真正容易出問題的是引腳名稱重復(fù)。一個(gè)芯片有多個(gè)GND引腳名字都叫GND編號分別是4、5、9這樣在原理圖上完全合法導(dǎo)網(wǎng)表也沒問題因?yàn)橐_是靠編號區(qū)分的。但問題在于這些同名引腳由于Ground類型自帶全局屬性它們會被自動連到同一個(gè)地網(wǎng)絡(luò)上。如果你的設(shè)計(jì)意圖是“4腳接地、5腳不接、9腳通過0歐電阻接地”這種自動連接就會直接破壞你的意圖。還有一類是多個(gè)NC引腳。有些大芯片的NC腳特別多建庫時(shí)有人偷懶把所有NC腳都命名為NC編號不同。這本身不報(bào)錯(cuò)但DRC會提示許多NC引腳同時(shí)出現(xiàn)在一個(gè)網(wǎng)絡(luò)上造成一些看起來很詭異的警告。更穩(wěn)妥的做法是把每個(gè)NC腳區(qū)分開命名比如NC1、NC2、NC3或者直接在引腳上放置NC符號讓DRC知道這些腳是有意不連接的。另外引腳編號的格式也要注意。有些從其他EDA工具轉(zhuǎn)過來的庫引腳編號會帶奇怪的字符比如“1P”“PAD1”或者中文字符。OrCAD對引腳編號的字符有要求網(wǎng)表導(dǎo)出到Allegro時(shí)如果編號里包含非法字符輕則警告重則整個(gè)網(wǎng)絡(luò)丟失。遇到這種情況最好在符號庫里統(tǒng)一改成純數(shù)字或標(biāo)準(zhǔn)的字母數(shù)字組合。2.3 位號重排導(dǎo)致的“假”引腳錯(cuò)誤還有一個(gè)和引腳本身無關(guān)、但特別容易引發(fā)連鎖錯(cuò)誤的問題就是元件位號被自動重排。熱詞里有人問“OrCAD如何鎖定元件位號不重新編號”這個(gè)問題的典型場景是原理圖改了幾版PCB上已經(jīng)擺放好了元器件然后你在Capture里點(diǎn)了Tools → Annotate選了Unconditional reference designators結(jié)果所有位號從頭到尾重排一遍。導(dǎo)出的新網(wǎng)表里R1變成了R23C5變成了C12PCB上就全亂了看起來就像引腳映射出了問題。正確做法是在Tools → Annotate對話框中Action選項(xiàng)一定要選Incremental reference designators。這個(gè)模式下Capture只對新增的元器件分配新位號不會動已有的位號。Scope那里如果你只想給選中的部分重新編號就選Selection否則選All。Mode建議選Update Instances這是針對非層次式設(shè)計(jì)的標(biāo)準(zhǔn)模式。實(shí)際操作中我還建議在原理圖全部完成、準(zhǔn)備要投板之前不要輕易做全圖范圍的Annotate。真要加幾個(gè)新元件就用Incremental模式并且只對新增元件區(qū)域做局部編號。養(yǎng)成這個(gè)習(xí)慣可以幫你躲掉相當(dāng)大一部分“莫名其妙”的引腳和網(wǎng)表問題。3. 從Symbol到Footprint封裝階段才是重災(zāi)區(qū)3.1 建庫時(shí)的引腳規(guī)劃決定后面是否省心很多引腳錯(cuò)誤追根溯源是在建器件庫的時(shí)候埋下的雷。尤其是引腳數(shù)很多的器件比如STM32F103C8T6這種48腳芯片或者FPGA這類幾百腳的BGA符號庫建得亂后面排查起來能讓人崩潰。在Capture里新建一個(gè)器件時(shí)會遇到Part Type的選擇Homogeneous和Heterogeneous。如果是同構(gòu)多Part器件比如74LS00這種四個(gè)與非門封在一個(gè)封裝里四個(gè)Part的引腳結(jié)構(gòu)完全一樣用Homogeneous就行畫圖時(shí)按U1A、U1B、U1C、U1D調(diào)用網(wǎng)表仍然會把它們歸到同一個(gè)物理封裝U1上。如果是異構(gòu)多Part器件比如一個(gè)芯片里既有控制部分又有電源部分引腳差異很大就用Heterogeneous。但要注意異構(gòu)Part在網(wǎng)表里會以U1.1、U1.2這類Section編號區(qū)分如果Part Number屬性對不上Allegro導(dǎo)入時(shí)會報(bào)“Symbol has different pin count”之類的錯(cuò)誤。針對引腳特別多的器件我的習(xí)慣是分區(qū)放置。比如把電源引腳集中放一排接地引腳放一排數(shù)字IO按端口分組放在器件圖形兩側(cè)模擬引腳單獨(dú)放一個(gè)區(qū)。每個(gè)引腳之間保持一個(gè)網(wǎng)格以上的間距方便后續(xù)連線。引腳名稱取完整功能名不要為了省事寫成P1、P2這種沒有信息量的東西。你建庫時(shí)多花二十分鐘后面畫原理圖能幫你省下好幾個(gè)小時(shí)。引腳放置時(shí)可以使用Place Pin Array批處理放置一次性放一排相同類型、相同命名的引腳再逐個(gè)修改編號。引腳長度建議設(shè)成10到20之間太短了畫圖時(shí)很難接導(dǎo)線太長了器件圖形會很松散。3.2 常見封裝的引腳核對0805、0603、QFN、SOT-23好多引腳不匹配的報(bào)錯(cuò)發(fā)生在原理圖Symbol和PCB Footprint之間。這里最常見的場景是你從網(wǎng)上下了一個(gè)芯片的Capture庫又用了另一個(gè)來源的Allegro封裝庫兩邊看起來是同一個(gè)型號但引腳編號定義完全對不上。拿0805和0603這類兩腳無源器件來說原理圖Symbol里兩個(gè)腳編號一般是1和2焊盤編號也應(yīng)該是1和2。這看起來簡單但有些封裝庫會把1腳放在左邊2腳放在右邊有些庫則反過來。對于電阻電容問題不大對于二極管、鉭電容這種有極性的器件1腳位置一錯(cuò)整個(gè)極性就反了。所以我建無源器件庫的時(shí)候一定會對照數(shù)據(jù)手冊或IPC-7351推薦焊盤圖確認(rèn)1腳位置。QFN封裝的麻煩在于中間的大散熱焊盤。不同廠家的數(shù)據(jù)手冊對這個(gè)焊盤的編號定義不一樣有的叫PAD有的叫EP有的叫Exposed Pad還有的直接用數(shù)字編號比如49。如果你的原理圖Symbol里沒有定義這個(gè)中間焊盤的引腳但封裝里卻畫了Allegro導(dǎo)入網(wǎng)表時(shí)會提示“Component has more pins than symbol”或者反過來Symbol里定義了這個(gè)引腳但封裝里沒有對應(yīng)焊盤就會報(bào)“Pin number not found on package”。我把中間散熱焊盤統(tǒng)一命名為EP或者PAD并在原理圖Symbol中專門放一個(gè)對應(yīng)引腳再連到地網(wǎng)絡(luò)或正確的電源網(wǎng)絡(luò)。很多芯片要求散熱焊盤接地這個(gè)腳在原理圖里不能省。SOT-23這類三腳、六腳封裝1腳位置在不同型號間有差異比如有的SOT-23-3的1腳在左上有的卻在右上。核對方法其實(shí)很簡單打開封裝Symbol看焊盤編號和絲印的圓點(diǎn)/凹口標(biāo)記再和Datasheet對照。在Allegro中打開封裝文件Setup → Design Parameter Editor里可以看到焊盤的坐標(biāo)和編號點(diǎn)一下哪個(gè)焊盤顯示出的Pad name就是這個(gè)腳的編號。3.3 網(wǎng)表落地時(shí)Allegro到底在較什么勁網(wǎng)表導(dǎo)出這一步是引腳問題集中爆發(fā)的時(shí)刻。在Capture里選Tools → Create Netlist在Allegro標(biāo)簽頁選擇allegro.dll導(dǎo)出后會生成幾個(gè)后綴為.dat的文件其中PSTXPRT.DAT記錄的就是每個(gè)元件的引腳映射關(guān)系原理圖符號上的功能引腳Functional Pin和封裝焊盤編號Package Pin的對應(yīng)。Allegro導(dǎo)入網(wǎng)表時(shí)會做一次機(jī)械式的比對原理圖Symbol里有多少個(gè)引腳封裝焊盤里有多少個(gè)Pad兩邊編號是否一一對應(yīng)。只要有一個(gè)對不上整個(gè)元器件就會被標(biāo)記為錯(cuò)誤導(dǎo)致導(dǎo)入中斷。這里要特別提一句OrCAD和Allegro“不能關(guān)聯(lián)”的問題。很多時(shí)候Capture里點(diǎn)Launch PCB Editor沒反應(yīng)或者導(dǎo)完網(wǎng)表后Allegro里居然找不到新網(wǎng)表不是你的圖有問題而是軟件環(huán)境配置不對。常見原因包括Capture和Allegro版本不匹配比如Capture是16.6但Allegro是17.2這種跨大版本組合很容易出問題配置文件和License類型不對安裝路徑帶了中文或特殊字符。實(shí)在關(guān)聯(lián)不起來也可以繞過Launch方式直接生成網(wǎng)表文件再到Allegro里File → Import → Logic選擇從Capture生成的網(wǎng)表目錄手動導(dǎo)入。雖然麻煩一點(diǎn)但能確定問題到底在關(guān)聯(lián)配置還是網(wǎng)表本身。關(guān)于熱詞里提到的“cadence怎么設(shè)置ODBC數(shù)據(jù)源”這本身不是引腳問題但它會間接影響引腳屬性。有人從數(shù)據(jù)庫元件庫調(diào)取器件信息ODBC配置不對時(shí)Capture讀取到的可能是沒有引腳編號的殘缺庫導(dǎo)致放置到原理圖后大量引腳格式異常。配置ODBC時(shí)數(shù)據(jù)源名稱要和你Capture.ini里配置的名稱一致64位和32位ODBC驅(qū)動也別選錯(cuò)。Cadence默認(rèn)是32位應(yīng)用要添加32位的ODBC數(shù)據(jù)源。4. 報(bào)錯(cuò)信息速查與實(shí)戰(zhàn)排查4.1 常見引腳相關(guān)報(bào)錯(cuò)速查表我把這些年碰到的高頻報(bào)錯(cuò)整理成了一個(gè)速查表。注意OrCAD不同版本的提示代碼略有差異但大意基本一致。報(bào)錯(cuò)現(xiàn)象大意出現(xiàn)階段常見原因解決辦法Power引腳連接到非電源網(wǎng)絡(luò)報(bào)警告原理圖DRC接線錯(cuò)誤或引腳類型設(shè)置錯(cuò)誤檢查網(wǎng)絡(luò)名和連接方式確認(rèn)無誤后修正引腳Type原理圖引腳編號在封裝里找不到導(dǎo)入網(wǎng)表到AllegroSymbol引腳編號和Footprint焊盤編號不一致打開符號編輯器和封裝編輯器逐腳核對編號并改正封裝焊盤數(shù)量比Symbol引腳多導(dǎo)入網(wǎng)表到Allegro中間散熱焊盤沒有在Symbol里定義在Capture符號中補(bǔ)建對應(yīng)引腳編號與封裝焊盤一致Symbol里有引腳但封裝里沒有對應(yīng)焊盤導(dǎo)入網(wǎng)表到Allegro用了錯(cuò)誤封裝的庫在Allegro中更換正確封裝或修改封裝補(bǔ)齊焊盤引腳編號格式錯(cuò)誤包含非法字符導(dǎo)出網(wǎng)表引腳Number帶了字母、空格或特殊符號在符號編輯器中統(tǒng)一改為標(biāo)準(zhǔn)編號位號自動重排導(dǎo)致PCB與原理圖對不上原理圖修改后Annotate選了Unconditional模式改回Incremental模式避免重排已有位號同名Power引腳自動短接到錯(cuò)誤的網(wǎng)絡(luò)原理圖/網(wǎng)表Power類型全局連接特性被忽略拆分Power引腳的命名每路電源用獨(dú)立網(wǎng)絡(luò)名導(dǎo)出PDF后引腳編號不顯示或文字裁切導(dǎo)出PDF打印設(shè)置中字體未嵌入或引腳文字太小使用虛擬PDF打印機(jī)時(shí)勾選嵌入字體調(diào)整引腳文字大小器件仿真提示未定義PSpice仿真Symbol沒有關(guān)聯(lián)Model或模型引腳名與Symbol不一致在仿真模型庫中核對引腳名稱重新關(guān)聯(lián)ModelCapture和Allegro關(guān)聯(lián)不上軟件環(huán)境版本不匹配、環(huán)境變量不對、License類型錯(cuò)誤統(tǒng)一版本檢查CDSROOT環(huán)境變量手動導(dǎo)入網(wǎng)表繞過關(guān)聯(lián)4.2 實(shí)戰(zhàn)案例一網(wǎng)表導(dǎo)入時(shí)SPMHNI-175報(bào)錯(cuò)前兩年畫一塊板子主控是STM32F103C8T6在Capture里原理圖看起來一切正常DRC也基本清零結(jié)果導(dǎo)出網(wǎng)表后導(dǎo)入Allegro直接彈了一排“Pin number not found on package”的錯(cuò)誤報(bào)的全是同一顆芯片。我先在Capture里選中這顆芯片右鍵Edit Part打開符號編輯器逐個(gè)查看引腳編號。發(fā)現(xiàn)有個(gè)引腳的Pin Number寫的是PA0-WKUP而不是對應(yīng)的數(shù)字編號。查了一下數(shù)據(jù)手冊這顆芯片的PA0/WKUP引腳實(shí)際對應(yīng)LQFP48封裝里的14腳。原因很清楚了建庫的時(shí)候直接從網(wǎng)上找了個(gè)包含詳細(xì)引腳名的符號但引腳編號被寫成了功能介紹而不是數(shù)字。修法不復(fù)雜在Edit Part里雙擊這個(gè)引腳把Pin Number改成14名稱保持PA0-WKUP重新保存回到原理圖Tools → Create Netlist重新導(dǎo)出Allegro導(dǎo)入后報(bào)錯(cuò)消失。這次教訓(xùn)教會我一件事看到報(bào)錯(cuò)時(shí)不要急著懷疑封裝先做“三方核對”即數(shù)據(jù)手冊引腳表、原理圖Symbol引腳編號、封裝焊盤編號三面對齊。絕大多數(shù)引腳不匹配都是這一環(huán)節(jié)出的錯(cuò)。4.3 實(shí)戰(zhàn)案例二莫名其妙的電源網(wǎng)絡(luò)短路另一個(gè)案例更隱蔽。有一片SDRAM原理圖連好DRC也過了網(wǎng)表導(dǎo)入Allegro也成功。結(jié)果在PCB里檢查網(wǎng)絡(luò)時(shí)發(fā)現(xiàn)存儲器的兩個(gè)不同電壓的電源引腳被短接到了一起我用萬用表查PCB上對應(yīng)的引腳發(fā)現(xiàn)它們在同一個(gè)網(wǎng)絡(luò)上。排查過程很有意思。回到原理圖發(fā)現(xiàn)這片SDRAM有一個(gè)VDDQ引腳和一個(gè)VDD引腳按理說它們應(yīng)該分別接1.8V和3.3V。但打開Edit Part一看兩個(gè)引腳的Name都叫VDDNumber一個(gè)是3一個(gè)是7Type都是Power。問題就在這里Power類型的同名引腳是全局連通的雖然你畫圖時(shí)只把一個(gè)VDD畫了導(dǎo)線另一個(gè)VDD其實(shí)也被自動接上了。解決方法是把符號里的引腳名稱改得能區(qū)分比如VDDQ保持原名VDD改為VDD_IN對應(yīng)封裝焊盤編號不變?nèi)缓笤谠韴D里分別接到正確的電源網(wǎng)絡(luò)。改完重新生成網(wǎng)表PCB里的網(wǎng)絡(luò)關(guān)系才恢復(fù)正常。這件事給我的啟發(fā)是DRC通過不代表沒有隱患。Power引腳這類全局屬性的影響范圍是全圖只要同名所有引腳就是同一個(gè)網(wǎng)絡(luò)。排查引腳問題時(shí)一定要看引腳屬性不能只看圖紙上的連線。5. 幾個(gè)容易忽視的引腳相關(guān)細(xì)節(jié)5.1 仿真模型里的引腳也要對號入座如果你做的是帶PSpice仿真的設(shè)計(jì)引腳問題會以另一種方式出現(xiàn)。Capture里同一個(gè)器件既要有原理圖符號又可能要關(guān)聯(lián)PSpice仿真模型。仿真模型里引腳名稱必須和原理圖符號里的引腳名稱一致。常見的報(bào)錯(cuò)是“器件的Model未定義”或者“Pin number/name mismatch”。我遇到過用Op Amp做仿真所有電路都沒問題但瞬態(tài)仿真就是不收斂折騰了一下午最后發(fā)現(xiàn)是模型文件里5腳和6腳的順序和原理圖Symbol里不一樣導(dǎo)致反饋回路接反了。這是很折騰人的問題因?yàn)樵韴D里看起來完全正確。做仿真前在PSpice的模型庫里找到對應(yīng)模型把模型引腳列表和原理圖Symbol引腳列表并排對比一遍。這個(gè)習(xí)慣能幫你免掉大量仿真“死也跑不通”的尷尬。5.2 批量替換封裝后的引腳一致性熱詞里有“allegro替換單個(gè)封裝”這也是個(gè)容易引發(fā)引腳問題的操作。在Allegro里Setup → Change把某個(gè)器件替換成新封裝操作很快但替換后必須檢查新舊封裝的引腳編號是否兼容。如果舊封裝1腳在網(wǎng)絡(luò)A上新封裝的1腳對應(yīng)的物理位置變了網(wǎng)絡(luò)A就被錯(cuò)誤地連到了新位置。更安全的做法是在Capture里統(tǒng)一修改元件的PCB Footprint屬性重新生成網(wǎng)表再到Allegro中通過Place → Update Symbols里的Package symbols列表批量更新。這樣引腳映射關(guān)系由網(wǎng)表重新定義不容易出現(xiàn)手工換封裝帶來的編號錯(cuò)位。5.3 版本升級帶來的引腳屬性顯示問題Cadence從16.6到17.2、17.4Capture的界面和屬性面板變化不小。老版本創(chuàng)建的原理圖庫用新版本打開后偶爾會有引腳屬性讀不全、顯示亂碼的情況。遇到這種現(xiàn)象先試File → Update Cache刷新緩存很多小問題是緩存導(dǎo)致的。如果仍然異常把器件從庫里重新調(diào)出來一次再對比引腳屬性。舊庫文件版本兼容性問題處理起來沒有銀彈只能一個(gè)一個(gè)器件檢查。至于老的OrCAD/PSpice 9.2這類古董版本我個(gè)人的建議是盡早換到統(tǒng)一的新版本因?yàn)槔习姹旧傻膸煳募镆_屬性結(jié)構(gòu)和現(xiàn)在差異很大導(dǎo)入新版本后出現(xiàn)引腳編號錯(cuò)亂的可能性非常高。別為省事用一個(gè)老庫去拼一個(gè)新工程最后花的時(shí)間更多。最后說點(diǎn)實(shí)操心得我個(gè)人的習(xí)慣是每畫完一個(gè)器件符號先把Datasheet里的引腳表打印出來放旁邊逐腳核對Pin Number、Pin Name、Type和Shape核對完一個(gè)腳就在紙上打個(gè)鉤。這個(gè)過程看起來很笨卻是我能快速定位引腳問題的底層原因——因?yàn)槲覍γ總€(gè)器件的引腳屬性都心里有數(shù)。另外一個(gè)小技巧導(dǎo)網(wǎng)表之前先用Tools → Bill of Materials生成一份包含引腳信息的清單和封裝的焊盤列表做一個(gè)快速對照。BOM里如果某個(gè)元件的引腳數(shù)和封裝焊盤數(shù)不一致幾乎馬上就能看出來。這個(gè)辦法在批量檢查整張?jiān)韴D時(shí)特別高效。最后還是要說一句DRC報(bào)警不是洪水猛獸也不是用來全數(shù)忽略的噪音。每次看到一條引腳相關(guān)的警告都花十秒鐘想一下它到底在說什么理解它再決定是修圖還是忽略這才是Cadence OrCAD引腳錯(cuò)誤排查的正確打開方式。