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