제퍼넷 로고

상호 운용성과 자동화로 확장 가능하고 효율적인 안전 작업 흐름 제공

시간

앤 케퍼, 아룬 고기네니, 제임스 김 지음

ADAS 및 AV 기능을 배포하는 자동차는 중요한 실시간 애플리케이션을 수행하기 위해 복잡한 디지털 및 아날로그 시스템에 의존합니다. 이러한 최신 자동차 설계에서는 테스트해야 할 결함이 너무 많기 때문에 단일 기술을 사용하여 안전 검증을 수행하는 것이 비현실적입니다.

그러나 시뮬레이션, 에뮬레이션 및 공식을 자동으로 대상으로 하는 특정 오류 목록을 사용하여 최적화된 안전 방법론을 개발하는 것은 어렵습니다. 또 다른 과제는 최종 메트릭 계산을 위해 다양한 결함 주입 실행의 결함 해결 결과를 통합하는 것입니다.

좋은 소식은 결함 주입 엔진, 최적화 기술 및 자동화된 흐름의 상호 운용성을 통해 전반적인 실행 시간을 효과적으로 줄여 안전 분석부터 안전 인증까지 루프를 신속하게 종료할 수 있다는 것입니다.

그림 1은 안전 흐름의 최적화 기술 중 일부를 보여줍니다. 최적화 및 오류 제거를 위한 안전 분석, 동시 오류 시뮬레이션, 오류 에뮬레이션, 공식 기반 분석과 같은 고급 방법론을 배포하여 자동차 SoC의 안전 요구 사항을 검증할 수 있습니다.

그림. 1: 결함 명부 최적화 기법.

개념 증명: 자동차 SoC

SoC 수준 테스트 사례를 사용하여 이 자동화된 다중 엔진 흐름이 고급 자동차 설계에서 테스트해야 하는 수많은 오류를 어떻게 처리하는지 보여줍니다. 이 테스트 사례에서 사용한 SoC 설계에는 약 300만 개의 게이트가 있었습니다. 첫째, 시뮬레이션과 에뮬레이션 오류 주입 엔진을 모두 사용하여 최종 측정 항목에 대한 오류 캠페인을 효율적으로 완료했습니다. 그런 다음 전반적인 결함 주입을 마무리하는 과정의 일환으로 형식 분석을 수행했습니다.

그림. 2: 자동차 SoC를 최고 수준 블록 다이어그램.

그림 3은 그림 2의 안전 섬 블록을 나타냅니다. 색상으로 구분된 영역은 오류 주입 및 오류 분류를 위해 시뮬레이션, 에뮬레이션 및 공식 엔진이 사용된 위치를 보여줍니다.

그림. 3: 상세한 안전섬 블록 다이어그램.

시뮬레이션을 이용한 오류 주입은 CPU 코어 및 캐시 메모리 블록에 비해 시간과 리소스가 너무 많이 소모되었습니다. 이러한 블록은 효율성을 위해 에뮬레이션 엔진을 사용하여 결함을 주입하는 것이 목표였습니다. CPU 코어는 STL(소프트웨어 테스트 라이브러리)로 보호되고, 캐시 메모리는 ECC로 보호됩니다. 버스 인터페이스에는 시뮬레이션을 통한 결함 주입이 효율적이라고 판단된 엔드투엔드 보호가 필요합니다. 결함 관리 장치는 이 실험에 포함되지 않았습니다. 결함 관리 장치에 대한 결함 주입은 다음 단계로 정형 기술을 사용하여 완료됩니다.

표 1은 안전 아일랜드의 블록에 대한 레지스터 수를 보여줍니다.

표 1: 블록 레지스터 수.

이러한 각 블록에 대해 생성된 오류 목록은 안전 메커니즘/보호 기능이 있는 안전 필수 노드에 초점을 맞추도록 최적화되었습니다.

안전 분석 도구인 SafetyScope를 실행하여 Veloce 오류 앱(오류 에뮬레이터)과 오류 시뮬레이터 모두에 대한 FM의 오류 목록을 생성하고 기능 안전(FuSa) 데이터베이스에 오류 목록을 기록했습니다.

CPU 및 캐시 메모리 블록의 경우 에뮬레이터는 합성된 블록과 FIN/FDN(결함 주입/결함 감지 네트)을 입력합니다. 다음으로 자극을 실행하고 모든 FDN의 상태를 캡처했습니다. 상태는 저장되어 결함 주입 실행과의 비교를 위한 "골드" 참조로 사용되었습니다. 최적화된 결함 목록에 나열된 각 결함에 대해 결함 동작을 에뮬레이션하고 FDN을 골든 런 중에 생성된 참조 값과 비교한 후 결과를 결함 데이터베이스에 속성으로 분류하고 업데이트했습니다.

