概覽
IP-XACT 標準定義了在電子設計自動化(EDA)流程中封裝、整合和重用 IP(智慧財產)的結構。它涵蓋了電子設計工程師的標準化需求,旨在提高生產力,並為 EDA 產業提供遵循的規範。內容詳細闡述了如元件描述、匯流排與抽象定義、記憶體映射、暫存器,以及工具生成器介面(TGI)的 API 規範等關鍵概念,以及許多關於 XML 結構和語義一致性規則(SCR)的技術細節。
主要目標包括:
- 促進 IP 相容性與交換:實現多個 IP 供應商交付兼容的 IP 描述。
- 強化自動化:改善複雜 IP 套件在系統單晶片(SoC)設計環境中的導入、導出和工具間交換的能力。
- 支援可配置 IP:透過使用 IP 元數據來改善可配置 IP 的表達方式。
- 確保工具中立性:改善提供 EDA 供應商中立的 IP 創建和配置腳本。
總而言之,IP-XACT 標準的目的是在高度自動化的設計環境中,實現 IP 的創建與交換。
IP-XACT 的基礎結構
IP-XACT 的基礎是使用可延伸標記式語言(XML)來描述電子系統中使用的 IP 的元數據。
元數據(Meta-data)是一種工具可解讀的方式,用於描述諸如設計歷史、位置、關聯性、配置選項以及物件整合要求和約束等資訊。
IP-XACT 圍繞著 IP 重用的概念來構建,其中識別方式為關鍵識別碼 VLNV,每個 IP-XACT 物件都必須有一個唯一識別碼:
- V: Vendor(供應商)
- L: Library(庫)
- N: Name(名稱)
- V: Version(版本)
此 VLNV 將會用於在不同的描述文件之間建立引用關係。
主要 IP-XACT 描述物件概覽
IP-XACT 規範的核心在於其 schema,它定義了用於描述電子系統中 IP 的九種 top-level 結構類型。以下是核心物件:
| 物件名稱 | 描述 |
|---|---|
| Component | 包含電子設計智慧財產權(IP)的元數據,用於描述計算核心、週邊設備、匯流排結構或任何可實例化的 IP 區塊。元件可以是靜態(static)或可配置(configurable)的。 |
| Design | 描述系統或子系統,列出其元件及其彼此間的連接。 |
| Design Configuration | 包含與設計實例相關的配置資訊,例如指定生成器鏈配置或抽象器配置,以解析不同抽象層次的連接。 |
| Bus Definition | 描述匯流排的類型屬性。 |
| Abstraction Definition | 描述匯流排或互連的低階層面,包含一組邏輯埠(logical ports),定義了所引用匯流排類型的表示方式。 |
| Abstractor | 用於連接同一匯流排類型但抽象層次不同(例如 TLM 和 RTL 建模風格)的兩個介面。 |
| Generator Chain | 描述了設計流程中一系列有序的命名任務(可包含單一生成器或另一個生成器鏈)。 |
| Catalog | 提供一種機制,用於記錄 IP-XACT 檔案的位置及其 VLNV 頂層資訊,使設計環境能夠標準化地定位 IP-XACT 文件。 |
| Type Definitions | 作為記憶體相關物件元數據(如欄位存取策略、列舉、暫存器、地址區塊等)的集中定義區,供元件或其他類型定義引用。 |
這些元素是符合 IP-XACT 標準的 XML 文件的有效根元素。
建議先備基礎知識
XML (eXtensible Markup Language) 基礎知識
IP-XACT(IEEE Std 1685-2022)的基礎是可延伸標記式語言(XML)。XML 是一種簡單、非常靈活的文字格式。若要能夠理解並操作 IP-XACT 文件,建議掌握以下 XML 概念:
- 標記語言基礎(Markup Language Basics):了解 XML 文件中元素(Elements)、屬性(Attributes)和命名空間(Namespaces)的作用。
- XML Schema: IP-XACT Schema 是定義此標準結構的核心。需要理解 Schema 如何定義 XML 文件中的結構、內容和語義,以及為何必須符合這些 schema。
- W3C 標準(可選):IP-XACT 遵循 World Wide Web Consortium (W3C) 標準來定義 XML 版本 1.0 數據格式,以及定義這些數據格式的 Schema Description Language。
- 語義一致性規則(SCRs):了解語義一致性規則(SCRs)的意義。這些是無法在 XML 綱要中表達的額外規則,任何有效的 IP-XACT 文件除了要符合綱要之外,也必須遵守這些規則。
硬體與設計流程基礎知識
IP-XACT 的目標是描述電子系統中的元件和設計。因此,對電子設計流程和底層硬體概念的理解至關重要。
- 電子設計自動化(EDA):了解 EDA 和 SoC(system on chip)設計環境的運作方式。IP-XACT 的核心目的就是在高度自動化的設計環境中實現 IP 的創建與交換。
- IP 重用和元件:了解 IP(semiconductor intellectual property core)的概念,即可重複使用的設計規範集合。IP-XACT 文件描述的元件(components)就是這些 IP 區塊。
- 抽象層次(Abstraction Levels):必須理解不同的設計抽象層次:例如暫存器傳輸層(RTL)和 事務級建模(TLM)。IP-XACT 元件可以包含多種視圖(Views),以支持不同的抽象層次或語言(例如 VHDL, Verilog, SystemC)。
- 記憶體與地址結構:IP-XACT 元數據的核心內容包括:地址映射(Address maps)、暫存器 (Register)等描述。
- 匯流排和介面:了解電子系統中匯流排(bus)的功能、匯流排介面(bus interfaces)及其連接方式。此外,還需理解 IP-XACT 如何區分 initiator (master) 和 target (slave) 介面。
- 可配置性:認識 Configurable IP 的概念,即包含可由設計環境或生成器設定的新元素的 IP。這是 IP-XACT 實現設計彈性的關鍵。
後記
最近來整理一下這兩年折磨我的東西……以這個交換格式為出發點去認識硬體概念,既痛苦又親切。
痛苦的是本人非本科所以很多硬體相關資料標記的由來和概念很難以第一時間掌握;而親切的地方在於我能夠經由軟體熟悉的結構化資料去認識硬體概念。比起直接硬 K 計算機結構,這個面向很像是速成法?畢竟要作到資料交換表示必須統一語言,也代表著一定的共識,那我就從共識著手,不就表示只要掌握度夠高,幾乎 80% 的人都可以溝通嗎哈哈。
經過了一些日子,我必須要說,有共識的、經過標準化的結構真的很猛,背後有一小群概念通透的人在撮合,使用者如我幾乎只是取其精華而已。尤其是這兩年 AI 加持下,類似這種接近交換協定的東西還沒開始普及真的是產業問題了。



