Using Advanced OOP Concepts To Integrate Templatized Algorithms for Standard Protocols With UVM by Anunay Bajaj, R&D Engineer Synopsys India Pvt. Ltd.

Slides:



Advertisements
Similar presentations
System Integration and Performance
Advertisements

© 2003 Xilinx, Inc. All Rights Reserved Course Wrap Up DSP Design Flow.
Programmable FIR Filter Design
Using emulation for RTL performance verification
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
In collaboration with Hualin Gao, Richard Duncan, Julie A. Baca, Joseph Picone Human and Systems Engineering Center of Advanced Vehicular System Mississippi.
Unconstrained UVM SystemVerilog Performance You may add your company logo to this page, ONLY Presented by Wes Queen Verifcation Manager IBM.
Current-Switched R-2R DAC. Voltage-Switched R-2R DAC.
MotoHawk Training Model-Based Design of Embedded Systems.
Universal Verification Methodology (UVM) Benefits Mustafa Khairallah Boost Valley Boost Valley Consulting 1.
Conversion Between Video Compression Protocols Performed by: Dmitry Sezganov, Vitaly Spector Instructor: Stas Lapchev, Artyom Borzin Cooperated with:
Software Lifecycle A series of steps through which a software product progresses Lifetimes vary from days to months to years Consists of –people –overall.
CLEANROOM SOFTWARE ENGINEERING.
Software Testing.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Digital Radio Receiver Amit Mane System Engineer.
Software Defined Radio
MAPLDDesign Integrity Concepts You Mean We’re Still Working On It? Sustaining a Design.
Verification and Test Automation of UML Projects Nikita Voinov, Vsevolod Kotlyarov (Saint-Petersburg State Polytechnic University) The Third Spring Young.
Implementation of MAC Assisted CORDIC engine on FPGA EE382N-4 Abhik Bhattacharya Mrinal Deo Raghunandan K R Samir Dutt.
1 Integration Verification: Re-Create or Re-Use? Nick Gatherer Trident Digital Systems.
New and active ways to bind to your design by Kaiming Ho Fraunhofer IIS.
A New Method For Developing IBIS-AMI Models
SoC Verification HW #2 TA: Wei-Ting Tu Assignment: 04/12/06
System Verilog Testbench Language David W. Smith Synopsys Scientist
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
Optimization of Verification Effort using Reusable Sequence Collection Dipesh Handa Gaurav Chugh Gaurav Minda Kumar Rajeev Ranjan.
Quality Driven SystemC Design By Nasir Mahmood. Hybrid Approach The idea here is to combine the strengths of simulation – namely the ability to handle.
Designing an ALU Taken from various sources Primary source: Digital Design and Computer Architecture by Harris &Harris.
Chuck Benz ASIC & FPGA Design csrGen: Automated CSRs for ASIC/FPGA Processor Interfaces Chuck Benz Chuck Benz ASIC & FPGA Design
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.

Digital Transmission & Analog Transmission. 4.#2 1. DIGITAL-TO-DIGITAL CONVERSION Digital Data -> Digital Signal Three techniques: 1.line coding (always.
1 Implementation in Hardware of Video Processing Algorithm Performed by: Yony Dekell & Tsion Bublil Supervisor : Mike Sumszyk SPRING 2008 High Speed Digital.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Memory Subsystem verification – Can it be taken for granted ?
Final Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
Data Structures Using C++ 2E
SVA Encapsulation in UVM enabling phase and configuration aware assertions by Mark Litterick Verification Consultant Verilab GmbH, Munich, Germany.
Component Design By the end of the course each student will design and test a MIPS processor Datapath components will be designed and tested in the next.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Class-D Garage Band Amplifier Team: Aaron Danielson, Robert Mann, Randall Newcomb, Scott Russell Sponsor: Nigel Thompson.
EE694v-Verification-Lect7-1- Verification Plan & Levels of Verification The Verification Plan Yesterdays and today’s design environment Design specification.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
Fundamentals of Programming Languages-II
Digital Logic & Design Dr.Waseem Ikram Lecture 44.
5-2-3 Analogue to Digital Converters (ADC). Analogue to Digital Conversion The process is now the opposite of that studied in Topic Now we wish.
242/102/49 0/51/59 181/172/166 Primary colors 248/152/29 PMS 172 PMS 137 PMS 546 PMS /206/ /227/ /129/123 Secondary colors 114/181/204.
Software Engineering Algorithms, Compilers, & Lifecycle.
Status and Plans for Xilinx Development
Virtual Lab on Automation Systems A Proposal under Mechatronics Laboratory Presented By Tanuja Sheorey PDPM IIITDM Jabalpur.
EMT 351/4 DIGITAL IC DESIGN Verilog Behavioral Modeling  Finite State Machine -Moore & Mealy Machine -State Encoding Techniques.
Pusat Pengajian Kejuruteraan Mikroelektronik EMT 351/4 DIGITAL IC DESIGN Verilog Behavioural Modeling (Part 4) Week #
Programmable Logic Devices
System on Chip Design and Test ECE 715
Algorithms II Software Development Life-Cycle.
Lecture 13 Derivation of State Graphs and Tables
How to Quick Start Virtual Platform Development
Digital System Verification
Krishnan Balakrishnan, Courtney Fricano, and Kaushal Modi
Stitching UVM Test benches into Integration-Level
Lecture 1.3 Hardware Description Languages (HDLs)
Topics Introduction Hardware and Software How Computers Store Data
Chapter 3 – Combinational Logic Design
Verification Plan & Levels of Verification
Dr. Tassadaq Hussain Introduction to Verilog – Part-4 Expressing FSM in Verilog (contd) and FSM State Encoding Dr. Tassadaq Hussain.
Presentation transcript:

