시스템집적반도체 설계 검증 환경과 기법 Ch 7
통합 시뮬레이션 통합 설계(Co-Design) 통합 시뮬레이션(Co-Simulation) 하드웨어와 소프트웨어가 연동하는 시스템을 설계하는 것 목적 구현할 시스템의 기능을 최적으로 또는 적절하게 분할하여 일부 기능은 프로세서에서 수행되는 프로그램으로 나머지는 하드웨어로 구현하는 것 통합 시뮬레이션(Co-Simulation) 통합 설계에서 수행되는 프로그램 그리고 이것과 연동하 여 동작하는 하드웨어의 기능을 동시에 검증하는 방법 그림 1 참조
HW/SW 통합 시뮬레이션 환경의 분류 모델링 언어와 시뮬레이션 커널에 따른 분류 Homogeneous co-simulation environment 하드웨어와 소프트웨어를 동일한 언어로 모델링 하드웨어와 소프트웨어를 하나의 엔진으로 시뮬레이션 Heterogeneous co-simulation environment 하드웨어는 하드웨어 설계 언어로 모델링 소프트웨어는 C 언어로 모델링 하드웨어는 사건 구동 시뮬레이터로 시뮬레이션하고 소프트웨어는 사이클기반 명령어집합시뮬레이터(ISS)로 시뮬레이션 Semi-homogeneous co-simulation environment 모델링 언어 측면에서 하드웨어와 소프트웨어는 동일한 언어로 모 델링 시뮬레이션 관점에서는 사건구동시뮬레이터와 사이클 기반 명령어 집합시뮬레이터를 사용
인터페이스 기법에 따른 분류(1) Core-model co-simulation Real-Chip co-simulation 명령어집합시뮬레이터 대신 RTL로 된 프로세서 모델 사용 정확한 시스템 시뮬레이션이 가능하지만 시뮬레이션 성능을 높이기 어렵고, 또한 RTL로 된 프로세서 모델을 확보해야 된 다는 단점이 있다. Real-Chip co-simulation 실소자인 프로세서를 사용한다. 정확한 시스템 시뮬레이션이 가능하지만 실소자와의 연동을 위한 특별한 장치가 필요한다
인터페이스 기법에 따른 분류(2) Native-code co-simulation ISS를 사용하지 않고 호스트 컴퓨터에서 컴파일한 프로그램 을 HDL 시뮬레이터와 연동한다. C 언어로 된 프로그램을 HDL 시뮬레이터에 연결하기 위한 특별한 기법이 필요하며, 보통 PLI/VPI/FLI를 사용한다. 타겟 프로세서와 다른 동작 특성을 갖기 때문에 상대적으로 정확도가 낮고 소프트웨어의 일부 기능을 시뮬레이션 할 수 없다는 단점이 있다. Integrated-ISS co-simulation ISS 를 HDL시뮬레이터에 직접적으로 연동시킨다. C 언어로 된 ISS를 HDL 시뮬레이터에 연결하기 위한 특별한 기법이 필요하다
인터페이스 기법에 따른 분류(3) Decoupled-ISS co-simulation ICE-based co-simulation ISS를 IPC(Inter-Process Communication)를 통해 HDL 시뮬레이 터와 연동시킨다. 독립적인 두개 프로그램을 연동하는 방법이 필요하고 보통 소켓 IPC를 사용한다. Integrated-ISS 방법보다 환경 구축이 용이한 반면, 성능면에서 불 리하다 ICE-based co-simulation 특별한 인터페이스 프로토콜을 통해 프로세서가 장착된 하드웨어 보드와 연동한다. 물리적인 연결을 통해 RDI(Remote Debug Interface) 또는 RSP(Remote Serial Protocol)와 같은 디버깅 프로코콜을 사용한다.
통합시뮬레이션 환경의 비교 Native-code co-simulation ISS를 사용하지 않음 HDL 시뮬레이터가 C code를 시스템함수로 등록하여 시 스템함수 호출 방식으로 시뮬레이션 수행 PLI/VPI Host PC에서 모든 과정이 수행되고 명령어의 형식도 target processor가 아니 Host PC의 명령어 형식 사용 시뮬레이션을 통한 기능 검증에 중점
Integrated-ISS co-simulation Target processor에 맞도록 응용 프로그램을 cross- complier를 사용하여 수행 파일 생성(예 : .elf) Host PC에서 시뮬레이션을 수행하나 명령어의 형식이나 수행 방법은 ISS를 이용하여 target processor에 맞도록 변경하여 수행 ISS를 시뮬레이터의 시스템 함수로 등록할 필요가 있음 PLI/VPI/DPI
Decoupled-ISS co-simulation 동작 방법이나 수행 방법은 Integrated-ISS와 동일 ISS를 독립적인 코드로 사용 IPC 소켓을 이용하여 시뮬레이터와 연동하여 동작 소켓을 사용하기 위한 인터페이스 필요
Native-code co-simulation
Integrated –ISS 통합시뮬레이션환경
Decoupled-ISS 통합시뮬레이션 환경