在Altium Designer中, 設計規(guī)則通常用來定義用戶的設計需求。 這些規(guī)則涵蓋了設計的方方面面, 從布線寬度, 對象的安全間距,內(nèi)電層的連接風格, 過孔風格等等。 設計規(guī)則不僅能在PCB設計的過程中實時檢測, 而且也能夠在需要的時候進行統(tǒng)一的批量檢測并生成錯誤報告。
Altium Designer的設計規(guī)則不是PCB對象的屬性, 而是獨立定義的。 每條規(guī)則需針對具體的PCB對象。對于PCB規(guī)則系統(tǒng)來說,它必須知道給定的規(guī)則應用于哪些對象,即規(guī)則的應用范圍??梢栽赑CB Rules and Constraints Editor對話框中設定規(guī)則及規(guī)則的范圍。其中采用撰寫查詢語句的方式來定義范圍是經(jīng)常需要用到的,并且非常重要的方式方法。
查詢語句(Query)是對規(guī)則應用對象的描述。設計規(guī)則的約束對象可以直接手動輸入查詢語句, 或是在語言編輯區(qū)左側的控制區(qū)選擇,抑或是采用查詢語句構造器來定義。
查詢語句(Query)如何組織?
查詢語句實際上是軟件的一條指令,定義了一系列的目標設計對象。查詢語句由查詢的關鍵字組成。下面是一個查詢語句的示例:
InNet('GND') And OnLayer('TopLayer')
如果在寬度規(guī)則中用該查詢語句定義范圍,那么設計者在切換到頂層對GND網(wǎng)絡布線時,走線的寬度會自動轉換到該規(guī)則指定的寬度值。如果執(zhí)行設計規(guī)則檢查(DRC),任何在頂層的GND網(wǎng)絡必須滿足這個寬度規(guī)則,否則就會被標記為違反設計規(guī)則。
使用PCB規(guī)則約束編輯器( PCB Rules and Constraints Editor)對話框中的選項可以創(chuàng)建查詢語句。根據(jù)規(guī)則是一元的還是二元的,用戶可能需要相應地定義一個或二個對象范圍。在PCB規(guī)則約束編輯器中,簡單的查詢語句有如下幾種類型的范圍選項。
-
所有的的設計對象
-
指定網(wǎng)絡中的所有對象
-
指定網(wǎng)絡類中的所有對象
-
指定層上的所有對象
-
指定層上且屬于指定網(wǎng)絡的所有對象
選擇其中的任一選項,如果需要的話,可以使用右邊的下拉菜單選定適當?shù)哪繕?,比如某個網(wǎng)絡或某個層。查詢語句會自動出現(xiàn)在Full Query區(qū)域的右方。如下圖。
高級查詢Advanced (Query)選項允許設計者撰寫自己的更復雜但更為精確的查詢語句。設計者可以在Full Query區(qū)域直接輸入規(guī)則范圍的定制查詢語句。有兩個工具(Query Builder和Query Helper)可幫助創(chuàng)建高級查詢語句。當不確定查詢語句的語法或者需要使用的關鍵字,這兩個工具就會相當有用。
-
Query Builder定義規(guī)則范圍
Query Builder是一種較簡單的創(chuàng)建查詢語句的方法,它允許設計者使用敏感的條 件類型和數(shù)值但只能使用相關的‘構件’。對于高級查詢語句的創(chuàng)建,可以使用Query Helper來查詢關鍵字的說明及操作符的語法。
點擊Query Builder按鈕可以打開Building Query from Board對話框, 該對話框使得用戶通過AND或OR等符號連接構造字符串,從而可以創(chuàng)建指向設計文檔中特定對象的查詢語句。如下圖所示。
在對話框中的左邊部分,用戶可以為某組對象指定所需要的條件類型。當用戶在對話框左半部分定義好條件后,在右半部分就可以預覽顯示當前創(chuàng)建的查詢語句。根據(jù)需要用戶可以繼續(xù)添加更多的條件以縮小用戶的設計對象目標范圍。
-
Query Helper獲得幫助
要使用Query Helper,先選擇Advanced (Query) 選項,然后點擊Query Helper按鈕就可以打開Query Helper對話框。系統(tǒng)背后的查詢引擎會分析PCB設計,然后列出所有可用的對象與查詢語句中使用的通用關鍵字。如下圖所示。
使用對話框的Query區(qū)域,構造一個查詢表達式語句。在默認情況下,當前有效規(guī)則范圍的表達式會顯示在這一區(qū)域。用戶可以在該區(qū)域內(nèi)直接輸入。當用戶輸入時,智能感知功能將根據(jù)用戶的輸入提示給用戶可能的關鍵字或對象列表。
對話框中的左下角紅色圈出的Categories區(qū)域,提供了可以用來創(chuàng)建查詢語句的PCB函數(shù)、PCB對象列表和系統(tǒng)函數(shù)。當用戶點擊此三個類別中的某個子類別,右方的區(qū)域將會顯示對應的關鍵字或對象列表。找到查詢語句需要用到的關鍵字或對象,然后雙擊該條目,該條目就會被插入到上方區(qū)域中查詢表達式的當前光標處。
-
當Query語句有錯誤時
如果你鍵入的查詢語句的語法有錯誤,在PCB Rules and Constraints Editor對話框的左邊區(qū)域,該規(guī)則會被用紅色高亮出來。及時修正這樣的錯誤非常重要,否則做在線實時檢測會非常慢。因為一個有語法錯誤的規(guī)則范圍會極大地降低在線或者批量DRC分析的速度。當你試圖關閉規(guī)則設置框時系統(tǒng)也會彈出一個錯誤對話框。所以請確保所有規(guī)則范圍的語法正確!
PCB Filter面板中使用查詢語句(Query)
同樣的道理,可以在過濾器面板使用查詢語句來查找指定的一系列對象,然后定義每個規(guī)則應用到的對象。
PCB Filter面板為用戶提供了創(chuàng)建設計規(guī)則的途徑,創(chuàng)建的設計規(guī)則的應用范圍將使用當前在面板中央?yún)^(qū)域中定義的查詢語句來定義。
如上圖所示。要添加一條新的設計規(guī)則,只要點擊Create Rule 按鈕,就會顯示Choose Design Rule Type對話框。此對話框列出了PCB文檔中所有可用的規(guī)則類別與規(guī)則種類。用戶只需選擇希望創(chuàng)建的規(guī)則種類然后點擊OK即可(或直接雙擊該規(guī)則種類入口)。
這時就會顯示PCB Rules and Constraints Editor對話框,在此對話框中系統(tǒng)已為用戶創(chuàng)建了一個該種類的規(guī)則,并將該規(guī)則顯示在主編輯窗口中,等待用戶為此規(guī)則定義特定的約束條件。而來自PCB Filter面板的查詢語句也已經(jīng)顯示在對話框中的Full Query區(qū)域中,作為此規(guī)則的應用范圍。
采用Query Helper創(chuàng)建Query語句案例
案例前因:某項目的PCB設計中有諸多規(guī)則設置,特別是間距方面,由于12V網(wǎng)絡需要更大的間距規(guī)則,已為其設置了20mil安全距離。
然后PCB完成之后,對其進行規(guī)則檢查,出現(xiàn)了2條違規(guī)信息。如上圖所示。兩個電容C3和C4違反了規(guī)則,已綠色高亮顯示。原因是這些電容的焊盤形狀已經(jīng)固定。沒辦法改變,我們只能修改規(guī)則的設置來適應這兩個電容。打開12V網(wǎng)絡的間距規(guī)則設置,我們來修改規(guī)則范圍,使其排除這2個電容。操作如下。
-
設置時,需要在第二個對象處“Where the second object matches”不選中C3和C4。即將C3和C4兩個元件排除20mil間距的規(guī)則約束。點擊自定義語句“Custom Query”,然后選擇“Query Helper”。
-
找到“Component membership”語句,將其添加到規(guī)則中。我們雙擊“In Component”條目,即可將其添加到語句對話框。
-
然后移動到語句“Query” 對話框,在括號中鍵入一個單引號,將會彈出一個列表,選擇C3。
-
然后添加“Or”到語句中,然后繼續(xù),我們先鍵入“In”。然后選中需要的條目“In component”。這次選擇C4。
-
現(xiàn)在我們選中了C3或者C4。接下來要做的是,規(guī)則設置的范圍不包含這兩個電容。于是我們添加邏輯非“Not”。點擊OK添加該條規(guī)則語句。
-
然后將其應用到規(guī)則設置中?,F(xiàn)在的12V間距規(guī)則,已經(jīng)排除了這2個電容。重新運行間距規(guī)則的DRC檢查,結果很干凈。而且C3和C4也不再高亮。
采用PCB Filter面板生成Query語句案例
大家都深有體會:讓我們自己去輸入一條條Query語句,熟練使用其語法條件,以及各條件之間的運算關系,這玩意對于非代碼設計師來說,想想都頭暈。能不碰就不碰,能有變通方法盡量繞開!
那么這里介紹一套生成Query語句的法寶。通過這個法寶我們可以方便地組織所需的Query語句。甚至還方便智能到根據(jù)所選對象自動生成Query語句的地步!廢話少說,案例過一遍就都清楚了。
要熟練運用該法寶必須要與其左右兩大護法搞好關系:查找相似對象(Find similar objects)和PCB過濾器(PCB Filter)。
案例前因:一PCB設計中,有幾個連接器件,想讓它們互相交疊挨在一起而不報錯。那就需要設置這幾個連接器件的元件之間間距(Component clearance)允許它們零距離親密接觸。
-
首先第一步,用查找相似對象的方式,來創(chuàng)建自定義Query語句。即選定一個對象,然后右鍵點擊,選擇查找相似對象“Find similar object”。
-
在封裝“Footprint”條目后面,選擇相同“Same” ,并確保創(chuàng)建表達式“Create expression”選項框被勾選。
-
現(xiàn)在點擊應用“Apply”來看看是否所有符合條件的目標元件被選中。結果如你所愿。
-
然后打開PCB過濾器窗口“PCB filter”,這里看到生成的語句表達式。
-
在過濾器窗口中,你可以拷貝并粘貼該表達式到規(guī)則設置中,或者直接點擊創(chuàng)建規(guī)則“Create rule”按鈕,來打開規(guī)則設置頁面。讓我們?yōu)椤癆nderson”連接器選擇元件間距。我們想要將它們擺放在一起,而不會報錯。點擊OK打開該規(guī)則設置頁面。
-
讓我們?yōu)樵撘?guī)則命名為“Anderson”?,F(xiàn)在我們的新規(guī)則中,第一個對象匹配的Quuery語句是來自PCB Filter自動導過來的。代表的是黑色“Black”Anderson連接器,我們想讓第二個對象匹配的語句是紅色“Red” Anderson連接器。這里偷下懶,直接從第一個對象的語句表達式拷貝粘貼到第二個對象的語句表達式,然后編輯,將黑色改為紅色。
-
現(xiàn)在我們有了一個關于黑色連接器和紅色連接器之間的元件間距的規(guī)則。將其水平方向的間距設置為-5 mil,以允許它們擺放連接在一起。
-
定義好規(guī)則之后,現(xiàn)在我們要看一看,該規(guī)則的范圍是不是恰好準確包含了想要涵蓋的對象。要檢查這個,我們需要用到測試語句“Test queries”的功能。它會打開一個測試語句的結果對話框,顯示每個語句表達式的結果。點擊每個不同的條目,會跳轉并縮放到那些被選中的對象。點擊OK。
現(xiàn)在讓我們放置一個紅色和黑色的連接器,毗連在一起,看看它們有沒有發(fā)生間距報錯。并沒有!這就是剛才的規(guī)則所起的作用。
所以,采用查找相似對象(Find Similar Objects)找到你關注的對象,然后勾選Creat Expressions,自動生成Query語句到PCB Filter面板,然后直接Creat Rule即可。So easy!干嗎還哼哧哼哧去查去寫Query語句呢?
-
pcb
+關注
關注
4322文章
23124瀏覽量
398505 -
Altium Designer
+關注
關注
48文章
394瀏覽量
44720
發(fā)布評論請先 登錄
相關推薦
評論