SystemVerilog and UVM for the ABC system verification Francis Anghinolfi 14 Nov 2013 SystemVerilog MiniWorkshop.

Slides:



Advertisements
Similar presentations
Chapter 15:Introduction to Verilog Testbenches Objectives In this section,you will learn about designing a testbench: Creating clocks Including files Strategic.
Advertisements

CMSC 611: Advanced Computer Architecture
Verilog.
Simulation executable (simv)
Using emulation for RTL performance verification
Shift Registers Module M11.1 Section 7.3.
Verilog Intro: Part 1.
by Adiel Khan Staff CAE Synopsys
Slink TX Slink merger Teststand setup Slink merger firmware and testing Firmware features - DAQ RAMs for saving out input and output data - Possible to.
MS-SoC Best Practices – Advanced Modeling & Verification Techniques for first-pass success By Neyaz Khan Greg Glennon Dan Romaine.
Title of Presentation Presenter Matthew J Morley Teaching Functional Verification Workshop DAC 2002, Sunday June 9 th. Testbench Automation Concepts.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Firmware implementation of Integer Array Sorter Characterization presentation Dec, 2010 Elad Barzilay Uri Natanzon Supervisor: Moshe Porian.
CS 201 Functions Debzani Deb.
Maze Running Robots EGR106 Project Spring Project Goal Computer control (through a Matlab program) of a Lego robot to: 1.Explore a maze (start to.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Digital System Design Verilog ® HDL Tasks and Functions Maziar Goudarzi.
Today’s Lecture Process model –initial & always statements Assignments –Continuous & procedural assignments Timing Control System tasks.
A Tale of Two Languages: SystemVerilog & SystemC by David C Black Senior MTS Doulos.
Gaurav Gupta Freescale Semiconductors Adiel Khan, Parag Goel, Amit Sharma, Varun S, Abhisek Verma Synopsys
VERIFICATION OF I2C INTERFACE USING SPECMAN ELITE By H. Mugil Vannan Experts Mr. Rahul Hakhoo, Section Manager, CMG-MCD Mr. Umesh Srivastva, Project Leader.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
RM2D Let’s write our FIRST basic SPIN program!. The Labs that follow in this Module are designed to teach the following; Turn an LED on – assigning I/O.
Status Report Atsushi Nukariya. FPGA training course ・ I solved 15 problems which are proposed by Uchida-san. ・ I used above circuit board. FPGA.
George Skarbek May What drives? There are three types of virtual drives that can help. They are: A mapped network drive Virtual CD/DVD drive RAM.
MODULE 1.3 VERILOG BASICS UNIT 1 : INTRODUCTION TO VERILOG TOPIC : System Tasks and Compiler directive.
Firmware based Array Sorter and Matlab testing suite Final Presentation August 2011 Elad Barzilay & Uri Natanzon Supervisor: Moshe Porian.
Simulink ® Interface Course 13 Active-HDL Interfaces.
Some Course Info Jean-Michel Chabloz. Main idea This is a course on writing efficient testbenches Very lab-centric course: –You are supposed to learn.
L16 – Testbenches for state machines. VHDL Language Elements  More examples HDL coding of class examples Testbench for example  Testing of examples.
SoC Verification HW #2 TA: Wei-Ting Tu Assignment: 04/12/06
System Verilog Testbench Language David W. Smith Synopsys Scientist
SystemVerilog. History Enhancement of Verilog Enhancement of Verilog 2002 – accellera publishes SystemVerilog – accellera publishes SystemVerilog.
My Second FPGA for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
Ideas about Tests and Sequencing C.N.P.Gee Rutherford Appleton Laboratory 3rd March 2001.
FED RAL: Greg Iles5 March The 96 Channel FED Tester What needs to be tested ? Requirements for 96 channel tester ? Baseline design Functionality.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Introduction to VLSI Design – Lec01. Chapter 1 Introduction to VLSI Design Lecture # 11 High Desecration Language- Based Design.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
Sequence, Sequence on the Wall...
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
Reconfigurable Computing - VHDL - Types John Morris Chung-Ang University The University of Auckland.
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
SVA Encapsulation in UVM enabling phase and configuration aware assertions by Mark Litterick Verification Consultant Verilab GmbH, Munich, Germany.
Assignment write a short notes on 1.Manufacturing Testing. 2.Functional Testing. 3.Files and Text I/O. 4.Differentiate the cpld and fpga architecture.
VHDL Discussion Sequential Sytems. Memory Elements. Registers. Counters IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology.
Spring 2009W. Rhett DavisNC State UniversityECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 4: Testing, Dataflow Modeling Spring 2009.
Random Number Generation Section 3.10 Section 4.12.
Boundary-Scan driven Vectorless Testing on Active Components Steve Hird Loveland, CO.
Demonstrations of RDBE-PFB Data Flow. Review the original PFB Data Flow.
© 2009 Pearson Education, Upper Saddle River, NJ All Rights ReservedFloyd, Digital Fundamentals, 10 th ed Digital Logic Design Dr. Oliver Faust.
October Test Beam DAQ. Framework sketch Only DAQs subprograms works during spills Each subprogram produces an output each spill Each dependant subprogram.
18/05/2000Richard Jacobsson1 - Readout Supervisor - Outline Readout Supervisor role and design philosophy Trigger distribution Throttling and buffer control.
ABC February 2013 ABC 130 Final Design Review 1F. Anghinolfi08/02/13.
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
Architecture optimization and design verification of the Timepix3 and the Velopix pixel ASICs Tuomas Poikela (TUCS/CERN) SV/UVM Mini workshop.
Progress on Pixel Region Optimization and SystemVerilog Simulation Phase 2 Pixel Electronics Meeting – Progress on Pixel Region Optimization and SystemVerilog.
Verification Environment for a Simple Pixel Chip Model Pixel Phase 2 Electronics Meeting during TK Week – E. Conti *, P. Placidi *, S. Marconi.
System on Chip Design and Test ECE 715
ABC130 Testability and SEU Protection Reset eFUSE
Digital System Verification
Stitching UVM Test benches into Integration-Level
Stitching UVM Test benches into Integration-Level
HDL Programming Fundamentals
SystemVerilog for Verification
SystemVerilog for Verification
SystemVerilog and Verification
Presentation transcript:

SystemVerilog and UVM for the ABC system verification Francis Anghinolfi 14 Nov 2013 SystemVerilog MiniWorkshop

OUTLINE  The ABC verification environments  SystemVerilog and UVM  UVM techniques for the ABC system  Development plans  SystemVerilog for ABC system? 14 Nov 2013 SystemVerilog MiniWorkshop2

The ABC verification environment  What is ABC function (in short) 256 ch events L0 trigger R3 trigger L1 trigger Commands Buffer Actions Buffer Readout Packets Verification does (in short) : Stimulation of hits, triggers, commands Analysis of packets (in relation to Stimulations) 14 Nov 2013 SystemVerilog MiniWorkshop3

 One of the verification setup (verilog only based) Test Harness Verification does (in short) : Stimulation of hits, triggers, commands, precoded time relations Analysis of packets (in relation to Stimulations) tbIncludeDUT The ABC verification environment tests tasks Clocks, fixed sequences Sequence orders Python Analysis Analyser 14 Nov 2013 SystemVerilog MiniWorkshop4 Joel de Witt UCSC F.A. CERN

The ABC verification environment  Algorithm Development Using Matlab and Cadence Incisive ‘Matlab Test Bench.m functions’ STIMULUSRESPONSE Input Arguments HDL ENTITY HDL TEST BENCH Matlab GUI output Cadence Incisive Verilog Simulator 14 Nov 2013 SystemVerilog MiniWorkshop5 Michelle RAL

The ABC verification environment  Object Oriented Software Trace Base Object Input Monitor Score Board Output Monitor Txgen Test Cases Driver DUT - Verilog (RAM based test vectors) - System Verilog - Device Under Test: Verilog Michelle RAL 14 Nov 2013 SystemVerilog MiniWorkshop6

SystemVerilog and UVM  MY starting point : the SystemVerilog training course …. (Sorry Mr. Fitch! It was a wonderful course!) 14 Nov 2013 SystemVerilog MiniWorkshop7

SystemVerilog and UVM  And later on about UVM …. (from an Accelera course slide) 14 Nov 2013 SystemVerilog MiniWorkshop8

SystemVerilog and UVM  At least I have seen the interest of THIS feature in SV/UVM : $RANDOM ! In the spirit of SV, this has to do with test & functionality coverage, through generation of random data and address sets. For exp. systems the feature becomes naturally useful as experiments have to deal with random (physics) data AND random triggers time distributions ((with constraints )…) 14 Nov 2013 SystemVerilog MiniWorkshop9

 So generating random physics data set is an easy trick rand int unsigned hit; constraint Hits (hit dist {[0,255]};) for (int i=0;i<256;i++) begin if (i == hit) hitbus[i] = 1; else hitbus[i] = 0; end SystemVerilog and UVM transacti on driver 14 Nov 2013 SystemVerilog MiniWorkshop10

SystemVerilog and UVM transaction sequence r  What about getting a fix pattern data ? rand bit [57:0] com0; constraint busy0 {com0[7:0] dist {[0:255]}; } constraint busy1 {com0[15:8] dist {[0:255]}; } Data = { 4'h3, 4'h0, 4'h0, 4'h0, 4'h1, 4'hf, 3'h0,LEFT, 4'h1}; `uvm_do_with (req, {com0[57:0] == {HEADER, HCCField, HCCID, ABCID, RegAdress, WRITE, Data} ; start_data < 100;}) Com0 is 58 bits word : 2^58 = , seems beyond SV limits 14 Nov 2013 SystemVerilog MiniWorkshop11

UVM for the ABC verification InterfaceDUTMonitorSequencedriverAgentSequencersP_sequenceenvtest Transaction ! What appeared is that UVM is a sort of wrapper formalism for SystemVerilog UVM is a METHODOLOGY Predefined list of files Preformatted files contents 14 Nov 2013 SystemVerilog MiniWorkshop12

UVM for the ABC verification  For ABC the interest is in running parallel transactions sequencedriveragent L0C OM inter face sequencedriveragent inter face sequencedriveragent sequencers env test DUT Hit L0 COM sequencedriveragent sequencedriveragent R3L1 inter face L1 R3 14 Nov 2013 SystemVerilog MiniWorkshop13 transaction

UVM for the ABC verification HitBus_if si (clk); ABCDriveCOML0_if comL0_si (clk); ABCDriveR3L1_if R3L1_si (clk); ABC_top.sv (module) task main_phase(uvm_phase phase); phase.raise_objection(this); begin // create and start the virtual sequence virtual_seq vseq; vseq = virtual_seq::type_id::create(); vseq.start(m_env.m_virtual_seqr); end phase.drop_objection(this); endtask: main_phase ABC_test1.sv (class) ABC_env.sv (class) m_virtual_seqr.HitBus_seqr = m_HitBus_agent.m_sequencer; m_virtual_seqr.COM_seqr = m_COM_agent.m_sequencer; m_virtual_seqr.L0_seqr = L0_agent.m_sequencer; m_virtual_seqr.L1_seqr = L1_agent.m_sequencer; 14 Nov 2013 SystemVerilog MiniWorkshop14

UVM for the ABC verification virtual ABCDriveCOML0_if vif; m_driver.L0_si = vif; m_driver.seq_item_port.connect (m_sequencer.seq_item_export); L0_agent.sv (class) virtual ABCDriveCOML0_if.senderL0 L0_si; virtual task drive_L0_trans (ABCDriveL0_transaction tl0); drive_L0 (tl0.L0, 2*bit_period*tl0.L0_dist); endtask : drive_L0_trans seq_item_port.get(tl0); // Get drive_L0_trans(tl0); // and Drive L0_Driver.sv (class) Same (similar) class definitions for the 3 other transactions (L1, com, Hit) Interface decl. Seq. to Drive connection Transaction, interval Get and Drive 14 Nov 2013 SystemVerilog MiniWorkshop15

UVM for the ABC verification L1_sequence.sv (class) task body; // Does L1 selection within count for (int i=0; i<=count;i++) begin L1val = L1val+1; $display ("L1val = \t %b, count = \t %b", L1val[7:0], i); `uvm_do_with (req, {L1C[10:0] == {HEADER, L1val} ; L1_dist = $dist_exponential(1,400);}) end Number of L1 sequences 11bits sequence, 3 bits Header, 8 bits binary count number, Interval btw. sequences with exponential distribution 14 Nov 2013 SystemVerilog MiniWorkshop16

UVM for the ABC verification L1_transaction.sv (class) rand bit [10:0] L1C; constraint busy9 {L1C dist {[0:2047]}; } rand bit pick_L1; // Select First Level Trigger signal constraint busy10 {pick_L1 dist {0 :/ 9, 1 :/ 1}; } // 10% at 1 rand int unsigned L1_dist; constraint val1 {L1_dist dist {[200:400]}; } Variables declarations with constraints 14 Nov 2013 SystemVerilog MiniWorkshop17

UVM for the ABC verification Hit COM L0 L1 14 Nov 2013 SystemVerilog MiniWorkshop18

UVM for the ABC verification Hit COM L0 L1 14 Nov 2013 SystemVerilog MiniWorkshop19

Development plans  Develop the control & input sequences close to real case  Join with the existing setup for ABC+HCC system, developed at RAL by M. Key-Charriere  Explore the random nature of stimuli to verify/validate the response of the ABC/HCC to false commands, bit errors, disordered triggers etc … 14 Nov 2013 SystemVerilog MiniWorkshop20

SV/UVM for ABC system ?  Could I have described the same sequences with std. verilog ?  My experience : a veeery looooong training process  UVM methodology saved me : I think I could not do the job with SystemVerilog without the UVM formalism  The monitor/checker options did not look so attractive, however I did not do much work there  Pay off for the effort …. ? 14 Nov 2013 SystemVerilog MiniWorkshop21