SlideShare a Scribd company logo
Upgrading to SystemVerilog for
FPGA Designs
   - Presented at FPGA Camp, Bangalore


         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
   capacities.
 Co-authored leading books in the Verification domain.

 Presented papers, tutorials in various conferences,
   publications and avenues.
 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.

        CVC Copyright Protected Material, www.cvcblr.com
                                                           3
What is SystemVerilog?
   Superset of Verilog-2001
   IEEE 1800-2005 standard
   More information @ www.SystemVerilog.org
   Several books available:
     SystemVerilog Assertions Handbook – Ajeetha, Ben Cohen,
      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,                                       Functional Coverage
                                                          Semaphores         Random Data
Assumption, Coverage                                       Inheritance
                                                          Mailboxes          Generation
           SVA                                             Polymorphism
                                                            Queues,
                                                                          Covergroup,
                                                           Virtual Interface
    MDAs          Data structures                           Associative
                                                                         sampling
                  enums                                    & Dynamic
                                                           arrays
    Strings       Enhanced programming   Verilog   2001
                  (do while, break, continue,
                  ++, --, +=. Etc.)
DPI – Quickly connect C/C++
                                                                 Enhanced Design
                                                                          Coverage &
Very efficient and ease of use                                            Assertion API
    Better logical blocks –                                     Constructs, modeling
    always_comb, _ff, _latch                                         SV-Design
                                                                            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.
       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

                                                               (7)
                           CVC Copyright 2009
SV Design-Data Types
   Enhanced data types:
       2-state (bit), logic
   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
       Strict type checking, typecast
   Better modeling style, easy to read,
    maintain
   State encoding - via language (not via
    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
       always_ff
       always_latch


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

   Modeling
    combinatorial logic?
   Use always_comb

   Modeling Sequential
    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)
         CVC Copyright 2008
                                12
         www.cvcblr.com
Abstract modeling - struct


                            C-like struct
                            Well proven
                             data structure
                             abstraction
                             technique
                            Cut down
    CVC Copyright 2008
                             # lines
                                          13
    www.cvcblr.com
CVC Copyright Protected Material, www.cvcblr.com
                                                   14
Interfaces – bread-n-butter of modern
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
 Individual blocks pre-verified in standalone

 Most Bugs Occur Between Blocks

 A good number of “Wiring” Errors
             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_Controller




                            din               memory mem0(clk,rst_n, addr, din,
                                                wr_rd, dout);
                           wr_rd Memory      endmodule

                                           module mem_controller (
                           dout                       input clk, rst_n,[7:0] dout,
                                                      output [3:0] addr, [7:0] din,
                                                      wr_rd);
module memory(output [7:0] 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)                                 @(posedge clk);
      mem[addr] <= din;                       wr_rd = 1’b0;
endmodule : memory                          endtask : write
                   CVC Copyright Protected endmodule
                                            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] addr, data;
                                                 endmodule
logic [1:0] mode;
logic start, rdy;
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));
logic avail;                                     endmodule
// a.req is the req signal in the ’simple_bus’
    interface
always @(posedge clk) 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 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 during sim?
                           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
       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
          customer success stories
   Better design style
     Disambiguate the communication

     Forces to have a clear interface
      specification upfront – takes little more
      time, but saves much more later on
   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_cpu_Wr_RW,
 wire en;         // enable                                SX_cpu_Rdy_Dtack, rst, clk);
                                                            inout SX_ux_soc;




                                           SystemVerilog
 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;




                                                                                                                          Verilog95
                                                            inout SX_ux_clk;
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     Rd_DS;                                          inout SX_cpu_Wr_RW;
  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                                                   wire 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 compact                                           wire SX_cpu_Rd_DS;
                                                            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)
   Synthesis: Synplify, leonardo
   FPGA vendors – need more support
       Latest update pending
   Books, tutorials – plenty:
       www.aldec.com/Downloads
   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, Debug
   Modelsim-DE
       SV-Design, SVA, PSL
   Synplify
       SV-Design, synthesizable constructs
   Leonardo
       Details awaited, call Mentor
   Xilinx, Altera
       Unknown, call your vendor

          CVC Copyright Protected Material, www.cvcblr.com
                                                             29
