5/22/2015 1 New AMI API to Resolve Dependent Model Parameter Fangyi Rao, Agilent Technologies.

Slides:



Advertisements
Similar presentations
Pointers.
Advertisements

Stacks, Queues, and Linked Lists
Lectures 10 & 11.
More on Processing User Input BCIS 3680 Enterprise Programming.
SPLINT STATIC CHECKING TOOL Sripriya Subramanian 10/29/2002.
 2005 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
Tx_Init_Optimizes Walter Katz Signal Integrity Software, Inc. IBIS-ATM April 1, 2014.
Chapter 7 User-Defined Methods. Chapter Objectives  Understand how methods are used in Java programming  Learn about standard (predefined) methods and.
Data Structures: A Pseudocode Approach with C 1 Chapter 5 Contd... Objectives Explain the design, use, and operation of a linear list Implement a linear.
 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
Introduction and a Review of Basic Concepts
CS-341 Dick Steflik Introduction. C++ General purpose programming language A superset of C (except for minor details) provides new flexible ways for defining.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
Guide To UNIX Using Linux Third Edition
Programming Epson Robots – Part 2 ME 4135 – Fall 2012 Dr. R. Lindeke.
McGraw-Hill/Irwin The Interactive Computing Series © 2002 The McGraw-Hill Companies, Inc. All rights reserved. Microsoft Excel 2002 Exploring Formulas.
Operator Overloading and Type Conversions
CIS Computer Programming Logic
Introduction to Python
EE4E. C++ Programming Lecture 1 From C to C++. Contents Introduction Introduction Variables Variables Pointers and references Pointers and references.
Data Acquisition Data acquisition (DAQ) basics Connecting Signals Simple DAQ application Computer DAQ Device Terminal Block Cable Sensors.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 6 Value- Returning Functions and Modules.
Introduction to Java Applications Part II. In this chapter you will learn:  Different data types( Primitive data types).  How to declare variables?
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 5 – Dental Payment Application: Introducing.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 12: Pointers continued, C strings.
6. More on Pointers 14 th September IIT Kanpur C Course, Programming club, Fall
ICS 145B -- L. Bic1 Project: Main Memory Management Textbook: pages ICS 145B L. Bic.
Introduction to MATLAB Session 3 Simopekka Vänskä, THL Department of Mathematics and Statistics University of Helsinki 2011.
IBIS-AMI and Direction Indication February 17, 2015 Michael Mirmak.
Slide: 1 Copyright © AdaCore Subprograms Presented by Quentin Ochem university.adacore.com.
IBIS-ATM Oct. 2012, Slide 1 Mid-Channel Redriver AMI Model and Simulation Mahbubul Bari, Maxim Integrated Fangyi Rao, Agilent Technologies Inc.
1 09/15/04CS150 Introduction to Computer Science 1 Life is Full of Alternatives Part 2.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Backchannel Issues Walter Katz Signal Integrity Software, Inc. IBIS-ATM April 8, 2014.
I N V E N T I V EI N V E N T I V E Algorithmic Modeling (AMI) Parameter Syntax Discussion August 14, 2007.
Introduction to Python Dr. José M. Reyes Álamo. 2 Three Rules of Programming Rule 1: Think before you program Rule 2: A program is a human-readable set.
Introduction to Java Applications Part II. In this chapter you will learn:  Different data types( Primitive data types).  How to declare variables?
 2005 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
