이 페이지는 기계 번역되었습니다.
번역 품질에 대한 1분 설문 조사에 참여해 주세요.
자동차 ASIC 개발에 모델 기반 검증 적용
작성자: Aswini Tata, Sanjay Chatterjee, Kamel Belhous, Allegro MicroSystems, Surekha Kollepara, Cyient
고객의 요구사항이 점점 더 까다로워지고 납품 일정이 짧아짐에 따라 당사가 도입한 모델 기반 검증 방식은 당사 팀이 출시 시간을 단축하여 보다 정교한 알고리즘과 시스템을 제공하는 데 도움이 되고 있습니다.
자동차 산업에 서비스를 제공하는 반도체 회사에서는 엔지니어링 팀이 촉박한 일정에 맞춰 점점 더 복잡한 시스템을 제공하라는 요청을 받고 있습니다. 이러한 촉박한 마감일을 맞추려면 후반 단계 테스트와 관련된 어려움이 따릅니다. 예를 들어, RTL이 사용 가능할 때까지 기능 검증을 기다리면 비용 초과 및 납품 지연의 위험이 있습니다. 이 단계에서 발견된 설계 결함과 요구사항 문제는 훨씬 더 비용이 많이 들고 해결하기도 어려우며, 팀은 비현실적인 시나리오를 디버깅하는 데 귀중한 시간을 낭비합니다. 이러한 환경에서, 개발 주기의 가능한 한 초기에 검증 활동을 수행하는 시프트 레프트 테스트 방식은 이러한 후반 단계의 테스트 과제를 해결합니다.
Allegro MicroSystems의 일부 팀은 혼성 신호 ASIC에 대한 HDL 코드 생성과 RTL 수준 검증을 위한 UVM(범용 검증 방법론) 테스트벤치 생성을 통합하는 DSP 블록에 대한 모델 기반 설계를 사용하는 새로운 시프트 레프트 방식을 채택했습니다. 이 모델 기반 검증 접근 방식을 통해 Simulink®의 조기 기능 검증과 시스템 엔지니어와 검증 팀 간의 협업을 용이하게 하는 설계의 시스템 수준 보기의 이점을 얻을 수 있습니다. (그림 1) 초기 모델 검증을 통해 코드 생성 전에 상위 설계 및 요구사항 문제가 발견되어 제거되므로 더 나은 품질의 HDL을 얻을 수 있습니다. 이러한 조기 버그 감지를 통해 검증 작업에 걸리는 시간을 2개월 정도 줄일 수 있을 것으로 기대합니다. 또한 UVM 환경에서 HDL 구현을 엄격하게 테스트하고 프로젝트 전반에 걸쳐 모델과 테스트 자산을 재사용함으로써 이점을 얻을 수 있습니다.
요구사항에서 실행 가능한 사양, 구현까지
기존 개발 워크플로에서는 시스템 엔지니어가 텍스트 기반 요구사항을 작성하고, 이를 디지털 설계 팀(시스템 아키텍트와 RTL 엔지니어)이 사양을 작성하고, 이를 바탕으로 RTL 설계를 진행합니다. 디지털 검증 팀인 저희 그룹은 사양과 기능 검증을 기반으로 테스트 계획을 수립하고 RTL 설계가 사양을 준수하는지 확인하는 업무를 담당하게 됩니다. 이 워크플로에서 결함이 감지되면(일반적으로 개발 라이프사이클의 후반부) 결함의 근본 원인이 구현에 있는지, 사양에 있는지, 원래 요구사항에 있는지 확인하는 데 오랜 시간이 걸릴 수 있습니다.
현재의 접근 방식에서는 워크플로가 아키텍처와 요구사항을 훨씬 더 일찍 검증할 수 있도록 설계되었습니다. 시스템 엔지니어에 의해 Jama Connect®에서 요구사항이 정의되면 디지털 설계 팀은 Simulink에서 아키텍처 명세 모델을 만듭니다. 이 모델은 시스템의 실행 가능한 사양 역할을 합니다. 이 모델로 시뮬레이션을 실행함으로써 팀은 모델 인 더 루프 단위 및 통합 테스트를 수행하여 요구사항을 검증하고 아키텍처를 검증합니다. (그림 2) 이 접근 방식을 사용한 첫 번째 프로젝트에서 이러한 시뮬레이션은 조건문이 서로 모순되어 일부 입력 자극 조합에 대한 잘못된 출력이 발생하는 시나리오를 포함하여 여러 문제를 식별하는 데 도움이 되었습니다.
개발의 다음 단계에서 팀은 HDL Coder™를 사용하여 코드를 생성하기 위해 아키텍처 모델을 보다 "하드웨어 친화적" 구현 모델로 변환합니다. 예를 들어, 여기에는 알고리즘을 부동 소수점에서 고정 소수점으로 변환하거나 프레임 기반 처리에서 스트리밍으로 전환하는 것이 포함될 수 있습니다.
Simulink의 테스트벤치 모델 및 검증
디지털 설계 팀이 구현 모델에서 컴포넌트를 구축함에 따라 해당 컴포넌트에 대한 Simulink 테스트벤치 모델이 병렬로 개발됩니다. 각 Simulink 테스트벤치 모델에는 UVM 컴포넌트에 해당하는 시퀀스, 드라이버, DUT, 예측기, 모니터 및 스코어보드(그림 3)라는 서브시스템이 포함되어 있습니다. HDL Verifier™ 사용한 테스트벤치 생성에는 시퀀스, DUT 및 스코어보드 서브시스템만 필요합니다.
시퀀스 서브시스템은 DUT(시험 중인 장치) 서브시스템에 대한 자극을 생성하는데, 이 워크플로에서 DUT 서브시스템은 Simulink에서 생성된 구현 모델입니다. 이 서브시스템은 MATLAB® 코드 및 Test Sequence 블록을 비롯한 Simulink 블록을 사용하여 자극을 생성하고 무작위화합니다. 시드 입력은 MATLAB 난수 생성기를 초기화하는 데 사용됩니다. scoreboard 서브시스템은 DUT의 출력을 수집하고 이를 SystemVerilog 어설션을 포함하는 DPI-C 컴포넌트를 생성하는 데 사용되는 블록인 Assertion for DPI-C 블록을 통해 예상 출력과 비교합니다. (그림 4) (SystemVerilog 직접 프로그래밍 인터페이스[DPI]는 SystemVerilog와 C와 같은 외국 프로그래밍 언어 간의 인터페이스입니다. HDL Verifier SystemVerilog 래퍼 코드가 포함된 C 코드로 구성된 DPI-C 컴포넌트를 생성할 수 있습니다. 그 결과 생성된 DPI-C 컴포넌트는 SystemVerilog를 지원하는 HDL 시뮬레이터에서 실행될 수 있습니다.)
Simulink Test ™와 같은 다양한 모델 검증 및 확인 툴과 함께 테스트벤치 모델을 사용하여 Simulink에서 시뮬레이션을 실행하면 요구사항에 대해 구현 모델의 검증이 더욱 강화됩니다. 우리는 요구사항 기반 테스트를 용이하게 하기 위해 Simulink에서 이러한 시뮬레이션 결과를 Jama로 다시 가져옵니다. 또한, Simulink Design Verifier™를 사용하면 모드에서 불필요한 코드 로직을 식별할 수 있습니다.
코드 생성, 테스트벤치 생성, HDL 시뮬레이션 및 테스트
구현 모델과 테스트벤치 모델이 구축되어 Simulink에서 워크플로의 설계 검증 단계를 완료하는 데 사용되면 다음 단계를 시작합니다. HDL 코드 생성 및 검증. 이 단계에서는 HDL Coder를 사용하여 구현 모델 컴포넌트로부터 합성 가능한 HDL 코드를 생성합니다. 우리는 또한 HDL Verifier를 사용하는데, 특히 ASIC Testbench 애드온의 uvmbuild
함수를 사용하여 Simulink 테스트벤치 모델에서 Simulink UVM 테스트벤치를 생성합니다. (그림 5) (ASIC Testbench에 포함된 또 다른 함수 dpigen
는 UVM 환경을 사용하지 않는 설계 팀을 위해 MATLAB 코드나 Simulink 모델에서 DPI-C 컴포넌트를 생성합니다.)
우리는 생성된 테스트벤치를 사용하여 Cadence® Xcelium™ 시뮬레이터와 같은 디지털 시뮬레이터를 사용하여 구현 모델에서 생성된 코드에 대해 UVM 환경에서 테스트를 실행합니다. (그림 6) 생성된 UVM 테스트벤치를 필요에 따라 확장하여 기능적 커버리지 분석을 위한 보다 복잡한 제약적 무작위성, 어설션 검사기, SystemVerilog 커버 그룹을 추가합니다. UVM 환경에서 테스트가 실패하면, 실패한 테스트의 시드와 메모리 구성을 사용하여 Simulink 시뮬레이션에서 실패 조건을 재현합니다. 이를 통해 설계 엔지니어가 HDL 수준에서 직접 디버깅하는 것보다 훨씬 쉽게 실패를 디버깅하고 해결할 수 있습니다.
다음 단계
고객의 요구사항이 점점 더 까다로워지고 납품 일정이 짧아짐에 따라 당사가 도입한 모델 기반 검증 방식은 당사 팀이 출시 시간을 단축하여 보다 정교한 알고리즘과 시스템을 제공하는 데 도움이 되고 있습니다. 우리는 이러한 시프트 레프트 개념을 다른 프로젝트에도 확장할 계획이며, 검증 팀에서 모델과 관련 Simulink 테스트 환경을 재사용함으로써 Allegro의 중간 복잡도 프로젝트에서 추가로 2개월의 개발 노력을 절감할 수 있을 것으로 기대합니다. 앞으로 우리는 시스템 공학 팀과 고객이 모델을 재사용할 수 있는 기회도 모색하고 있습니다.
2024년 기고