Using Advanced OOP Concepts To Integrate Templatized Algorithms for Standard Protocols With UVM by Anunay Bajaj, R&D Engineer Synopsys India Pvt. Ltd.

Sponsored By: 2 of 20 Agenda: Reusability: Leaps and Lapse Protocol Commonalities Hidden Time traps that we do not know UVM With a difference: Proposed packages Summary

Sponsored By: 3 of 20 Why Reusability : Recap Easier to understand and debug Debug effort reduced Clean and Compact look Saves run time errors and mismatches Forward Compatibility The greatest gift Reduce Repetition No need to reinvent the wheel

Sponsored By: 4 of 20 The PID cycle Plan: Covers all the stages of environment architecture Implement: Includes the code based on Plan Deliver: Successful Product delivery My Successful Verification Environment PlanImplementDeliver

Sponsored By: 5 of 20 Protocol commonalities Encoding and Decoding Data Integrity Clock Generation and Recovery Data Sampling Digital Filters Running Disparity……and many more

Sponsored By: 6 of 20 The Pitfall Code-Recode of similar logic or algorithms across multiple verification environments -Hidden man-hours being wasted -Need to verify the logic every time -Varying coding standards

Sponsored By: 7 of 20 Questions popping up Am I satisfied with my Reusability? Can I still reduce my PID time? Have I overcome Hidden Time traps? Are the returns of UVM enough? Do I see an Opportunity begging?

Sponsored By: 8 of 20 My UVM wants to be Intelligent Understand the need of the architecture (Plan) Select the appropriate enhancement package(Implement) Identify the algorithms as per the need Reuse the Protocol centric algorithms

Sponsored By: 9 of 20 Proposed Packages Standard Template Utility Container(STUC) classes Templates for day to day utility blocks pertaining to clock,data sampling etc. Standard Template Algorithms Container(STAC) classes Templates classes for standard encoding/decoding and data integrity schemes Linear encoding etc. Standard Template Math Container(STMC) classes Templates for DSP specific blocks requiring transforms and filters

Sponsored By: 10 of 20 Classes in the packages STAC STUC uvm_stuc_clock_recoveryuvm_stuc_clock_generationuvm_stuc_calc_running_disparityuvm_stuc_data_samplinguvm_stuc_lane_management STMC uvm_stmc_math_encoder

Sponsored By: 11 of 20 Container classes code structure class container_name #(int ENCODING_TYPE=0, type INSTREAM=bit/int, type OUTSTREAM=bit/int, ) extends uvm_object; More container related declarations Three prime components virtual function bit/void (input INSTREAM _in_data, output OUTSTREAM _out_data ); endfunction Algorithm selection machine calls desired conversion scheme package ; endpackage ENCODING_TYPE in UVM document

Sponsored By: 12 of 20 Encoding Schemes Tabulated in UVM User Manual S No.Coding SchemeParameter 1.8b/10b`8B10B 2.N-bit CRC Check`NBITCRC 3.Manchester Coding`MANCHESTER 4.Digital Butterworth Filter `FILTER 1.This list will be exhaustive 2.Shall be updated from time to time

Sponsored By: 13 of 20 Steps for the user Specialize the desired template class with appropriate values Create the object of the specialized class Call the algorithm_specific function and provide input _in_data Obtain Encoded/Decoded _out_data from the same function

