12
Extending UVM Methodology for Verifying Mixed-Signal Components by Abhisek Verma Synopsys 8 th October 2012

AMS-Testbench An Innovative Methodology for Verifying ......– Tight integration between VCS and CustomSim • Covers Holes in mixed-AMS Block-level verification – Synchronous and

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • © Synopsys 2012 1

    Extending UVM Methodology for

    Verifying Mixed-Signal

    Components

    by

    Abhisek Verma

    Synopsys

    8th October 2012

  • Target Audience & Applications

    • SoC Integrator

    • Analog IP developers

    • Domains

    – Automotive

    – Communication

    – Multimedia

    – PHYs

    – LP

    – lPs

    • Applications

    – ADC, DAC

    – AMPs, Comparators

    – PLLs

    – Low Power Controller

    – Voltage ref

    – PHYs

    – Custom IPs

    • Time-based discrete

    verification

    2

  • AMS Testbench Technology

    • Technology for mixed-signal SoC functional verification– Constrained-random verification

    – SystemVerilog

    • Enhance VMM/UVM with new constructs for analog blocks

    • Provide AMS coverage in SV Testbench Environment

    3

    A D

    A

    A

    D

    D

    D

    D

    D D

    D

    D

    D

    D

    D

    D

    VMM /UVM AMS TB

  • UVM-AMS Testbench OverviewTechnology for mixed-signal SoC functional verification

    • Electrical Real conversion

    • Asynchronous analog events

    • AMS toggle coverage

    Basic Usage

    • AMS SystemVerilog assertions

    • AMS SystemVerilog testbench

    • AMS Checker Library

    • SystemVerilog Real Number Modeling

    Intermediate usage

    • UVM AMS testbench

    • AMS Source generators

    Advanced usage

    DUT(Analog IP)

    Self Chk

    ~~

    real

    SPICE or Verilog-AMS

    Electrical

    r2eSystemVerilog

    real

    SPICE or Verilog-AMS

    Electrical

    e2rSystemVerilog

    top.ev

    top.vref

    VDD=1.8V

    0.6V

    Vref

    -Tol

    +Tol

  • Look and Feel

  • Immediate Assertions

  • UVM-AMS Testbench Checkers

    Checkers

    sv_ams_threshold_checker Checks that analog signal

    remains within a given high and

    low threshold.

    Can perform this check

    synchronously or asynchronously

    sv_ams_stability_checker Checks that analog signal

    remains below or above a given

    threshold.

    Can perform this check

    synchronously or asynchronously

    sv_ams_slew_checker Checks that analog signal

    rises/falls with a given slew

    rate(+/- tolerance).

    Can perform this check

    synchronously or asynchronously

    sv_ams_frequency_checker Checks that analog signal

    frequency is within a given

    tolerance

    7

    High

    Low

    Vref

    -Tol

    +Tol

    dV/dt

    VMax VMax

    Vmin Vmin

  • Primary Use Model:

    Functional Verification of an SoC

    8

    DUT

    Self Chk

    Testcase

    A

    Co

    ve

    rag

    e

    D D

    D

    A

    D

    D

    With AMS TB, it could

    now contain analog

    blocks

  • Other use:

    Verifying Analog IP before SoC integration

    9

    DUT(Analog IP)

    Self Chk

    Testcase

    ~~

    Covera

    ge

    sv_ams_real

    sv_ams_voltage

    components

    Checkers

  • UVM-AMS Testbench Generators

    • Topology to support SV-Top, VAMS / Spice leaves

    • Reference model in Verilog-AMS

    • Automatic insertion of d2a/a2d for bits

    • Constrainable uvm_realto drive analog nodes

    • AMS Testbenchcomponents (voltage, current)

    10

    DUT

    (Spice)

    Testcase

    ~

    uvm_real

    uvm_voltage components

    SV/UVM

    Self Check

    (VAMS)

  • AMS Testbench GeneratorsUVM

    11

    ...

    class my_env extends uvm_component;

    ...

    sv_ams_sine_voltage_gen#(-1.0, +1.0, 1.0E6) sGen_IN;

    function void build_phase(uvm_phase phase);

    super.build_phase(phase);

    uvm_resource_db#(virtual ams_src_if)::

    set("*", "uvm_ams_src_if", aif, this);

    sGen_IN = sv_ams_sine_voltage_gen#

    (-1.0, +1.0, 1.0E6)::type_id::create("sine", this);

    endfunction

    Construct sin Wave

    generator.

    Default is auto-run

    throughout

    run_phase()

    Sine Voltage Gen

    • Vmax=1.0V,

    • Vmin=-1.0V

    • F=1.0MHz

  • UVM-AMS Testbench Benefits

    • Clear methodology for mixed-AMS SoC verification

    – Enable consistent digital and analog verification

    – Tight integration between VCS and CustomSim

    • Covers Holes in mixed-AMS Block-level verification

    – Synchronous and Analog Asynchronous verification

    – Usage of Ref models for self-checking and quicker simulation

    • Ecosystem

    – Verification planning

    – Regressions

    – Coverage convergence

    – Self-checking

    12