soc design - modrpc/info GitHub Wiki

Table of Contents

SOC Verification

Verification Planning

Embedded Software Development

Debugging CPU

  • JTAG-based
    • JTAG is about writing/reading registers in CPU.
    • What can we not do when we can write to registers and control CPU
  • Stub-based

Embedded Software Types

  • System (CPU) initialization code
    • e.g. configure operating modes, caches, memory protection, MMU unit, interrupt controller configuration, timer setup, DRAM initialization
  • HAL (Hardware Abstraction Layer)
    • On top of system initialization code, provides common interface for higher-level software to use hardware-specific functionality after the system is initialized
  • Hardware diagnostics suite
  • RTOS
  • RTOS device drivers
  • Applications

System Validation

Computer Architecture Simulator

Full-system Simulator

  • architecture simulator which simulates an electronic system at such a level of detail that complete software stacks from real systems (i.e. OS, device drivers, user applications) can run on the simulator without any modification
  • includes:
    • processor cores
    • peripheral devices
    • memories
    • interconnection buses
    • network connections

Instruction-set simulator

Cycle-accurate simulator

  • computer program that simulates a microarchitecture on a cycle-by-cycle basis.
    • c.f. instruction-set simulator
  • use when time precisons are very important from legacy reasons.
  • ensures that all operations (incl. branch prediction, cache misses, fetches, pipeline stalls, thread context switching) are executed in proper virtual time

Virtual (System) Platform

  • Benefits
    • Allows to start SW development months before RTL/FPGA prototypes are available
    • Creates a first-working virtual prototype in days vs weeks

VirtualBridge Adaptor

  • SW adaptor which enables user applications and OS drivers to establish a virtual protocol connection to PZ1. (CDNS)
    • emulates HW design along with SW applications via OS drivers
    • run SW application against emulated HW via OS drivers
    • perform SW OS driver verification
  • consists of
    • transactor that enables high-speed transactions between DUT (in PZ1) and host workstation
      • user-app => OS driver => transactor ====> BFM => DUT
    • user-app running on any OS supported by VM (virtual machine)

Hybrid Systems

  • Benefits
    • 60X speedup of OS boot over in-circuit emulation for pre-silicon software validation; 10X speedup for post-boot software execution
  • integrates
    • high-performance transaction-level model of the CPU subsystem running on the Virtual Platform (VSP)
    • RTL for the rest of the SOC on PZ1

FPGA-Prototyping Platform

Why FPGA-prototyping?

High performance and accuracy

Virtual Prototyping

Android

Hardware Abstraction Layer (HAL)

SOC Development

ARM-based SOC

AMBA

CoreLink

  • Alternative:
  • Cadence Interconnect Validator

MIPI

  • Synopsys DesignWare MIPI

Camera and Imaging

Display and Touch

Physical Layers

⚠️ **GitHub.com Fallback** ⚠️