KiCad PCB EDA Suite
Loading...
Searching...
No Matches
kibis.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2022 Fabien Corona f.corona<at>laposte.net
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * Redistribution and use in source and binary forms, with or without modification,
8 * are permitted provided that the following conditions are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright notice,
11 * this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright notice,
14 * this list of conditions and the following disclaimer in the documentation
15 * and/or other materials provided with the distribution.
16 *
17 * 3. Neither the name of the copyright holder nor the names of its contributors may be used
18 * to endorse or promote products derived from this software without specific
19 * prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
22 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
23 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
28 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31
32
33#ifndef KIBIS_H
34#define KIBIS_H
35
36#include "ibis_parser.h"
37
38class KIBIS_PIN;
39class KIBIS_FILE;
40class KIBIS_MODEL;
41class KIBIS_COMPONENT;
42class KIBIS;
43
44class KIBIS_BASE : public IBIS_BASE
45{
46protected:
47 KIBIS_BASE( KIBIS* aTopLevel );
48
53 KIBIS_BASE( KIBIS* aTopLevel, REPORTER* aReporter );
54
55public:
57 bool m_valid;
58};
59
61{
62 NONE = 0, // Used for three state
68};
69
70
72{
73public:
74 KIBIS_WAVEFORM( KIBIS& aTopLevel ) :
75 KIBIS_BASE{ &aTopLevel }
76 {
77 m_valid = true;
78 };
79
80 KIBIS_WAVEFORM_TYPE GetType() const { return m_type; };
81 virtual double GetDuration() const { return 1; };
82 bool inverted = false; // Used for differential drivers
83 virtual ~KIBIS_WAVEFORM() {};
84
85 virtual std::vector<std::pair<int, double>> GenerateBitSequence() const
86 {
87 std::vector<std::pair<int, double>> bits;
88 return bits;
89 };
90
91 // Check function if using waveform data
92 virtual bool Check( const IbisWaveform* aRisingWf, const IbisWaveform* aFallingWf ) const
93 {
94 return true;
95 };
96 // Check function if using ramp data
97 virtual bool Check( const dvdtTypMinMax& aRisingRp, const dvdtTypMinMax& aFallingRp ) const
98 {
99 return true;
100 };
101
102protected:
104};
105
107{
108public:
110 KIBIS_WAVEFORM( aTopLevel )
111 {
113 };
114
115 double m_ton = 100e-9;
116 double m_toff = 100e-9;
117 double m_delay = 0;
118 int m_cycles = 1;
119
120
121 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
122 bool Check( const IbisWaveform* aRisingWf, const IbisWaveform* aFallingWf ) const override;
123 bool Check( const dvdtTypMinMax& aRisingRp, const dvdtTypMinMax& aFallingRp ) const override;
124
125 double GetDuration() const override { return ( m_ton + m_toff ) * m_cycles; };
126};
127
128// For now, we only support PRBS7
130{
131public:
133 KIBIS_WAVEFORM( aTopLevel )
134 {
136 };
137
138 double m_bitrate = 10e6;
139 double m_delay = 0;
140 int m_bits = 10;
141
142 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
143 bool Check( const IbisWaveform* aRisingWf, const IbisWaveform* aFallingWf ) const override;
144 bool Check( const dvdtTypMinMax& aRisingRp, const dvdtTypMinMax& aFallingRp ) const override;
145
146 void SetBits( int aBits ) { m_bits = std::abs( aBits ); };
147
148 double GetDuration() const override { return m_bits / m_bitrate; };
149};
150
152{
153public:
155 KIBIS_WAVEFORM( aTopLevel )
156 {
158 };
159
160 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
161};
162
164{
165public:
167 KIBIS_WAVEFORM( aTopLevel )
168 {
170 };
171
172 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
173};
174
176{
177public:
179 KIBIS_WAVEFORM( aTopLevel )
180 {
182 };
183
184 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
185};
186
212
226
227
229{
230public:
231 KIBIS_FILE( KIBIS& aTopLevel );
232
233 std::string m_fileName;
234 double m_fileRev;
236 std::string m_date;
237 std::string m_source;
238 std::string m_notes;
239 std::string m_disclaimer;
240 std::string m_copyright;
241
242 bool Init( const IbisParser& aParser );
243};
244
246{
247public:
248 KIBIS_SUBMODEL( KIBIS& aTopLevel, const IbisSubmodel& aSource, IBIS_SUBMODEL_MODE aMode );
249
250 std::string m_name;
253
254 // Currently we only support static mode dynamic clamp submodels.
257
259 bool HasGNDClamp() const;
261 bool HasPOWERClamp() const;
262};
263
265{
266public:
267 KIBIS_MODEL( KIBIS& aTopLevel, const IbisModel& aSource, IbisParser& aParser );
268
269 std::string m_name;
270 std::string m_description;
272 /* The Polarity, Enable, Vinl, Vinh, Vmeas, Cref, Rref, and Vref subparameters are optional. */
273 /* the default values of Vinl = 0.8 V and Vinh = 2.0 V are assumed. */
274 double m_vinl = 0.8;
275 double m_vinh = 2;
276 double m_vref = 0;
277 double m_rref = 0;
278 double m_cref = 0;
279 double m_vmeas = 0;
282 // End of optional subparameters
283
299 std::vector<IbisWaveform*> m_risingWaveforms;
300 std::vector<IbisWaveform*> m_fallingWaveforms;
302 std::vector<KIBIS_SUBMODEL> m_submodels;
303
304 // m_series for Series models, m_seriesOn/m_seriesOff for Series_switch.
308
310 bool HasPulldown() const;
312 bool HasPullup() const;
314 bool HasGNDClamp() const;
316 bool HasPOWERClamp() const;
317
325 std::string SpiceDie( const KIBIS_PARAMETER& aParam, int aIndex, bool aDriver ) const;
326
329 std::string SpiceSeriesDie( const KIBIS_PARAMETER& aParam, int aIndex,
330 const std::string& aPort1, const std::string& aPort2,
331 const IbisSeriesData& aData, const std::string& aGate ) const;
332
341 std::vector<std::pair<IbisWaveform*, IbisWaveform*>> waveformPairs();
342
343
357 std::string generateSquareWave( const std::string& aNode1, const std::string& aNode2,
358 const std::vector<std::pair<int, double>>& aBits,
359 const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
360 const KIBIS_PARAMETER& aParam );
361
362
369 IbisWaveform TrimWaveform( const IbisWaveform& aIn ) const;
370};
371
372class KIBIS_PIN : public KIBIS_BASE
373{
374public:
375 KIBIS_PIN( KIBIS& aTopLevel, const IbisComponentPin& aPin, const IbisComponentPackage& aPackage,
376 IbisParser& aParser, KIBIS_COMPONENT* aParent, std::vector<KIBIS_MODEL>& aModels );
380 std::string m_signalName;
384 std::string m_pinNumber;
385
392
394
395 std::vector<double> m_t, m_Ku, m_Kd;
396
397 std::vector<KIBIS_MODEL*> m_models;
398
399 bool writeSpiceDriver( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
400 const KIBIS_PARAMETER& aParam );
401 bool writeSpiceDiffDriver( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
402 const KIBIS_PARAMETER& aParam );
403 bool writeSpiceDevice( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
404 const KIBIS_PARAMETER& aParam );
405 bool writeSpiceDiffDevice( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
406 const KIBIS_PARAMETER& aParam );
407
412 void getKuKdNoWaveform( KIBIS_MODEL& aModel, const KIBIS_PARAMETER& aParam );
413
419 void getKuKdOneWaveform( KIBIS_MODEL& aModel,
420 const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
421 const KIBIS_PARAMETER& aParam );
422
432 void getKuKdTwoWaveforms( KIBIS_MODEL& aModel,
433 const std::pair<IbisWaveform*, IbisWaveform*>& aPair1,
434 const std::pair<IbisWaveform*, IbisWaveform*>& aPair2,
435 const KIBIS_PARAMETER& aParam );
436
447 std::string KuKdDriver( KIBIS_MODEL& aModel,
448 const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
449 const KIBIS_PARAMETER& aParam, int aIndex );
450
461 std::string addDie( KIBIS_MODEL& aModel, const KIBIS_PARAMETER& aParam, int aIndex );
462
463
472 void getKuKdFromFile( const std::string& aSimul );
473
475
476 bool isDiffPin() const { return m_complementaryPin != nullptr; };
477
480 KIBIS_PIN* SeriesPartner( std::string* aModelName = nullptr,
481 std::string* aGroupName = nullptr ) const;
482};
483
485{
486 std::string m_pin1;
487 std::string m_pin2;
488 std::string m_modelName;
489 std::string m_groupName;
490};
491
493{
494public:
495 KIBIS_COMPONENT( KIBIS& aToplevel, const IbisComponent& aSource, IbisParser& aParser );
497 std::string m_name;
499 std::string m_manufacturer;
500
501 std::vector<KIBIS_PIN> m_pins;
502 std::vector<KIBIS_SERIES_PAIR> m_seriesPinMappings;
503
509 KIBIS_PIN* GetPin( const std::string& aPinNumber );
510};
511
512class KIBIS : public KIBIS_BASE
513{
514public:
517 KIBIS_BASE( this, nullptr ),
518 m_file( *this )
519 {};
520
521 KIBIS( const std::string& aFileName, REPORTER* aReporter = nullptr );
522
523 std::vector<KIBIS_COMPONENT> m_components;
524 std::vector<KIBIS_MODEL> m_models;
526
528 std::string m_cacheDir = "";
529
531 KIBIS_MODEL* GetModel( const std::string& aName );
533 KIBIS_COMPONENT* GetComponent( const std::string& aName );
534};
535
536#endif
IBIS_BASE(REPORTER *aReporter)
Definition ibis_parser.h:56
bool m_valid
Definition kibis.h:57
KIBIS * m_topLevel
Definition kibis.h:56
KIBIS_BASE(KIBIS *aTopLevel)
Definition kibis.cpp:68
KIBIS_COMPONENT(KIBIS &aToplevel, const IbisComponent &aSource, IbisParser &aParser)
Definition kibis.cpp:373
std::vector< KIBIS_PIN > m_pins
Definition kibis.h:501
std::string m_manufacturer
Name of the manufacturer.
Definition kibis.h:499
std::vector< KIBIS_SERIES_PAIR > m_seriesPinMappings
Definition kibis.h:502
std::string m_name
Name of the component.
Definition kibis.h:497
KIBIS_PIN * GetPin(const std::string &aPinNumber)
Get a pin by its number ( 1, 2, A1, A2, ... )
Definition kibis.cpp:432
KIBIS_FILE(KIBIS &aTopLevel)
Definition kibis.cpp:137
std::string m_source
Definition kibis.h:237
std::string m_notes
Definition kibis.h:238
double m_ibisVersion
Definition kibis.h:235
std::string m_date
Definition kibis.h:236
bool Init(const IbisParser &aParser)
Definition kibis.cpp:145
std::string m_fileName
Definition kibis.h:233
std::string m_copyright
Definition kibis.h:240
std::string m_disclaimer
Definition kibis.h:239
double m_fileRev
Definition kibis.h:234
std::vector< IbisWaveform * > m_fallingWaveforms
Definition kibis.h:300
IbisWaveform TrimWaveform(const IbisWaveform &aIn) const
Copy a waveform, and substract the first value to all samples.
Definition kibis.cpp:692
IBIS_MODEL_ENABLE m_enable
Definition kibis.h:280
double m_vref
Definition kibis.h:276
std::string m_name
Definition kibis.h:269
bool HasPOWERClamp() const
Return true if the model has a clamp diode to the power net.
Definition kibis.cpp:746
double m_vmeas
Definition kibis.h:279
std::vector< IbisWaveform * > m_risingWaveforms
Definition kibis.h:299
TypMinMaxValue m_Cac
Definition kibis.h:294
double m_vinh
Definition kibis.h:275
double m_rref
Definition kibis.h:277
bool HasPullup() const
Return true if the model has a pullup transistor.
Definition kibis.cpp:734
bool HasGNDClamp() const
Return true if the model has a clamp diode to the gnd net.
Definition kibis.cpp:740
std::string SpiceDie(const KIBIS_PARAMETER &aParam, int aIndex, bool aDriver) const
Generate the spice directive to simulate the die.
Definition kibis.cpp:470
IbisSeriesData m_seriesOn
Definition kibis.h:306
TypMinMaxValue m_pulldownReference
Definition kibis.h:288
TypMinMaxValue m_GNDClampReference
Definition kibis.h:289
TypMinMaxValue m_Rpower
Definition kibis.h:292
bool HasPulldown() const
Return true if the model has a pulldown transistor.
Definition kibis.cpp:728
IBIS_MODEL_TYPE m_type
Definition kibis.h:271
std::vector< KIBIS_SUBMODEL > m_submodels
Definition kibis.h:302
IbisRamp m_ramp
Definition kibis.h:301
IVtable m_pullup
Definition kibis.h:297
IBIS_MODEL_POLARITY m_polarity
Definition kibis.h:281
double m_cref
Definition kibis.h:278
std::string generateSquareWave(const std::string &aNode1, const std::string &aNode2, const std::vector< std::pair< int, double > > &aBits, const std::pair< IbisWaveform *, IbisWaveform * > &aPair, const KIBIS_PARAMETER &aParam)
Generate a square waveform.
Definition kibis.cpp:752
IbisSeriesData m_series
Definition kibis.h:305
TypMinMaxValue m_Rac
Definition kibis.h:293
TypMinMaxValue m_temperatureRange
Definition kibis.h:286
TypMinMaxValue m_voltageRange
Definition kibis.h:285
IVtable m_GNDClamp
Definition kibis.h:295
TypMinMaxValue m_Rgnd
Definition kibis.h:291
std::string m_description
Definition kibis.h:270
KIBIS_MODEL(KIBIS &aTopLevel, const IbisModel &aSource, IbisParser &aParser)
Definition kibis.cpp:263
IVtable m_POWERClamp
Definition kibis.h:296
TypMinMaxValue m_pullupReference
Definition kibis.h:287
std::vector< std::pair< IbisWaveform *, IbisWaveform * > > waveformPairs()
Create waveform pairs.
Definition kibis.cpp:443
TypMinMaxValue m_POWERClampReference
Definition kibis.h:290
TypMinMaxValue m_C_comp
Definition kibis.h:284
std::string SpiceSeriesDie(const KIBIS_PARAMETER &aParam, int aIndex, const std::string &aPort1, const std::string &aPort2, const IbisSeriesData &aData, const std::string &aGate) const
Emit the two-port Series die.
Definition kibis.cpp:572
IVtable m_pulldown
Definition kibis.h:298
double m_vinl
Definition kibis.h:274
IbisSeriesData m_seriesOff
Definition kibis.h:307
IBIS_CORNER m_supply
Definition kibis.h:220
IBIS_CORNER m_Cpin
Definition kibis.h:218
KIBIS_ACCURACY m_accuracy
Definition kibis.h:222
IBIS_CORNER m_Ccomp
Definition kibis.h:219
IBIS_CORNER m_Lpin
Definition kibis.h:217
IBIS_CORNER m_Rpin
Definition kibis.h:216
void SetCornerFromString(IBIS_CORNER &aCorner, const std::string &aString)
Definition kibis.cpp:1705
KIBIS_WAVEFORM * m_waveform
Definition kibis.h:221
bool isDiffPin() const
Definition kibis.h:476
TypMinMaxValue m_Rpin
Resistance from die to pin.
Definition kibis.h:387
bool writeSpiceDiffDriver(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
Definition kibis.cpp:1614
TypMinMaxValue m_Lpin
Inductance from die to pin.
Definition kibis.h:389
void getKuKdFromFile(const std::string &aSimul)
Update m_Ku, m_Kd using with two waveform inputs.
Definition kibis.cpp:897
KIBIS_COMPONENT * m_parent
Definition kibis.h:393
std::vector< double > m_Ku
Definition kibis.h:395
std::string m_pinNumber
Pin Number Examples : 1, 2, 3 ( or for BGA ), A1, A2, A3, etc...
Definition kibis.h:384
std::string addDie(KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam, int aIndex)
Generate the spice directive to simulate the die for Ku/Kd estimation.
Definition kibis.cpp:853
bool writeSpiceDevice(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
Definition kibis.cpp:1507
std::vector< KIBIS_MODEL * > m_models
Definition kibis.h:397
std::vector< double > m_t
Definition kibis.h:395
TypMinMaxValue m_Cpin
Capacitance from pin to GND.
Definition kibis.h:391
std::string m_signalName
Name of the pin Examples : "VCC", "GPIOA", "CLK", etc...
Definition kibis.h:380
void getKuKdTwoWaveforms(KIBIS_MODEL &aModel, const std::pair< IbisWaveform *, IbisWaveform * > &aPair1, const std::pair< IbisWaveform *, IbisWaveform * > &aPair2, const KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using with two waveform inputs.
Definition kibis.cpp:1238
void getKuKdOneWaveform(KIBIS_MODEL &aModel, const std::pair< IbisWaveform *, IbisWaveform * > &aPair, const KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using with a single waveform input.
Definition kibis.cpp:1066
bool writeSpiceDiffDevice(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
Definition kibis.cpp:1651
std::string KuKdDriver(KIBIS_MODEL &aModel, const std::pair< IbisWaveform *, IbisWaveform * > &aPair, const KIBIS_PARAMETER &aParam, int aIndex)
Update m_Ku, m_Kd using with two waveform inputs.
Definition kibis.cpp:990
KIBIS_PIN(KIBIS &aTopLevel, const IbisComponentPin &aPin, const IbisComponentPackage &aPackage, IbisParser &aParser, KIBIS_COMPONENT *aParent, std::vector< KIBIS_MODEL > &aModels)
Definition kibis.cpp:162
KIBIS_PIN * SeriesPartner(std::string *aModelName=nullptr, std::string *aGroupName=nullptr) const
Partner pin from [Series Pin Mapping], or nullptr.
Definition kibis.cpp:403
std::vector< double > m_Kd
Definition kibis.h:395
bool writeSpiceDriver(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
Definition kibis.cpp:1382
KIBIS_PIN * m_complementaryPin
Definition kibis.h:474
void getKuKdNoWaveform(KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using no falling / rising waveform inputs ( low accuracy )
Definition kibis.cpp:1177
KIBIS_SUBMODEL(KIBIS &aTopLevel, const IbisSubmodel &aSource, IBIS_SUBMODEL_MODE aMode)
Definition kibis.cpp:236
IVtable m_GNDClamp
Definition kibis.h:255
std::string m_name
Definition kibis.h:250
bool HasPOWERClamp() const
Return true if the model has a clamp diode to the power net.
Definition kibis.cpp:257
IBIS_SUBMODEL_MODE m_mode
Definition kibis.h:252
bool HasGNDClamp() const
Return true if the model has a clamp diode to the gnd net.
Definition kibis.cpp:251
IVtable m_POWERClamp
Definition kibis.h:256
IBIS_SUBMODEL_TYPE m_type
Definition kibis.h:251
KIBIS_WAVEFORM_HIGH_Z(KIBIS &aTopLevel)
Definition kibis.h:178
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1735
bool Check(const IbisWaveform *aRisingWf, const IbisWaveform *aFallingWf) const override
Definition kibis.cpp:1919
void SetBits(int aBits)
Definition kibis.h:146
double GetDuration() const override
Definition kibis.h:148
KIBIS_WAVEFORM_PRBS(KIBIS &aTopLevel)
Definition kibis.h:132
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1761
bool Check(const IbisWaveform *aRisingWf, const IbisWaveform *aFallingWf) const override
Definition kibis.cpp:1797
double GetDuration() const override
Definition kibis.h:125
KIBIS_WAVEFORM_RECTANGULAR(KIBIS &aTopLevel)
Definition kibis.h:109
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1741
KIBIS_WAVEFORM_STUCK_HIGH(KIBIS &aTopLevel)
Definition kibis.h:154
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1716
KIBIS_WAVEFORM_STUCK_LOW(KIBIS &aTopLevel)
Definition kibis.h:166
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1726
KIBIS_WAVEFORM_TYPE m_type
Definition kibis.h:103
virtual ~KIBIS_WAVEFORM()
Definition kibis.h:83
virtual bool Check(const dvdtTypMinMax &aRisingRp, const dvdtTypMinMax &aFallingRp) const
Definition kibis.h:97
virtual bool Check(const IbisWaveform *aRisingWf, const IbisWaveform *aFallingWf) const
Definition kibis.h:92
KIBIS_WAVEFORM_TYPE GetType() const
Definition kibis.h:80
KIBIS_WAVEFORM(KIBIS &aTopLevel)
Definition kibis.h:74
bool inverted
Definition kibis.h:82
virtual double GetDuration() const
Definition kibis.h:81
virtual std::vector< std::pair< int, double > > GenerateBitSequence() const
Definition kibis.h:85
Definition kibis.h:513
std::vector< KIBIS_MODEL > m_models
Definition kibis.h:524
KIBIS()
Constructor for unitialized KIBIS members.
Definition kibis.h:516
std::vector< KIBIS_COMPONENT > m_components
Definition kibis.h:523
KIBIS_MODEL * GetModel(const std::string &aName)
Return the model with name aName .
Definition kibis.cpp:1681
KIBIS_COMPONENT * GetComponent(const std::string &aName)
Return the component with name aName .
Definition kibis.cpp:1693
KIBIS_FILE m_file
Definition kibis.h:525
std::string m_cacheDir
Absolute path of the directory that will be used for caching.
Definition kibis.h:528
A pure virtual class used to derive REPORTER objects from.
Definition reporter.h:75
@ NONE
Definition eda_shape.h:76
IBIS_SUBMODEL_TYPE
IBIS_MODEL_TYPE
IBIS_MODEL_POLARITY
IBIS_CORNER
@ TYP
IBIS_SUBMODEL_MODE
IBIS_MODEL_ENABLE
KIBIS_ACCURACY
Accuracy level.
Definition kibis.h:206
KIBIS_WAVEFORM_TYPE
Definition kibis.h:61
EDA_ANGLE abs(const EDA_ANGLE &aAngle)
Definition eda_angle.h:400
std::string m_pin1
Definition kibis.h:486
std::string m_groupName
Definition kibis.h:489
std::string m_pin2
Definition kibis.h:487
std::string m_modelName
Definition kibis.h:488