SV & FPGA advanced
technologies
   With adoption of SV, modern design
    paradigms emerge
   ASIC prototyping – EVE Design systems
   Jasper’s ActiveDesign is one such
    technology
   Can create waveforms for AHB, AXI etc.
    right from RTL
       No TB required, plain RTL + ActiveDesign
         CVC Copyright Protected Material, www.cvcblr.com
                                                            30
Jasper’s ActiveDesign
   Capture “information” during RTL design
    phase:
   Designer makes an assumption about the
    latency of output, FIFO size etc.
       “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
   Methodology
        VMM, OVM, AVM, CDV, ABV
   Workshops
        Gate Level Simulation (GLS)
        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
      • SVA
      • PSL
      • VMM
   •Workshops :
      •Gate Level Simulation
      •ABV beyond RTL
      •Coverage Driven Verification
      •OOP for Verification
                                         33
CVC Copyright Protected Material, www.cvcblr.com
                                                   34

More Related Content

What's hot (10)

PPTX
Switching activity
VLSI SYSTEM Design
 
PPT
Next Gen Datacenter
Rui Lopes
 
PDF
Barcamp 12 mei 2011 - Pearl chain
inovatiecentrumlimburg
 
PDF
GY-HM790E
AVNed
 
PDF
My Ph.D. Research
Po-Ting Wu
 
PPTX
Stott May Presentation
caoimheos
 
PDF
Bitstream and hybrid-based video quality assessment for IPTV monitoring
Förderverein Technische Fakultät
 
PDF
Apresentação feita em 2005 no Annual Simulation Symposium.
Antonio Marcos Alberti
 
PDF
JVC GY-HM790
AV ProfShop
 
PDF
Thesis L Leyssenne - November 27th 2009 - Part1
Laurent Leyssenne
 
Switching activity
VLSI SYSTEM Design
 
Next Gen Datacenter
Rui Lopes
 
Barcamp 12 mei 2011 - Pearl chain
inovatiecentrumlimburg
 
GY-HM790E
AVNed
 
My Ph.D. Research
Po-Ting Wu
 
Stott May Presentation
caoimheos
 
Bitstream and hybrid-based video quality assessment for IPTV monitoring
Förderverein Technische Fakultät
 
Apresentação feita em 2005 no Annual Simulation Symposium.
Antonio Marcos Alberti
 
JVC GY-HM790
AV ProfShop
 
Thesis L Leyssenne - November 27th 2009 - Part1
Laurent Leyssenne
 

Viewers also liked (20)

PPT
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
Amiq Consulting
 
PDF
The Future of SystemVerilog Verification
DVClub
 
PPTX
Har 3 bmp verification
UW Discovery Farms
 
PDF
VLSI
Himanshu Gome
 
DOCX
VLSI based final year project topics and ideas
Nxtlogic Software Solutions
 
DOCX
Asset Verification & Tagging of Clinical Departments
Angela Kaul
 
PDF
VLSI Design Final Project - 32 bit ALU
Sachin Kumar Asokan
 
PPTX
SOC Verification using SystemVerilog
Ramdas Mozhikunnath
 
PDF
System verilog verification building blocks
Nirav Desai
 
PPTX
ieee projects list
8130809758
 
PPTX
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
FPGA Central
 
PPTX
global wireless e-voting
sahiba javid
 
PPTX
Global wireless e voting powerpoint presentation
Prateeksha Singh
 
PDF
GLOBAL WIRELESS E-VOTING FULL REPORT FOR SEMINAR
JSPM's JSCOE , Pune Maharashtra.
 
DOC
Global wireless e-voting
ashujain55
 
ODP
GLOBAL WIRELESS E-VOTING (JAYESH J CUSAT)
The federation of lazy jobless people (FLJP)
 
PPTX
Global wireless e voting
vitam,berhampur
 
PPTX
Global wireless e voting system
Abhishek Abhi
 
PDF
Vinod_CV
vinod p
 
PDF
State of the Word 2011
photomatt
 
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
Amiq Consulting
 
