Qucs-core  0.0.19
Data Structures | Defines | Enumerations | Functions | Variables
bondwire.cpp File Reference

Implement a bondwire model. More...

#include "component.h"
#include "substrate.h"
#include "bondwire.h"
Include dependency graph for bondwire.cpp:

Go to the source code of this file.

Data Structures

struct  modeltable_t
class  bondwire

Defines

#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.


Define 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:

model number to string matching table implementation

Definition at line 83 of file bondwire.cpp.

Initial value:
 {
  { "Temp", PROP_REAL, { 26.85, PROP_NO_STR }, PROP_MIN_VAL (K) },
  PROP_NO_PROP }

Definition at line 431 of file bondwire.cpp.

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 },
  PROP_NO_PROP }

Definition at line 421 of file bondwire.cpp.