KiCad PCB EDA Suite
Loading...
Searching...
No Matches
coupled_stripline.h
Go to the documentation of this file.
1/*
2 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this package; see the file COPYING. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 */
19
20#ifndef TRANSLINE_CALCULATIONS_COUPLED_STRIPLINE_H
21#define TRANSLINE_CALCULATIONS_COUPLED_STRIPLINE_H
22
23
26
27/*
28 * This implements the calculations described in:
29 *
30 * [1] S. B. Cohn, "Characteristic Impedance of the Shielded-Strip Transmission Line," in Transactions of the IRE
31 * Professional Group on Microwave Theory and Techniques, vol. 2, no. 2, pp. 52-57, July 1954
32 * [2] S. B. Cohn, "Shielded Coupled-Strip Transmission Line," in IRE Transactions on Microwave Theory and Techniques,
33 * vol. 3, no. 5, pp. 29-38, October 1955
34 */
35
37{
39
40public:
47
49 void Analyse() override;
50
52 bool Synthesize( SYNTHESIZE_OPTS aOpts ) override;
53
54private:
56 void SetAnalysisResults() override;
57
59 void SetSynthesisResults() override;
60
63
65 void calcFringeCapacitances( double h, double t, double er );
66
69
71 void calcZeroThicknessCoupledImpedances( double h, double w, double s, double er );
72
74 void calcZ0EvenMode();
75
77 void calcZ0OddMode( double t, double s );
78
80 void calcLosses();
81
83 void calcDielectrics();
84
85 double C_f_0{ 0.0 };
86 double C_f_t_h{ 0.0 };
87
88 double Z0_w_h_0{ 0.0 };
89 double Z0_w_h_t_h{ 0.0 };
90 double Z0_e_w_h_0_s_h{ 0.0 };
91 double Z0_o_w_h_0_s_h{ 0.0 };
92
93 double e_eff_e{ 0.0 };
94 double e_eff_o{ 0.0 };
95 double ang_l{ 0.0 };
96 double unit_prop_delay_e{ 0.0 };
97 double unit_prop_delay_o{ 0.0 };
98
101};
102
103
104#endif //TRANSLINE_CALCULATIONS_COUPLED_STRIPLINE_H
void Analyse() override
Analyse track geometry parameters to output Z0 and Ang_L.
double C_f_t_h
Fringing capacitance of single strip of finite width.
void calcLosses()
Calculates conductor and dielectric losses.
void SetSynthesisResults() override
Sets the output values and status following synthesis.
STRIPLINE m_striplineCalc
Calculator used to determine single stripline values.
double unit_prop_delay_o
Odd mode unit propagation delay (ps/cm)
bool Synthesize(SYNTHESIZE_OPTS aOpts) override
Synthesis track geometry parameters to match given Z0.
void calcFringeCapacitances(double h, double t, double er)
Calculate the coupling fringe capacitances.
double Z0_o_w_h_0_s_h
Odd mode impedance of coupled zero thickness strips.
double Z0_w_h_t_h
Impedance of single strip of finite thickness.
void calcZ0EvenMode()
Calculates even mode Z0.
void calcDielectrics()
Calculate dialectric and propagation parameters.
double Z0_w_h_0
Impedance of single strip of zero thickness.
void calcSingleStripImpedances()
Calculates impedances of finite- and zero-thickness single strips.
double e_eff_e
Even mode effective dielectric constant.
void calcZ0OddMode(double t, double s)
Calculates odd mode Z0.
void SetAnalysisResults() override
Sets the output values and status following analysis.
double C_f_0
Fringing capacitance from one edge to ground of zero thickness strip.
double e_eff_o
Odd mode effective dielectric constant.
double Z0_e_w_h_0_s_h
Even mode impedance of coupled zero thickness strips.
double calcZ0SymmetricStripline()
Calculates the impedance of a finite-width single strip.
double ang_l
Angular length (rad)
void calcZeroThicknessCoupledImpedances(double h, double w, double s, double er)
Calculates zero-thickness coupled strip impedances.
TRANSLINE_PARAMETERS TCP
double unit_prop_delay_e
Even mode unit propagation delay (ps/cm)
TRANSLINE_CALCULATION_BASE(std::initializer_list< TRANSLINE_PARAMETERS > aParameters)
Constructs the transmission line calculation object.
SYNTHESIZE_OPTS
Options for specifying synthesis inputs, targets, or strategies.
TRANSLINE_PARAMETERS
All possible parameters used (as inputs or outputs) by the transmission line calculations.