산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

Zynq SoC 설계를 위한 공동 시뮬레이션: 하드웨어-소프트웨어 검증 가속화

Xilinx Zynq-7000 및 Zynq UltraScale+ MPSoC 같은 이기종 시스템온칩(SoC) 장치는 고성능 처리 시스템과 최첨단 프로그래머블 로직을 융합합니다. 이 통합을 통해 설계자는 CPU 주도 제어와 PL 기반 저지연 파이프라인의 균형을 이루는 시스템을 구축할 수 있습니다. 이는 이미지 처리, 산업 자동화, 실시간 신호 처리에 이상적입니다.

PS-PL 연결은 마스터와 슬레이브 역할을 모두 지원하는 메모리 맵 Advanced eXtensible Interface(AXI) 링크 제품군을 기반으로 구축되어 ARM 코어에서 실행되는 소프트웨어와 FPGA 패브릭의 커스텀 로직 간의 견고한 양방향 통신을 가능하게 합니다.

Zynq SoC 설계를 위한 공동 시뮬레이션: 하드웨어-소프트웨어 검증 가속화

Figure 1. PS와 PL 사이의 AXI 인터커넥트를 보여주는 Zynq 아키텍처 (출처: Xilinx)

PS가 구성이나 제어를 처리할 때, 프로세서의 범용 AXI Master가 PL IP 코어 내 레지스터에 써서 동작을 조종합니다. 데이터 집약적 작업(PL에서 PS 메모리로 비디오 프레임 스트리밍 등)에는 고성능 AXI 인터페이스가 사용되며, DMA 전송 설정과 버퍼 코히어런스 관리를 위한 더 정교한 소프트웨어가 필요합니다.

PS-PL 상호작용 검증은 악명 높게 어렵습니다. 2015년 임베디드 시장 설문조사는 디버깅을 최상위 설계 과제로 강조하고 더 나은 검증 도구의 필요성을 강조했습니다. 버스 기능 모델은 초기 건전성 검사를 제공할 수 있지만, 실제 소프트웨어 드라이버와 애플리케이션을 검증하는 데 필요한 깊이가 부족한 경우가 많습니다. 완전한 기능 모델은 존재하지만 지나치게 비쌀 수 있습니다.

전통적인 검증은 흐름을 분할합니다: 각 블록을 고립적으로 검증하고, 첫 하드웨어가 도착한 후에야 PS와 PL을 결합합니다. 소프트웨어 팀은 일반적으로 QEMU(ARM 아키텍처를 에뮬레이트하는 오픈소스 하이퍼바이저)를 실행하여 Linux 커널이 필요한 드라이버와 디바이스 트리 항목을 가지고 있는지 확인합니다. 반대로 로직 팀은 소프트웨어 개시 트랜잭션을 모방하는 명령 시퀀스로 PL 기능을 확인합니다.

두 접근법 모두 진정한 PS-PL 핸드셰이크를 놓치므로 미묘한 통합 버그를 발견하기 어렵고 나중에 수정하는 데 비용이 많이 듭니다. 개발 보드가 임시방편을 제공할 수 있지만, 실제 하드웨어 디버깅은 계측 로직 삽입, 비트스트림 재생성, 행동 드리프트 위험을 요구합니다.

하드웨어와 소프트웨어의 공동 시뮬레이션은 사전 예방적 솔루션을 제공합니다: 생산 보드가 존재하기 전에 동시 검증을 가능하게 하여 디버그 시간과 비용을 극적으로 단축합니다. 또한 설계자에게 레지스터 상태와 도메인 간 트래픽에 대한 완전한 가시성을 제공하여 결함 탐지를 가속화합니다.

하드웨어 & 소프트웨어 공동 시뮬레이션

공동 시뮬레이션은 로직 시뮬레이터가 소프트웨어 에뮬레이션 플랫폼과 통신하도록 요구합니다. Aldec의 Riviera-PRO(2017.10)는 Riviera-PRO를 QEMU에 연결하는 브리지를 도입하여 Linux 기반 Zynq 소프트웨어가 HDL과 동일한 시뮬레이션 사이클 내에서 실행되도록 했습니다.

Zynq SoC 설계를 위한 공동 시뮬레이션: 하드웨어-소프트웨어 검증 가속화

Figure 2. HW와 SW 검증 환경 연결 (출처: Aldec)

브리지는 SystemC 트랜잭션 레벨 모델링(TLM)을 활용하여 QEMU와 Riviera-PRO 사이의 AXI 채널을 노출하여 양방향 데이터 교환을 가능하게 합니다. 엔지니어는 Riviera-PRO 내에서 HDL 브레이크포인트, 데이터 플로우 추적, 코드 커버리지 분석 같은 고급 디버깅 기법을 사용할 수 있고, 소프트웨어 측에서는 GDB를 사용하여 QEMU에서 커널과 드라이버 코드를 단계별로 실행할 수 있습니다.

대상 장치에서 실행될 동일한 Linux 커널이 QEMU에서 실행되므로 개발자는 초기에 모든 필수 모듈과 구성 파일이 존재하는지 확인할 수 있어 후기 단계의 놀라움을 줄일 수 있습니다.

PWM 예제

워크플로를 설명하기 위해 PL에 배치되고 범용 AXI 인터페이스를 통해 PS에 연결된 PWM IP 코어를 고려해 보세요. 소프트웨어는 0%~100% 사이의 듀티 사이클을 설정하기 위해 레지스터를 구성한 다음 코어를 트리거합니다. 코어를 고립적으로 검증하면 PS 개시 제어 경로를 놓칩니다. 완전한 공동 시뮬레이션은 Linux 애플리케이션이 실행될 때 펄스 폭이 올바르게 생성되는지 보장합니다.

임베디드

  1. 텅스텐 합금 탄환: 납을 대체하는 친환경 고성능 대안
  2. Infineon, 하노버 메세에서 산업용 최초 TPM 2.0 공개
  3. Harwin S0911-46R: 고밀도 전자제품용 초소형 EMI/RFI 실드 클립
  4. 옴니비전, 배터리 구동 보안 카메라용 초저전력 4K 비디오 프로세서 OA805 출시
  5. Syslogic 철도 컴퓨터: 신뢰할 수 있는 비용 효율적 철도 운용을 위한 예측 유지보수 구현
  6. 르네사스 PMIC 레퍼런스 디자인, 자일링스 FPGA 전력 관리 간소화
  7. 5G 시대의 PCB 제조: 트렌드, 과제 및 기회
  8. AutoCAD 완전 해설: 작동 원리와 적용 분야
  9. 금속 가공 설계 최적화: 성공을 위한 전문가 가이드
  10. 설계 정밀도를 높이는 5가지 CNC 밀링 기법