Parag Goel Sr. Corporate Application Engineer Synopsys India Pvt. Ltd.

Slides:



Advertisements
Similar presentations
IETF TICTOC Considerations about IEEE1588 version 2 for Telecom usage.
Advertisements

Generalized Multiprotocol Label Switching: An Overview of Signaling Enhancements and Recovery Techniques IEEE Communications Magazine July 2001.
Primary Author: Girish Verma Secondary Author(s): Navya Prabhakar Presenter: Navya Prabhakar Company/Organization: CircuitSutra USB Modeling Quick Start.
1 System Level Verification of OCP-IP based SoCs using OCP-IP eVC Himanshu Rawal eInfochips, Inc.,4655 Old Ironsides Drive, Suite 385,Santa Clara, CA
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Addressing the Network – IPv4 Network Fundamentals – Chapter 6.
by Adiel Khan Staff CAE Synopsys
OSI MODEL Maninder Kaur
1 William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
Semester 4 - Chapter 4 – PPP WAN connections are controlled by protocols In a LAN environment, in order to move data between any two nodes or routers two.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 2 The OSI Model and the TCP/IP.
Transition Mechanisms for Ipv6 Hosts and Routers RFC2893 By Michael Pfeiffer.
1 Review of Important Networking Concepts Introductory material. This module uses the example from the previous module to review important networking concepts:
William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 2: Protocols and Architecture.
 The Open Systems Interconnection model (OSI model) is a product of the Open Systems Interconnection effort at the International Organization for Standardization.