The Future of SystemVerilog Verification
DVClub
 
Har 3 bmp verification
UW Discovery Farms
 
VLSI based final year project topics and ideas
Nxtlogic Software Solutions
 
Asset Verification & Tagging of Clinical Departments
Angela Kaul
 
VLSI Design Final Project - 32 bit ALU
Sachin Kumar Asokan
 
SOC Verification using SystemVerilog
Ramdas Mozhikunnath
 
System verilog verification building blocks
Nirav Desai
 
ieee projects list
8130809758
 
PCIe Gen 3.0 Presentation @ 4th FPGA Camp
FPGA Central
 
global wireless e-voting
sahiba javid
 
Global wireless e voting powerpoint presentation
Prateeksha Singh
 
GLOBAL WIRELESS E-VOTING FULL REPORT FOR SEMINAR
JSPM's JSCOE , Pune Maharashtra.
 
Global wireless e-voting
ashujain55
 
GLOBAL WIRELESS E-VOTING (JAYESH J CUSAT)
The federation of lazy jobless people (FLJP)
 
Global wireless e voting
vitam,berhampur
 
Global wireless e voting system
Abhishek Abhi
 
Vinod_CV
vinod p
 
State of the Word 2011
photomatt
 
Ad

Similar to Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010 (20)

PDF
Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
FPGA Central
 
PDF
Agile Edge Valtech
David Nuescheler
 
PDF
Eb07 Day Communiqué Web Content Management En
Valtech
 
PDF
A comprehensive formal verification solution for ARM based SOC design
chiportal
 
PDF
Web Content Management And Agile
Valtech UK
 
PDF
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
David Nuescheler
 
PPTX
Непрерывное тестирование для улучшения качества кода
SQALab
 
PPTX
Dependency injection
housecor
 
PDF
JBoye Presentation: WCM Trends for 2010
David Nuescheler
 
DOCX
Varunkdave resume
Varun Dave
 
PDF
Lafauci dv club oct 2006
Obsidian Software
 
PPT
Dc tco in_a_nutshell
erjosito
 
PDF
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut
 
PPTX
Am 04 track1--salvatore orlando--openstack-apac-2012-final
OpenCity Community
 
PPT
Virtual classroom
Krishna Chaithanya
 
PPTX
Microsoft HPC User Group
sjwoodman
 
DOC
Basavanthrao_resume_vlsi
Basavanthrao Malkapgouda
 
PPTX
OpenStack and OpenFlow Demos
Brent Salisbury
 
PDF
Wc Mand Connectors2
day
 
PPTX
Mastering Chaos - A Netflix Guide to Microservices
Josh Evans
 
Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
FPGA Central
 
Agile Edge Valtech
David Nuescheler
 
Eb07 Day Communiqué Web Content Management En
Valtech
 
A comprehensive formal verification solution for ARM based SOC design
chiportal
 
Web Content Management And Agile
Valtech UK
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
David Nuescheler
 
Непрерывное тестирование для улучшения качества кода
SQALab
 
Dependency injection
housecor
 
JBoye Presentation: WCM Trends for 2010
David Nuescheler
 
Varunkdave resume
Varun Dave
 
Lafauci dv club oct 2006
Obsidian Software
 
Dc tco in_a_nutshell
erjosito
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut
 
Am 04 track1--salvatore orlando--openstack-apac-2012-final
OpenCity Community
 
Virtual classroom
Krishna Chaithanya
 
Microsoft HPC User Group
sjwoodman
 
Basavanthrao_resume_vlsi
Basavanthrao Malkapgouda
 
OpenStack and OpenFlow Demos
Brent Salisbury
 
Wc Mand Connectors2
day
 
Mastering Chaos - A Netflix Guide to Microservices
Josh Evans
 
Ad

More from FPGA Central (12)

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

Recently uploaded (20)

PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
July Patch Tuesday
Ivanti
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 

