SlideShare a Scribd company logo
1 of 34
Download to read offline
Upgrading to SystemVerilog for
FPGA Designs
   - Presented at FPGA Camp Bangalore
                       Camp,


        Srinivasan Venkataramanan
         Chief Technology Officer
                CVC Pvt. Ltd.
              www.cvcblr.com
Agenda
   Introduction to SystemVerilog (SV)
   SV - RTL Design constructs
   SV Interface
   SV Assertions
   Success Stories
   SV-FPGA Ecosystem

       CVC Copyright 2008
                                         2
       www.cvcblr.com
About the presenter
Srinivasan Venkataramanan, CTO, www.cvcblr.com
 http://www.linkedin.com/in/svenka3
 Over 13 years of experience in VLSI Design & Verification

 Designed, verified and lead several multi-million ASICs in
   image processing, networking and communication domain
 Worked at Philips, Intel, Synopsys in various
                   p ,      , y p y
   capacities.
 Co-authored leading books in the Verification domain.
 Presented papers, tutorials in various conferences,
   publications and avenues.
     bli ti       d
 Conducted workshops and trainings on PSL, SVA, SV,
   VMM, E, ABV, CDV and OOP for Verification
 Holds M Tech in VLSI Design from prestigious IIT, Delhi.
         M.Tech                 f om p estigio s IIT Delhi
        CVC Copyright Protected Material, www.cvcblr.com
                                                           3
What is SystemVerilog?
   Superset of Verilog-2001
   IEEE 1800-2005 standard
   More information @ www.SystemVerilog.org
    M    i f     ti          S t V il
   Several books available:
     SystemVerilog Assertions Handbook – Ajeetha, Ben Cohen,
       y           g                         j     ,        ,
      Srinivasan, www.systemverilog.us
     A Pragmatic approach to VMM adoption – Ajeetha, Ben,
      Srinivasan
     SystemVerilog for Designers, Stuart Sutherland




        CVC Copyright 2008
                                                                4
        www.cvcblr.com
SystemVerilog - Evolution
                                                         Classes,
 Temporal            Sequential
                                                         inheritance,
 Property            Regular
 Definitions         Expressions                           OOP based
                                                         polymorphism   Testbench
Properties – capture temporal                             Constraint driven Constrained
                                                                              randomization
Behavior: Assertion,
B h i     A     ti                                        Functional Coverage
                                                         Semaphores          Random Data
Assumption, Coverage                                      Inheritance
                                                         Mailboxes           Generation
           SVA                                            Polymorphism
                                                           Queues,
    MDAs
    MDA          Data structures                          VirtualtiInterface g p,
                                                           Associative
                                                           A    i
                                                                          Covergroup,
                                                                        sampling
                 enums                                    & Dynamic
                                                          arrays
    Strings      Enhanced programming   Verilog   2001
                 (do while, break continue,
                       hile break, contin e
                 ++, --, +=. Etc.)
DPI – Quickly connect C/C++
                                                                Enhanced Design
                                                                         Coverage &
Very efficient and ease of use
    Better logical blocks –                                    Constructs, modeling
                                                                         Assertion API
    always_comb, ff latch
    always comb _ff, _latch                                         SV-Design
                                                                    SV D i
                                                                           DPI interface

                  CVC Copyright 2008
                                                                                              5
                  www.cvcblr.com
SystemVerilog - User view
  Has 5 major parts:
    SVD – SystemVerilog for Design
    SVA – SystemVerilog Assertions
    SVTB – SystemVerilog Testbench
    SV-DPI – Direct Programming Interface
       for better C/C++ interface
    SV-API – Application Procedural Interface
        for Coverage, Assertion etc
             Coverage            etc.
       CVC Copyright 2008
                                                 6
       www.cvcblr.com
Reference Books




Source      A Pragmatic Approach to VMM Adoption 2006
for Tutorial ISBN 0-9705394-9-5, http://www.systemverilog.us
and Code
 nd

                                                               (7)
                           CVC Copyright 2009
                                  bl
SV Design-Data Types
   Enhanced data types:
       2-state (bit) logic
        2 state     ),
   Potential memory & run time
    improvement (2-state)
   High level models can avail 2-state
   Clearer descriptions: a Verilog reg is
    NOT necessarily a “register”
         CVC Copyright 2008
                                             8
         www.cvcblr.com
