KR100638476B1 - 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법 - Google Patents

버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법 Download PDF

Info

Publication number
KR100638476B1
KR100638476B1 KR1020040110015A KR20040110015A KR100638476B1 KR 100638476 B1 KR100638476 B1 KR 100638476B1 KR 1020040110015 A KR1020040110015 A KR 1020040110015A KR 20040110015 A KR20040110015 A KR 20040110015A KR 100638476 B1 KR100638476 B1 KR 100638476B1
Authority
KR
South Korea
Prior art keywords
subsystem
virtual
core
emulation module
implemented
Prior art date
Application number
KR1020040110015A
Other languages
English (en)
Other versions
KR20060072171A (ko
Inventor
이동원
박양수
조동식
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040110015A priority Critical patent/KR100638476B1/ko
Priority to US11/316,369 priority patent/US20060161422A1/en
Publication of KR20060072171A publication Critical patent/KR20060072171A/ko
Application granted granted Critical
Publication of KR100638476B1 publication Critical patent/KR100638476B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Abstract

제 1 서브 시스템의 에뮬레이션 모듈 및 제 1 서브 시스템과 상호 연동하여 동작하는 제 2 서브 시스템의 에뮬레이션 모듈을 구비하고 제 1 서브 시스템의 에뮬레이션 모듈과 제 2 서브 시스템의 에뮬레이션 모듈을 상호 연동하여 가상 시스템에서 실행하며, 제 2 서브 시스템 에뮬레이션 모듈은 실제 시스템 온 칩 상에 구현되어야할 제 2 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어 및 제 2 서브 시스템의 서브 시스템 메모리부에 탑재되고 제 2 서브 시스템의 코어에 의해 실행되는 서브 시스템 프로그램 코드의 작업 함수들에 일대일 대응된, 제 2 서브 시스템의 코어에 비의존적인 하이 레벨 언어로 구현된 작업 함수들을 포함한 가상 서브 시스템 프로그램 코드로 구성된 가상 서브 시스템 에뮬레이션 모듈인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템을 구성한다. 따라서, 시스템 온 칩의 개발과정에서 다른 서브 시스템의 개발 순서와 무관하게 서브 시스템의 검증을 진행할 수 있다.

Description

버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법{VIRTUAL PLATFORM BASED SYSTEM ON CHIP DEVELOPMENT ENVIRONMENT AND DEVELOPMENT METHOD FOR THE SAME}
도1은 종래 기술의 버추얼 플랫폼에 기초한 시스템 온 칩 개발 과정을 도시한 플로우 차트이다.
도2는 본 발명의 시스템 온 칩 서브 시스템들의 구성을 예시한 블록도이다.
도3은 본 발명에 따라 가상 서브 시스템 에뮬레이션 모듈을 이용한 버추얼 플랫폼 기반의 가상 개발 시스템을 예시한 블록도이다.
도4는 본 발명에 따라 가상 서브 시스템 에뮬레이션 모듈을 이용한 버추얼 플랫폼 기반의 가상 개발 과정을 도시한 플로우 차트이다.
* 도면의 주요부분에 대한 부호의 설명 *
300: 버추얼 플랫폼 개발 시스템
310: 제 1 서브 시스템 에뮬레이션 모듈
330: 제 2 서브 시스템 에뮬레이션 모듈
331: 가상 서브 시스템 코어
338: 가상 서브 시스템 프로그램 코드
339,340: 가상 작업 함수
본 발명은 시스템 온 칩의 개발 방법 및 개발 시스템에 대한 것으로, 특히 버추얼 플랫폼 기반의 시스템 온 칩 개발에 있어서, 서브 시스템간의 통합과 검증에 소요되는 시간을 줄일 수 있는 버추얼 플랫폼 기반 개발 시스템 및 가상 개발 방법에 관한 것이다.
필요로 하는 기능을 수행하는 칩들을 그룹(group)화하여 개발하고 제품화하는 칩 세트(chip set)의 개념을 넘어서, 최근의 시스템 구현은 하나의 칩에 다양한 기능 블록들을 모두 집적시킨 시스템 온 칩(SOC; System On Chip)의 개념으로 발전되었다.
시스템 온 칩은 마이크로 프로세서 및 디지털 신호 처리기(DSP; Digital Signal Processor; 이하 DSP) 등의 다양한 서브 시스템(sub-system)들을 하나의 칩 위에 집적시켜서 제품의 사이즈를 줄이고, 이들 각 구성요소를 사용한 시스템의 개발에 들어가는 시간과 비용의 부담을 줄이는데 그 목적이 있다.
특히, 상기 서브 시스템들은 시스템 온 칩의 전체적인 성능을 향상시키기 위 해서, 병렬적으로 동작하는 MCU(Micro Controller Unit) 서브 시스템 혹은 DSP 서브 시스템들이 될 수 있다.
여기에서, 시스템 온 칩을 구성하는 서브 시스템들의 코어(core)는 필요한 경우에는 별도로 개발되어질 수도 있으나, 전문 개발 업체들에 의해서 이미 개발된 코어를 이용할 수도 있다. 이러한 코어의 재사용성(reusability) 때문에 개발에 들어가는 시간과 비용의 절감을 꾀할 수 있는 장점이 있다.
이러한 시스템 온 칩은 이동 통신 단말기, 디지털 TV, 디지털 카메라 등에 다양하게 활용되고 있다. 예를 들어, 이동 통신 단말기의 디지털 베이스 밴드(DBB; Digital Baseband) 모뎀 칩 등이 시스템 온 칩으로 개발될 수 있다.
일반적으로 시스템 온 칩의 개발과정에서는 하드웨어 아키텍처(architecture)의 설계와 검증, 소프트웨어의 포팅(porting)과 디버깅(debugging) 등의 과정이 필수적으로 선행되어야 하는데, 이러한 과정에서 FPGA(Field Programmable Gate Array) 보드를 활용하는 방법이 주로 활용되고 있다. FPGA 보드는 수십만 또는 수백만 게이트를 가진 FPGA 칩들, 아날로그 디지털 컨버터 및 디지털 아날로그 컨버터, 입출력 장치 등을 하나의 보드 내에 장착하고 있는 보드로서, 시스템 온 칩의 설계 및 검증, 시뮬레이션을 위해서 널리 이용된다.
한편, FPGA 보드를 활용한 설계의 대안으로서 버추얼 플랫폼(virtual platform)이 최근 이용되고 있다.
버추얼 플랫폼을 이용한 개발 방법은 종래의 FPGA 보드를 이용할 경우에 소요되는 개발 과정의 시행착오와 소요 시간을 대폭 줄일 수 있는 방법의 하나이다. 버추얼 플랫폼을 이용한 개발 방법은 시스템 온 칩을 구성하는 서브 시스템들과 그 구성 요소들을 컴퓨터 상에서 에뮬레이션(emulation)하는 과정을 통하여 설계, 검증 및 시뮬레이션에 들어가는 비용과 시간을 크게 절감할 수 있다.
예를 들면, 시스템 온 칩의 개발 과정에서 시스템 온 칩에 내장되는 제 1 서브 시스템과 제 2 서브 시스템의 개발은 각각 병렬적으로 진행된다. 예컨대, 상기 제 1 서브 시스템은 이동 통신 단말기의 DBB 모뎀 칩의 개발의 경우에 MCU 서브 시스템일 수 있다. 마찬가지로, 상기 제 2 서브 시스템은 이동 통신 단말기의 DBB 모뎀 칩의 개발의 경우에 DSP 서브 시스템일 수 있다.
도1은 종래 기술의 버추얼 플랫폼에 기초한 시스템 온 칩 개발 과정을 도시한 플로우 차트이다.
도1을 참조하면, 제 1 서브 시스템과 제 2 서브 시스템의 개발은 병렬적으로 시작된다(S11,S12).
제 1 서브 시스템은 제 1 서브 시스템의 코어(core), 메모리, 인터럽트 컨트롤러, DMAC(Direct Memory Access Controller), 버스 및 그 외 여러 가지 주변장치들로 구성된다. 개발자는 버추얼 플랫폼 개발 시스템 상에서 상기한 아키텍처에 기초하여 제 1 서브 시스템의 에뮬레이션 모듈을 생성하고, 소프트웨어의 포팅 및 단독 검증을 진행하게 된다(S13). 이 단계에서는 제 2 서브 시스템과 연동하여 동작하는 부분을 제외한 부분만을 검증하게 된다.
다음으로, 제 2 서브 시스템도 제 2 서브 시스템의 코어, 메모리, 인터럽트 컨트롤러, DMAC, 버스 및 그 외 여러 가지 주변장치들로 구성되게 된다. 마찬가지로, 개발자는 버추얼 플랫폼 개발 시스템 상에서 상기한 아키텍처에 기초하여 제 2 서브 시스템의 에뮬레이션 모듈을 생성하고, 소프트웨어의 포팅 및 단독 검증을 진행하게 된다(S14).
단독 검증을 완료한 서브 시스템 에뮬레이션 모듈들은 최종적으로 통합되고(S15), 마지막으로 서브 시스템 에뮬레이션 모듈들간의 상호 연동까지 검증을 하게 된다(S16).
그러나, 실질적으로는 최종적인 통합에 선행하여 하나의 서브 시스템 에뮬레이션 모듈의 동작을 단독으로 검증하는 과정(S13,S14)에서도 양 서브 시스템 에뮬레이션 모듈간의 상호 신호 교환이 필요한 부분이 존재하는 것이 일반적이다. 이러한 상호 신호 교환의 필요성은 상기 도1을 통해 예시한 시스템 온 칩 개발 과정에서 부득이한 지연을 발생시키는 원인이 된다.
예를 들면, 상기 제 1 서브 시스템과 상기 제 2 서브 시스템의 코어는 목적하는 시스템 온 칩의 구성에 따라서, MCU 코어일 수도 있고, DSP 코어일 수도 있다. 제 1 서브 시스템이 MCU 서브 시스템인 경우, MCU 서브 시스템의 코어로는 대부분 ARM사의 코어가 사용된다. 그러나, 제 2 서브 시스템이 DSP 서브시스템인 경우에는 DSP 서브 시스템의 코어로는 여러 업체들의 DSP 코어가 다양하게 사용되어질 수 있다. 버추얼 플랫폼을 통한 시스템 온 칩의 개발을 위해서 반드시 지원되어야 하는 디버깅 툴 등이 DSP 코어의 종류에 따라서 달라지므로, DSP 코어의 변경에 의해서 지원되어야 하는 개발 툴의 입수 지연 및 DSP 코어에 맞는 어셈블리 코드에 대한 지식의 습득에 소요되는 지연 등이 발생될 수 있다.
이와 같이 상호 연동 동작하여야 하는 서브 시스템들 중 하나의 개발 지연은 다른 서브 시스템의 검증 과정을 지연시키는 결과를 초래하므로 전체적인 시스템의 개발을 지연하는 결과를 가져올 수 있다.
상기와 같은 문제점을 해결하기 위해서 본 발명의 목적은 상호 연동하는 두 개 이상의 서브 시스템으로 구성된 시스템 온 칩의 개발 과정에 있어서, 서브 시스템간의 상호 연동 동작을 조기에 검증하는데 이용될 수 있는 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 제공하는데 있다.
본 발명의 다른 목적은 상호 연동하는 두 개 이상의 서브 시스템으로 구성된 시스템 온 칩의 개발 과정에 있어서, 서브 시스템간의 상호 연동 동작을 조기에 검증하는데 이용될 수 있는 버추얼 플랫폼 기반의 가상 개발 시스템을 제공하는데 있다.
본 발명의 또 다른 목적은 상호 연동하는 두 개 이상의 서브 시스템으로 구성된 시스템 온 칩의 개발 과정에 있어서, 서브 시스템간의 상호 연동 동작을 조기에 검증하는데 이용될 수 있는 버추얼 플랫폼 기반의 가상 개발 방법을 제공하는데 있다.
상기 목적을 달성하기 위해 본 발명은, 실제 시스템 온 칩 상에 구현되어야 할 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어, 및 상기 서브 시스템의 서브 시스템 메모리부에 탑재되고 상기 서브 시스템의 코어에 의해 실행되는 서브 시스템 프로그램 코드의 작업 함수들에 일대일 대응된, 상기 서브 시스템의 코어에 비의존적인 하이 레벨 언어로 구현된 작업 함수들을 포함한 가상 서브 시스템 프로그램 코드로 구성된 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 포함하는 컴퓨터를 제공한다.
여기에서, 상기 하이 레벨 언어는 C 언어일 수 있다. 또는, 상기 하이 레벨 언어는 C 언어를 제외한 종래의 프로그래밍 언어 또는 C 언어를 대체하여 상응한 목적을 수행할 수 있는 새로운 언어가 될 수 있다.
여기에서, 상기 실제 시스템 온 칩 상에 구현되어야할 서브 시스템은 마이크로 컨트롤러 유닛 서브 시스템일 수 있다.
또한 여기에서, 상기 마이크로 컨트롤러 유닛 서브 시스템은 마이크로 컨트롤러 유닛 코어, 적어도 하나의 인터럽트 컨트롤러, 버스와 버스에 대응된 적어도 하나의 버스 컨트롤러, 및 상기 마이크로 컨트롤러 유닛 코어에 의해 실행되는 프로그램 코드를 수록한 서브 시스템 메모리부를 포함하여 구성될 수 있다.
여기에서, 상기 실제 시스템 온 칩 상에 구현되어야할 서브 시스템은 디지털 신호 처리 서브 시스템일 수 있다.
또한 여기에서, 상기 디지털 신호 처리 서브 시스템은 디지털 신호 처리 코어, 적어도 하나의 인터럽트 컨트롤러, 버스와 버스에 대응된 적어도 하나의 버스 컨트롤러, 및 상기 디지털 신호 처리 코어에 의해 실행되는 프로그램 코드를 수록 한 서브 시스템 메모리부를 포함하여 구성될 수 있다.
상기 다른 목적을 달성하기 위해 본 발명은, 제 1 서브 시스템의 에뮬레이션 모듈 및 상기 제 1 서브 시스템과 상호 연동하여 동작하는 제 2 서브 시스템의 에뮬레이션 모듈을 구비하고 상기 제 1 서브 시스템의 에뮬레이션 모듈과 상기 제 2 서브 시스템의 에뮬레이션 모듈을 상호 연동하여 가상 시스템에서 실행하며, 상기 제 2 서브 시스템 에뮬레이션 모듈은 실제 시스템 온 칩 상에 구현되어야할 상기 제 2 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어와 상기 제 2 서브 시스템의 서브 시스템 메모리부에 탑재되고 상기 제 2 서브 시스템의 코어에 의해 실행되는 서브 시스템 프로그램 코드의 작업 함수들에 일대일 대응된, 상기 제 2 서브 시스템의 코어에 비의존적인 하이 레벨 언어로 구현된 작업 함수들을 포함한 가상 서브 시스템 프로그램 코드로 구성된 가상 서브 시스템 에뮬레이션 모듈인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템을 제공한다.
상기 또 다른 목적을 달성하기 위해 본 발명은, 제 1 서브 시스템의 서브 시스템 에뮬레이션 모듈을 개발하고 검증하는 단계, 제 2 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어를 개발하는 단계, 상기 제 2 서브 시스템의 서브 시스템 메모리부에 탑재되고 상기 제 2 서브 시스템의 코어에 의해 실행되는 서브 시스템 프로그램 코드의 작업 함수들에 일대일 대응된, 상기 제 2 서브 시스템의 코어에 비의존적인 하이 레벨 언어들로 구현된 작업 함수들을 포함한 가상 서브 시스템 프로그램 코드를 개발하는 단계, 상기 가상 서브 시스템 코어와 상기 가상 서브 시스템 프로그램 코드를 통합하여 상기 제 2 서브 시스템의 가상 서브 시스템 에뮬레이션 모듈을 개발하고 검증하는 단계, 및 상기 제 1 서브 시스템의 서브 시스템 에뮬레이션 모듈과 상기 제 2 서브 시스템의 가상 서브 시스템 에뮬레이션 모듈을 상호 연동하여 가상 시스템에서 실행하는 단계를 포함하여 구성된 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 방법을 제공한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도2는 본 발명의 시스템 온 칩 서브 시스템들의 구성을 예시한 블록도이다.
도2를 참조하면, 시스템 온 칩(200)은 제 1 서브 시스템(210), 제 2 서브 시스템(230), 및 양 서브 시스템들이 공유하는 공유 메모리(shared memory; 250)를 포함하여 구성될 수 있다.
상기 제 1 서브 시스템(210)은 제 1 서브 시스템 코어(211), 메모리(212) 및 인터럽트 컨트롤러(213)를 포함한다. 또한, 상기 제 1 서브 시스템(210)은 추가적으로 DMAC(214), 버스 브리지(bus bridge; 215) 및 그 외 여러 가지 주변장치들(216,217)을 포함하여 구성될 수 있다.
상기 제 1 서브 시스템의 메모리(212)에는 상기 제 1 서브 시스템의 코어(211)에 의해 실행되는 제 1 서브 시스템 프로그램 코드가 탑재된다.
마찬가지로, 상기 제 2 서브 시스템(230)은 제 2 서브 시스템 코어(231), 메 모리(232) 및 인터럽트 컨트롤러(233)를 포함한다. 또한, 상기 제 2 서브 시스템(230)은 추가적으로 DMAC(234), 버스 브리지(235) 및 그 외 여러 가지 주변장치들(236,237)을 포함하여 구성될 수 있다.
상기 제 2 서브 시스템의 메모리(232)에는 상기 제 2 서브 시스템의 코어(231)에 의해 실행되는 제 2 서브 시스템 프로그램 코드가 탑재된다.
여기에서, 상기 제 1 서브 시스템(210)은 MCU 서브 시스템이 될 수 있다. 이 경우에서 상기 제 1 서브 시스템의 코어(211)는 MCU 코어, 예컨대 ARM CPU 코어가 될 수 있다.
한편, 상기 제 2 서브 시스템(230)은 DSP 서브 시스템이 될 수 있고, 또 하나의 MCU 서브 시스템이 될 수도 있다. 예컨대, 상기 제 2 서브 시스템이 DSP 서브 시스템이라면, 상기 제 2 서브 시스템의 코어(231)는 DSP 코어가 될 수 있다.
또한, 상기 제 2 서브 시스템이 DSP 서브 시스템이라면, 상기 제 2 서브 시스템의 메모리(232)에 탑재되는 제 2 서브 시스템 프로그램 코드(238)에는 상기 제 2 서브 시스템의 코어(231)에 의해서 실행될 수 있는 작업 함수(task function)들(239,240)이 포함될 수 있다.
상기 작업 함수들(239,240)은 상기 제 1 서브 시스템(210)과 상기 제 2 서브 시스템(230)이 구성하는 시스템 온 칩(200)이 목적하는 기능에 따라서 다르게 구현되어 진다. 예를 들면, 이동 통신 단말기의 모뎀 칩인 경우에는 모뎀 칩의 동작에 필요한 작업 함수들의 그룹으로 구성된다.
일반적으로, 제 1 서브 시스템(210)과 제 2 서브 시스템(230)의 상호 연동 동작은 다음과 같은 절차에 의해서 이루어진다.
첫째로, 상기 제 1 서브 시스템(210)이 상기 제 2 서브 시스템(230)에서 실행될 것을 필요로 하는 작업(task)의 종류와 처리할 데이터를 공유 메모리(250)에 기록하고, 인터럽트 신호로 상기 제 2 서브 시스템(230)에 작업의 처리를 요청하게 된다.
둘째로, 상기 제 2 서브 시스템(230)에서는 상기 제 1 서브 시스템(210)이 발생시킨 인터럽트 신호에 대응하여 상기 제 2 서브 시스템의 메모리(232)에 탑재된 제 2 서브 시스템 프로그램 코드(238)가 포함하고 있는 인터럽트 핸들러(interrupt handler)가 실행되고, 최종적으로 이에 대응된 인터럽트 서비스 루틴(ISR; Interrupt Service Routine)이 실행되게 된다.
셋째로, 상기 제 2 서브 시스템(230)의 인터럽트 서비스 루틴에서는 상기 공유 메모리(250)를 억세스하여, 상기 제 1 서브 시스템(210)이 요청한 작업의 종류를 파악하고 처리할 데이터를 독출하게 된다.
넷째로, 상기 제 2 서브 시스템(230)의 메모리(232)에 탑재된 제 2 서브 시스템 프로그램 코드(238)가 포함하고 있는 작업 함수들 중에서 상기 제 1 서브 시스템(210)이 요청한 작업 함수가 실행되면서, 상기 제 1 서브 시스템(210)이 요청한 작업을 처리하게 되고, 처리 결과값을 공유 메모리(250)에 다시 기입한다.
다섯째로, 상기 제 1 서브 시스템(210)은 공유 메모리(250)의 특정 영역을 폴링(polling)하면서, 상기 제 2 서브 시스템(230)이 작업을 마무리하였는지를 확인하다가, 작업이 마무리되었음을 인식하게 되면, 공유 메모리에 쓰여진 결과값을 가져가게 된다.
여기에서, 상기한 제 1 서브 시스템(210)과 제 2 서브 시스템(230)간의 상호 연동 인터페이스 방법은 하나의 일반적인 실시예를 예시한 것에 지나지 않으며, 실제 구성예에 따라서는 다양한 방식의 상호 연동 인터페이스 방법이 존재할 수 있음은 당해 기술 분야에서 통상의 지식을 가진 자에게 있어서 자명하다.
한편, 버추얼 플랫폼 개발 시스템에서는 상기 제 1 서브 시스템과 상기 제 2 서브 시스템은 컴퓨터 상에서 가상적으로 설계되고, 가상적으로 실행되는 각각의 서브 시스템 에뮬레이션 모듈로서 존재함은 종래 기술에서 이미 언급한 바와 같다.
즉, 제 1 서브 시스템(210)은 버추얼 플랫폼 개발 시스템 상에서 제 1 서브 시스템 에뮬레이션 모듈에 대응된다. 마찬가지로, 제 2 서브 시스템(230)은 제 2 서브 시스템 에뮬레이션 모듈에 대응하여 버추얼 플랫폼 개발 시스템 상에서 존재한다.
도3은 본 발명에 따라 가상 서브 시스템 에뮬레이션 모듈을 사용한 버추얼 플랫폼 기반의 가상 개발 시스템을 예시한 블록도이다.
도3을 참조하면, 상기 도2에서 예시한 시스템 온 칩 서브 시스템들이 버츄얼 플랫폼 개발 시스템 상에서 동일하게 대응되는 에뮬레이션 모듈들로서 존재할 수 있음을 알 수 있다.
도3을 참조하면, 제 1 서브 시스템 에뮬레이션 모듈(310)은 상기 도2에서 예시한 제 1 서브 시스템(210)을 그대로 서브 시스템 에뮬레이션 모듈로 구성한 것이다.
도2에서 예시한 실제 시스템 온 칩으로 구현될 제 1 서브 시스템(210)의 구 성요소들, 예를 들면, 제 1 서브 시스템의 코어(211), 제 1 서브 시스템 메모리(212), 인터럽트 컨트롤러(213), DMAC(214), 버스 브리지(215) 및 그 외 여러 가지 주변장치들(216,217)은 도3에서 예시한 제 1 서브 시스템 에뮬레이션 모듈(310) 상에 대응되는 구성요소들(311,312,313,314,315,316,317)로 옮겨진다.
반면에, 도3의 제 2 서브 시스템 에뮬레이션 모듈(330)은 도2의 제 2 서브 시스템(230)에 대하여, 코어(231)가 가상 서브 시스템 코어(331)로 대체된다.
또한, 제 2 서브 시스템의 서브 시스템 프로그램 코드(238)가, 서브 시스템 프로그램 코드(238)가 포함하고 있는 작업 함수들(239,240)을 일대일 대응되는 하이 레벨 언어로 작성된 작업 함수들(339,340)로 대체한 가상 서브 시스템 프로그램 코드(338)로 대체된다는 점에서 차이가 있다.
한편 나머지 구성 요소들, 즉, 인터럽트 컨트롤러(233), DMAC(234), 버스 브리지(235) 및 그 외 여러 가지 주변장치들(236,237)은 대응되는 구성요소들(333,334,335,336,337)로 그대로 옮겨진다.
여기에서, 상기 가상 서브 시스템 코어(331)의 의미는, 코어 자체가 하이 레벨 언어로만 작성된 가상의 코어임을 의미한다. 따라서, 실제적인 코어의 기능을 가지지는 않으며, 버추얼 플랫폼 시스템에서 필요로 하는 클록의 입력과, 인터럽트 신호의 입력, 서브 시스템 내의 버스에 연결되는 인터페이스만이 정의된다.
이러한 가상 서브 시스템 코어(331)의 구성은 시스템 온 칩의 개발에 적용되는 버추얼 플랫폼 시스템에 따라서 변경될 수 있으며, 목적하는 실제 서브 시스템의 코어에 따라서도 다른 구성을 취할 수 있다.
여기에서, 상기 서브 시스템 메모리부에 탑재된 서브 시스템 프로그램 코드에 포함된 작업 함수들이 하이 레벨 언어로만 작성된 작업 함수들로 대체되었음은 실제 서브 시스템을 구성하는 코어에 의존적인 어셈블리 언어를 배제하고, 코어에 비의존적(independent)인 하이 레벨 언어로만 동일한 작업을 수행하는 작업 함수들을 작성함을 의미한다.
예컨대, 상기 제 2 서브 시스템(230)이 DSP 서브 시스템이라면, 상기 제 2 서브 시스템의 메모리(232)에 탑재되는 서브 시스템 프로그램 코드에는 상기 제 2 서브 시스템의 코어(231)에 의해서 실행될 수 있는 디지털 신호 처리 관련 작업 함수들이 포함될 수 있다. 목적하는 시스템 온 칩이 이동 통신 단말기의 모뎀 칩인 경우에는 모뎀 칩의 동작에 필요한 작업 함수들을 포함한 서브 시스템 프로그램 코드로 구성됨은 이미 설명된 바와 같다.
여기에서, 상기 하이 레벨 프로그래밍 언어는 일반적으로, 현재 제품화된 버추얼 플랫폼 시스템(예컨대, AXSYS 사의 MAXSIM)에서 보편적으로 활용되는 C 언어가 될 수 있다. 상기 하이 레벨 프로그래밍 언어는 버추얼 플랫폼 개발 시스템의 변화에 대응하여, C 언어를 제외한 종래의 프로그래밍 언어 또는 C 언어를 대체하여 상응한 목적을 수행할 수 있는 새로운 언어가 될 수 있음은 자명하다.
도4는 본 발명에 따라 가상 서브 시스템 에뮬레이션 모듈을 이용한 버추얼 플랫폼 기반의 가상 개발 과정을 도시한 플로우 차트이다.
도4를 참조하면, 제 1 서브 시스템 에뮬레이션 모듈과 제 2 서브 시스템 에뮬레이션 모듈의 개발은 병렬적으로 진행된다(S41,S42).
한편, 제 2 서브 시스템 에뮬레이션 모듈의 개발과 함께, 도3을 통하여 설명된 가상 서브 시스템 코어(331)와 하이 레벨 언어로만 작성된 작업 함수들(339,340)로 구성된 가상 서브 시스템 프로그램 코드(338)로 구성된 제 2 서브 시스템의 가상 서브 시스템 에뮬레이션 모듈(330)의 개발도 초기에 시행된다(S43).
도2를 통하여 설명된 바와 같이, 제 1 서브 시스템은 제 1 서브 시스템의 코어(core), 메모리, 인터럽트 컨트롤러, DMAC, 버스 및 그 외 여러 가지 주변장치들로 구성된다. 개발자는 버추얼 플랫폼 개발 시스템 상에서 상기한 아키텍처에 기반하여 제 1 서브 시스템의 에뮬레이션 모듈을 생성하고, 소프트웨어의 포팅 및 단독 검증을 진행하게 된다(S44).
다음으로, 제 2 서브 시스템도 제 2 서브 시스템의 코어, 메모리, 인터럽트 컨트롤러, DMAC, 버스 및 그 외 여러 가지 주변장치들로 구성되게 된다. 마찬가지로, 개발자는 버추얼 플랫폼 개발 시스템 상에서 상기한 아키텍처에 기반하여 제 2 서브 시스템의 에뮬레이션 모듈을 생성하고, 소프트웨어의 포팅 및 단독 검증을 진행하게 된다(S45).
도1에서 설명된 버추얼 플랫폼 기반의 시스템 온 칩 개발 과정과는 달리, 본 발명에 따른 버추얼 플랫폼 기반의 시스템 온 칩 개발 과정에서는 제 2 서브 시스템 에뮬레이션 모듈의 검증(S45)에 선행하여 가상 서브 시스템 코어(331)와 가상 서브 시스템 프로그램 코드(338)로 구성된 가상의 제 2 서브 시스템 에뮬레이션 모듈의 검증을 조기에 완료한다(S46). 여기에서, 상기 가상의 제 2 서브 시스템 에뮬레이션 모듈의 가상 서브 시스템 코어(331)와 가상 서브 시스템 프로그램 코드 (338)는 하이 레벨 언어로만 작성되고 실제 제 2 서브 시스템의 코어 의존적인 어셈블리 코드를 포함하지 않는 관계로, 빠른 시간 내에 개발과 검증이 완료될 수 있음이 일반적이다.
다음으로, 검증을 마친 제 1 서브 시스템 에뮬레이션 모듈과 가상의 제 2 서브 시스템 에뮬레이션 모듈을 통합(S47)하고 검증(S48)하는 단계를 먼저 진행한다. 따라서, 제 2 서브 시스템 에뮬레이션 모듈의 개발이 완료되지 않은 상태에서도 제 1 서브 시스템 에뮬레이션 모듈의 동작을 완전히 검증 가능하다.
마지막으로, 제 2 서브 시스템 에뮬레이션 모듈의 검증이 완료되면(S45), 제 1 서브 시스템 에뮬레이션 모듈과 최종적으로 통합하게 되고(S49), 양 서브 시스템간의 상호 동작의 실제적인 검증을 하게 된다(S50).
최종적인 실제 검증 단계(S50)에서도 통합과정에서의 세부적인 문제점이 존재할 수는 있으나, 이미 가상의 제 2 서브 시스템 에뮬레이션 모듈과 통합하여 검증하는 단계(S48)를 거친 상태이므로 필요한 시간과 노력은 크게 감소될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
상기와 같은 본 발명에 따르면, 상호 연동하는 두 개 이상의 서브 시스템으로 구성된 시스템 온 칩의 버추얼 플랫폼 기반 개발 과정에 있어서, 하이 레벨 언어로 작성된 가상 서브 시스템 코어와 하이 레벨 언어로 작성된 가상 서브 시스템 프로그램 코드를 포함한 가상 서브 시스템 에뮬레이션 모듈을 조기에 완성하여 서브 시스템의 상호 연동 동작을 검증할 수 있다. 따라서, 상호 연동 동작하여야 하는 서브 시스템들 중 하나의 개발 지연이 다른 서브 시스템의 검증 과정을 지연시키는 결과를 막을 수 있는 효과가 있다.

Claims (15)

  1. 실제 시스템 온 칩 상에 구현되어야 할 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어; 및
    상기 서브 시스템의 서브 시스템 메모리부에 탑재되고 상기 서브 시스템의 코어에 의해 실행되는 서브 시스템 프로그램 코드의 작업 함수들에 일대일 대응된, 상기 서브 시스템의 코어에 비의존적인 하이 레벨 언어로 구현된 작업 함수들을 포함한 가상 서브 시스템 프로그램 코드로 구성된 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 포함하는 컴퓨터.
  2. 제 1 항에 있어서,
    상기 실제 시스템 온 칩 상에 구현되어야할 서브 시스템은
    마이크로 컨트롤러 유닛 서브 시스템인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 포함하는 컴퓨터.
  3. 제 2 항에 있어서,
    상기 마이크로 컨트롤러 유닛 서브 시스템은
    버스;
    상기 버스와 결합된 마이크로 컨트롤러 유닛 코어;
    상기 버스와 결합된 적어도 하나의 인터럽트 컨트롤러;
    상기 버스와 결합된 적어도 하나의 버스 컨트롤러; 및
    상기 마이크로 컨트롤러 유닛 코어에 의해 실행되는 프로그램 코드를 수록한 서브 시스템 메모리부를 포함하여 구성된 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 포함하는 컴퓨터.
  4. 제 1 항에 있어서,
    상기 실제 시스템 온 칩 상에 구현되어야할 서브 시스템은
    디지털 신호 처리 서브 시스템인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 포함하는 컴퓨터.
  5. 제 4 항에 있어서,
    상기 디지털 신호 처리 서브 시스템은
    버스;
    상기 버스에 결합된 디지털 신호 처리 코어;
    상기 버스에 결합된 적어도 하나의 인터럽트 컨트롤러;
    상기 버스에 결합된 적어도 하나의 버스 컨트롤러; 및
    상기 디지털 신호 처리 코어에 의해 실행되는 프로그램 코드를 수록한 서브 시스템 메모리부를 포함하여 구성된 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 포함하는 컴퓨터.
  6. 제 1 항에 있어서,
    상기 하이 레벨 언어는 C 언어인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 서브 시스템 에뮬레이션 모듈을 포함하는 컴퓨터.
  7. 제 1 서브 시스템의 에뮬레이션 모듈; 및
    상기 제 1 서브 시스템과 상호 연동하여 동작하는 제 2 서브 시스템의 에뮬레이션 모듈을 포함하고, 상기 제 1 서브 시스템의 에뮬레이션 모듈과 상기 제 2 서브 시스템의 에뮬레이션 모듈을 상호 연동하여 실행하며,
    상기 제 2 서브 시스템 에뮬레이션 모듈은:
    실제 시스템 온 칩 상에 구현되어야할 상기 제 2 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어; 및
    상기 제 2 서브 시스템의 서브 시스템 메모리부에 탑재되고 상기 제 2 서브 시스템의 코어에 의해 실행되는 서브 시스템 프로그램 코드의 작업 함수들에 일대일 대응된, 상기 제 2 서브 시스템의 코어에 비의존적인 하이 레벨 언어로 구현된 작업 함수들을 포함한 가상 서브 시스템 프로그램 코드를 포함하는 가상 서브 시스템 에뮬레이션 모듈인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템
  8. 제 7 항에 있어서,
    상기 실제 시스템 온 칩 상에 구현되어야할 상기 제 2 서브 시스템은
    마이크로 컨트롤러 유닛 서브 시스템인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템
  9. 제 8 항에 있어서,
    상기 마이크로 컨트롤러 유닛 서브 시스템은
    마이크로 컨트롤러 유닛 코어;
    적어도 하나의 인터럽트 컨트롤러;
    버스와 버스에 대응된 적어도 하나의 버스 컨트롤러; 및
    상기 마이크로 컨트롤러 유닛 코어에 의해 실행되는 프로그램 코드를 수록한 서브 시스템 메모리부를 포함하여 구성된 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템
  10. 제 7 항에 있어서,
    상기 실제 시스템 온 칩 상에 구현되어야할 상기 제 2 서브 시스템은
    디지털 신호 처리 서브 시스템인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템
  11. 제 10 항에 있어서,
    상기 디지털 신호 처리 서브 시스템은
    디지털 신호 처리 코어;
    적어도 하나의 인터럽트 컨트롤러;
    버스와 버스에 대응된 적어도 하나의 버스 컨트롤러; 및
    상기 디지털 신호 처리 코어에 의해 실행되는 프로그램 코드를 수록한 서브 시스템 메모리부를 포함하여 구성된 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템
  12. 제 7 항에 있어서,
    상기 제 2 서브 시스템 에뮬레이션 모듈에 포함된 가상 서브 시스템 코어와 상기 제 2 서브 시스템 에뮬레이션 모듈의 가상 서브 시스템 프로그램 코드에 포함된 작업 함수들을 구현하는 하이 레벨 언어는 C 언어인 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 시스템
  13. 실제 시스템 온 칩 상에 구현되어야할 제 1 서브 시스템의 서브 시스템 에뮬레이션 모듈을 검증하는 단계;
    실제 시스템 온 칩 상에 구현되어야 할 제 2 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어를 검증하는 단계;
    상기 제 1 서브 시스템의 서브 시스템 에뮬레이션 모듈과 상기 제2 서브 시스템의 가상 에뮬레이션 모듈을 통합하는 단계; 및
    상기 제 1 서브 시스템의 서브 시스템 에뮬레이션 모듈과 상기 제 2 서브 시스템의 가상 서브 시스템 에뮬레이션 모듈을 상호 연동하여 가상 기스템에서 실행시키는 단계를 포함하는 버추얼 플랫폼 기반의 가상 개발 방법.
  14. 제 13 항에 있어서,
    상기 제 2 서브 시스템의 가상 에뮬레이션 모듈은:
            실제 시스템 온 칩 상에 구현되어야 할 제 2 서브 시스템의 코어에 대응된, 하이 레벨 언어로 구현된 가상 서브 시스템 코어; 및
            상기 제 2 서브 시스템의 서브 시스템 메모리부에 탑재되고 상기 제 2 서브 시스템의 코어에 의해 실행되는 서브 시스템 프로그램 코드의 작업 함수들에 일대일 대응된, 상기 제 2 서브 시스템의 코어에 비의존적인 하이 레벨 언어들로 구현된 작업 함수들을 포함한 가상 서브 시스템 프로그램 코드를 포함하는 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 방법.
  15.         제 14 항에 있어서,
    상기 제 2 서브 시스템의 가상 에뮬레이션 모듈을 검증하는 단계는 상기 가상 서브 시스템 코어와 상기 가상 서브 시스템 프로그램 코드를 통합하는 단계를 포함하는 것을 특징으로 하는 버추얼 플랫폼 기반의 가상 개발 방법.
KR1020040110015A 2004-12-22 2004-12-22 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법 KR100638476B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040110015A KR100638476B1 (ko) 2004-12-22 2004-12-22 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법
US11/316,369 US20060161422A1 (en) 2004-12-22 2005-12-22 Virtual emulation modules, virtual development systems and methods for system-on-chip development

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040110015A KR100638476B1 (ko) 2004-12-22 2004-12-22 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법

Publications (2)

Publication Number Publication Date
KR20060072171A KR20060072171A (ko) 2006-06-28
KR100638476B1 true KR100638476B1 (ko) 2006-10-26

Family

ID=36685103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040110015A KR100638476B1 (ko) 2004-12-22 2004-12-22 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법

Country Status (2)

Country Link
US (1) US20060161422A1 (ko)
KR (1) KR100638476B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210406442A1 (en) * 2020-06-30 2021-12-30 Montage Lz Technologies (Chengdu) Co., Ltd. Verification platform for system on chip and verification method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086042A1 (en) * 2003-10-15 2005-04-21 Gupta Shiv K. Parallel instances of a plurality of systems on chip in hardware emulator verification
KR102335715B1 (ko) * 2015-12-04 2021-12-06 한국전자기술연구원 가상화 기반의 임베디드 하드웨어 개발 및 검증 프레임워크 구조

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202397A (ja) * 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
KR20030084554A (ko) * 2002-04-26 2003-11-01 가부시끼가이샤 도시바 시스템-온-칩을 개발하기 위한 개발 환경의 생성 방법 및그 프로그램을 기억한 매체
KR20030092094A (ko) * 2001-05-23 2003-12-03 인터내셔널 비지네스 머신즈 코포레이션 시스템 온 칩용 계층적인 내장형 자체 테스트를 제공하는장치 및 방법
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960201A (en) * 1997-03-17 1999-09-28 Tritech Microelectronics, Ltd Numeric intensive development environment
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
JP2001202397A (ja) * 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
KR20030092094A (ko) * 2001-05-23 2003-12-03 인터내셔널 비지네스 머신즈 코포레이션 시스템 온 칩용 계층적인 내장형 자체 테스트를 제공하는장치 및 방법
KR20030084554A (ko) * 2002-04-26 2003-11-01 가부시끼가이샤 도시바 시스템-온-칩을 개발하기 위한 개발 환경의 생성 방법 및그 프로그램을 기억한 매체

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210406442A1 (en) * 2020-06-30 2021-12-30 Montage Lz Technologies (Chengdu) Co., Ltd. Verification platform for system on chip and verification method thereof
US11514225B2 (en) * 2020-06-30 2022-11-29 Montage Lz Technologies (Chengdu) Co., Ltd. Verification platform for system on chip and verification method thereof

Also Published As

Publication number Publication date
KR20060072171A (ko) 2006-06-28
US20060161422A1 (en) 2006-07-20

Similar Documents

Publication Publication Date Title
US6615167B1 (en) Processor-independent system-on-chip verification for embedded processor systems
US20070055911A1 (en) A Method and System for Automatically Generating a Test-Case
US20050039174A1 (en) Apparatus and method for co-simulating processors and DUT modules
US20020143512A1 (en) System simulator, simulation method and simulation program
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
US20080163331A1 (en) Reconfiguring a secure system
US20220237144A1 (en) Baseboard management controller and construction method thereof
CN111353263A (zh) 软硬件设计与验证平台系统
CN115017845A (zh) 用于ip单元级别验证的总线驱动式芯片仿真激励模型
US20130024178A1 (en) Playback methodology for verification components
US7478027B2 (en) Systems, methods, and media for simulation of integrated hardware and software designs
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
US20070300054A1 (en) Universal BSP tool for porting on embedded systems and an application thereof
TW201439775A (zh) 基於能力的裝置驅動程式架構
Kim et al. Virtual chip: making functional models work on real target systems
O'nils et al. Device driver and DMA controller synthesis from HW/SW communication protocol specifications
KR100638476B1 (ko) 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법
Yeh et al. On the interface between QEMU and SystemC for hardware modeling
CN111338761B (zh) 一种51单片机虚拟中断控制器及实现方法
CN117667655A (zh) 验证系统、验证方法、电子设备以及存储介质
Jakubík Cortex-m simulator
US20040204928A1 (en) Simulator apparatus and related technology
TWI837026B (zh) 驗證系統、驗證方法、電子設備以及儲存媒體
US20230289500A1 (en) Method and system for building hardware images from heterogeneous designs for eletronic systems
Ecker et al. Using a dataflow abstracted virtual prototype for HdS-design

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee