SystemVerilog Design: User Experience Defines Multi-Tool, Multi-Vendor Language Working Set Experience from Four Years of SVD Adoption

Similar documents
Designing the Future with Efficiency

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc.

SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Sunburst Design - Advanced SystemVerilog for Design & Verification by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Unifying Design and Verification

SystemVerilog Design: User Experience Defines Multi-Tool, Multi-Vendor Language Working Set No Excuses for Not Using SystemVerilog in Your Next Design

A User s Experience with SystemVerilog

Last Lecture. Talked about combinational logic always statements. e.g., module ex2(input logic a, b, c, output logic f); logic t; // internal signal

EE 4755 Digital Design Using Hardware Description Languages

Verilog: The Next Generation Accellera s SystemVerilog Standard

Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies

!== vs.!= and === vs. ==

A short introduction to SystemVerilog. For those who know VHDL We aim for synthesis

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review

ECE 4514 Digital Design II. Spring Lecture 13: Logic Synthesis

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

A short introduction to SystemVerilog. For those who know VHDL We aim for synthesis

SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Designs?

Can My Synthesis Compiler Do That?

EECS150 - Digital Design Lecture 6 - Logic Simulation

OVERVIEW: ============================================================ REPLACE

Chap 4 Connecting the Testbench and. Design. Interfaces Clocking blocks Program blocks The end of simulation Top level scope Assertions

Quick Introduction to SystemVerilog: Sequental Logic

Nikhil Gupta. FPGA Challenge Takneek 2012

Programmable Logic Devices HDL-Based Design Flows CMPE 415

Lecture 8: More SystemVerilog Features

Course Profile SystemVerilog Design

Standard Gotchas Subtleties in the Verilog and SystemVerilog Standards That Every Engineer Should Know

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog

Using bind for Class-based Testbench Reuse with Mixed- Language Designs

UVM hardware assisted acceleration with FPGA co-emulation

UVM for VHDL. Fast-track Verilog for VHDL Users. Cont.

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

COMPREHENSIVE SYSTEMVERILOG-SYSTEMC-VHDL MIXED-LANGUAGE DESIGN METHODOLOGY

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

EECS150 - Digital Design Lecture 6 - Logic Simulation. Encoder Example

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

SystemVerilog HDL - a programming language

TSEA44: Computer hardware a system on a chip

Hardware Description Languages (HDLs) Verilog

EECS 470 Lab 3. SystemVerilog Style Guide. Department of Electrical Engineering and Computer Science College of Engineering University of Michigan

SystemVerilog Data Types

CSE140L: Components and Design Techniques for Digital Systems Lab

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilator: Speedy Reference Models, Direct from RTL

Abstract BFMs Outshine Virtual Interfaces for Advanced SystemVerilog Testbenches

SystemVerilog Lecture 3. Prof. Gerald E. Sobelman Dept. of Electrical and Computer Engineering University of Minnesota Minneapolis, MN USA

CSE140L: Components and Design

Figure 1: Verilog used to generate divider

Getting to Grips with the SystemVerilog Scheduler

EECS 470 Lab 1. Verilog: Hardware Description Language

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits

VHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses

תכן חומרה בשפת VERILOG הפקולטה להנדסה

Module- or Class-Based URM? A Pragmatic Guide to Creating Verification Environments in SystemVerilog. Paradigm Works, Inc. Dr.

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Lecture 32: SystemVerilog

HDL Introduction and Reuse

Digital Design and Computer Architecture

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS 373 Lab 3: Introduction to Memory Mapped I/O

Verification Prowess with the UVM Harness

Programming with HDLs

EECS 470 Lab 1. Verilog: Hardware Description Language

Synthesis of Combinational and Sequential Circuits with Verilog

Extending SystemVerilog Data Types to Nets

Chapter 4 :: Topics. Introduction. SystemVerilog. Hardware description language (HDL): allows designer to specify logic function only.

Testbenches for Sequential Circuits... also, Components

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

Project 1a: Hello World!

APB4 GPIO. APB4 GPIO Datasheet Roa Logic, All rights reserved

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx

The University of Alabama in Huntsville ECE Department CPE Final Exam April 28, 2016

SystemVerilog Essentials Simulation & Synthesis

Modular SystemVerilog

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2016

Is SystemVerilog Useful for FPGA Design & Verification?

Digital Design with SystemVerilog

The Application of SystemC to the Design and Implementation of a High Data Rate Satellite Transceiver

EE 4755 Digital Design Using Hardware Description Languages

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Example Best and Median Results

MCMASTER UNIVERSITY EMBEDDED SYSTEMS

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

ECE331: Hardware Organization and Design

IP Core Design. Lecture 6 Introduction to Verilog-2001

Intro to Digital Logic, Lab 5 Sequential Logic. Lab Objectives. Assigned Task Mapping sequential logic to the FPGA

Stuart Sutherland, Sutherland HDL, Inc.

Digital Design using HDLs EE 4755 Midterm Examination

Bulletproofing FSM Verification Automated Approach to Detect Corner Case Issues in an FSM Design

EEL 4783: HDL in Digital System Design

Cadence Technical Analysis of System Verilog DECEMBER 2002

