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
97 // Check function if using ramp data
98 virtual bool Check( const dvdtTypMinMax& aRisingRp, const dvdtTypMinMax& aFallingRp ) const
99 {
100 return true;
101 };
102
103protected:
105};
106
108{
109public:
111 KIBIS_WAVEFORM( aTopLevel )
112 {
114 };
115
116 double m_ton = 100e-9;
117 double m_toff = 100e-9;
118 double m_delay = 0;
119 int m_cycles = 1;
120
121
122 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
123 bool Check( const IbisWaveform* aRisingWf, const IbisWaveform* aFallingWf ) const override;
124 bool Check( const dvdtTypMinMax& aRisingRp, const dvdtTypMinMax& aFallingRp ) const override;
125
126 double GetDuration() const override { return ( m_ton + m_toff ) * m_cycles; };
127};
128
129// For now, we only support PRBS7
131{
132public:
134 KIBIS_WAVEFORM( aTopLevel )
135 {
137 };
138
139 double m_bitrate = 10e6;
140 double m_delay = 0;
141 int m_bits = 10;
142
143 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
144 bool Check( const IbisWaveform* aRisingWf, const IbisWaveform* aFallingWf ) const override;
145 bool Check( const dvdtTypMinMax& aRisingRp, const dvdtTypMinMax& aFallingRp ) const override;
146
147 void SetBits( int aBits ) { m_bits = std::abs( aBits ); };
148
149 double GetDuration() const override { return m_bits / m_bitrate; };
150};
151
153{
154public:
156 KIBIS_WAVEFORM( aTopLevel )
157 {
159 };
160
161 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
162};
163
165{
166public:
168 KIBIS_WAVEFORM( aTopLevel )
169 {
171 };
172
173 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
174};
175
177{
178public:
180 KIBIS_WAVEFORM( aTopLevel )
181 {
183 };
184
185 std::vector<std::pair<int, double>> GenerateBitSequence() const override;
186};
187
213
227
228
230{
231public:
232 KIBIS_FILE( KIBIS& aTopLevel );
233
234 std::string m_fileName;
235 double m_fileRev;
237 std::string m_date;
238 std::string m_source;
239 std::string m_notes;
240 std::string m_disclaimer;
241 std::string m_copyright;
242
243 bool Init( const IbisParser& aParser );
244};
245
247{
248public:
249 KIBIS_SUBMODEL( KIBIS& aTopLevel, const IbisSubmodel& aSource, IBIS_SUBMODEL_MODE aMode );
250
251 std::string m_name;
254
255 // Currently we only support static mode dynamic clamp submodels.
258
260 bool HasGNDClamp() const;
262 bool HasPOWERClamp() const;
263};
264
266{
267public:
268 KIBIS_MODEL( KIBIS& aTopLevel, const IbisModel& aSource, IbisParser& aParser );
269
270 std::string m_name;
271 std::string m_description;
273 /* The Polarity, Enable, Vinl, Vinh, Vmeas, Cref, Rref, and Vref subparameters are optional. */
274 /* the default values of Vinl = 0.8 V and Vinh = 2.0 V are assumed. */
275 double m_vinl = 0.8;
276 double m_vinh = 2;
277 double m_vref = 0;
278 double m_rref = 0;
279 double m_cref = 0;
280 double m_vmeas = 0;
283 // End of optional subparameters
284
300 std::vector<IbisWaveform*> m_risingWaveforms;
301 std::vector<IbisWaveform*> m_fallingWaveforms;
303 std::vector<KIBIS_SUBMODEL> m_submodels;
304
305 // m_series for Series models, m_seriesOn/m_seriesOff for Series_switch.
309
311 bool HasPulldown() const;
312
314 bool HasPullup() const;
315
317 bool HasGNDClamp() const;
318
320 bool HasPOWERClamp() const;
321
329 std::string SpiceDie( const KIBIS_PARAMETER& aParam, int aIndex, bool aDriver ) const;
330
333 std::string SpiceSeriesDie( const KIBIS_PARAMETER& aParam, int aIndex,
334 const std::string& aPort1, const std::string& aPort2,
335 const IbisSeriesData& aData, const std::string& aGate ) const;
336
345 std::vector<std::pair<IbisWaveform*, IbisWaveform*>> waveformPairs();
346
360 std::string generateSquareWave( const std::string& aNode1, const std::string& aNode2,
361 const std::vector<std::pair<int, double>>& aBits,
362 const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
363 const KIBIS_PARAMETER& aParam );
364
370 IbisWaveform TrimWaveform( const IbisWaveform& aIn ) const;
371};
372
373class KIBIS_PIN : public KIBIS_BASE
374{
375public:
376 KIBIS_PIN( KIBIS& aTopLevel, const IbisComponentPin& aPin, const IbisComponentPackage& aPackage,
377 IbisParser& aParser, KIBIS_COMPONENT* aParent, std::vector<KIBIS_MODEL>& aModels );
381 std::string m_signalName;
382
386 std::string m_pinNumber;
387
390
393
396
398
399 std::vector<double> m_t, m_Ku, m_Kd;
400
401 std::vector<KIBIS_MODEL*> m_models;
402
403 bool writeSpiceDriver( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
404 const KIBIS_PARAMETER& aParam );
405 bool writeSpiceDiffDriver( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
406 const KIBIS_PARAMETER& aParam );
407 bool writeSpiceDevice( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
408 const KIBIS_PARAMETER& aParam );
409 bool writeSpiceDiffDevice( std::string& aDest, const std::string& aName, KIBIS_MODEL& aModel,
410 const KIBIS_PARAMETER& aParam );
411
416 void getKuKdNoWaveform( KIBIS_MODEL& aModel, const KIBIS_PARAMETER& aParam );
417
423 void getKuKdOneWaveform( KIBIS_MODEL& aModel,
424 const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
425 const KIBIS_PARAMETER& aParam );
426
435 void getKuKdTwoWaveforms( KIBIS_MODEL& aModel,
436 const std::pair<IbisWaveform*, IbisWaveform*>& aPair1,
437 const std::pair<IbisWaveform*, IbisWaveform*>& aPair2,
438 const KIBIS_PARAMETER& aParam );
439
450 std::string KuKdDriver( KIBIS_MODEL& aModel,
451 const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
452 const KIBIS_PARAMETER& aParam, int aIndex );
453
464 std::string addDie( KIBIS_MODEL& aModel, const KIBIS_PARAMETER& aParam, int aIndex );
465
466
475 void getKuKdFromFile( const std::string& aSimul );
476
478
479 bool isDiffPin() const { return m_complementaryPin != nullptr; };
480
483 KIBIS_PIN* SeriesPartner( std::string* aModelName = nullptr,
484 std::string* aGroupName = nullptr ) const;
485};
486
488{
489 std::string m_pin1;
490 std::string m_pin2;
491 std::string m_modelName;
492 std::string m_groupName;
493};
494
496{
497public:
498 KIBIS_COMPONENT( KIBIS& aToplevel, const IbisComponent& aSource, IbisParser& aParser );
499
501 std::string m_name;
502
504 std::string m_manufacturer;
505
506 std::vector<KIBIS_PIN> m_pins;
507 std::vector<KIBIS_SERIES_PAIR> m_seriesPinMappings;
508
514 KIBIS_PIN* GetPin( const std::string& aPinNumber );
515};
516
517class KIBIS : public KIBIS_BASE
518{
519public:
522 KIBIS_BASE( this, nullptr ),
523 m_file( *this )
524 {};
525
526 KIBIS( const std::string& aFileName, REPORTER* aReporter = nullptr );
527
528 std::vector<KIBIS_COMPONENT> m_components;
529 std::vector<KIBIS_MODEL> m_models;
531
533 std::string m_cacheDir = "";
534
536 KIBIS_MODEL* GetModel( const std::string& aName );
537
539 KIBIS_COMPONENT* GetComponent( const std::string& aName );
540};
541
542#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:506
std::string m_manufacturer
Name of the manufacturer.
Definition kibis.h:504
std::vector< KIBIS_SERIES_PAIR > m_seriesPinMappings
Definition kibis.h:507
std::string m_name
Name of the component.
Definition kibis.h:501
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:238
std::string m_notes
Definition kibis.h:239
double m_ibisVersion
Definition kibis.h:236
std::string m_date
Definition kibis.h:237
bool Init(const IbisParser &aParser)
Definition kibis.cpp:145
std::string m_fileName
Definition kibis.h:234
std::string m_copyright
Definition kibis.h:241
std::string m_disclaimer
Definition kibis.h:240
double m_fileRev
Definition kibis.h:235
std::vector< IbisWaveform * > m_fallingWaveforms
Definition kibis.h:301
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:281
double m_vref
Definition kibis.h:277
std::string m_name
Definition kibis.h:270
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:280
std::vector< IbisWaveform * > m_risingWaveforms
Definition kibis.h:300
TypMinMaxValue m_Cac
Definition kibis.h:295
double m_vinh
Definition kibis.h:276
double m_rref
Definition kibis.h:278
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:307
TypMinMaxValue m_pulldownReference
Definition kibis.h:289
TypMinMaxValue m_GNDClampReference
Definition kibis.h:290
TypMinMaxValue m_Rpower
Definition kibis.h:293
bool HasPulldown() const
Return true if the model has a pulldown transistor.
Definition kibis.cpp:728
IBIS_MODEL_TYPE m_type
Definition kibis.h:272
std::vector< KIBIS_SUBMODEL > m_submodels
Definition kibis.h:303
IbisRamp m_ramp
Definition kibis.h:302
IVtable m_pullup
Definition kibis.h:298
IBIS_MODEL_POLARITY m_polarity
Definition kibis.h:282
double m_cref
Definition kibis.h:279
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:306
TypMinMaxValue m_Rac
Definition kibis.h:294
TypMinMaxValue m_temperatureRange
Definition kibis.h:287
TypMinMaxValue m_voltageRange
Definition kibis.h:286
IVtable m_GNDClamp
Definition kibis.h:296
TypMinMaxValue m_Rgnd
Definition kibis.h:292
std::string m_description
Definition kibis.h:271
KIBIS_MODEL(KIBIS &aTopLevel, const IbisModel &aSource, IbisParser &aParser)
Definition kibis.cpp:263
IVtable m_POWERClamp
Definition kibis.h:297
TypMinMaxValue m_pullupReference
Definition kibis.h:288
std::vector< std::pair< IbisWaveform *, IbisWaveform * > > waveformPairs()
Create waveform pairs.
Definition kibis.cpp:443
TypMinMaxValue m_POWERClampReference
Definition kibis.h:291
TypMinMaxValue m_C_comp
Definition kibis.h:285
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:299
double m_vinl
Definition kibis.h:275
IbisSeriesData m_seriesOff
Definition kibis.h:308
IBIS_CORNER m_supply
Definition kibis.h:221
IBIS_CORNER m_Cpin
Definition kibis.h:219
KIBIS_ACCURACY m_accuracy
Definition kibis.h:223
IBIS_CORNER m_Ccomp
Definition kibis.h:220
IBIS_CORNER m_Lpin
Definition kibis.h:218
IBIS_CORNER m_Rpin
Definition kibis.h:217
void SetCornerFromString(IBIS_CORNER &aCorner, const std::string &aString)
Definition kibis.cpp:1705
KIBIS_WAVEFORM * m_waveform
Definition kibis.h:222
bool isDiffPin() const
Definition kibis.h:479
TypMinMaxValue m_Rpin
Resistance from die to pin.
Definition kibis.h:389
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:392
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:397
std::vector< double > m_Ku
Definition kibis.h:399
std::string m_pinNumber
Pin Number Examples : 1, 2, 3 ( or for BGA ), A1, A2, A3, etc...
Definition kibis.h:386
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:401
std::vector< double > m_t
Definition kibis.h:399
TypMinMaxValue m_Cpin
Capacitance from pin to GND.
Definition kibis.h:395
std::string m_signalName
Name of the pin Examples : "VCC", "GPIOA", "CLK", etc...
Definition kibis.h:381
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:399
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:477
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:256
std::string m_name
Definition kibis.h:251
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:253
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:257
IBIS_SUBMODEL_TYPE m_type
Definition kibis.h:252
KIBIS_WAVEFORM_HIGH_Z(KIBIS &aTopLevel)
Definition kibis.h:179
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:147
double GetDuration() const override
Definition kibis.h:149
KIBIS_WAVEFORM_PRBS(KIBIS &aTopLevel)
Definition kibis.h:133
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:126
KIBIS_WAVEFORM_RECTANGULAR(KIBIS &aTopLevel)
Definition kibis.h:110
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1741
KIBIS_WAVEFORM_STUCK_HIGH(KIBIS &aTopLevel)
Definition kibis.h:155
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1716
KIBIS_WAVEFORM_STUCK_LOW(KIBIS &aTopLevel)
Definition kibis.h:167
std::vector< std::pair< int, double > > GenerateBitSequence() const override
Definition kibis.cpp:1726
KIBIS_WAVEFORM_TYPE m_type
Definition kibis.h:104
virtual ~KIBIS_WAVEFORM()
Definition kibis.h:83
virtual bool Check(const dvdtTypMinMax &aRisingRp, const dvdtTypMinMax &aFallingRp) const
Definition kibis.h:98
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:518
std::vector< KIBIS_MODEL > m_models
Definition kibis.h:529
KIBIS()
Constructor for unitialized KIBIS members.
Definition kibis.h:521
std::vector< KIBIS_COMPONENT > m_components
Definition kibis.h:528
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:530
std::string m_cacheDir
Absolute path of the directory that will be used for caching.
Definition kibis.h:533
A pure virtual class used to derive REPORTER objects from.
Definition reporter.h:73
@ NONE
Definition eda_fill.h:42
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:207
KIBIS_WAVEFORM_TYPE
Definition kibis.h:61
EDA_ANGLE abs(const EDA_ANGLE &aAngle)
Definition eda_angle.h:437
std::string m_pin1
Definition kibis.h:489
std::string m_groupName
Definition kibis.h:492
std::string m_pin2
Definition kibis.h:490
std::string m_modelName
Definition kibis.h:491