SV Design – Data types
   User Defined types
       Enums – local typedef
                  local,
       Strict type checking, typecast
   Better modeling style easy to read
                    style,        read,
    maintain
   State
    St t encoding - via language (not via
                di    i l         ( t i
    tool scripts)
   Ease of debug, waveform
         CVC Copyright 2008
                                            9
         www.cvcblr.com
SV Design – logic modeling
   Verilog RTL – only always block
   Combinatorial & Sequential
   Inference by sensitivity list
   One of the top 10 error prone usages – more for
    newbie
   SV: Enhanced Modeling
       always_comb
            y _
       always_ff
       always_latch


          CVC Copyright 2008
                                                      10
          www.cvcblr.com
What logic is being modeled?

   Modeling
    combinatorial logic?
   Use always_comb
            y

   Modeling Sequential
           g q
    logic?
   Use always_ff

          CVC Copyright 2008
                                   11
          www.cvcblr.com
What logic is being modeled?

   Modeling Latch?
   Use always_latch
   Reduces Synthesis-
    Simulation discrepancies
   Language captures design
    intent (not pragmas, tool
    settings)
          g )
         CVC Copyright 2008
                                12
         www.cvcblr.com
Abstract modeling - struct


                            C-like struct
                               lk
                            Well proven
                             data structure
                             abstraction
                             technique
                            Cut down
                                  do
    CVC Copyright 2008
                             # lines
                                          13
    www.cvcblr.com
CVC Copyright Protected Material, www.cvcblr.com
                                                   14
Interfaces – bread-n-butter of modern
             bread n butter
SoCs




     CVC Copyright 2008
                                        15
     www.cvcblr.com
Interfaces – SPI, OCP




    CVC Copyright 2009 www.cvcblr.com
                                        16
Old fashioned hook-up–
Verilog description

                                          Too verbose
                                          Highly error
                                           prone
                                          Maintenance
                                           head-ache
                                          Not easy to
   CVC Copyright 2009 www.cvcblr.com
                                           reuse
                                                          17
Typical sub-systemusing Verilog
                                Modeled

    AHB             AHB

Master1           Master2


     AHB            AHB
    Slave1         Slave2

 SoC is built using IPs – lot of ReUse
 I di id
  Individual blocks pre-verified in standalone
           l bl k           ifi d i t d l
 Most Bugs Occur Between Blocks

 A good number of “Wiring” Errors
        d      b    f “Wi i ” E
             CVC Copyright Protected Material, www.cvcblr.com
                                                                18
Hookup various blocks – the old way
                            addr            module top();
top                                          mem_controller mc (clk, rst_n, dout,
                                                  addr, din, wr_rd);
        Mem




                            din              memory mem0(clk,rst n, addr, din,
                                                     mem0(clk,rst_n,
          m_Controller




                                               wr_rd, dout);
                           wr_rd Memory     endmodule

                                          module mem_controller (
                           dout
                           d t                       input clk, rst_n,[7:0] dout,
                                                     output [3:0] addr, [7:0] din,
                                                     wr_rd);
module memory(output [7:0] dout,
                             dout          task write();
                                                      ();
 input clk, rst_n, [3:0] addr,               addr <= ‘haa;
 [7:0] din, wr_rd);                          din <= $random;
 always @(posedge clk)                       wr_rd = 1’b1;
  if (wr rd)
     (wr_rd)                                 @(p
                                             @(posedge clk);
                                                       g    );
     mem[addr] <= din;                       wr_rd = 1’b0;
endmodule : memory                         endtask : write
                   CVC Copyright Protectedendmodule
                                           Material, www.cvcblr.com
                                                                                     19
Interface
interface simple_bus; // Define the interface    module cpuMod(simple_bus b, input bit
logic req, gnt;                                      clk);
                                                 ...
logic [7:0] dd d
l i [ ] addr, data;
                                                 endmodule
logic [1:0] mode;
logic start, rdy;
                  p _
endinterface: simple_bus                         module top;
                                                 logic clk = 0;
                                                 simple_bus sb_intf; // Instantiate the
module memMod(simple_bus a, // Use the               interface
    simple_bus interface                         memMod mem(sb_intf, clk);
input bit clk);                                  cpuMod cpu(.b(sb_intf), .clk(clk));
                                                          cpu( b(sb intf) clk(clk));
logic avail;                                     endmodule
// a.req is the req signal in the ’simple_bus’
    interface
always @(posedge clk) a.gnt <= a.req &
                            a gnt      a req
    avail;
endmodule         CVC Copyright 2008
                                                                                          20
                  www.cvcblr.com
Assertion-Based Verification
   It’s a verification technique
   Instruments requirements with assertions
       Clarifies eq i ements ith e ec table lang age
        Cla ifies requirements with executable language
       Enables tools to preview assertion waveforms
   Instruments design with assertions
       Added visibility
       White-box testing into its internal state
       Provision for functional coverage information




          CVC Copyright 2008
                                                          21
          www.cvcblr.com
Applying ABV - Bus based SoC

                    Simulate




                           What happened du g sim?
                               at appe ed during s
                           Any protocol violation?
                           How many RW?
                           Was xfer interrupted?
   CVC Copyright 2008
                                                      22
   www.cvcblr.com
Use assertions sparingly




   Non-intrusive
   Works with any existing flow
   The more you add, the more you gain
        CVC Copyright 2008
                                          23
        www.cvcblr.com
Ross Video – SV verification
for FPGAs
   The Ross Video team created a robust verification
    environment utilizing the VMM's built-in:
       self-checking
           lf h ki
       scenario generation
       transaction-level channels
       transactors and
       messaging services.
   Extensive use of SystemVerilog assertions (SVA)



          CVC Copyright 2008
                                                        24
          www.cvcblr.com
Advantages of interface
                  g
          customer success stories
   Better design style
     Disambiguate the communication
               g
     Forces to have a clear interface
      specification upfront – takes little more
      time, b saves much more later on
            but             h      l
   Reduces integration time
     Add Assertions to interface, every block
      using it shall have to comply with the
      protocol
          CVC Copyright Protected Material, www.cvcblr.com
                                                             25
Impact of Interface
                                                           module netproc (SX_ux_soc, SX_ux_en, SX_ux_data, SX_ux_clav,
interface utopia_i;                                        SX_ux_clk, SX_cpu_BusMode, SX_cpu_Addr, SX_cpu_Sel,
 wire soc;         // start of cell                        SX_cpu_Data, SX_cpu_Rd_DS, SX
                                                           SX        D t SX        Rd DS SX_cpu_Wr_RW,
                                                                                                 W RW
 wire en;         // enable                                SX_cpu_Rdy_Dtack, rst, clk);
                                                            inout SX_ux_soc;




                                           Syste
 wire [7:0] data; // data
 wire clav;       // cell available                         inout SX_ux_en;
 wire clk;       // ATM layer clock                         inout [7:0] SX_ux_data;
endinterface                                                inout SX_ux_clav;




                                                                                                                          Verilog9
                                                                                                                          V
                                                            inout SX ux clk;
                                                                  SX_ux_clk;




                                               emVerilog
interface cpu_i(input bit rst);                             inout SX_cpu_BusMode;
  wire       BusMode;                                       inout [11:0] SX_cpu_Addr;
  logic [11:0] Addr;                                        inout SX_cpu_Sel;
  logic     Sel;                                            inout [7:0] SX_cpu_Data;
  wire [ 7:0] Data;                                         inout SX_cpu_Rd_DS;
  logic
    g       Rd_DS;   ;                                      inout SX_cpu_Wr_RW;




                                                                                                                                 95
  logic     Wr_RW;                                          inout SX_cpu_Rdy_Dtack;
  wire       Rdy_Dtack;                                     input rst;
endinterface                                                input clk;
                                                            wire SX_ux_soc;
module netproc(utopia_i ux, cpu_i cpu,                      wire SX_ux_en;
                   input bit clk);                          wire [7:0] SX_ux_data;
endmodule
  d d l                                                     wire SX ux clav;
                                                                 SX_ux_clav;
                                                            wire SX_ux_clk;
                                                            wire SX_cpu_BusMode;
                                                            wire [11:0] SX_cpu_Addr;
                                                            wire SX_cpu_Sel;
                                                            wire [7:0] SX_cpu_Data;
- 3X more co pact
  3   o e compact                                           wire SX_cpu_Rd_DS;
                                                                     _ p _ _
                                                            wire SX_cpu_Wr_RW;
- Fewer wiring mistakes                                     wire SX_cpu_Rdy_Dtack;
                                                            wire rst;
                                                            wire clk;
                                                           endmodule                                                          26
Ecosystem around SV-FPGA
   All major EDA vendors support SV for
    Design (simulators)
         g (           )
   Synthesis: Synplify, leonardo
   FPGA vendors – need more support
       Latest update pending
   Books, tutorials – plenty:
       www.aldec.com/Downloads
   Trainings: www cvcblr com/trainings
               www.cvcblr.com/trainings
         CVC Copyright Protected Material, www.cvcblr.com
                                                            27
Aldec’s Active-HDL
             Design-flow manager




    CVC Copyright Protected Material, www.cvcblr.com
                                                       28
SV & FPGA tool support
   Active-HDL
       SV-Design, Assertions (SVA + PSL)
       Interface,
        Interface Debug
   Modelsim-DE
       SV-Design, SVA, PSL
   Synplify
       SV-Design, synthesizable constructs
   Leonardo
       Details awaited, call Mentor
   Xilinx, Altera
       Unknown, call your vendor
               ,      y

          CVC Copyright Protected Material, www.cvcblr.com
                                                             29
SV & FPGA advanced
technologies
   With adoption of SV, modern design
    p
    paradigms emerge
           g        g
   ASIC prototyping – EVE Design systems
   Jasper s
    Jasper’s ActiveDesign is one such
    technology
   Can create waveforms for AHB, AXI etc.
    right from RTL
       No TB required, plain RTL + ActiveDesign
                q     ,p                      g
         CVC Copyright Protected Material, www.cvcblr.com
                                                            30
Jasper’s ActiveDesign
   Capture “information” during RTL design
    p
    phase:
   Designer makes an assumption about the
    latency of output, FIFO size etc.
          y       p ,
       “show me a proof/witness/waveform” for such
        an occurrence
       Can we optimize the latency to say 5
       What-if I change the FIFO size to 32 here etc.

         CVC Copyright Protected Material, www.cvcblr.com
                                                            31
CVC Trainings –
www.cvcblr.com/trainings
   Verification Centric Course
        Comprehensive Functional Verification (CFV)
   Language Course
        IEEE   1800 SystemVerilog for Design (SVD)
        IEEE   1800 SystemVerilog Assertions (SVA)
        IEEE   1800 SystemVerilog for Verification (SVTB)
        IEEE   1850 Property Specification Language (PSL)
        IEEE   1647 E
                1647,
   Methodology
        VMM, OVM, AVM, CDV, ABV
   Workshops
        Gate Level Si l ti (GLS)
         G t L    l Simulation
        ABV Beyond RTL (ABV)
        Coverage Driven Verification (CDV)
        OOP for functional Verification


            CVC Copyright 2009 www.cvcblr.com
                                                             32
CVC Publications, tutorials, workshops




   •Quick start guides Tutorials
                guides,
      • SVA
      • PSL
      • VMM
   •Workshops :
      •Gate Level Simulation
      •ABV beyond RTL
                y
      •Coverage Driven Verification
      •OOP for Verification
                                         33
CVC Copyright Protected Material, www.cvcblr.com
                                                   34

More Related Content

What's hot

System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocksNirav Desai
 
Verification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICsVerification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICsDr. Shivananda Koteshwar
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSubash John
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)DVClub
 
