IP-XACT

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

IP-XACT는 IP(Intellectual Property) 블록의 설계 및 통합을 위한 XML 기반의 표준이다. 이 표준은 문서 구조, 인터페이스, 연결, 뷰, 파일 세트, 프로그래머 뷰 등의 주요 구성 요소를 포함하며, IP 블록의 상호 운용성을 향상시키는 데 기여한다. IP-XACT를 지원하는 주요 기업으로는 아테리스, 케이던스, 시놉시스, 아그니시스 등이 있으며, 관련 소프트웨어로는 아테리스, 케이던스, 시놉시스, 아그니시스 등이 있다.

IP-XACT
IP-XACT 정보
유형EDA 표준
개발Accellera
최신 버전1.7 (2019년 3월 18일)
상태활동적
표준IEEE 1685
설명재사용 가능한 IP 블록의 설명과 통합을 위한 XML 기반 표준이다.
📚 더 읽어볼만한 페이지
  • IEEE 표준 - IEEE 754
    IEEE 754는 부동소수점 숫자를 표현하고 처리하기 위한 국제 표준으로, 다양한 형식과 연산, 반올림 규칙, 예외 처리 등을 정의한다.
  • IEEE 표준 - IEEE 802.2
    IEEE 802.2는 데이터 링크 계층의 LLC 서브레이어를 정의하는 IEEE 802 표준의 일부로, 비연결 및 연결 지향 모드를 지원하며, LLC 클래스 I, II, III, IV를 통해 다양한 서비스 유형을 제공하고, DSAP, SSAP 주소 및 제어 필드로 구성된 헤더와 필요에 따라 SNAP 확장을 사용해 네트워크 통신을 관리한다.

2. IP-XACT의 주요 구성 요소

IP-XACT 표준은 전자 시스템 설계를 기술하기 위한 XML 기반의 메타데이터 형식으로, 여러 주요 구성 요소를 포함한다. 이러한 구성 요소들은 설계, 검증, 문서화 과정을 자동화하고 IP 재사용성을 높이는 데 핵심적인 역할을 한다.

주요 구성 요소는 다음과 같다:
* 문서(Document): 전체 설계 정보를 담는 최상위 단위이다. 문서는 버스 사양, 개별 IP 블록의 데이터시트, 또는 여러 구성 요소를 연결한 계층적 시스템 설계를 나타낼 수 있다.
* 구성 요소(Component): IP 코어와 같은 설계의 기본 단위이다.
* 버스 인터페이스(Bus Interface): 구성 요소의 포트와 버스 간의 연결 정보를 정의하며, 신호 매핑 정보를 포함할 수 있다.
* 뷰(View): 설계의 특정 추상화 수준(예: RTL, TLM)이나 버전을 나타낸다.
* 파일 세트(File Set): 특정 뷰에 해당하는 실제 설계 파일(Verilog, C++ 등)들의 목록을 관리한다.
* 메모리 맵(Memory Map) 및 레지스터(Register): 프로그래머가 접근해야 하는 메모리 맵과 레지스터 정보를 상세히 기술하여 소프트웨어 개발을 지원한다.

이러한 구성 요소들은 XML 스키마와 시맨틱 일관성 규칙(SCR)을 통해 형식이 정의되며, 도구 간의 호환성과 설계 데이터의 이식성을 보장한다.

2.1. 문서 구조

IP-XACT 표준은 전자 시스템을 설명하기 위해 설계된 XML (확장 가능한 마크업 언어) 데이터의 형식을 정의한다. 이 표준화된 메타데이터 형식은 구성 요소, 시스템, 버스 인터페이스 및 연결, 해당 버스의 추상화, 주소 맵, 레지스터 및 필드 설명, 그리고 파일 세트 설명 등 구성 요소의 세부 정보를 포함한다. 이러한 정보는 전자 시스템의 설계, 검증, 문서화 및 사용 흐름 자동화에 활용된다. 또한, W3C에서 설명하는 형식의 XML 스키마 세트와 시맨틱 일관성 규칙(SCR, Semantic Consistency Rules) 세트를 포함하고 있다. 도구 환경에서 이식 가능한 생성기 인터페이스도 제공된다. 이처럼 방법론에 독립적인 메타데이터와 해당 데이터에 접근하기 위한 도구 독립적인 메커니즘의 조합은 설계 데이터, 설계 방법론 및 환경 구현의 이식성을 높여준다.