Sponsored By: 14 of 20 1.a Utilities :Clock Recovery Basic Clock Recovery Block Diagram class uvm_stuc_clock_recovery extends uvm_object; virtual task uvm_clock_rec (ref bit _in_data, _clk, ref _out_data ); t_edge_detection_and_sampling_circuitry ( _in_data, _clk, _out_data); endtask endclass //uvm_stuc_clock_recovery Output Clock 1.The task wraps Edge detection and Sampling Circuitry into a single task 2.Very Simple in nature 3.More complex blocks can be evolved User specified Ref Clock User Input data PCI Express MIPI Ethernet USB

Sponsored By: 15 of 20 1.b Utilities :Clock Generation //Top level module module top; bit clk; real freq; real duty_cycle; uvm_stuc_clock_generator clk_gen_object; clk_gen_object=new(); initial begin clk_gen_object.uvm_stuc_clock_gen (clk,freq,duty_cycle); //Other user code here end endmodule class uvm_stuc_clock_generator extends uvm_object; virtual task uvm_clock_gen (ref clk, ref freq, ref duty_cycle ); //Clock generation code here endtask endclass //uvm_stuc_clock_generator **The most common block** User specifies values by over-riding this task Sample Top Level Module of user Testbench Allocate memory Call the task with user specified inputs Ethernet USB I2C PCI Express All AMBA Protocols SDIO Interlaken And Many More……

Sponsored By: 16 of 20 1.c Utilities :Data Sampling class uvm_stuc_data_sampling #( int SAMPLING_TYPE=0 ) extends uvm_object; int _s_type=SAMPLING_TYPE; virtual task data_sampling (ref bit _in_data, ref bit _reference_clk=0, ref bit _out_data ); case(_s_type) `NRZ: t_nrz_code(_in_data,,_out_data); `MANCHESTER: t_manchester_code (_in_data, _reference_clk, _out_data); `PSK: t_psk_code(_in_data,out_data); //More sampling algorithms endcase endtask virtual task t_nrz_code(input _in_data, output _out_data); //NRZ Code conversion here endtask virtual task t_manchester_code(input _in_data, _reference_clk, output _out_data); //Manchester Code conversion here endtask SAMPLING_TYPE in UVM document

Sponsored By: 17 of 20 1d. Lane Management class uvm_stuc_lane_management #(type INSTREAM=bit, int WIDTH=0, int LANES=0, )extends uvm_object; int _active_lanes; bit [WIDTH-1:0] _lane_count [LANES][$]; virtual function void lane_mgmt (input INSTREAM _indata, WIDTH _width ); case(_active_lanes) //Function calling based on the number of //active lanes endcase endfunction endclass //uvm_stuc_lane_management PCI Express USB MIPI CSI-2

Sponsored By: 18 of 20 2.Standard Algorithms & Math Blocks class uvm_stmc_math_encoder #( type INSTREAM=bit, int ENCODING_TYPE=0, int ORDER=0, int PHASE=0, int POLES=0, int ZEROS=0, int TIME_LOWER_LIMIT=0, int TIME_UPPER_LIMIT=0, type OUTSTREAM=bit ) extends uvm_object; class uvm_stac_data_integrity_encoder #(int ENCODING_TYPE=0, type INSTREAM=bit, type OUTSTREAM=bit, int ENCODE_POLYNOMIAL=1 )extends uvm_object; int _e_type = ENCODING_TYPE; int _e_poly =ENCODE_POLYNOMIAL; class uvm_stac_standard_encoder #( int ENCODING_TYPE=0, type INSTREAM=bit, type OUTSTREAM=int )extends uvm_object; int _e_type = ENCODING_TYPE

Sponsored By: 19 of Transforms and filters virtual function bit math_encoder (input ENCODING_TYPE _e_type, ORDER _order, PHASE _phase, POLES _poles, ZEROS _zeros, TIME_LOWER_LIMIT _t_ll, TIME_UPPER_LIMIT _t_ul, INSTREAM _in_data, output _out_data ); case(_e_type) `Z_TRANSFORM: out_data= f_z_transform(_phase,_t_ll,_t_ul,_in_data); `FILTER: out_data=f_filter(_order,_poles,_zeros); // …….. Other cases here endcase endfunction 1.Video and Audio Encryption Algorithms 2.Customized Digital Signal Processing blocks

Sponsored By: 20 of 20 Summary Need to harness Protocol commonalities Need to make a standard verification environment across the industry Full usage of Reusability Reduced Repetition using templatized approach Verification developers get a head start: No need to code from scratch Consistency across all the verification blocks in SoC

Sponsored By: 21 of 20 Q&A

Sponsored By: 22 of 20 Thank You !