A Design and Verification Company Zaiq’s Transaction API Proposal v2.

Slides:



Advertisements
Similar presentations
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
Advertisements

COM vs. CORBA.
The eCos real-time operating system an open source tool to create embedded kernels and applications.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
Requirements for the Next Version of SCE-API. 2 5/14/ :32 PM Overview l Basic Requirements meet SCE-MI 1.0 requirements backwards compatibility.
Implementing Rule Checking Early in the Design Cycle to Reduce Design Iterations and Verification Time Kent Moffat DesignAnalyst Product Manager Mentor.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
Protocols and the TCP/IP Suite
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Design Synopsys System Verilog API Donations to Accellera João Geada.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
© 2005 The MathWorks, Inc. Advanced Technologies to Accelerate Mixed Signal Simulation Pieter J. Mosterman Senior Research Scientist The MathWorks, Inc.
Protocols and the TCP/IP Suite Chapter 4. Multilayer communication. A series of layers, each built upon the one below it. The purpose of each layer is.
An Introduction to Software Architecture
1CADENCE DESIGN SYSTEMS, INC. Cadence Proposed Transaction Level Interface Enhancements for SCE-MI SEPTEMBER 11, 2003.
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
Intelligent Interleaving of Scenarios: A Novel Approach to System Level Test Generation Shady Copty, Itai Jaeger(*), Yoav Katz, Michael Vinov IBM Research.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
SystemC: A Complete Digital System Modeling Language: A Case Study Reni Rambus Inc.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
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.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
System Verilog Testbench Language David W. Smith Synopsys Scientist
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Hardware-software Interface Xiaofeng Fan
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
3.14 Work List IOC Core Channel Access. Changes to IOC Core Online add/delete of record instances Tool to support online add/delete OS independent layer.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
Support Across The Board ™ Visual DSP Kernel (VDK)
© 2005 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU HDL Co-Simulation.
SCE-MI Meeting 1 San Jose’, 14 th Nov Author: Andrea Castelnuovo SCE-MI Integrating Emulation in a system level design methodology San Jose’, 14/11/2003.
Discussion of ITC Goals. Historical Goals From SCE-API Marketing presentation Circa 2001.
Concurrency, Processes, and System calls Benefits and issues of concurrency The basic concept of process System calls.
How to write a MSGQ Transport (MQT) Overview Nov 29, 2005 Todd Mullanix.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Way beyond fast © 2002 Axis Systems, Inc. CONFIDENTIAL Axis Common Transaction Interface (CTI) Architecture Highlights 9/11/2003 Ching-Ping Chou Axis Systems,
Discussion of ITC Goals. Historical Goals From SCE-API Marketing presentation Circa 2001.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
Lecture 4 General-Purpose Input/Output NCHUEE 720A Lab Prof. Jichiang Tsai.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Discussion of ITC Goals. Historical Goals From SCE-API Marketing presentation Circa 2001.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
April 15, 2013 Atul Kwatra Principal Engineer Intel Corporation Hardware/Software Co-design using SystemC/TLM – Challenges & Opportunities ISCUG ’13.
Introduction to Operating Systems Concepts
Space FSW Conference 2016 Matthew Conte Software Engineer
Module 12: I/O Systems I/O hardware Application I/O Interface
Digital System Verification
Distribution and components
Design Flow System Level
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
An Introduction to Software Architecture
Chapter 2: Operating-System Structures
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 2: Operating-System Structures
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment. Phone:
Chapter 13: I/O Systems.
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