모든 IP-XACT 문서는 다음과 같은 네 가지 기본 속성을 가진다:
* `spirit:vendor`: 설계 주체(회사 등)
* `spirit:library`: 관련 라이브러리 이름
* `spirit:name`: 구성 요소 또는 설계의 이름
* `spirit:version`: 해당 문서 또는 구성 요소의 버전

문서는 일반적으로 다음 중 하나를 나타낸다:
* 버스 사양: 버스의 신호, 프로토콜 등을 정의한다.
* 리프 [[IP 코어|IP 블록]] 데이터 시트: 개별적인 하위 IP 블록의 상세 정보를 담는다.
* 계층적 구성 요소 배선도: `spirit:componentInstance`(구성 요소 인스턴스) 및 `spirit:interconnection`(상호 연결) 요소를 사용하여 다른 구성 요소들을 연결하거나 추상화하여 하위 시스템을 설명한다.

구성 요소의 각 포트(port)는 문서 내에 `spirit:busInterface` 요소로 표현된다. 이 요소 안에는 인터페이스의 실제 네트 이름을 포트의 공식 사양(specification)에 사용된 이름과 연결하는 `spirit:signalMap`이 포함될 수 있다. 간단한 배선 도구는 이 `spirit:signalMap` 정보를 이용하여 한 인터페이스의 특정 네트를 다른 구성 요소의 동일한 공식 포트 인스턴스에 있는 어떤 네트에 연결해야 하는지 파악할 수 있다.

문서에는 설계의 여러 다른 버전에 관련된 다양한 버전의 구성 요소가 포함될 수 있으며, 이는 각각 `spirit:view` 요소로 참조된다. 일반적인 뷰(view)의 수준으로는 게이트 레벨(Gate Level), RTL(Register-Transfer Level), TLM(Transaction-Level Modeling) 등이 있다. 각 뷰는 일반적으로 해당 추상화 수준에서 설계를 구현하는 파일들의 목록을 `spirit:fileSet`으로 포함한다. 이 파일들은 Verilog, C++, PSL(Property Specification Language)과 같은 적절한 언어로 작성될 수 있다.

또한, IP-XACT 문서는 프로그래머의 관점에서 필요한 비기능적 데이터(non-functional data)도 제공한다. 이는 주로 `spirit:memoryMap`(메모리 맵) 또는 `spirit:addressBlock`(주소 블록) 내에 선언된 `spirit:register`(레지스터) 목록 형태로 포함된다.

2.2. 인터페이스 및 연결

IP-XACT 표준은 구성 요소 간의 인터페이스와 연결 정보를 명확하게 기술하는 방법을 제공한다. 각 구성 요소의 포트(port)는 문서 내에서 `spirit:busInterface` 요소를 통해 표현된다. 이 요소는 인터페이스의 공식적인 네트워크 이름(net name)을 해당 포트의 공식 사양(specification)에서 사용된 이름에 매핑하는 `spirit:signalMap` 정보를 포함할 수 있다. 간단한 배선 도구는 이 `spirit:signalMap` 정보를 활용하여, 한 인터페이스의 특정 네트(net)를 다른 구성 요소의 동일한 공식 포트(canonical port) 인스턴스에 있는 어떤 네트와 연결해야 하는지 자동으로 파악할 수 있다.

또한, IP-XACT 문서는 `spirit:componentInstance` 및 `spirit:interconnection` 요소를 사용하여 여러 구성 요소를 서로 연결하거나 추상화하여 하위 시스템(sub-system)을 설명하는 계층적 구성 요소 배선도(wiring diagram)를 나타낼 수도 있다. 이는 복잡한 전자 시스템 설계에서 구성 요소 간의 관계와 데이터 흐름을 체계적으로 관리하는 데 도움을 준다.

2.3. 뷰(View) 및 파일 세트

IP-XACT 문서는 설계의 여러 다른 버전을 관리하기 위해 뷰(View)라는 개념을 사용한다. 각 뷰는 `spirit:view` XML 요소를 통해 참조되며, 설계의 특정 추상화 수준이나 버전을 나타낸다. 일반적으로 사용되는 뷰의 수준에는 게이트 레벨, RTL(Register-Transfer Level), TLM(Transaction-Level Modeling) 등이 있다.

