Qucs-core  0.0.18
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
bondwire.cpp File Reference

Implement a bondwire model. More...

#include "component.h"
#include "substrate.h"
#include "bondwire.h"

Go to the source code of this file.

Data Structures

struct  modeltable_t
 
class  bondwire
 

Macros

#define TABLE(x)   { #x, x }
 
#define ARRAY_SIZE(x)   (sizeof(x) / sizeof((x)[0]))
 

Enumerations

enum  bondwiremodel { FREESPACE, MIRROR, DESCHARLES }
 

Functions

static nr_double_t skindepth (const nr_double_t f, const nr_double_t rho, const nr_double_t mur)
 
static nr_double_t correctionfactor (const nr_double_t f, const nr_double_t d, const nr_double_t rho, const nr_double_t mur)
 

Variables

static const modeltable_t modeltable []
 
 PROP_REQ []
 
 PROP_OPT []
 

Detailed Description

Implement a bondwire model.

Bibliography:

[1] Microwave Solid State Circuit Design, Inder Bahl and Prakash Barthia – 2nd edition 2003 - Wiley interscience ISBN 9-471-20755-1

[2] Wikibook Electronics/Inductors http://en.wikibooks.org/w/index.php?title=Electronics/Inductors&oldid=497883 online 2006/11/02

[3] Physical and electrical modeling of bonding wires up to 110 GHz, Descharles, C. Algani, C. Mercier, B. Alquie, G. Microwave Conference, 2003. 33rd European Volume: 2, On page(s): 639- 642 vol.2 ISBN: 1-58053-834-7 INSPEC Accession Number: 1262971

Definition in file bondwire.cpp.

Macro Definition Documentation

#define ARRAY_SIZE (   x)    (sizeof(x) / sizeof((x)[0]))

array size

Definition at line 67 of file bondwire.cpp.

#define TABLE (   x)    { #x, x }

create a matching table between model number and string

Definition at line 65 of file bondwire.cpp.

Enumeration Type Documentation

bondwire model number

Enumerator
FREESPACE 

fresspace model

MIRROR 

mirror plane model

DESCHARLES 

Descharles Algani Mercier Alquie model

Definition at line 70 of file bondwire.cpp.

Function Documentation

static nr_double_t correctionfactor ( const nr_double_t  f,
const nr_double_t  d,
const nr_double_t  rho,
const nr_double_t  mur 
)
static

Compute correction factor. According to [1] pp63 (2.30a-b) correction factor is such as:

\[ C = 0.25 \tanh \frac{4\delta}{d} \]

where $\delta$ is the well known skin depth.

Parameters
ffrequency
dbond wire diameter
rhobond wire resistivity
murrelative magnetic permeabillity

However according to [2] it seems that the author of [1] do the assumption of $\mu_r=1$ therefore rewrite the equation such as:

\[ C = \frac{\mu_r}{4} \tanh \frac{4\delta}{d} \]

Returns
mur/4 if rho is zero, otherwise C
Todo:
Check domain validity for round C factor.

Definition at line 198 of file bondwire.cpp.

static nr_double_t skindepth ( const nr_double_t  f,
const nr_double_t  rho,
const nr_double_t  mur 
)
static

Compute skin depth.

Todo:
Factorize the compution of skin depth in a header file.
Parameters
ffrequency
rhobond wire resistivity
murrelative magnetic permeabillity

Definition at line 143 of file bondwire.cpp.

Variable Documentation

const modeltable_t modeltable[]
static
Initial value:
= {
}
#define TABLE(x)
Definition: bondwire.cpp:65

model number to string matching table implementation

Definition at line 83 of file bondwire.cpp.

PROP_OPT[]
Initial value:
= {
{ "Temp", PROP_REAL, { 26.85, PROP_NO_STR }, PROP_MIN_VAL (K) },
#define PROP_REAL
Definition: netdefs.h:174
#define PROP_NO_PROP
Definition: netdefs.h:122
#define K
Absolute 0 in centigrade.
Definition: constants.h:59
#define PROP_NO_STR
Definition: netdefs.h:125
#define PROP_MIN_VAL(k)
Definition: netdefs.h:133

Definition at line 431 of file bondwire.cpp.

PROP_REQ[]
Initial value:
= {
{ "D", PROP_REAL, { 25e-6, PROP_NO_STR }, PROP_POS_RANGE },
{ "L", PROP_REAL, { 1e-3, PROP_NO_STR }, PROP_POS_RANGE },
{ "H", PROP_REAL, { 1e-3, PROP_NO_STR }, PROP_POS_RANGE },
{ "mur", PROP_REAL, { 1, PROP_NO_STR }, PROP_RNGII (1, 100) },
{ "rho", PROP_REAL, { 0.022e-6, PROP_NO_STR }, PROP_POS_RANGE },
{ "Model", PROP_STR, { PROP_NO_VAL, "FREESPACE" },
PROP_RNG_STR3 ("FREESPACE", "MIRROR", "DESCHARLES") },
{ "Subst", PROP_STR, { PROP_NO_VAL, "Subst1" }, PROP_NO_RANGE },
#define PROP_POS_RANGE
Definition: netdefs.h:129
#define PROP_RNGII(f, t)
Definition: netdefs.h:138
#define PROP_REAL
Definition: netdefs.h:174
#define PROP_NO_PROP
Definition: netdefs.h:122
#define PROP_NO_RANGE
Definition: netdefs.h:126
#define PROP_NO_STR
Definition: netdefs.h:125
#define PROP_STR
Definition: netdefs.h:175
#define PROP_NO_VAL
Definition: netdefs.h:124
#define PROP_RNG_STR3(s1, s2, s3)
Definition: netdefs.h:147

Definition at line 421 of file bondwire.cpp.