Introduction to System verilog
Introduction to System verilog Introduction to System verilog
Introduction to System verilog Pushpa Yakkala
 
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialSystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialAmiq Consulting
 
Formal Verification
Formal VerificationFormal Verification
Formal VerificationIlia Levin
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomizationNirav Desai
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_finalsean chen
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coveragePushpa Yakkala
 
System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coveragerraimi
 
Bristol 2009 q1_blackmore_tim
Bristol 2009 q1_blackmore_timBristol 2009 q1_blackmore_tim
Bristol 2009 q1_blackmore_timObsidian Software
 
Classic Formal Methods Model Checking
Classic Formal Methods Model CheckingClassic Formal Methods Model Checking
Classic Formal Methods Model Checkingtyramisu
 

What's hot (20)

System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
 
Verification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICsVerification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICs
 
Jonathan bromley doulos
Jonathan bromley doulosJonathan bromley doulos
Jonathan bromley doulos
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancements
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)
 
Coverage and Introduction to UVM
Coverage and Introduction to UVMCoverage and Introduction to UVM
Coverage and Introduction to UVM
 
Introduction to System verilog
Introduction to System verilog Introduction to System verilog
Introduction to System verilog
 
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialSystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
 
Formal Verification
Formal VerificationFormal Verification
Formal Verification
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
 
Ch 6 randomization
Ch 6 randomizationCh 6 randomization
Ch 6 randomization
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coverage
 
Dsp
DspDsp
Dsp
 
System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coverage
 
Bristol 2009 q1_blackmore_tim
Bristol 2009 q1_blackmore_timBristol 2009 q1_blackmore_tim
Bristol 2009 q1_blackmore_tim
 
Doulos coverage-tips-tricks
Doulos coverage-tips-tricksDoulos coverage-tips-tricks
Doulos coverage-tips-tricks
 
Rv11
Rv11Rv11
Rv11
 
Firstenberg q207
Firstenberg q207Firstenberg q207
Firstenberg q207
 
Classic Formal Methods Model Checking
Classic Formal Methods Model CheckingClassic Formal Methods Model Checking
Classic Formal Methods Model Checking
 

Similar to Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC

Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010
Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010
Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010FPGA Central
 
Непрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаНепрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаSQALab
 
A comprehensive formal verification solution for ARM based SOC design
A comprehensive formal verification solution for ARM based SOC design A comprehensive formal verification solution for ARM based SOC design
A comprehensive formal verification solution for ARM based SOC design chiportal
 
Ss Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugSs Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugWSO2
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session WSO2
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)David Rosenblum
 
Varunkdave resume
Varunkdave resumeVarunkdave resume
Varunkdave resumeVarun Dave
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5David Nuescheler
 
PL/SQL Development
PL/SQL DevelopmentPL/SQL Development
PL/SQL DevelopmentThanh Nguyen
 
Managing Deployment of SVA in Your Project
Managing Deployment of SVA in Your ProjectManaging Deployment of SVA in Your Project
Managing Deployment of SVA in Your ProjectDVClub
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Alexandre Morgaut
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnValtech
 
Resume_Ramya_Purohit_
Resume_Ramya_Purohit_Resume_Ramya_Purohit_
Resume_Ramya_Purohit_Ramya Purohit
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 

Similar to Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC (20)

Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010
Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010
Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010
 
Lafauci dv club oct 2006
Lafauci dv club oct 2006Lafauci dv club oct 2006
Lafauci dv club oct 2006
 
Непрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаНепрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кода
 
A comprehensive formal verification solution for ARM based SOC design
A comprehensive formal verification solution for ARM based SOC design A comprehensive formal verification solution for ARM based SOC design
A comprehensive formal verification solution for ARM based SOC design
 
Ss Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugSs Wrap Up Session 13 Aug
Ss Wrap Up Session 13 Aug
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
 
Varunkdave resume
Varunkdave resumeVarunkdave resume
Varunkdave resume
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
 
Sumo
SumoSumo
Sumo
 
PL/SQL Development
PL/SQL DevelopmentPL/SQL Development
PL/SQL Development
 
Managing Deployment of SVA in Your Project
Managing Deployment of SVA in Your ProjectManaging Deployment of SVA in Your Project
Managing Deployment of SVA in Your Project
 
Dayal rtp q2_07
Dayal rtp q2_07Dayal rtp q2_07
Dayal rtp q2_07
 
Virtual classroom
Virtual classroomVirtual classroom
Virtual classroom
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
 
Agile Edge Valtech
Agile Edge ValtechAgile Edge Valtech
Agile Edge Valtech
 
Apoorva Tripathi
Apoorva Tripathi Apoorva Tripathi
Apoorva Tripathi
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management En
 
Resume_Ramya_Purohit_
Resume_Ramya_Purohit_Resume_Ramya_Purohit_
Resume_Ramya_Purohit_
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 

More from FPGA Central

State Of FPGA: Current & Future - A Panel discussion @ 4th FPGA Camp
State Of FPGA: Current & Future - A Panel discussion @ 4th FPGA CampState Of FPGA: Current & Future - A Panel discussion @ 4th FPGA Camp
State Of FPGA: Current & Future - A Panel discussion @ 4th FPGA CampFPGA Central
 
DESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA Camp
DESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA CampDESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA Camp
DESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA CampFPGA Central
 
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA CampPCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA CampFPGA Central
 
Rhino labs Prese4th ntation At FPGA Camp, Santa Clara, CA
Rhino labs Prese4th ntation At FPGA Camp, Santa Clara, CARhino labs Prese4th ntation At FPGA Camp, Santa Clara, CA
Rhino labs Prese4th ntation At FPGA Camp, Santa Clara, CAFPGA Central
 
Memory Interfaces & Controllers - Sandeep Kulkarni, Lattice
Memory Interfaces & Controllers - Sandeep Kulkarni, LatticeMemory Interfaces & Controllers - Sandeep Kulkarni, Lattice
Memory Interfaces & Controllers - Sandeep Kulkarni, LatticeFPGA Central
 
Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...
Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...
Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...FPGA Central
 
Mastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, XilinxMastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, XilinxFPGA Central
 
FPGA Camp - Softjin Presentation
FPGA Camp - Softjin PresentationFPGA Camp - Softjin Presentation
FPGA Camp - Softjin PresentationFPGA Central
 
FPGA Camp - National Instruments Presentation
FPGA Camp - National Instruments PresentationFPGA Camp - National Instruments Presentation
FPGA Camp - National Instruments PresentationFPGA Central
 
FPGA Camp - Introduction
FPGA Camp - IntroductionFPGA Camp - Introduction
FPGA Camp - IntroductionFPGA Central
 
FPGA Camp - Intellitech Presentation
FPGA Camp - Intellitech PresentationFPGA Camp - Intellitech Presentation
FPGA Camp - Intellitech PresentationFPGA Central
 
Today's FPGA Ecosystem - Neeraj Varma, Xilinx
Today's FPGA Ecosystem - Neeraj Varma, XilinxToday's FPGA Ecosystem - Neeraj Varma, Xilinx
Today's FPGA Ecosystem - Neeraj Varma, XilinxFPGA Central
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Central
 

More from FPGA Central (13)

State Of FPGA: Current & Future - A Panel discussion @ 4th FPGA Camp
State Of FPGA: Current & Future - A Panel discussion @ 4th FPGA CampState Of FPGA: Current & Future - A Panel discussion @ 4th FPGA Camp
State Of FPGA: Current & Future - A Panel discussion @ 4th FPGA Camp
 
DESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA Camp
DESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA CampDESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA Camp
DESIGN CHOICES FOR EMBEDDED REAL-TIME CONTROL SYSTEMS @ 4th FPGA Camp
 
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA CampPCIe Gen 3.0 Presentation @ 4th FPGA Camp
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
 
Rhino labs Prese4th ntation At FPGA Camp, Santa Clara, CA
Rhino labs Prese4th ntation At FPGA Camp, Santa Clara, CARhino labs Prese4th ntation At FPGA Camp, Santa Clara, CA
Rhino labs Prese4th ntation At FPGA Camp, Santa Clara, CA
 
