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