그림 4: CPU 클러스터. (출처 https://developer.arm.com/Processors/Cortex-R52)

블록 다이어그램에 표시된 각 하위 부품에 대해 분석 엔진을 사용하여 최적화된 오류 목록을 생성했습니다. 오류 목록은 FuSa 데이터베이스의 개별 세션에 저장됩니다. FuSa 데이터베이스에서 무작위 샘플을 생성하기 위해 전체 결함에 대한 통계적 무작위 샘플링을 사용했습니다.

이제 에뮬레이션을 사용하여 결함 주입을 통해 하나의 무작위 샘플을 취하면 어떤 일이 발생하는지 살펴보겠습니다. 그러나 결함 주입을 완전히 종료하기 위해 N개의 샘플을 처리했습니다.

작업대 2: 감지 오류 by 안전한 메커니즘.

표 3은 전체 결함에 대한 전체 결함 분포가 무작위로 샘플링된 결함의 결함 분포와 일치함을 보여줍니다. 이 테이블은 총 3125개의 오류 중 4782개의 감지된 총 오류를 추가로 캡처합니다. 또한 하위 부품별로 감지된 결함을 모델링하고 65.35%의 전체 감지 결함 비율을 제공할 수 있었습니다. 무작위 샘플의 결함과 90%의 커버리지 목표를 기반으로 오차 한계(MOE)가 ±1.19%인 것으로 계산되었습니다.

작업대 3: CPU 및 캐시 메모리에 결함을 주입한 결과입니다.

감지된 총 3125개의 오류(관찰 + 관찰되지 않음)는 명확한 오류 분류를 제공합니다. 감지되지 않은 관찰도 잔류 결함에 대한 명확한 분류를 제공합니다. 우리는 감지되지 않고 관찰되지 않고 주입되지 않은 결함에 대한 추가 분석을 수행했습니다.

작업대 4: 결함 분류 시간 내에 잘못은 주입.

우리는 616개의 감지되지 않은 관찰되지 않은 오류를 분석하기 위해 많은 디버그 기술을 사용했습니다. 먼저, 공식 분석을 사용하여 이러한 UU 결함의 영향 원뿔(COI)을 확인했습니다. COI 외부에 있는 결함은 안전한 것으로 간주되었으며 분석에서 추가로 삭제된 616개의 결함이 있었습니다. COI 내부에 있는 결함에 대해서는 ECC, 타이머, 플래시 메모리 관련 등 다양한 구성의 정당성을 고려하여 공학적 판단을 사용했습니다. 마지막으로 형식적, 공학적 판단을 사용하여 79개의 UU 결함을 안전한 결함으로 분류하고 나머지를 남길 수 있었습니다. UU 결함은 보수적으로 잔여 결함으로 변합니다. 또한 10개의 잔여 결함을 검토하여 1.293개의 결함을 안전한 결함으로 분류할 수 있었습니다. 추가 자극이 해당 결함을 주입할 수 있는지 확인하기 위해 주입되지 않은 결함도 시뮬레이션 모델에 대해 테스트되었습니다. 어떤 자극도 이러한 결함을 주입할 수 없었기 때문에 우리는 이러한 결함을 고려 대상에서 제외하고 그에 따라 오류 한계를 벗어나기로 결정했습니다. 이번 변경으로 새로운 MOE는 ±XNUMX%입니다.

이와 동시에 오류 시뮬레이터는 버스 블록의 오류 모드에 대해 최적화된 오류 목록을 가져오고 기능 검증의 자극을 사용하여 오류 시뮬레이션을 실행했습니다. 초기 자극 세트는 충분한 적용 범위를 제공하지 않았으므로 더 높은 품질의 자극(테스트 벡터)을 준비하고 새 자극에 대해 추가 결함 캠페인을 실행했습니다. 모든 오류 분류는 FuSa 데이터베이스에 기록되었습니다. 전반적인 효율성과 고성능을 위해 모든 실행은 병렬 및 동시 실행되었습니다.

SafetyScope를 사용한 안전 분석은 정확성을 높이고 결함 시뮬레이션의 반복을 줄이는 데 도움이 되었습니다. 다양한 테스트에서 에뮬레이션한 후 CPU 및 캐시 메모리는 표 90에 표시된 것처럼 전체 SPFM이 5%를 넘었습니다.

작업대 5: 사무용 겉옷 결과.

현재 결함 시뮬레이션을 수행하는 BUS 블록(종단 간 보호)에 대한 모든 테스트가 완료되지 않았습니다. 표 6은 첫 번째 초기 테스트에서 9.8% 오류를 매우 빠르게 해결할 수 있음을 보여줍니다.

작업대 6: E2E SM에 의해 BUS 블록에 대해 감지된 오류의 백분율입니다.

우리는 SoC의 런타임 작동 상태를 모방하기 위해 BUS에서 트래픽이 높은 더 많은 테스트를 통합하고 있습니다. 이러한 독립적인 결함 주입(시뮬레이션 및 에뮬레이션)의 결과는 위 블록에 대한 최종 메트릭을 계산하기 위해 결합되었으며 결과는 표 7에 나와 있습니다.

작업대 7: 분석 후 최종 결함 분류.

결론

이 기사에서 우리는 SoC 수준 자동차 테스트 사례에 사용되는 새로운 기능 안전 방법론의 세부 사항을 공유했으며, 공식, 시뮬레이션 및 에뮬레이션 검증 엔진을 사용하여 오류 주입을 위한 최적화 기술을 사용하여 우리 방법론이 확장 가능하고 효율적인 안전 워크플로를 생성하는 방법을 보여주었습니다. . 결함 주입을 실행하기 전에 안전 분석을 수행하는 것은 매우 중요하며 시간을 절약해 줍니다. 따라서 이 규모의 프로젝트에는 여러 엔진을 사용하고 공통 FuSa 데이터베이스에서 결과를 읽을 수 있는 상호 운용성이 필요합니다.

ADAS 및 AV 자동차 설계를 위한 매우 효과적인 기능 안전 흐름에 대한 자세한 내용을 보려면 Siemens EDA 백서를 다운로드하십시오. 복잡한 안전 메커니즘에는 검증 및 지표 종결을 위한 상호 운용성과 자동화가 필요합니다..

Arun Gogineni는 Siemens EDA의 IC 기능 안전 부문 엔지니어링 관리자이자 설계자입니다.

제임스 김(James Kim)은 Siemens EDA의 기술 리더입니다.

spot_img

최신 인텔리전스

spot_img