-
Notifications
You must be signed in to change notification settings - Fork 5
/
TODO
220 lines (217 loc) · 10.1 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
--
-- TODO
--
-- This is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2, or (at your option)
-- any later version.
--
-- This software is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this package; see the file COPYING. If not, write to
-- the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA.
--
This file lists all the things we would like to add in the future.
Bugs are not listed here; for a list of all known bugs (fixed and
unfixed) have a look at the file BUGS.
(completed tasks are indented one tab)
- Transmission line defined by RLCG values.
- Implement fftshift() functionality.
- File based sources defined in the frequency domain.
- MESFET translation from SPICE to qucs in the converter.
- Four-terminal versions of two-port RFEDD's.
- Implementation of ddx() operator, especially for EDD.
- Introduce global nodes (e.g. subst!) in the simulator.
- Allow variable references in property value lists (reference
can be introduced by creating vectors, and referencing to the
vector).
- Translation of B-sources in SPICE converter using EDD.
- Translation of polynomial C's and L's in SPICE converter using EDD.
- Noise equations in EDD.
- Implicit expressions for EDD.
- User defined functions for equation solver.
- Functions for double- and single-sided spectra conversion.
- Mutual inductors with virtually unlimited number of
couplings.
- Make 'time' and 'frequency' variables available in equations during
AC, SP and transient simulation.
- Allow engineering notation in equations.
- Support for ZVR ascii data (R&S network analyzer) as an import
file format in the Qucs Converter.
- Allow input parameters of components, e.g. Q1.Bf, in equations.
- Implementation of some basic binary operations for binary data like
and, or, xor, etc. in the equation solver.
- Support for binary (digital simulation) data in datasets.
- Implement open/short in S-parameter component during DC.
- Support for touchstone as an export file format in the
Qucs Converter.
- Translate switches in spice netlists in the netlist converter.
- Support for equation defined voltage/current sources or
components.
- Allow equations in subcircuits.
- Support for CITIfiles as an import file format in the Qucs
Converter.
- Support for comma separated values (CSV) as an export
file format in the Qucs Converter.
- Implement yval(values,xval) and xval(values,yval) evaluation
functions in the equation solver.
- Allow output of characteristics (e.g. ErEff) very likely
operating points.
- Implement knee currents Ikf and Ikr in the diode model.
- Implementation of delay times of digital components for
transient simulation.
- QucsConv: Implementation of VCD to Qucs dataset converter.
- Implement analog models for digital (and, or, xor, etc.)
components.
- Use symbol hash for function lookup in equation solver. Now
using 'gperf' to create a perfect hash.
- Implement dft() and idft() functions.
- Implementation of correlated noise sources.
- Allow variables from other datasets in equations.
- Use minimum noise figure for noise circles as default. Makes no
sense, because there is no circle but a point for the minimum.
- Use maximum gain for gain circles as default. This makes no
sense, because there is no circle but a point for the maximum.
- Allow impedances other than 50ohms in rtoz(), ztor(), stoy(),
ytos(), stoz(), ztos(), ztoy(), ytoz() and alike.
- QucsConv: Redefine qucslib format.
- QucsConv: Find a solution for three and more mutual inductors
conversion from spice to qucs. Solution for three mutual
inductors implemented.
- Implementation of non-ideal transformers (mutual inductances).
- Spline interpolation for touchstone S-parameters. Implement
general interpolation functionality for all kind of data. Make
this available in equation solver as well.
- Singular value decomposition (SVD) for solving linear equation
systems.
- Automatic variable generation in equation solver (plotvs,
circles).
- QR decomposition algorithm for solving linear equation systems.
- Implement fft() function for signals in the time domain in the
equation solver.
- Digital simulation (on gate level with timing?). Implemented
in the GUI. Using a FreeHDL installation.
- Document interface for additional device model implementations.
- HEMT implementation.
- Relative permeability of microstrip line substrate.
- Cover height (shielding) of (coupled) microstrip line.
- Coplanar short and open components.
- Large signal S-parameter simulation based on harmonic balance.
- Implement Zener diode model or extend the existing diode
model. Using the Bv and Ibv parameters.
- Use Markowitz pivoting when solving equation systems with a sparse
matrix.
- Implement a sparse matrix template class.
- Non-ideal transient models of bias-t, dc-block and dc-feed.
- Implement optional gmin-stepping algorithm.
- More S-parameter computation formulas, e.g. stability factors.
- Implementation of noise and stability circle formulas.
- Implement some more matrix operations, e.g. det(), conj(),
transpose() and inverse(), to be available in equations.
- Spice to Qucs netlist converter.
- Reordering algorithm for MNA matrices (fail of convergence).
- Allow array indices in vectors with multiple dependencies.
- Add charge-conversing model for MOS capacitances (i.e. Simpson's
numerical integration rule).
- Implement variable step-size coefficients for Adams-Bashford.
- Implement variable step-size coefficient calculations for
transient integrators.
- Transient model of phaseshifter.
- Transient models for controlled sources with time delay.
- Transient noise analysis.
- Implement a real predictor for transient analysis.
- Use Milne's formula for local truncation error estimation.
- Transient models of transmission lines (using convolution?).
- Transient models of non-linear devices.
- Implementation of transient models for capacitor, inductor and
resistor.
- Subcircuit definitions with properties.
- Node-set functionality for DC and transient analysis.
- Coplanar line implementation.
- Microstrip via hole implementation.
- Microstrip t-junction.
- Microstrip cross.
- Modella, HICUM, MEXTRAM and VBIC bipolar model implementations.
- MESFET (Curtize, Staatz) implementations.
- BSIMv3 implementation.
- BSIMv4 implementation.
- Harmonic balance simulation.
- Transient simulation.
- AC noise analysis.
- AC analysis.
- Implement sorted node list for S-parameter analysis in order
to increase speed.
- What about a damped Newton-Raphson or source-stepping?
- Find an efficient algorithm to ensure non-zero diagonal matrix
elements for iterative methods.
- Clarify pn-junction noise issue.
- Check polarity of BJT (SPICE Gummel-Poon) device.
- Implement temperature models of existing non-linear devices.
- Implement DC model for transmission line.
- Implement noise model for attenuator, diode and isolator.
- Recalculate S-parameters in touchstone files for n+1 ports.
- Implement excess phase and polarity of SGP BJT model.
- Make Wheeler's quasi-static formulas for microstrip continual.
- Allow subcircuits in netlist and simulate them correctly.
- Parameter for exporting equation result to dataset.
- What about resistors with R=0?
- Implement DC model for phaseshifter.
- Implement DC model for bias T.
- Handle special DC models for dc-block, dc-feed, inductor and
capacitor.
- Use LU decomposition for matrix inversion and determinants. Done
by Gaussian methods.
- Implement sec(), cosec(), sech() and cosech() functions.
- Implement sinc() and sign() functions.
- Fix dependency in dataset variables when e.g. using max().
- Add constants like pi to the available symbols in equations.
- Implement list and logarithmic sweeps and merge them with the
existing linear parameter sweep.
- Do not permit duplicate parameter names in parameter sweeps, but
allow them in same order sweeps.
- Implement implicit dependencies of analysis types.
- Check for duplicate definitions in equations and parameter sweep
variables.
- Add string constants to equation base class.
- Allow equation variables in component properties.
- Implement class for vectors of matrices.
- Check for cyclic analysis definitions.
- Somehow merge the variable class and the equation base classes.
- Fix dataset output of multiple variable sweeps.
- Implement correct analysis order.
- Optimize reduce by searching for a connection that will result
in the new subnetwork with the smallest number of s-parameter
to calculate.
- Avoid both types of singularities of s-parameter analysis.
- Insert open node points if necessary.
- Make dedicated signal ports.
- Implement 4-port voltage controlled current source (VCCS).
- Implement circulator.
- Implement isolator.
- Implement attenuator.
- Implement 4-port transformer.
- Implement device (touchstone file).
- Implement netlist parser using bison + flex.
- Permit differential s-parameters.
- Add math functionality to the dataset class. The functionality was
build into the base types.
- Allow multiple s-parameter simulations at once.
- Free the parsed netlist input (as checker functionality).
- Add already implemented components to checker + factory.
- Allow s-parameter impedances other than Z=50 Ohm.
- Implement "@file" component property. Is now "{file}" property.
- Allow variable definitions and sweeps.
- Exit code indicating simulation success/failure.
- Status and error message file descriptors.
- Autofy the package.
- Make 'nr_double_t' configurable.
- Handle reference impedance for touchstone files correctly.
- Implement matrix conversion routines for datasets.
- Add noise parameters in touchstone file importer.
- Implement 6-port transformer.
- Add microstrip elements to the list of available components.