參考 IEEE 1685-2022 IP-XACT standard 第 7 章。
簡介與核心目的
Design 文件在電子設計流程中扮演組裝藍圖的角色,描述了一個系統或子系統,列出其包含的元件(components)以及這些元件之間的連接,也是建構 IP 階層式結構(hierarchical structure)的關鍵。
- 雖然 design 文件描述了元件和互連的大部分資訊,但它本身缺乏介面使用的精確 port 名稱等細節。為了補足這些資訊並形成層次結構,通常會創建一個 hierarchical component,該元件包含一個視圖(view),並透過該視圖引用 design 文件。
- 該 hierarchical component 描述和它引用的 design 描述共同構成了一個完整的單層次結構描述。
關鍵屬性
!!請注意以上僅列出常用屬性,不包含所有欄位,詳細資訊請參閱官方標準文件!!
| XML 元素 | 說明與作用 |
|---|---|
| componentInstances | 列出設計中實例化(引用)的元件。每個 componentInstance 元素都透過 componentRef 引用一個元件描述。 |
| interconnections | 包含元件匯流排介面之間的連接列表,此元素包含兩種互連類型。interconnection:用於記錄主動介面和層次介面之間的連接。monitorInterconnection:用於記錄主動介面和監控介面之間的連接。 |
| adHocConnections | 包含 component port 之間的連接列表。這些連接是基於 port-by-port basis 進行的,而不是通過高層次的匯流排介面。 |
| parameters & choices | 包含用於配置或保存與此設計相關資訊的參數。choices 元素則指定多個列舉列表。 |
| assertions | 包含定義允許的參數值列表的表達式。 |
關鍵實例化元素:ComponentInstance
在設計文件中,componentInstance 元素是引用單一 IP 實體的核心:
- 實例名稱(instanceName):為元件在這個設計中的實例分配一個唯一名稱。
- 元件參照(componentRef):引用實際的元件描述,並且可以包含
configurableElementValues元素,用於傳遞參數值到被引用的文件中進行配置。
Design 文件提供了 EDA 工具組裝、連接和驗證複雜 SoC 結構所需的所有高層次藍圖資訊,使其能夠自動化地處理元件實例和它們之間的各種連線。
後記
Design & Design Configuration?
和之前的定義文件一樣,設計和設計配置又是很像的名字,初期為了要釐清差異,也是花了一點時間。
但!這裡也是軟體基本概念。
Design 文件主要是這個設計接了什麼,例如有哪些 bus interfaces 相連、哪些 ports 相連、哪些 hierarchical interfaces 暴露到上一層等等。所以搭配上面的定義,應該可以知道使用者從 design 能夠知道這個 SoC 或是 subsystem 裡有哪些 IP、它們實際怎麼接等等。
實例化資訊:
cpu_0 -> instance of cpu component
uart_0 -> instance of uart component
axi_bus_0 -> instance of interconnect component
連接資訊:
cpu_0.M_AXI -> axi_bus_0.S00_AXI
axi_bus_0.M00_AXI -> uart_0.S_AXI
所以重點在於結構和連線。這裡跟 UML 或一般軟體架構圖其實蠻像的,對吧?
Key-Reference
另外還有一個重要概念不斷在 IP-XACT 出現:reuse 的成立是建立在「參照」機制。
若是我在同一份文件裡面描述所有設計的資訊,那會顯得資訊量爆炸且毫無結構,若是能夠職責分離就好了?但分開之後要怎麼樣讓 parser 可以得知他的定義來源?那就必須在 schema 內定義好如何指向參照來源。因此,使用者會很常在 IP-XACT 內看到 ref 後綴的元素,基本上就是指向某個別處的定義。
既然可以把資訊分離,利用參照機制把一切連結起來,而資訊本身又能夠抽象化,達成了解耦的效果。那也等於我不用每次的設計都要重新建立資料模型,可以重複使用先前已經定義過的東西,簡單用 key-reference 即可!



