转载:介绍AD另外一种奇葩的多通道复用的方法
生活随笔
收集整理的這篇文章主要介紹了
转载:介绍AD另外一种奇葩的多通道复用的方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原文鏈接:http://www.eda365.com/forum.php?_dsign=74fe4957&mod=viewthread&page=1&tid=110710 在設(shè)計(jì)多組相同模塊的板子的時(shí)候,我們經(jīng)常會(huì)用到AD的多通道復(fù)用功能, 那么很多人都會(huì)在設(shè)計(jì)的時(shí)候,就把這個(gè)模塊的原理圖做成一個(gè)整體,這個(gè)時(shí)候進(jìn)行簡(jiǎn)單設(shè)置之后,就可以運(yùn)用復(fù)用功能實(shí)現(xiàn)我們要的效果; 不過在這里介紹另外一種方法,這種方法比較繁瑣,奇葩,我覺得應(yīng)該沒人會(huì)想到吧(不過我真希望有人站出來跟我說我也是用這種方法); 既然繁瑣,那為什么,我還會(huì)想出這招呢,這要說回一個(gè)話題,PCB工程師這個(gè)職位并不是在所有的公司,都有地位的,硬件工程師也許會(huì)認(rèn)為你只是擺擺器件,連連線,頂多佩服你有耐心而已,為什么說這么多壞話呢,其實(shí)也不是壞話,確實(shí)有的,正因?yàn)槿绱?#xff0c;所以有些時(shí)候你即使知道怎么在原理圖做好模塊,方便PCB的復(fù)用,但是人家硬件工程師也沒這個(gè)閑工夫去學(xué)你的方法畫原理圖; 所以很多時(shí)候,你要進(jìn)行復(fù)用,你還得乖乖先將每一個(gè)模塊當(dāng)中,起著相同作用 的器件分配給相同的ID(也就是Channel Offset),然后在復(fù)用設(shè)置的時(shí)候選擇依據(jù)Channel Offset進(jìn)行匹配,才能進(jìn)行復(fù)用,這個(gè)時(shí)候最最蛋疼的事情出現(xiàn)了,就是如何準(zhǔn)確為這些器件分配Channel Offset; 說到這里,我真的想吐槽AD為啥不學(xué)學(xué)Allegro,能自動(dòng)識(shí)別每個(gè)模塊中擁有相同作用的器件,手工分配ChannelOffset有時(shí)候真的不現(xiàn)實(shí),一個(gè)模塊里面有10個(gè)器件,還可以接受,如果幾百個(gè)上千個(gè)器件呢? 于是通過一些試驗(yàn),我自己摸索出這種方法,來實(shí)現(xiàn)半自動(dòng)分配ChannelOffset的方法,方法比較繁瑣,不過至少對(duì)于我以前的那份工作,還是能很明顯提示效率的,因?yàn)槲医佑|的模塊,動(dòng)不動(dòng)都就是幾百個(gè)器件在里面的。 ********************************************************************************* 首先我簡(jiǎn)單介紹一下AD的復(fù)用的操作: 1.??按照模塊,把器件都一堆堆放好; 2.??給每一個(gè)模塊當(dāng)中,給器件分配ID(Channel Offset),相同模塊中的器件ID是唯一的,但是不同模塊中都含有相同ID的器件,也就是說,ID相同,表明在模塊中起著相同作用; 3.??為每個(gè)模塊套上一個(gè)room,并做一個(gè)class,這樣AD才能知道哪幾個(gè)模塊是相同的 4.??擺好其中一個(gè)模塊,走線走好; 5. 啟用復(fù)用命令,并設(shè)置好按照ID進(jìn)行匹配,然后執(zhí)行即可。 ********************************************************************************* 好那么我現(xiàn)在開始一步一步介紹這種方法:
?
在原理圖編輯界面,打開SCH list: <ignore_js_op> 讓其顯示器件信息,顯示設(shè)置如圖: <ignore_js_op>?
右鍵選項(xiàng)欄,調(diào)出設(shè)置窗口: <ignore_js_op>, Q. o' V% N2 A
我們來設(shè)置一下,讓SCH list只顯示我們需要的元器件詳情,并且適當(dāng)排序下: <ignore_js_op>9 E0 n* i9 j4 M6 w( _* L
好了,現(xiàn)在我們就把SCH list調(diào)出來了,并且依照我們的需要列出了幾項(xiàng)元器件信息: <ignore_js_op>: W4 s$ v, b$ `7 V+ B/ u
接下來我們切換到PCB界面,用類似的方法,調(diào)出并設(shè)置PCB list窗口: <ignore_js_op>?
在PCB編輯界面,打開PCB list: <ignore_js_op> 讓其顯示器件信息,顯示設(shè)置如圖: <ignore_js_op>' O0 A5 Q2 j??y+ D! Q$ T% @6 I
右鍵選項(xiàng)欄,調(diào)出設(shè)置窗口: <ignore_js_op>?
我們來設(shè)置一下,讓PCB list只顯示我們需要的元器件詳情,并且適當(dāng)排序下: <ignore_js_op>) ]; p6 h# _5 Q# M$ w. H3 }9 n$ T/ {
好了,現(xiàn)在我們就把PCB list調(diào)出來了,并且依照我們的需要列出了幾項(xiàng)元器件信息: <ignore_js_op>" N8 W" a/ Q$ S1 v+ ~. y
好了,到了這一步,我們需要做的很簡(jiǎn)單,就是在SCH list和PCB list都按照位號(hào)把器件重新排序:( [9 p# T% b, G) c
怎么排序?例如在PCB list中,我點(diǎn)擊這個(gè)Name這選項(xiàng),這個(gè)時(shí)候會(huì)出現(xiàn)箭頭所指的小三角,表示現(xiàn)在PCB list是按照Name的順序升序排列,SCH list排序方式也是類似; <ignore_js_op>8 \+ ?/ {6 q+ @: r
然后把SCH list中器件的位置信息(也就是X與Y列),全選之后復(fù)制下來,并且粘貼到PCB list中X與Y列中(注意,PCB 編輯界面的單位應(yīng)該選擇mil),這個(gè)操作很容易理解,就是然后PCB器件的擺放與原理圖器件的擺放相一致,雖然看起來好像是堆在一起,這沒關(guān)系;?
(因?yàn)閯e人在繪制原理圖的時(shí)候,一般是先畫好一個(gè)模塊,然后復(fù)制出n個(gè)出來,這意味著其實(shí)原理圖各個(gè)模塊器件的擺放位置是一樣的,而且原理圖中器件是沒有重疊的,也就是說器件的位置信息是唯一的,所以我們就能用利用器件位置唯一這個(gè)信息,給每個(gè)器件分配一個(gè)唯一的Channel Offset,我就是利用這種特點(diǎn)想出了這個(gè)方法,經(jīng)過剛才的復(fù)制粘貼操作,PCB中每個(gè)模塊的器件擺放情況應(yīng)該是一樣的了) <ignore_js_op>5 X# V" |/ Y0 Q+ D, e# g+ D( `) ]
接下來我們需要重新設(shè)置一下PCB list窗口,讓其只是顯示選中的器件而不是PCB所有器件,方法很簡(jiǎn)單,可以看到,列表下面會(huì)提示你選中了多少個(gè)器件,我們可以每個(gè)模塊都框選一遍,看看是不是各個(gè)模塊都有同數(shù)量的器件; <ignore_js_op>$ E( O0 l& O$ H0 ]??h3 D
接下來就是為各個(gè)模塊,起到相同作用的器件,分配相同的Channel Offset,之前已經(jīng)說過,Channel Offset是軟件完成復(fù)用的關(guān)鍵,問題來了,我們按照什么規(guī)則來分配呢,就是按照器件的位置信息來分配。 接下來我們要對(duì)所有的模塊都做一遍這樣的操作了:! _; l0 Z3 M2 F* E+ r! y! u
1.把原點(diǎn)移動(dòng)到當(dāng)前模塊的一個(gè)特定位置,比如這次我們選模塊中這個(gè)大電感的pin腳: <ignore_js_op>$ w% _, m. h- [
2.創(chuàng)建一份EXCEL;6 F& p: ~??J9 j0 I% b3 H8 c' b
3.確認(rèn)已經(jīng)選中模塊中的所有器件: 4.在PCB list中按照位號(hào)排序,然后將前四列都復(fù)制到EXCEL中: <ignore_js_op>?
5. 在EXCEL的任意空列中,將目前的排序編一個(gè)號(hào),如箭頭顯示,因?yàn)榈认挛覀円騺y這個(gè)表的順序,處理之后再還原排序: <ignore_js_op>0 E, \# C1 P??]2 Q% S" ~1 ]/ e
6.我們按照先B列,后C列的方式進(jìn)行排序(其實(shí)先C后B都可以的),然后在D列中,重新填寫Channel Offset數(shù)值,比如有37個(gè)器件,那我們就從1填寫到37: <ignore_js_op>0 b8 z! o0 `* m6 o; V) i??^
7.完成之后,我們重新還原排序,并且復(fù)制Channel Offset數(shù)值所在的列,粘貼到PCB list中的Channel Offset列中,請(qǐng)注意,粘貼前需要確認(rèn)PCB list是不是依然按照位號(hào)排序: <ignore_js_op>?
好,接下來我們安裝這7步,把其他模塊這么操作:# a1 A0 p3 ?) e; H. z8 c. p
完成之后,我們可以檢驗(yàn)一下,比如我們選中每個(gè)模塊的相同的器件, <ignore_js_op>?
確認(rèn)其ChannelOffset是不是一致的: <ignore_js_op>- F: e& w. R- L$ y8 F" G$ p, _8 i
完成之后就接近成功了,7 }* u# R4 q' z& e6 l
首先給每個(gè)模塊添加一個(gè)room: <ignore_js_op>; v5 x; K* ?/ Z% ^: j7 D% W" q
然后雙擊每個(gè)room,把Name改為跟InComponentClass一樣的名字: <ignore_js_op>?
完成之后,我們?cè)贑lasser Explorer中,新建一個(gè)DesignChannel Class,并將這幾個(gè)room設(shè)置為同屬于相同的Design Channel Class: <ignore_js_op>?
接下來我們選擇任意模塊,布局布線好; <ignore_js_op>?
好戲上演:我們開始執(zhí)行復(fù)用的命令,冰凍三尺非一日之寒啊,啟用命令后點(diǎn)擊擺好模塊的room,然后再點(diǎn)擊另外任意一個(gè)room: <ignore_js_op>?
彈出了一個(gè)設(shè)置窗口,如下設(shè)置,看到左邊下面的選項(xiàng)沒有,因?yàn)槲覀冊(cè)谠韴D沒有把模塊電路做成一個(gè)模塊,所以我們只能選擇按照Channel Offset進(jìn)行匹配: <ignore_js_op>?
點(diǎn)擊確定,我們看看效果: <ignore_js_op>?
搞定了啊啊。。。 ****************************************************************?
我們?cè)侔逊椒ɑ仡櫼幌?#xff1a; 首先是將PCB里面的器件,按照原理圖的器件位置進(jìn)行擺放; 其次利用每個(gè)模塊中器件相對(duì)位置是一樣這個(gè)規(guī)律,分配Channel Offset; 第三,進(jìn)行必要的復(fù)用前設(shè)置,然后執(zhí)行復(fù)用; 第四,頂帖啊!哈 **************************************************************** 其實(shí)就這么簡(jiǎn)單,只要你理解了每一步操作的意圖之后,你會(huì)把這種繁瑣的操作牢牢記住,我已經(jīng)快三年沒用到了,想起為大家寫這份東西的時(shí)候,還是能夠準(zhǔn)確的進(jìn)行操作并且一次成功; 當(dāng)遇見每個(gè)模塊里面有幾百上千個(gè)器件,你們就會(huì)知道這方法能在Channel Offset分配這一關(guān)鍵步驟剩下非常多的時(shí)間,而且又準(zhǔn)確;?
謹(jǐn)以此帖,獻(xiàn)給廣大EDA365 的小伙伴特別是仍然奮斗在PCB設(shè)計(jì)前線的人們。轉(zhuǎn)載于:https://www.cnblogs.com/ydvely521/p/9601828.html
總結(jié)
以上是生活随笔為你收集整理的转载:介绍AD另外一种奇葩的多通道复用的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数作用域,匿名函数
- 下一篇: 在CDH上用外部Spark2.2.1安装