Memory Interfaces & Controllers - Sandeep Kulkarni, Lattice
Memory Interfaces & Controllers - Sandeep Kulkarni, LatticeMemory Interfaces & Controllers - Sandeep Kulkarni, Lattice
Memory Interfaces & Controllers - Sandeep Kulkarni, Lattice
 
Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...
Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...
Fcamp may2010-tech2-fpga high speed io trends-alteraTrends & Challenges in De...
 
Mastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, XilinxMastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, Xilinx
 
FPGA Camp - Softjin Presentation
FPGA Camp - Softjin PresentationFPGA Camp - Softjin Presentation
FPGA Camp - Softjin Presentation
 
FPGA Camp - National Instruments Presentation
FPGA Camp - National Instruments PresentationFPGA Camp - National Instruments Presentation
FPGA Camp - National Instruments Presentation
 
FPGA Camp - Introduction
FPGA Camp - IntroductionFPGA Camp - Introduction
FPGA Camp - Introduction
 
FPGA Camp - Intellitech Presentation
FPGA Camp - Intellitech PresentationFPGA Camp - Intellitech Presentation
FPGA Camp - Intellitech Presentation
 
Today's FPGA Ecosystem - Neeraj Varma, Xilinx
Today's FPGA Ecosystem - Neeraj Varma, XilinxToday's FPGA Ecosystem - Neeraj Varma, Xilinx
Today's FPGA Ecosystem - Neeraj Varma, Xilinx
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec Presentation
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC

  • 1. Upgrading to SystemVerilog for FPGA Designs - Presented at FPGA Camp Bangalore Camp, Srinivasan Venkataramanan Chief Technology Officer CVC Pvt. Ltd. www.cvcblr.com
  • 2. Agenda  Introduction to SystemVerilog (SV)  SV - RTL Design constructs  SV Interface  SV Assertions  Success Stories  SV-FPGA Ecosystem CVC Copyright 2008 2 www.cvcblr.com
  • 3. About the presenter Srinivasan Venkataramanan, CTO, www.cvcblr.com  http://www.linkedin.com/in/svenka3  Over 13 years of experience in VLSI Design & Verification  Designed, verified and lead several multi-million ASICs in image processing, networking and communication domain  Worked at Philips, Intel, Synopsys in various p , , y p y capacities.  Co-authored leading books in the Verification domain.  Presented papers, tutorials in various conferences, publications and avenues. bli ti d  Conducted workshops and trainings on PSL, SVA, SV, VMM, E, ABV, CDV and OOP for Verification  Holds M Tech in VLSI Design from prestigious IIT, Delhi. M.Tech f om p estigio s IIT Delhi CVC Copyright Protected Material, www.cvcblr.com 3
  • 4. What is SystemVerilog?  Superset of Verilog-2001  IEEE 1800-2005 standard  More information @ www.SystemVerilog.org M i f ti S t V il  Several books available:  SystemVerilog Assertions Handbook – Ajeetha, Ben Cohen, y g j , , Srinivasan, www.systemverilog.us  A Pragmatic approach to VMM adoption – Ajeetha, Ben, Srinivasan  SystemVerilog for Designers, Stuart Sutherland CVC Copyright 2008 4 www.cvcblr.com
  • 5. SystemVerilog - Evolution Classes, Temporal Sequential inheritance, Property Regular Definitions Expressions OOP based polymorphism Testbench Properties – capture temporal Constraint driven Constrained randomization Behavior: Assertion, B h i A ti Functional Coverage Semaphores Random Data Assumption, Coverage Inheritance Mailboxes Generation SVA Polymorphism Queues, MDAs MDA Data structures VirtualtiInterface g p, Associative A i Covergroup, sampling enums & Dynamic arrays Strings Enhanced programming Verilog 2001 (do while, break continue, hile break, contin e ++, --, +=. Etc.) DPI – Quickly connect C/C++ Enhanced Design Coverage & Very efficient and ease of use Better logical blocks – Constructs, modeling Assertion API always_comb, ff latch always comb _ff, _latch SV-Design SV D i DPI interface CVC Copyright 2008 5 www.cvcblr.com
  • 6. SystemVerilog - User view Has 5 major parts: SVD – SystemVerilog for Design SVA – SystemVerilog Assertions SVTB – SystemVerilog Testbench SV-DPI – Direct Programming Interface for better C/C++ interface SV-API – Application Procedural Interface  for Coverage, Assertion etc Coverage etc. CVC Copyright 2008 6 www.cvcblr.com
  • 7. Reference Books Source A Pragmatic Approach to VMM Adoption 2006 for Tutorial ISBN 0-9705394-9-5, http://www.systemverilog.us and Code nd (7) CVC Copyright 2009 bl
  • 8. SV Design-Data Types  Enhanced data types:  2-state (bit) logic 2 state ),  Potential memory & run time improvement (2-state)  High level models can avail 2-state  Clearer descriptions: a Verilog reg is NOT necessarily a “register” CVC Copyright 2008 8 www.cvcblr.com
  • 9. SV Design – Data types  User Defined types  Enums – local typedef local,  Strict type checking, typecast  Better modeling style easy to read style, read, maintain  State St t encoding - via language (not via di i l ( t i tool scripts)  Ease of debug, waveform CVC Copyright 2008 9 www.cvcblr.com
  • 10. SV Design – logic modeling  Verilog RTL – only always block  Combinatorial & Sequential  Inference by sensitivity list  One of the top 10 error prone usages – more for newbie  SV: Enhanced Modeling  always_comb y _  always_ff  always_latch CVC Copyright 2008 10 www.cvcblr.com
  • 11. What logic is being modeled?  Modeling combinatorial logic?  Use always_comb y  Modeling Sequential g q logic?  Use always_ff CVC Copyright 2008 11 www.cvcblr.com
  • 12. What logic is being modeled?  Modeling Latch?  Use always_latch  Reduces Synthesis- Simulation discrepancies  Language captures design intent (not pragmas, tool settings) g ) CVC Copyright 2008 12 www.cvcblr.com
  • 13. Abstract modeling - struct  C-like struct lk  Well proven data structure abstraction technique  Cut down do CVC Copyright 2008 # lines 13 www.cvcblr.com
  • 14. CVC Copyright Protected Material, www.cvcblr.com 14
  • 15. Interfaces – bread-n-butter of modern bread n butter SoCs CVC Copyright 2008 15 www.cvcblr.com
  • 16. Interfaces – SPI, OCP CVC Copyright 2009 www.cvcblr.com 16
  • 17. Old fashioned hook-up– Verilog description  Too verbose  Highly error prone  Maintenance head-ache  Not easy to CVC Copyright 2009 www.cvcblr.com reuse 17
  • 18. Typical sub-systemusing Verilog Modeled AHB AHB Master1 Master2 AHB AHB Slave1 Slave2  SoC is built using IPs – lot of ReUse  I di id Individual blocks pre-verified in standalone l bl k ifi d i t d l  Most Bugs Occur Between Blocks  A good number of “Wiring” Errors d b f “Wi i ” E CVC Copyright Protected Material, www.cvcblr.com 18
  • 19. Hookup various blocks – the old way addr module top(); top mem_controller mc (clk, rst_n, dout, addr, din, wr_rd); Mem din memory mem0(clk,rst n, addr, din, mem0(clk,rst_n, m_Controller wr_rd, dout); wr_rd Memory endmodule module mem_controller ( dout d t input clk, rst_n,[7:0] dout, output [3:0] addr, [7:0] din, wr_rd); module memory(output [7:0] dout, dout task write(); (); input clk, rst_n, [3:0] addr, addr <= ‘haa; [7:0] din, wr_rd); din <= $random; always @(posedge clk) wr_rd = 1’b1; if (wr rd) (wr_rd) @(p @(posedge clk); g ); mem[addr] <= din; wr_rd = 1’b0; endmodule : memory endtask : write CVC Copyright Protectedendmodule Material, www.cvcblr.com 19
  • 20. Interface interface simple_bus; // Define the interface module cpuMod(simple_bus b, input bit logic req, gnt; clk); ... logic [7:0] dd d l i [ ] addr, data; endmodule logic [1:0] mode; logic start, rdy; p _ endinterface: simple_bus module top; logic clk = 0; simple_bus sb_intf; // Instantiate the module memMod(simple_bus a, // Use the interface simple_bus interface memMod mem(sb_intf, clk); input bit clk); cpuMod cpu(.b(sb_intf), .clk(clk)); cpu( b(sb intf) clk(clk)); logic avail; endmodule // a.req is the req signal in the ’simple_bus’ interface always @(posedge clk) a.gnt <= a.req & a gnt a req avail; endmodule CVC Copyright 2008 20 www.cvcblr.com
  • 21. Assertion-Based Verification  It’s a verification technique  Instruments requirements with assertions  Clarifies eq i ements ith e ec table lang age Cla ifies requirements with executable language  Enables tools to preview assertion waveforms  Instruments design with assertions  Added visibility  White-box testing into its internal state  Provision for functional coverage information CVC Copyright 2008 21 www.cvcblr.com
  • 22. Applying ABV - Bus based SoC Simulate  What happened du g sim? at appe ed during s  Any protocol violation?  How many RW?  Was xfer interrupted? CVC Copyright 2008 22 www.cvcblr.com
  • 23. Use assertions sparingly  Non-intrusive  Works with any existing flow  The more you add, the more you gain CVC Copyright 2008 23 www.cvcblr.com
  • 24. Ross Video – SV verification for FPGAs  The Ross Video team created a robust verification environment utilizing the VMM's built-in:  self-checking lf h ki  scenario generation  transaction-level channels  transactors and  messaging services.  Extensive use of SystemVerilog assertions (SVA) CVC Copyright 2008 24 www.cvcblr.com
  • 25. Advantages of interface g customer success stories  Better design style  Disambiguate the communication g  Forces to have a clear interface specification upfront – takes little more time, b saves much more later on but h l  Reduces integration time  Add Assertions to interface, every block using it shall have to comply with the protocol CVC Copyright Protected Material, www.cvcblr.com 25
  • 26. Impact of Interface module netproc (SX_ux_soc, SX_ux_en, SX_ux_data, SX_ux_clav, interface utopia_i; SX_ux_clk, SX_cpu_BusMode, SX_cpu_Addr, SX_cpu_Sel, wire soc; // start of cell SX_cpu_Data, SX_cpu_Rd_DS, SX SX D t SX Rd DS SX_cpu_Wr_RW, W RW wire en; // enable SX_cpu_Rdy_Dtack, rst, clk); inout SX_ux_soc; Syste wire [7:0] data; // data wire clav; // cell available inout SX_ux_en; wire clk; // ATM layer clock inout [7:0] SX_ux_data; endinterface inout SX_ux_clav; Verilog9 V inout SX ux clk; SX_ux_clk; emVerilog interface cpu_i(input bit rst); inout SX_cpu_BusMode; wire BusMode; inout [11:0] SX_cpu_Addr; logic [11:0] Addr; inout SX_cpu_Sel; logic Sel; inout [7:0] SX_cpu_Data; wire [ 7:0] Data; inout SX_cpu_Rd_DS; logic g Rd_DS; ; inout SX_cpu_Wr_RW; 95 logic Wr_RW; inout SX_cpu_Rdy_Dtack; wire Rdy_Dtack; input rst; endinterface input clk; wire SX_ux_soc; module netproc(utopia_i ux, cpu_i cpu, wire SX_ux_en; input bit clk); wire [7:0] SX_ux_data; endmodule d d l wire SX ux clav; SX_ux_clav; wire SX_ux_clk; wire SX_cpu_BusMode; wire [11:0] SX_cpu_Addr; wire SX_cpu_Sel; wire [7:0] SX_cpu_Data; - 3X more co pact 3 o e compact wire SX_cpu_Rd_DS; _ p _ _ wire SX_cpu_Wr_RW; - Fewer wiring mistakes wire SX_cpu_Rdy_Dtack; wire rst; wire clk; endmodule 26
  • 27. Ecosystem around SV-FPGA  All major EDA vendors support SV for Design (simulators) g ( )  Synthesis: Synplify, leonardo  FPGA vendors – need more support  Latest update pending  Books, tutorials – plenty:  www.aldec.com/Downloads  Trainings: www cvcblr com/trainings www.cvcblr.com/trainings CVC Copyright Protected Material, www.cvcblr.com 27
  • 28. Aldec’s Active-HDL Design-flow manager CVC Copyright Protected Material, www.cvcblr.com 28
  • 29. SV & FPGA tool support  Active-HDL  SV-Design, Assertions (SVA + PSL)  Interface, Interface Debug  Modelsim-DE  SV-Design, SVA, PSL  Synplify  SV-Design, synthesizable constructs  Leonardo  Details awaited, call Mentor  Xilinx, Altera  Unknown, call your vendor , y CVC Copyright Protected Material, www.cvcblr.com 29
  • 30. SV & FPGA advanced technologies  With adoption of SV, modern design p paradigms emerge g g  ASIC prototyping – EVE Design systems  Jasper s Jasper’s ActiveDesign is one such technology  Can create waveforms for AHB, AXI etc. right from RTL  No TB required, plain RTL + ActiveDesign q ,p g CVC Copyright Protected Material, www.cvcblr.com 30
  • 31. Jasper’s ActiveDesign  Capture “information” during RTL design p phase:  Designer makes an assumption about the latency of output, FIFO size etc. y p ,  “show me a proof/witness/waveform” for such an occurrence  Can we optimize the latency to say 5  What-if I change the FIFO size to 32 here etc. CVC Copyright Protected Material, www.cvcblr.com 31
  • 32. CVC Trainings – www.cvcblr.com/trainings  Verification Centric Course  Comprehensive Functional Verification (CFV)  Language Course  IEEE 1800 SystemVerilog for Design (SVD)  IEEE 1800 SystemVerilog Assertions (SVA)  IEEE 1800 SystemVerilog for Verification (SVTB)  IEEE 1850 Property Specification Language (PSL)  IEEE 1647 E 1647,  Methodology  VMM, OVM, AVM, CDV, ABV  Workshops  Gate Level Si l ti (GLS) G t L l Simulation  ABV Beyond RTL (ABV)  Coverage Driven Verification (CDV)  OOP for functional Verification CVC Copyright 2009 www.cvcblr.com 32
  • 33. CVC Publications, tutorials, workshops •Quick start guides Tutorials guides, • SVA • PSL • VMM •Workshops : •Gate Level Simulation •ABV beyond RTL y •Coverage Driven Verification •OOP for Verification 33
  • 34. CVC Copyright Protected Material, www.cvcblr.com 34