A Design and Verification Company Zaiq’s Transaction API Proposal v2

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 2Zaiq’s Transaction API Outline Zaiq background SCE-API 1.0 Next steps Zaiq transaction API Minor SCE-API enhancements Summary

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 3Zaiq’s Transaction API Zaiq Technologies Founded as ASIC Alliance Corp. in 1996 –Focused on: Solutions to the most complex design engineering problems Best in Class engineering resources Filling the void above traditional EDA tools –Completed more than 400 design verification engagements Our business –Design & Verification Services –Verification environments –Verification Intellectual Property Our headquarters are in Woburn, Mass. –With offices in NH, NJ and CA

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 4Zaiq’s Transaction API Zaiq System-Level Verification Methodology Zaiq’s system-level verification methodology is transaction based Traditionally done using simulation Projects range from individual blocks through single ASIC/FPGA boards with multiple components, and multi board systems to hardware/software co-verification Projects reuse tests and DV library code as focus shifts from block- level through chip-level to system-level Projects reuse transactors and other DV components from other projects Large projects routinely have 50–100+ transactors, e.g., 24-port Ethernet switch with uplink ports and CPU interface

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 5Zaiq’s Transaction API Zaiq Perspective User of EDA tools such as simulators and emulators Need to get our projects done on time and budget Productivity, efficiency, and performance are key Reusable and quickly deployable environments are important means Zaiq integrates EDA tools in the PREP verification platform Zaiq and Zaiq’s customers benefit from standardized APIs that enable reusable and portable transactors and verification components to be created

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 6Zaiq’s Transaction API Verification Challenges Today’s complex systems present significant challenges to DV System-level verification using simulation is slow even when using transaction-level modeling System-level verification using acceleration/emulation has been hampered by the lack of common APIs System-level verification using acceleration/emulation in vector mode has exhibited disappointing performance BFMs written for different environments/tools/emulators are not portable/easily reusable No market for reusable and portable BFMs and verification components exists

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 7Zaiq’s Transaction API SCE-API 1.0 Features +Important step in the right direction to providing seamless transition between simulation and emulation +Enables portability across emulator platforms +Provides mechanism to pass fixed-width messages between software and hardware sides +Provides clock control mechanism that allows cycle-for- cycle control over when transactions start and end +Provides cycle stamp mechanism to determine ‘simulation time’

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 8Zaiq’s Transaction API Next Steps Address real-world transactor implementation challenges by standardizing common solutions –Collect commonly implemented infrastructure on top of SCE-API 1.0 and standardizing to enable re-use –Capturing and standardizing additional usage details to allow easier movement or interoperability Should build upon the current SCE-API by adding a new layer –Add new capabilities without losing or re-inventing the SCE-API 1.0 benefits –Maintain backwards compatiblity

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 9Zaiq’s Transaction API Transactor Implementation Challenges Transactions are generally variable size –Fixed-width messages do not scale well to variable sized large transactions such as burst PCI transactions and Ethernet frames –Handling variable sized transactions efficiently requires assembling multiple messages that represents segments of transactions  Transaction segmentation/reassembly becomes important component of transactors based on SCE-API Clock control uses common pattern –Clocks are stopped only between transactors to allow transactions to be exchanged between software and hardware sides –Uncontrolled clock is exposed to the transactor developer –Unclear how uncontrolled clock maps to simulation mode  Encapsulating clock control in common interface module is desirable to simplify BFM development

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 10Zaiq’s Transaction API Common Transactor Components Common parts of transactors such as transaction segmentation/reassembly and clock control can be standardized With a standard interface BFMs can be made portable across simulators and emulators Future enhancements can be implemented transparently to all BFMs Hide SCE-API’s uncontrolled clock from the user because there is no direct equivalent in simulation and it complicates BFM development to have two types of clock

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 11Zaiq’s Transaction API Portability Verification IP (transactors, BFMs, tests and DV environment library code) must work on multiple simulation and emulation platforms without change Tests and test fragments must work across multiple transactors when they are functionally similar Verification IP from different sources must be interoperable and interchangable Support for multiple high-level verification languages (e.g. C, C++, SystemC, SystemVerilog, etc.) through consistent APIs

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 12Zaiq’s Transaction API Transaction API Requirements Transition seamlessly from simulation to emulation Behavior of tests in simulation and emulation must be identical cycle-for-cycle Ability to reuse synthesizable BFMs from simulation in emulation Ability to reuse HDL portion of testbench from simulation in emulation assuming it is synthesizable Common interface for BFMs to transport layer infrastructure to allow portability and interoperability Common software-side API to enable reusable verification environments and tests written in an HLL such as C, C++, SystemC, or SystemVerilog

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 13Zaiq’s Transaction API Zaiq Transaction API Based on Zaiq’s PREP and TestBenchPlus technology TestBenchPlus is a transaction-based transport layer between C/C++ and Verilog/VHDL Has two major modes: simulation and emulation Simulation mode supports all major simulators Emulation mode is based on SCE-API and currently validated and supported on the Aptix System Explorer emulator Software side is threaded with threads corresponding to transactors and scheduling controlled by hardware side Tests are written in a style similar to diagnostics software

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 14Zaiq’s Transaction API Transaction API Transaction definition –Transactions are defined as a data structure with certain fields which specify transaction protocol data and meta-data –Protocol data includes commonly used fields such as address and data –Meta-data includes transactor configuration/status data, error status, and transaction start and end times High-level language transaction API –Callable from C, C++, SystemC –SystemVerilog support is planned Transport mechanism –Supports simulation and emulation mode –Supports Verilog and VHDL Hardware-side transaction interface –Standard interface for BFMs

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 15Zaiq’s Transaction API Use Model User –Writes tests –Runs tests in simulation and/or emulation mode –Tests are written in a high-level software (C, C++) or verification language (SystemC, SystemVerilog) –Tests have parallel contexts for each DUT interface that must be driven in parallel –Tests are written in a style similar to diagnostics software Modeler –Develops synthesizable BFMs Verification Component Developer –Develops complete DV components including BFMs, transactors, library routines, and test suites

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 16Zaiq’s Transaction API Sample Test void test_1_class_X() { u_int64 addr = 0x0; u_int32 data, i, first; first = data = my_rand(); for (i = 0; i < 10; i++) { SIM_Write32(addr, data); save_to_my_db(addr, data); data = my_rand() & 0xffff; addr += 1; } data = SIM_Read32(0x0); if (data != first) MSG_Error(“0x0 lost %d\n", data); SIM_SetSiganl(“Data_Written”); SIM_WaitSignal(“Finishing_Test”; data = SIM_Read32(0x0); if (data != first) MSG_Error(“1:0x0 lost %d\n", data); SIM_SetSignal(TEST_COMPLETE); } void test_1_class_Y() { u_int64 addr = 0x0; u_int32 data; u_int32 i; SIM_WaitSignal(“Data_Written”); for (i = 0; i < 10; i++) { data = SIM_Read32(addr); if (data != read_from_my_db(addr)) { MSG_Error("%d scrambled\n", addr); } addr += 1; } SIM_SetSignal(“Finishing_Test”); }

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 17Zaiq’s Transaction API Sample Test Main Function void unit_test_1() { global_sync = Starting_Test; SIM_Attach(“path_to_x”, test_1_class_X, 0); SIM_Attach(“path_to_y”, test_1_class_Y, 0); SIM_WaitTest(TEST_COMPLETE, ); }

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 18Zaiq’s Transaction API Emulation Mode

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 19Zaiq’s Transaction API Simulation Mode

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 20Zaiq’s Transaction API Transactors Translates between transactions and protocol specific bus cycles Transactions are untimed representations of the protocol specific bus cycles HDL module containing bus functional model (BFM) and infrastructure interface Transactor driver –Software side transactor-specific library code –Is simple or non-existent for many common transactors because transaction API provides most common functionality

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 21Zaiq’s Transaction API Transaction Definition Operation code Code that determines how the rest of the fields of the transaction operation data are to be interpreted AddressGeneralized address that can be considered out-of-band information DataTransaction data. This is an arbitrary sized block of bytes SizeThe size of the data field as measured in number of bytes StatusStatus information associated with transaction InterruptInterrupt vector used by the hardware side to indicate interrupts ResetReset information used by the hardware side to indicate hardware reset Idle countIdle count used to indicate the number of cycles the transactor should idle

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 22Zaiq’s Transaction API Transaction Interface Provides a Standard Interface for BFMs to the Infrastructure Encapsulates The SCE-MI Uncontrolled Clock Clocked by a User-Specified Controlled Clock Typically Brought in Via the Transactor Interface from the Testbench Transaction Data is Streamed With Flow Controlled by the BFM Transaction Data Port Width is Parameterized Handles Idling and Sleeping: BFM Sees Only NOP Commands Handles Configuration and Status Registers for BFM Supports Software and Hardware Initiated Transactors

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 23Zaiq’s Transaction API Transaction Interface Timing

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 24Zaiq’s Transaction API Contexts Transactors are associated with independent contexts in the software side Contexts provide parallel threads of execution mirroring the parallelism in the hardware side Context scheduling is controlled by the hardware side –In simulation mode scheduling is controlled by the simulator –In emulation mode scheduling is controlled by the hardware Scheduling is non-preemptive Contexts can safely share global variables including pointers without requiring semaphores or mutexes Contexts can synchronize using events

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 25Zaiq’s Transaction API HLL API Transaction Data Structure typedef struct { u_int32 opcode; u_int64 address; void * read_data; void * write_data; /*... */ u_int32 size; u_int32 status; u_int32 interrupt; /*... */ u_int64 start_time; u_int64 end_time; u_int32 buffer_size; } SIM_Transaction;

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 26Zaiq’s Transaction API HLL API Transport Functions SIM_Attach() –Associates named HDL transactor instance with C/C++ transactor function –Creates context for the transactor function to run in –Allows parameters to be passed through to the transactor function SIM_GetTransaction() –Returns handle to transaction structure associated with current context SIM_SendTransaction() –Sends transaction to the current transactor and blocks until transactor replies –Only the current context is blocked

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 27Zaiq’s Transaction API HLL API Context Synchronization SIM_WaitEvent() –Wait for named event to be set, i.e., signaled –Does not wait if event has already been signaled SIM_SetEvent() –Set/signal named event –Will release the next waiter in line SIM_WaitEventState() –Wait for an event to acquire a given state –State values are 32-bit integers SIM_SetEventState() –Set a named event to a given state and release all waiters that are waiting for this state SIM_WaitTest() –Launches attached contexts –Used by main context to wait for test to finish –A named event is used by other contexts to signal test completion

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 28Zaiq’s Transaction API HLL API Convenience Layer SIM_Write8(), SIM_Write16(), SIM_Write32(), SIM_Write64() –Send a write transaction with a given address where data is an integer of a specific width to the transactor –Typically used with processor-style transactors SIM_Read8(), SIM_Read16(), SIM_Read32(), SIM_Read64() –Send a read transaction with a given address where data is an integer of a specific width to the transactor –Returns the data value read from the DUT by the transactor –Typically used with processor-style transactors SIM_Write(), SIM_Read() –General write and read transactions where the size of the data block is specified by the user –Used for burst accesses on processor-style busses –Used for packet/frames with packet transactors

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 29Zaiq’s Transaction API HLL API Convenience Layer Cont’d SIM_Idle() –Cause the transactor to idle for a given number of cycles SIM_Sleep() –Put transactor to sleep until woken up SIM_CSWrite(), SIM_CSRead() –Write and read configuration and status data to/from transactor –Zero-time operations –Used to configure BFM’s behavior, e.g., wait states, flow control enable/disable, etc. –Used to get error and statistics information from BFM SIM_UserOp() –Send transaction with a user-specified opcode to the transactor and wait for the result –Provides access to all transaction fields

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 30Zaiq’s Transaction API HLL API Messaging Error and status messaging functions Allows tests to report errors Allows tests to output debugging messages Filtering features allows noise-level of messages to be controlled Useful for disabling debugging messages in regression testing

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 31Zaiq’s Transaction API Minor SCE-API Enhancments Define the names of C/C++ header files –Requirment for making application code portable –Proposal C++ header file: SceMi C header file: SceMi.h

© 2003 Zaiq Technologies, Inc. All Rights Reserved. 32Zaiq’s Transaction API Summary SCE-API 1.0 enables the creation of portable, transaction- level modeling environments for emulators SCE-API 1.0 is usable as a building block but is not sufficient for the creation of portable/reusable/interoperable transactors Zaiq’s transaction API allows DV environments to run on all major simulators and SCE-API compliant emulators Built on SCE-API 1.0 Proven on major simulators and the Aptix System Explorer emulator