轉chenzelin2009的csdn博客:http://blog.csdn.net/chenzelin2009/article/details/5751251#
Altium Designer的多圖紙功能感覺比較方便;今天翻了下徐老師《Altium Designer 快速入門》里面關於多圖紙設計的介紹,再參考了altium 網站的一些資料,算是摸熟這個多圖紙功能。下面具體介紹其相關知識點。
一、 頁面結構
1.1 基本概念
當進行大型工程設計時,只靠一張圖紙是無法實現的,這時需要用多個圖紙進行開發設計。一個多圖紙設計工程是由邏輯塊組成的多級結構,其中的每個塊可以是原理圖或是 HDL文件,在這結構的最頂端是一個主原理圖圖紙——工程頂層圖紙。
多圖紙結構一般是通過圖表符(sheet symbol)形成,一個圖表符對應一個子圖紙;在主原理圖圖紙放置圖標符,通過圖表符與子圖紙進行連接,而子圖紙也可以通過圖表符與更底層的圖紙連接。 通過點擊“Place》Sheet Symbol”或 圖標來放置圖標符號。如圖 1
圖1
我們可以在“Designer”區域輸入標識符,若標識符包含有Repeat關鍵字的語句,還能實現多通道功能(下文有詳解)。而在“File Name”輸入想要調用的子圖紙文件名稱(不分大小寫),則可實現對子圖紙的調用。還有其他方法能生成圖表符,具體方法見下文。
當多圖紙工程編譯好后,各個圖紙間的邏輯關系被識別並建立一個樹形結構,表示各個圖紙的邏輯關系,如圖 2:
圖2
1.2 層次結構
層次結構包含如下三種:
1) 自上而下:在主原理圖圖紙下,通過“Design》Create sheet from symbol”、“Design》Create HDL file from symbol》Create VHDL file from symbol”與“Design》Create HDL file from symbol》Create Verilog file from symbol ”等命令創建子圖紙、底層VHDL文件和底層Verilog文件。
2) 自下而上:在主原理圖圖紙下,通過“Design》Create symbol from sheet or HDL ”和“Design》Create symbol from sheet or HDL ”、“Design》Create Component from sheet ”等命令創建圖表符和頂層元件。
3) 混合原理圖/HDL文件層次:這種情況下,圖表符通過不同的文件名稱來調用HDL文件或原理圖
1.3層次結構維護
1.3.1端口與圖紙入口的同步:
當子圖紙中的端口與圖紙入口不匹配(包括名字和IO類型)時,可以通過“Design》Synchronize Sheet Entries and Ports”來同步,如圖 3:
圖3
選中不同步的端口,若想改變子圖紙的端口,使其與圖表符匹配,則選中間的圖標(第一個);相反就選第二個。
1.3.2 重命名圖表符對應的子圖紙
若想重命名一個圖表符對應的子圖紙,一般的思路是先改子圖紙的名稱,然后再改圖表符的“file name”,最后編譯工程。現在AD提供了重命名子圖紙的功能“Design》Rename Child Sheet”,出現浮動的十字光標,點中想重命名的圖表符,出現如圖 4對話框:
圖4
我們可以根據自己的需要設置相關的選項。
1.4多通道設計
在設計過程可能會重復使用某個圖紙,此時我們可通過兩個方法實現:1)通過多圖表符重復調用同一個子圖紙;2)通過具有Repeat關鍵字的圖表符。這里具體介紹下第二種方法:在圖表符的“Designator”區域輸入包含Repeat的語句,其格式如下:
Repeat(SheetSymbolDesignator, FirstInstance, LastInstance)
其中,SheetSymbolDesignator是圖表符的本名,FirstInstance和LastInstance一起定義了通道數;注意FirstInstance參數必須等於或大於1,如圖 5所示,表示了2個filter通道。
圖5
1.5 單個圖表符調用多個子圖紙
在圖表符的“File Name”區域輸入多個子圖紙文件的名稱,並用分號隔開,則能實現單個圖表符調用多個子圖紙的目的;而這些子圖紙間的相互連接可通過跨圖紙接口(off-sheet connectors)實現。
二、網絡連通性
2.1 各類網絡標識符
由於我們使用到多圖紙功能,這時需要考慮圖紙間的線路連接。在單個圖紙中,我們可以通過簡單的網絡標簽“Net Label”來實現網絡的連接;而在多圖紙中,網絡連接涉及到的網絡標識符比較多,下面具體介紹:
最基本的網絡標識符是網絡標簽(net labels)。在單個圖紙內,它們可以代替導線來表示元件間的連接,在多圖紙設計中,其功能未變,只能表示單圖紙內部的連接。
端口(Port)既可以表示單圖紙內部的網絡連接(與net labels相似),也可以表示圖紙間的網絡連接。端口(Port)在多圖紙設計中,可用於縱向連接和橫向連接。橫向連接時,可以忽略多圖紙結構而把工程 中所有相同名字的端口連接成同一個網絡。縱向連接時,需和圖表符、圖紙入口相聯系——將相應的圖紙入口放到圖紙的圖表符內,這時端口就能將子圖紙和父系圖 紙連接起來。
跨圖紙接口(Off Sheet connectors)提供了介於端口和網絡標號的作用。當一個圖表符調用多個子圖紙時,這些子圖紙間的網絡連接就可以跨圖紙接口實現——在這些子圖紙中 放置跨圖紙接口,當接口匹配時就能連接起來。注意,跨圖紙接口的連接作用只限於這一組子圖紙間的連接,一般情況下不要用於其他圖紙結構的連接。
電源端口(也叫電源對象)完全忽視工程結構,並與所有的參與鏈接的圖紙上匹配的電源端口連接起來。
下面簡單列舉各類網絡標識符的區別:
網絡標號 Net label |
一般只在單圖紙內部連接網絡;當選擇Flat范圍或Net范圍設置為Global時,會水平連接到全部的匹配網絡符號 |
|
端口 Port |
如果它和父系圖表符的某圖紙入口匹配,或選擇了層次結構、自動范圍,則起垂直連接作用。當選擇了Flat或Ports Global范圍時,會水平連接到全部匹配的端口 |
|
圖紙入口 Sheet Entry |
總是垂直連接到圖表符所調用的下層圖紙端口 |
|
跨圖紙接口 Off-sheet connector |
水平連接到匹配的跨圖紙接口,但只限於被單個的、子圖紙分割的圖表符調用的圖紙組之間 |
|
電源端口 Power Port |
全局連接到工程中所有的匹配電源端口 |
注:這里涉及到工程里面關於端口范圍的設置,打開設置對話框(Project->Project Option,點擊Option標簽),在“Net Identifier Scope”區域可以選擇網絡標識符的作用范圍,一般情況都是選擇“Automatic”模式即可,AD會自動判斷。其他的還有“Flat”,“Hierarchical”,“Global”模式,在特殊情況下可根據需要選擇。
如果要使網絡標識符表示反相模式,只需在命名網絡名稱的每個字符后面加一個反斜杠(如E/N/A/B/L/E);或是在Preferences對話框中的Schematic-Graphical Editing頁面內,選中“Single‘/’Negation”復選框,之后在網絡標識符名稱之前加個反斜杠即可(如:/ENABLE)。
2.2 網絡連通性實例
例1 :分層次設計
圖6
如圖 6,這個原理圖工程被自動識別為分層次作用域,因為其父系圖紙中的圖表符帶有圖紙入口。這時端口HP-L和HP-R通過圖紙入口連接到一起;而兩個子圖紙中的C1和C2則不能跨越圖紙連接。
例2:全局端口
圖7
如圖 7,此工程只有端口,不存在圖紙入口,因此作用域被自動設置成全局端口。工程變成平行結構,此時工程上的所有匹配端口都會連接在一起,但網絡標簽仍不能跨圖紙連接。這時即使頂層圖紙移除也不會影響工程。
例3:全局網絡標號
圖8
如圖 8,此工程沒有端口和圖紙入口,使得網絡標簽能夠跨越圖紙,在匹配的情況下進行全局連接;此時移除頂層圖紙工程仍能正常編譯。
例4:全局網絡標號和端口
圖9
選擇Project->Project Option,點擊Option標簽,在“Net Identifier Scope”區域可以選擇網絡標識符范圍模式:Global(Netlabels and ports global);如圖 9示,這時網絡標簽與端口為全局,它們都以水平方式,在全局范圍內連接到匹配對象。
例5:跨圖紙接口
圖10
如圖 10示,此工程有四個子圖紙,圖表符“Group A”調用了兩個子圖紙“A1.schdoc”和“A2.schdoc”,“Group B”調用了子圖紙“B1.schdoc”和“B2.schdoc”。此時圖紙“A1.schdoc”內部的C1、C2能夠和圖紙“A2.schdoc”中 的C1、C2相連接,同理圖紙“B1.schdoc”和“B2.schdoc”也能夠實現網絡的連接,但這兩個組間不會進行網絡連接(如圖紙 A1.schdoc的C1不會連接到B1.schdoc的C1)。這就是跨圖紙接口的作用,能增大圖表符的圖紙范圍。
三、設計實例
3.1 設計思路
現在要設計一個2.0低音功放,此時假設有一個現成的有源低通音頻濾波器原理圖(filter.SchDoc),一個雙通道功率放大器原理圖 (Amplifier.SchDoc);我們可以直接使用這兩個原理圖來實現此設計功能:創建一個PCB工程和原理圖,將現成的兩個文件添加到此工程中, 然后在新建的原理圖中創建兩個圖表符,其中一個圖表符調用雙通道功放,另一個通過多通道功能調用兩次濾波器,之后就可以進行連線,最后編譯工程。
注:filter.SchDoc原理圖中要用到的信號有輸入(IN),輸出(OUT);Amplifier.SchDoc原理圖中要用到的信號有左 輸入(IN_L),右輸入(IN_R),左輸出(OUT_L),右輸出(OUT_R)。設計前可先創建好工程的文件夾,將這兩個原理圖文件復制到工程文件 夾中。
3.2具體步驟
1) 創建PCB工程,給新工程添加新原理圖toplevel.SchDoc,並將兩個現成的原理圖添加到工程中,之后save all。
2) 打開原理圖filter.SchDoc,添加兩個端口IN和OUT(分別與信號IN和OUT相連接);打開原理圖Amplifier.SchDoc,添加 四個端口IN_L, IN_R, OUT_L和OUT_R(分別與信號IN_L, IN_R, OUT_L和OUT_R相連接)。如圖 11示:
圖11
3) 打開原理圖toplevel.SchDoc,點擊“Design->Creat Sheet Symbol From Sheet or HDL file”,在彈出的窗口中選擇“Amplifier.SchDoc”文件,然后點擊OK。這時軟件會生成一個帶有四個圖紙入口的圖表符,將其放置在原理 圖中,重命名“Designator”為“Am”,並排列好相應的圖紙入口,如圖 12。
圖12
4) 同理,點擊Design->Creat Sheet Symbol From Sheet or HDL file”,在彈出的窗口中選擇“filter.SchDoc”文件;之后重命名“Designator”為“repeat(FI,1,2)”,表示調用 兩次filter.SchDoc圖紙。注意,所有子圖紙的公共網絡是按照正常的方式連接的,此時圖表符的圖紙入口名稱不用修改;而子圖紙都有的但又是各自 獨立的網絡則是以總線方式引出,總線中的每一條線連接一個子圖紙,此時圖表符的圖紙入口需修改為Repeat(端口名),如本例中的輸入需改為 Repeat(IN)。如下圖示。網絡是以在導線上放置總線名的方式(而不是以總線范圍的方式)來表示。當設計被編譯時,總線就會被分解為每個通道帶有一 個標識的獨立的網絡(從IN1到IN2),IN1連接到FI_1子圖紙,IN2連接到FI_2子圖紙。如圖 13示。
圖13
5) 放置其他元件,連接好線路,如圖 14,然后編譯工程。
圖14
編譯好之后,可以看左邊的面板,發現工程變長樹形結構,如圖 15。
圖15
3.3 關於多通道設計的幾點說明
3.3.1 設置ROOM和標識符格式
多通道設計多次調用同一個子圖紙,在編譯之后,會為各個通道分配好標識符,進而映射到PCB文件中;點擊“Project->Project Option”,在打開的對話框中單擊“Multi-Channel”標簽,如圖 16示,在這里可以設置到通道(ROOM)和元件的命名方式。
圖16
(1) 通道(ROOM)的命名
在Room Naming區域,選擇Room Naming Style 下拉列表的選項設置ROOM的命名方式。命名方式包括了2種平行化和3種層次化類型,可根據具體情況選擇;在有多級room的情況下,其命名結構為(通道 前綴+通道索引)。我們可以隨便選擇一種命名方式,其命名情況如上圖;該圖片給出了一個2*2的通道設計例子,共有6個通道,每個Bank一個,4個較低 層次通道各一個。且層次化命名類型還支持通過“Level Separator for Paths”來修改分割路徑信息的符號。
(2) 元件命名
元件命名一般包括通道名稱。元件命名類型有8種,在“Designator Format”下拉列表可以選擇具體的命名方式。用戶還可以直接在對話框里輸入自定義的元件標識符命名方式,其中可能會用到一些關鍵詞。如表 1
Keyword |
Definition |
$RoomName |
name of the associated room, as determined by the style chosen in the Room Naming Style field |
$Component |
component logical designator |
$ComponentPrefix |
component logical designator prefix (e.g. U for U1) |
$ComponentIndex |
component logical designator index (e.g. 1 for U1) |
$ChannelPrefix |
logical sheet symbol designator |
$ChannelIndex |
channel index |
$ChannelAlpha |
channel index expressed as an alpha character. This format is only useful if your design contains less than 26 channels in total, or if you are using a hierarchical designator format. |
表 1
3.3.2 關於PCB
工程被編譯后,我們可以在被多次調用的子圖紙界面下方看到多了一些標簽,如圖 17示。我們可以單擊相應的標簽查看里面元件標識符的分配情況。之后給工程添加一個PCB文件,通過“Design->Update PCB”將元件導入到PCB文件中;轉換過程會自動為每個子圖紙建立一組元件中,每組元件有一個room並將元件都置於room之中。對一個通道布局布線 后,可通過“Design->Rooms->Copy Room Formats”來復制該通道的布局與走線到另一通道中。
圖17
3.3.3查看通道標識符分配情況
單擊“Project->View Channel”即可調出“Project Components”對話框,其中顯示了每個原理圖中元件標識符的分配情況,如圖 18示。之后點擊“Component Report”,彈出“Report Preview”窗口,此時可以點擊“Export”按鈕導出Excel格式表格(.xls文件),或是點擊“Print”按鈕進行打印。
圖18
3.3.4 使用Signal Harness使多圖紙設計更方便。
AD提供的Signal Harness功能,支持將多個導線、總線包裹在一起進行連接。在導線、總線連接較多且復雜的原理圖中,我們可以使用Signal Harness將這些線路匯集在一起,結合各種網絡標識符進行圖紙內或跨圖紙連接。一般Signal Harness系統包含有四塊:Signal Harness(連線),Harness Connector(連接器),Harness Entry(入口)和Harness Definition File(定義文件)。前三者在畫原理圖時需用到,最后的定義文件則會自動生成(前提是使用了Harness Connector)。其原理圖如圖 19。
圖 19
下面簡單介紹下Signal Harness的使用:
點擊“Place->Harness-> Harness Connector”,在放置前按“TAB”鍵,在“Harness Type”輸入連接器的類型(本例使用“TEST”),之后點擊OK放置。
點擊“Place->Harness-> Harness Entry”,放置接口,並根據實際重命名。
放置端口“AUDIO”和其他的網絡標簽,之后進行連線;其中AUDIO需用Signal Harness連接。
編譯工程,在左邊工程面板的工程目錄下的“Setting->Harness Definition Files”可以看到(*.Harness)的文件,雙擊打開,可以看到里面就一個語句“TEST=WCLK,BCLK,DOUT,DIN,MCLK”, 表示TEST由多個連接線組成。
之后可以在圖紙內其他需要連接的地方再建一個Signal Harness,通過端口連接起來;如果需要連接的電路在其他圖紙內,同樣可以通過端口(port)將電路連接起來。