각각의 뷰는 파일 세트(File Set)를 포함하는 것이 일반적이다. 파일 세트는 `spirit:fileSet` XML 요소로 표현되며, 해당 뷰의 추상화 수준에서 실제 설계를 구현하는 파일들의 목록을 담고 있다. 예를 들어, RTL 뷰의 파일 세트에는 Verilog 파일 목록이, TLM 뷰의 파일 세트에는 C++ 파일 목록이 포함될 수 있다. 또한, 속성 검증 언어인 PSL(Property Specification Language)과 같은 다른 관련 파일들도 파일 세트를 통해 관리될 수 있다. 파일 세트 정보는 특정 뷰와 관련된 설계 파일들을 체계적으로 관리하고 도구 자동화 흐름에서 활용하는 데 중요한 역할을 한다.

2.4. 프로그래머 뷰

IP-XACT 표준은 전자 시스템 설계를 위한 다양한 정보를 정의하며, 이 중에는 프로그래머가 시스템을 이해하고 제어하는 데 필요한 정보도 포함된다. 이를 프로그래머 뷰(programmer's view)라고 부른다.

프로그래머 뷰는 주로 시스템의 비기능 데이터(non-functional data)에 해당하며, 구체적으로는 특정 구성 요소의 메모리 구조와 레지스터 정보를 상세히 기술한다. XML 기반의 IP-XACT 문서 내에서는 `spirit:memoryMap` 또는 `spirit:addressBlock`이라는 요소를 사용하여 메모리 맵을 정의하고, 그 안에 각 레지스터에 대한 선언(`spirit:register`) 목록을 포함하는 방식으로 표현된다.

이 정보는 소프트웨어 개발자나 시스템 통합 엔지니어가 하드웨어 구성 요소를 직접 제어하거나 상태를 모니터링하는 데 필수적이다. 예를 들어, 특정 하드웨어 기능을 활성화하거나, 센서 값을 읽거나, 장치의 상태를 확인하기 위해 어떤 메모리 주소에 위치한 어떤 레지스터를 읽고 써야 하는지에 대한 구체적인 정보를 프로그래머 뷰를 통해 얻을 수 있다. 이는 하드웨어 설계와 소프트웨어 개발 사이의 중요한 다리 역할을 수행하며, 복잡한 전자 시스템의 개발 및 디버깅 과정을 용이하게 한다.

3. 지원 기업 및 소프트웨어

IP-XACT 표준은 다양한 전자 설계 자동화(EDA) 기업들과 관련 소프트웨어 도구에서 폭넓게 지원되고 있다. 이는 시스템 온 칩(SoC) 및 IP 코어 설계 과정에서 데이터와 메타데이터의 교환을 용이하게 하여 설계 효율성과 IP 재사용성을 높이는 데 중요한 역할을 한다. 주요 지원 기업 및 소프트웨어 목록은 아래 하위 섹션에서 상세히 확인할 수 있다.

3.1. 주요 지원 기업

* 디팩토 테크놀로지스 (Defacto Technologies)
* 래티스 (Lattice)
* 시놉시스 (Synopsys, Inc)
* 아그니시스 (Agnisys)
* 아테리스 (Arteris) (구 마질렘(Magillem) 및 세미포어(Semifore) 포함)
* 자일링스 (Xilinx, 현재 AMD의 일부)
* 케이던스 (Cadence)
* EDA유틸리티스 (EDAUtils)

3.2. 주요 소프트웨어

* Agnisys
* Arteris - 마질렘 커넥티비티(Magillem Connectivity) , 마질렘 레지스터(Magillem Registers) , CSR컴파일러(CSRCompiler) 및 FlexNoC5 (과거 Magillem 및 Semifore 포함)
* 케이던스(Cadence) - 재스퍼골드(JasperGold) 및 인터커넥트 워크벤치(Interconnect Workbench, IWB)
* Defacto Technologies
* EDAUtils
* 래티스(Lattice)
* 시놉시스(Synopsys, Inc)
* 자일링스(Xilinx) (현재 AMD의 일부)