Making the Most of your MATLAB Models to Improve Verification

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Chapter 4. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 4 <1>

Transcription:

SystemVerilog Design: User Experience Defines Multi-Tool, Multi-Vendor Language Working Set Experience from Four Years of SVD Adoption Junette Tan, PMC

Agenda Motivating Factors for SV Adoption Migration Challenges Benefits Gained 2

Motivating Factors for SV Adoption Align with industry momentum on Verilog - New technologies being introduced and tested in Verilog - No use wasting resources trying to push developments in VHDL Target one HDL/HVL language for the company - Mixed language usage increases complexity Powerful new constructs in SystemVerilog - User-defined enumerations, packed structs, interfaces increase code readability - always_comb and always_ff procedural blocks decrease coding errors - Code compactness, design reuse, scalability = 10-20% increase in productivity 3

Timeline of Adoption 2005 IEEE 1800-2005 released 2010 SV training and coding guidelines created 2011 First project developed in SV and company-wide deployment 4

Migration Challenges 5

Migration Challenges Resistance to change - Promoted migration through company-wide presentation - Organized multiple instructor-led training sessions - Created self-paced online training modules - Migrated re-use components to SystemVerilog 6

Migration Challenges Lots of VHDL knowledge, sparse Verilog knowledge - Coordinated effort with training vendor to create coding guidelines and custom training, took conservative approach knowing tool limitations (e.g., no interfaces) - Provided VHDL to SystemVerilog examples - Created library of SystemVerilog code for design community module shift_register #( parameter NUM_ELEMENTS = 8, parameter NUM_BITS = 4 )( use logic for everything output logic [NUM_ELEMENTS-1:0][NUM_BITS-1:0] data_out, always_ff @(posedge clk or negedge rstb) begin : sr_logic use always_ff for sequential logic if ( rstb!= 1 b1 ) begin data_out <= '{default:0}; end end : sr_logic 7 use assignment patterns for arrays

Migration Challenges Troublesome tools - Early adoption meant working closely with EDA vendor to flush out all bugs: Packages Size casting with parameters Assignment patterns Enumerated types Packed structs and unions Multi-dimensional arrays Mixed language usage - Weekly calls to drive all issues to closure before they could become gates in the project schedule - Unexpected number of issues faced with all tools in the design flow (e.g., simulator, emulation tool, FPGA tool, synthesis tool, equivalence checker) 8

Migration Challenges SystemVerilog Gotchas - Compiler directive `default_nettype was not interpreted consistently across tools `default_nettype none `default_nettype none module bad_example ( module correct_example ( input logic a, input wire logic a, input logic b, input wire logic b, no net type declared! Why bother with `default_nettype? cpu cpu_inst (.halted(halter), net type wire specified for input ports typo would result in incorrect implicit net declaration! 9

Migration Challenges SystemVerilog Gotchas - int as reserved word caused grief when connecting to VHDL ports named int vhdl_block vhdl_inst (.int(irq), can t use int as port name, so must create SV-friendly wrapper for VHDL code 10

Metrics Projects using SVD to date (gate count including reuse IP) 7 projects (1043.8M gates) Number of SV files in 1 st Project 2788 Number of SV issues reported 120 Number of engineers trained in SV 150 11

Current Challenges Interfaces - Still have yet to take advantage of connectivity gains that interfaces can provide interface apb_intf; apb_addr_t paddr; logic pwrite; apb_data_t pwdata; apb_data_t prdata; endinterface module apb_master ( apb_intf intf, module apb_slave ( apb_intf intf, are bi-directional 12 module top_level ( apb_intf intf_inst( apb_master master_inst (.intf(intf_inst), apb_slave slave_inst (.intf(intf_inst), endmodule Interface connections Interfaces must be instantiated

Current Challenges Interfaces - Currently use structs as a workaround package apb_pkg; typedef struct packed { apb_addr_t paddr; logic pwrite; apb_data_t pwdata; } apb_ctrl; typedef struct packed { logic pready; apb_data_t prdata; } apb_resp; endpackage Signals grouped by direction module apb_master ( input wire apb_pkg::apb_resp resp, output apb_pkg::apb_ctrl ctrl, module apb_slave ( input wire apb_pkg::apb_ctrl ctrl, output apb_pkg::apb_resp resp Must specify correct direction! 13

Current Challenges Low Power - Simulation tool doesn t support adding isolation when the DUT port is connected to logic or unpacked array port in the testbench bit, byte, shortint, int, longint, user-defined types, enumerated data types, structures, unions, [and so on,] and constructs, such as clocking blocks, program blocks, classes, packages, and so on, are not supported and cannot be part of a power-down domain EDA vendor Logic datatypes had to be converted to wire or reg Unpacked arrays had to be split up 14

Benefits Gained Aligned with industry momentum - Many vendor issues, but no project delays due to conservative migration One HDL to rule them all - All reuse IP successfully migrated to SV, no need to support multiple languages - All new IP designed in SV Productivity gains - Code compaction achieved with always_comb (no more sensitivity lists) and.name shorthand notation cpu cpu_inst (.clk,.rstb, - Abstraction achieved with new logic datatype (no more wire or reg) - No more configuration files! - Simulation performance increased.name shorthand notation looks clean and reduces chance of error 15

Thank you!