Upgrading to SystemVerilog for FPGA Designs - FPGA Camp Bangalore, 2010

  • 1. Upgrading to SystemVerilog for FPGA Designs - Presented at FPGA Camp, Bangalore 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 capacities.  Co-authored leading books in the Verification domain.  Presented papers, tutorials in various conferences, publications and avenues.  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. 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  Several books available:  SystemVerilog Assertions Handbook – Ajeetha, Ben Cohen, 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, Functional Coverage Semaphores Random Data Assumption, Coverage Inheritance Mailboxes Generation SVA Polymorphism Queues, Covergroup, Virtual Interface MDAs Data structures Associative sampling enums & Dynamic arrays Strings Enhanced programming Verilog 2001 (do while, break, continue, ++, --, +=. Etc.) DPI – Quickly connect C/C++ Enhanced Design Coverage & Very efficient and ease of use Assertion API Better logical blocks – Constructs, modeling always_comb, _ff, _latch SV-Design 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. 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 (7) CVC Copyright 2009
  • 8. SV Design-Data Types  Enhanced data types:  2-state (bit), logic  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  Strict type checking, typecast  Better modeling style, easy to read, maintain  State encoding - via language (not via 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  always_ff  always_latch CVC Copyright 2008 10 www.cvcblr.com
  • 11. What logic is being modeled?  Modeling combinatorial logic?  Use always_comb  Modeling Sequential 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) CVC Copyright 2008 12 www.cvcblr.com
  • 13. Abstract modeling - struct  C-like struct  Well proven data structure abstraction technique  Cut down CVC Copyright 2008 # lines 13 www.cvcblr.com
  • 14. CVC Copyright Protected Material, www.cvcblr.com 14
  • 15. Interfaces – bread-n-butter of modern 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  Individual blocks pre-verified in standalone  Most Bugs Occur Between Blocks  A good number of “Wiring” Errors 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_Controller din memory mem0(clk,rst_n, addr, din, wr_rd, dout); wr_rd Memory endmodule module mem_controller ( dout input clk, rst_n,[7:0] dout, output [3:0] addr, [7:0] din, wr_rd); module memory(output [7:0] 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) @(posedge clk); mem[addr] <= din; wr_rd = 1’b0; endmodule : memory endtask : write CVC Copyright Protected endmodule 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] addr, data; endmodule logic [1:0] mode; logic start, rdy; 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)); logic avail; endmodule // a.req is the req signal in the ’simple_bus’ interface always @(posedge clk) 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 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 during sim?  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  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 customer success stories  Better design style  Disambiguate the communication  Forces to have a clear interface specification upfront – takes little more time, but saves much more later on  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_cpu_Wr_RW, wire en; // enable SX_cpu_Rdy_Dtack, rst, clk); inout SX_ux_soc; SystemVerilog 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; Verilog95 inout SX_ux_clk; 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 Rd_DS; inout SX_cpu_Wr_RW; 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 wire 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 compact wire SX_cpu_Rd_DS; 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)  Synthesis: Synplify, leonardo  FPGA vendors – need more support  Latest update pending  Books, tutorials – plenty:  www.aldec.com/Downloads  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, Debug  Modelsim-DE  SV-Design, SVA, PSL  Synplify  SV-Design, synthesizable constructs  Leonardo  Details awaited, call Mentor  Xilinx, Altera  Unknown, call your vendor CVC Copyright Protected Material, www.cvcblr.com 29
  • 30. SV & FPGA advanced technologies  With adoption of SV, modern design paradigms emerge  ASIC prototyping – EVE Design systems  Jasper’s ActiveDesign is one such technology  Can create waveforms for AHB, AXI etc. right from RTL  No TB required, plain RTL + ActiveDesign CVC Copyright Protected Material, www.cvcblr.com 30
  • 31. Jasper’s ActiveDesign  Capture “information” during RTL design phase:  Designer makes an assumption about the latency of output, FIFO size etc.  “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  Methodology  VMM, OVM, AVM, CDV, ABV  Workshops  Gate Level Simulation (GLS)  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 • SVA • PSL • VMM •Workshops : •Gate Level Simulation •ABV beyond RTL •Coverage Driven Verification •OOP for Verification 33
  • 34. CVC Copyright Protected Material, www.cvcblr.com 34