OIS Model TCP/IP Model.
1 Review of Important Networking Concepts Introductory material. This slide uses the example from the previous module to review important networking concepts:
1 Protocol Interaction (ISO’s Open Systems Interconnection (OSI model)) the 7 layers.
Gaurav Gupta Freescale Semiconductors Adiel Khan, Parag Goel, Amit Sharma, Varun S, Abhisek Verma Synopsys
Data Communications and Networks
Chapter 4: Managing LAN Traffic
LECTURE 9 CT1303 LAN. LAN DEVICES Network: Nodes: Service units: PC Interface processing Modules: it doesn’t generate data, but just it process it and.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
NetworkProtocols. Objectives Identify characteristics of TCP/IP, IPX/SPX, NetBIOS, and AppleTalk Understand position of network protocols in OSI Model.
Characteristics of Communication Systems
Protocol Architectures. Simple Protocol Architecture Not an actual architecture, but a model for how they work Similar to “pseudocode,” used for teaching.
Protocols and the TCP/IP Suite
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
William Stallings Data and Computer Communications 7 th Edition Data Communications and Networks Overview Protocols and Architecture.
Chapter Three Network Protocols By JD McGuire ARP Address Resolution Protocol Address Resolution Protocol The core protocol in the TCP/IP suite that.
Chap 9 TCP/IP Andres, Wen-Yuan Liao Department of Computer Science and Engineering De Lin Institute of Technology
I/O Example: Disk Drives To access data: — seek: position head over the proper track (8 to 20 ms. avg.) — rotational latency: wait for desired sector (.5.
New and active ways to bind to your design by Kaiming Ho Fraunhofer IIS.
Internet SecurityInternet Security Dr. ClincyLecture1 CS 4491 Internet Security Dr. Clincy Networking Fundamentals Note: I am still “tweaking” your syllabus.
TCP/IP TCP/IP LAYERED PROTOCOL TCP/IP'S APPLICATION LAYER TRANSPORT LAYER NETWORK LAYER NETWORK ACCESS LAYER (DATA LINK LAYER)
Spring 2006Computer Networks1 Chapter 2 Network Models.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 03_b Protocol Layering Instructor: Dr. Li-Chuan Chen Date: 09/15/2003 Based in part upon slides of Prof.
Optimization of Verification Effort using Reusable Sequence Collection Dipesh Handa Gaurav Chugh Gaurav Minda Kumar Rajeev Ranjan.
TTCN-3 MOST Challenges Maria Teodorescu
Boost Verification Results by Bridging the Hw/Sw Testbench Gap by Matthew Ballance Verification Technologist Mentor Graphics.
Memory Subsystem verification – Can it be taken for granted ?
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
Routing and Routing Protocols
SVA Encapsulation in UVM enabling phase and configuration aware assertions by Mark Litterick Verification Consultant Verilab GmbH, Munich, Germany.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Unit III Bandwidth Utilization: Multiplexing and Spectrum Spreading In practical life the bandwidth available of links is limited. The proper utilization.
Linux Operations and Administration Chapter Eight Network Communications.
1. Layered Architecture of Communication Networks: TCP/IP Model
Rehab AlFallaj.  Network:  Nodes: Service units: PC Interface processing Modules: it doesn’t generate data, but just it process it and do specific task.
IPSec is a suite of protocols defined by the Internet Engineering Task Force (IETF) to provide security services at the network layer. standard protocol.
IP Protocol CSE TCP/IP Concepts Connectionless Operation Internetworking involves connectionless operation at the level of the Internet Protocol.
Week #8 OBJECTIVES Chapter #5. CHAPTER 5 Making Networks Work Two Networking Models –OSI OPEN SYSTEMS INTERCONNECTION PROPOSED BY ISO –INTERNATIONAL STANDARDS.
Register This! Experiences Applying UVM Registers
Network Models.
PPP Protocol.
Chapter 5: Making Networks Work
Lecture (2).
Configuring Virtual Circuits
Using MIS 2e Chapter 6 Appendix
PPP PROTOCOL The First semester
Understanding the OSI Reference Model
CT1303 LAN Rehab AlFallaj.
Network Administration CNET-443
Lec 5 Layers Computer Networks Al-Mustansiryah University
Stitching UVM Test benches into Integration-Level
Stitching UVM Test benches into Integration-Level
1 Multi-Protocol Label Switching (MPLS). 2 MPLS Overview A forwarding scheme designed to speed up IP packet forwarding (RFC 3031) Idea: use a fixed length.
Routing and the Network Layer (ref: Interconnections by Perlman
PPP Protocol.
Presentation transcript:

Parag Goel Sr. Corporate Application Engineer Synopsys India Pvt. Ltd.

Stack based architecture – Reasons for adoption  Easier Debug  Faster convergence to where network failures originate  The same user-level (application) program can be used over diverse communication networks.  Same WWW browser can be used when you are connected to the internet via a LAN or a dial-up line. Application Presentation Session Transport Network Data Link Physical Physical Media Signaling Packets Frames PHITs -> Symbols LLI Stack Specification SAP-based communication Transaction Fragments Interconnect Adaptation Layer  Breaking network designs into functional layers  Enables each layer to be governed by simple protocols  Each with a few well-defined tasks

 Verification IP & Testbench Challenges  Architectural Challenges  Stimulus generation - Generate varied traffic corresponding to each layer  Visibility and granularity of control - retrieving transaction for analysis  Support for intermediate layer and multi-lane scenarios  Application Challenges  Verifying Transformations  Graceful End-of-test  Enough debugging hooks  Need to map verification challenges to existing methodologies  Leverage available methodology capabilities  Build intelligent layers around base classes for more powerful verification setup Agenda

Architectural Challenges - I  Ability to inject stimulus at any layer  It should be possible to configure any of the layers as top-most layer generating the highest upstream sequence.  Ability to arbitrate, i.e. mix and match stimulus from the upper layer as well as from the testbench - Stimulus Generation CRC Interconnect Transactions Fragment Packet Header Frame Header PHIT Header Fragment PHIT(96 bit vector) PHY Symbol[11]... 8-bit PHY Symbol[0] 8-bit SERIALSERIAL STACKTRANSFORMATTIONSTACKTRANSFORMATTION AXI/AHB/OCP etc.. Upstream Protocol Downstream Protocol One-to-Many Many-to-One  Ability to retrieve and modify the transaction at any specific layer via callbacks, factory mechanism and UVM command-line override.

 Appropriate hooks/callbacks/ports for each component  Retrieve the transactions from any layer  Provision to hook up intermediate custom drivers which can then drive the interface between the layers.  Callbacks across monitors to verify transformations across the layers. - Verifying intermediate layer Layered– VIP L3L3 L3L3 L2 L1 DUT Custom VIP User defined L2 User defined Traffic towards L3/L2 Traffic towards L1/L2 Custom VIP Layered - VIP L1 L2 L3L3 L3L3 Transactions / sequences End-End checking or L2 Tx L1 Tx Serial /TLM Architectural Challenges - II

- Verifying multi-lane scenarios  Sequencer Definition  typedef class uvm_sequencer#(mphy_transfer) mphy_sequencer; class lli_agent extends uvm_agent;  Sequencer Handle Declaration – Dynamic Array  mphy_sequencer pa_lane_seqr[]; function void build_phase(uvm_phase phase); if(!uvm_config_db#(lli_configuration)::get(this, “”, “cfg”, cfg)) `uvm_fatal(………….)  Sequencer creation  pa_lane_seqr = new[cfg.tx_lane_count]; foreach(pa_lane_seqr[i]) pa_lane_seqr[i] = mphy_sequencer::type_id::create($sformatf(“pa_lane_seqr[%0d]”, i), this); endfunction endclass Interconnect Adaption Layer Transaction Layer Data Link Layer Physical Adaptor Layer pa_lane_seqr[0] pa_lane_seqr[1] ….. ……. pa_lane_seqr[n] pa_lane_seqr[0] pa_lane_seqr[1] ….. ……. pa_lane_seqr[n] M- RX[0] Serial Interface M- TX[0] M- RX[0] M- RX[0] M- TX[1] M- TX[1] M- RX[0] M- RX[0] M- TX[n] M- TX[n].. ……………………… Instances of PHY/per lane Multiple TLM Ports Expanded version of l3_sequencer – composed of sub- sequencer per lane Pair of TX-RX transactors Architectural Challenges - III

Addressing Architectural challenges - I - Generic architecture Virtual Sequencer l2_sequencer Layer-I (L1) Common Processing Code generic_sequen ce Layer-II (L2) Common Processing Code l1_sequencer l2_sequence l1_sequence l3_sequencer generic_sequen ce Layer-III (L3) Common Processing Code l3_sequence  Class & UVM factory Registration  class generic_sequence#(type REQ=uvm_seqence_item, type RSP=REQ) extends uvm_sequence#(REQ,RSP); `uvm_object_param_utils(generic_sequence#(REQ,RSP))  Parent Sequencer Declaration  `uvm_declare_p_sequencer(uvm_sequencer#(REQ))  Dispatch: Drive REQ on downstream sequencer  task dispatch(uvm_seqeuncer#(REQ) seqr, REQ req); this.req = req; this.start(seqr); endtask  Transaction Handle  local REQ req;  Body method – Initiate REQ  task body(); if (this.req != null) begin this.wait_for_grant(); this.send_request(req); this.wait_for_item_done(); end endtask  response_handler method – To discard RSP  function void response_handler (uvm_sequence_item response); /* Just drop the response. */ endfunction endclass

Addressing Architectural challenges - II - Generic architecture – Flow Diagram Call blk_put_port.put(l1_seq_item) Call blk_put_port.put(l1_seq_item) Sample interface & form l3_seq_item Call blk_put_port.put(l2_seq_item) Call blk_put_port.put(l2_seq_item) Process l3_seq_item -> l2_seq_item Process l3_seq_item -> l2_seq_item Accept task put(l2_sequence_item l2_seq_item) Accept task put(l2_sequence_item l2_seq_item) blk_put_port.connect (blk_put_export) blk_put_port.connect (blk_put_export) Process l2_seq_item -> l1_seq_item Process l2_seq_item -> l1_seq_item blk_put_port.connect (blk_put_export) blk_put_port.connect (blk_put_export) Accept task put(l1_sequence_item l1_seq_item) Accept task put(l1_sequence_item l1_seq_item) Process & Call blk_peek_port.peek(l1_seq_item) Process & Call blk_peek_port.peek(l1_seq_item) Send out to testbench Response Request Form Response Passed to the l1_rsp_seqr to l1 Transmit Path blk_peek_port.connect(bl k_peek_export) Consumed by testbench Input l1_seq_item via. l1_seqr Process l1_seq_item -> l2_seq_item Process l1_seq_item -> l2_seq_item Call generic_seq.dispatch(l2_seqr, l2_seq_item) Call generic_seq.dispatch(l2_seqr, l2_seq_item) l2_seqr Input l2_seq_item via. l2_seqr Process l2_seq_item -> l3_seq_item Process l2_seq_item -> l3_seq_item Call generic_seq.dispatch(l3_seqr, l3_seq_item) Call generic_seq.dispatch(l3_seqr, l3_seq_item) l3_seqr Input l3_seq_item via. l3_seqr Process l2_seq_item -> l3_seq_item Process l2_seq_item -> l3_seq_item Drive interface TRANSMIT FLOW RECEIVE FLOW

- Scoreboarding Challenges - I Passive Monitor IAL … TL … PAL … DL … Frag DeFrag REQ SQNR RSP SQNR TL+DL+PAL Monitor IAL … TL … PAL … DL … IAL LLI STACKED DUT Physical Interface IAL-TL-DLL-PAL Layers Classified for 1.Request/Response 2.All traffic types  Transformations that would need to be verified  End to end transformations in the ‘transmit’ and ‘receive’ paths  Transformations across all the traffic types  For requests / responses Application Challenges - I

STACK - I STACK - II Request Transmitted Request Received Response Generated Response Received Request Transmitted Request Received Response Generated Response Received Application Challenges - I

Addressing Scoreboarding Challenges class lli_system_env extends uvm_env; typedef lli_scoreboard#(svt_mipi_lli_transaction) trans_scbd; typedef lli_scoreboard#(svt_mipi_lli_packet) pkt_scbd;  An instance of VIP AGENT - LLI Master/Slave  svt_mipi_lli_agent mstr, slv;  IAL Scoreboard Instances for request xact  trans_scbd m_s_ll_xact_sb; trans_scbd m_s_be_xact_sb;  Construct the IAL scoreboard instances  m_s_ll_xact_sb = new("m_s_ll_xact_sb", this); m_s_be_xact_sb = new("m_s_be_xact_sb", this);  Connect the monitor to the scoreboard for Master LL request  mstr.ial_mon.tx_ll_ta_xact_observed_port. connect(m_s_ll_xact_sb.tx_export); slv.ial_mon.rx_ll_in_xact_observed_port. connect(m_s_ll_xact_sb.rx_export);  Connect the monitor to the scoreboard for Master BE request  mstr.ial_mon.tx_be_ta_xact_observed_port. connect(m_s_be_xact_sb.tx_export); slv.ial_mon.rx_be_in_xact_observed_port. connect(m_s_be_xact_sb.rx_export); endclass  Building components   Connect local export to comparator export   Reporting results  class lli_scoreboard#(type T=uvm_sequence_item) extends uvm_scoreboard;  Export Transmitted/Received Requests  uvm_analysis_export#(T) tx_export, rx_export;  "in order comparator"  uvm_in_order_comparator #(T, lli_comp#(T), uvm_class_converter#(T)) comparator; class lli_comp #(type T = int); static uvm_comparer relevant_comparer = new(); static function bit comp(input T a, input T b); relevant_comparer.physical = 1; relevant_comparer.abstract = 0; return a.compare(b, relevant_comparer); endfunction endclass Policy Based design :  template taking several type parameters  specialized to encapsulates orthogonal aspects of the behavior of the instantiated class

- End-of-test Mechanism Application Challenges - II REQUEST RESPONSE REQUEST RESPONSE RSP Sequence REQ Sequence REQ SQNR RSP SQNR TRANSMIT PATH: Raise an objection when new REQ started Drop an objection when RSP is received RECEIVE PATH: Raise an objection when new REQ received Drop an objection when RSP is transmitted Raise/drop objection in the req_sequence’s pre_body() and post_body() Raise an objection in a callback - the request gets accepted by the highest layer Drop objections once the peer stack generates the response and the same is received Raise an objection when request appears on the receive path. For a reactive sequence, drop the objection - response passed down on the transmit path Drain Time - Amount of time to wait once all objections have been dropped int stack_round_trip_time; task main_phase(uvm_phase phase); phase.phase_done.set_drain_time (this, 2*stack_round_trip_time); endtask Global timeout - The phase ends if the timeout expires even before all objections are dropped `define HS_MODE_GLOBAL_TIMEOUT 5ms `define LS_MODE_GLOBAL_TIMEOUT 25ms function void test_base::build_phase(...);  Set the global timeout  if(sys_cfg.mode == LS_MODE) set_global_timeout(`LS_MODE_GLOBAL_TIMEOUT); else set_global_timeout(`HS_MODE_GLOBAL_TIMEOUT); endfunction

Application Challenges - III - Debug Abstraction  Tracing the transformation across each layer Needs to be captured through TLM ports and dumped for Post processing  Debug abstraction : Dumping of protocol objects  Use transaction IDs to map across transformations

 Layered architecture in network protocols bring in advanced functionalities but complex verification challenges  Can be mapped across multiple new protocols (the MIPI family, PCIe, USB etc) and network designs  UVM base classes provides the infrastructure on which required capabilities can be built  user defined enhancing sequence layering, phase completion tracking, transformation monitoring  Verification infrastructure should continue to evolve with added complexity in design Summary