SOC DESIGN & VERIFICATION
Overview
More than 60% of verificaiton work in VLSI is based on SOC & SUbsystem verificaiton. It becomces essential for every verificaiton engineer to gain expertise on SoC & Subsystem verificaiton concepts. The course is targeted towards teaching complete SOC flow, starting from Architecture, usecases, testbench environemtn setup, testcase coding and testcase debug techniques.
Syllabus
- SoC Design Architecture
- Usecase listing down
- Testbench Architecture
- Testcase coding
- Testcase debug
- GLS setup & debug
- Vector setup & debug
Schedule & fee
Course | SoC Design & Verification |
---|---|
Duration | 7 weeks |
Next Batch | Adhoc (when course has a minimum strength) |
Schedule | |
Course repeats | every 10 weeks |
Fee | INR 12000 |
Tool | Questasim, Kiel |
Mode of training | Classroom training at Institute |
Online training using live training sessions | |
Certificate | Issued based on 50% assignment completion as criteria |
Batch Size | 20 |
Assignments | 20 |
Trainer | 12+ Years exp in RTL design & Functional verification |
Faqs
What are the Course Prerequisites?
- Exposure to module level verification
- Exposure to standard protocols like AXI, AHB, etc
What if I miss few sessions during course?
Each session of course is recorded, missed session videos will be shared
Course has started few weeks back, can I still join the course in between?
- Yes, You will have option to view the recorded videos of course for the sessions missed
- You will have option to repeat the course any time in next 1 year
Do you offer support after course completion?
- Yes, Course fee also includes support for doubt clarification sessions even after course completion
- You have option to mail you queries
- Option to meet in person to clarify doubts
Trainer
Trainer Profile
- 10+ years of rich experience of working in Functional Verification domain across various mobile, networking, high speed peripheral domains.
- Experience of working on functional verification of Multiple Complex SOCs, multiple Sub systems
- Experience of working on multiple complex module level projects
Course Certificate
After the successful completion of the course certificate will be issued.
Trainer Profile
- Multiple trainers, each with rich experience of SOC subdomain. All working in top-3 product companies.
FAQ:
- Course pre-requisites?
- Working knowledge of SV, capable of setting up testbench for simple designs
- What if few sessions missed?
- We will cover up missed sessions
- Course has started few weeks back, can I still join the course in between?
- Missed sessions will be covered up, option to repeat the course in next 1 year*
Course Content:
- SOC design & verification flow overview
- SOC Design concepts
- Processor boot concepts
- SOC Verification : Important aspects
- Testbench
- Setting up SOC TB environment
- SOC Subsystem overview (Processor, High speed, Low speed, Modem, Multimedia subsystem)
- Testplan
- Testcase Flow
- Testcase Coding (C & SV)
- Running testcases & regression
- SOC Test debug
- Typical testcase issues
- Verification closure
- Performance requirements
- Gate level simulations
- Power Aware Simulations
- PAGLS
- EVCD generation
- Vector runs on VT setup
- Generating binaries for running on tester
- ECO
- RMA
- UVC in Testbench setup & sequence usage in SV testcase
- SOC FLOW:
- SoC Architecture
- Design Integration
- Spy glass,
- Functional Verification
- Formal Verification (Connectivity Checks)
- PA RTL simulations
- GLS
- PA GLS simulations (UPF)
- Vector evcd generation
- VT simulations on testers
- Post silicon validation (VI)
- Design:
- SoC Architecture
- SoC Interconnects & NOCs
- NoC Overview – Types of NOCs, purpose and diagram
- SoC Digital & Analog Components
- SoC Address Mapping
- SoC Interrupt Mapping
- SoC Frequency Plan
- SoC Performance requirements
- Features
- DPLL
- SoC Memories: Msg ram, Iram, DDR, Flash
- SoC Subsystems
- Low Power Verification
- UPF
- Important aspects:
- SoC Architecture, understanding transaction matrix
- Processor boot, SCF file,
- interconnects
- Memory preloading
- DDR initialization
- PLL locking(LMN values)
- TIC interface
- Clock domains
- Different clock mode
- XO mode, at-speed mode
- Interrupt handler
- Processor interfaces: interfaces meant for fetching instruction, data code
- I/O’s of SOC: Dedicated IO’s, and GPIOs
- GPIO purpose : Pad muxing
- CDC
- Cycle slips
- MMU, Physical address, virtual address
- ARM instruction set basics
- Types of verification : how they are different
- Processor architectures
- ARM, ARC, DSP
- Cortex A series, M series
- Impact on design architecture
- Basics of ARM processors
- Types of processors – Cortex-M series, A series.
- ARM C, ASM compiler, linker.
- Caches (L1 and L2).
- Generic Interrupt controller.
- Exceptions, Events – Types of Exceptions (Edge, Level), Source of Exceptions, How to handle.
- Debug system – Basics of ARM debug sub system.
- Scatter files.
- How to set reset location to start booting.
- Loading C code into memories – Front door, back door.
- ARM Instruction example
- SOC Testbench Setup
- SoC environment structure
- SoC TB Architecture
- Integrating UVC in to SoC TB
- SoC Processor-TB interaction
- Testplan:
- register wr-rd, reset tests
- Interrupt tests
- targeting different frequency plans
- Feature(use-case) tests
- power aware tests
- Fuse tests
- End to end data transfer tests
- Booting from different testcases
- Address decoding access tests
- Connectivity tests
- Testcase Flow:
- TIC mode
- Functional mode
- Device Initialization
- DDR initialization
- Enabling DDR access to different processors
- Processor boot sequence
- Processor boot from different memories
- C test Main function
- Power uncollapse
- Functional test
- Coding testcases:
- Listing down test requirements, pass criteria
- Power domains to be up
- clock domains to be up, required frequencies
- Understanding required flow to implement testcase
- knowing library functions to implement above flow
- understanding handshake between Native & SV code
- Setting up environment:
- Design baseline
- all design sub component latest baselines
- verif baseline
- all verif sub component latest baselines
- Updating env for custom baseline
- Running testcases & regression:
- Command line
- sim_gui mode
- Command line options
- using force files, timing corners, frequency plans
- Debugging tests:
- tarmac log
- List file
- mpf file
- log
- Wave dump debug
- Message based debug
- Warnings, errors
- Typical testcase issues:
- Processor not booting
- register looping
- Not working at current frequency plan
- pll not locked
- Memory not preloaded
- clocks not running
- Access is not enabled to register or memory space
- Simulation not proceeding in time
- Simulation is proceeding in time but not completing (looping)
- Interrupt not serviced
- interrupt not generated
- Signal not sampled
- sub module functional issues
- Denali errors
- Memory loading ‘x’ debug
- tied signals, unconnected ports
- Understanding chip stages:
- RTL code freeze
- Base tapeout
- Metal tapeout
- ECO update
- CS (customer shipment)
- RMA
- Verification closure:
- Regression 100% pass
- 100% toggle coverage
- reviews high level & low level
- Performance requirements
- Power reqs met
- Performance requirements?
- Gate level simulations:
- Significance
- choosing tests for GLS
- EVCD generation:
- Format?
- Why?
- choosing tests for GLS
- Vector runs on VT setup
- production vectors
- characterization vectors
- Generating binaries for running on tester
- Vector debug
- ECO:
- What stage ECO is issued
- RMA:
- Significance?
- Misc:
- SoC Architecture:
- SoC Interconnects
- SoC Digital & Analog Components
- SoC Address Mapping
- SoC Interrupt Mapping
- SoC Frequency Plan
- SoC Performance requirements
- Features
- PLL
- SoC Memories: Msg ram, Iram, DDR, Flash
- Processor booting from different memories
- UVC in Testbench setup & sequence usage in SV testcase