Higher Computing Science 2016 Prelim Revision. Topics to revise Computational Constructs parameter passing (value and reference, formal and actual) sub-programs/routines,
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
Lecture 4 – Function (Part 1) FTMK, UTeM – Sem /2014.
1 st Semester Module2 Basic C# Concept อภิรักษ์ จันทร์สร้าง Aphirak Jansang Computer Engineering.
Introduction to Computer Programming using Fortran 77.
Learning Javascript From Mr Saem
APS105 Malloc and 2D Arrays (text Ch6.4, Ch10.2).
LESSON 8: INTRODUCTION TO ARRAYS. Lesson 8: Introduction To Arrays Objectives: Write programs that handle collections of similar items. Declare array.
Computer Science 1000 LOGO II. Boolean Expressions like Excel and Scratch, LOGO supports three Boolean operators less than (
Information and Computer Sciences University of Hawaii, Manoa
Data Abstraction: The Walls
The need for Programming Languages
3 Introduction to Classes and Objects.
Computer Science 210 Computer Organization
JavaScript: Functions.
Computer Science 210 Computer Organization
14th September IIT Kanpur
Chapter 2: The Linux System Part 2
WEB PROGRAMMING JavaScript.
Pointers.
Topics Introduction to Value-returning Functions: Generating Random Numbers Writing Your Own Value-Returning Functions The math Module Storing Functions.
An Introduction to Linux
Life is Full of Alternatives
Life is Full of Alternatives
Programming Languages and Paradigms
ENERGY 211 / CME 211 Lecture 8 October 8, 2008.
Pointers.
Init should return just equalization of buffer
AMI Simulation Flow Round 3
Lecture 2 - Names & Functions
Presentation transcript:

5/22/ New AMI API to Resolve Dependent Model Parameter Fangyi Rao, Agilent Technologies

5/22/ Requirements Model parameters used by EDA tools, including ami and analog model parameters, could depend on other model parameters. Model parameters could also depend on simulation parameters such as data rate, corner and ibis model name. The form of dependency relation varies from IC vendor to IC vendor and from process to process. The number of possible variations is infinite. Model vendors need a flexible mechanism to implement parameter dependency according to their proprietary formula and pass the dependent parameter values to EDA tools. Certain vendors may need to conceal the dependency formula. Resolving dependent parameters is a task that belongs to model. Model developers should have full control on implementation. Solution A new AMI API that resolves dependent parameter values

5/22/ Dependency Resolution API long AMI_ResolveDependentParam(double bit_time, char * corner, char * model_name, char * AMI_parameters_in, char ** AMI_parameters_out); bit_time: input argument, in sec, equals 1/data rate corner: input argument, ibis model corner, allowed values are “typ”, “min” and “max” model_name: input argument, ibis model name AMI_parameters_in: input argument, a string that contains name-value pairs of In and InOut parameters. The format of this string is the same as that of the AMI_parameters_in argument in AMI_Init. AMI_parameters_out: output argument, pointer to a string that contains name-value pairs of Out and InOut dependent parameters. The format of this string is the same as that of the AMI_parameters_out argument in AMI_Init. New reserved parameter: ResolveDependentParam_Exists (ResolveDependentParam_Exists (Usage Info) (Type Boolean) (Default False) (Description “Indicates whether DLL implements ResolveDependentParam.”) )

5/22/ Usage 1.User selects ibis model and specifies corner and data rate. 2.EDA tool initialize AMI_parameters_out to NULL. 3.If ResolveDependentParam_Exists is False, go to step 9. 4.If ResolveDependentParam_Exists is True, EDA tool allocates memory for the AMI_parameters_in string and writes to it name-value pairs of all In and InOut parameters. 5.EDA tool calls AMI_ResolveDependentParam before analog channel impulse characterization. 6.DLL computes dependent parameter values according to independent parameter values in AMI_parameters_in, bit_time, corner and model_name. 7.DLL allocates memory for the AMI_parameters_out string and writes to it name-value pairs of dependent parameters. Note that DLL must use malloc or calloc to allocate memory for AMI_parameters_out (see step 10). 8.EDA tool sets/adjusts analog model parameters if their values are returned by DLL in AMI_parameters_out. 9.EDA tool characterizes analog channel impulse responses, calls AMI_Init and finishes the rest of the simulation. 10.EDA tool calls free(*AMI_parameters_out) if AMI_parameters_out is not a NULL pointer to free memory.

5/22/ Advantage Infinite scalability, extensibility and flexibility for model developers Conceal dependency formula Allow any complex dependency relations - multi-dimensional function (e.g. y = f(x1, x2, x3)) - different interpolation methods - different extrapolation methods - expression in condition statement, e.g. - advanced functions, e.g. y(tap1, tap2, tap3) = FIR(tap1, tap2, tap3) spectrum at data rate No need to add ad hoc syntax or rules for new dependent forms. Bit_time, corner and model_name are formal arguments of AMI_ResolveDependentParam. No need to introduce the awkward “simulation reserved parameters”. The same DLL can resolve dependent parameters for different ibis models according to model_name. Sensible SW component partition: the party that defines dependency has full control on implementation.