Download Development Releases

release-icon Latest Version: 2024.0903

Quick Way to Install XMODEL:

chmod +x xmodel_YYYY.MMDD_x86_64.sh
./xmodel_YYYY.MMDD_x86_64.sh -b -p <PATH_TO_INSTALL_XMODEL>

Release Notes

  • Added 'valueX' and 'valueZ' parameters to 'xbit_to_xreal', 'bit_to_xreal', 'xbit_to_real', 'bit_to_real', 'xbit_to_xreal_var', 'bit_to_xreal_var', 'xbit_to_real_var', 'bit_to_real_var', 'xbit_to_bit', 'bit_to_xbit', 'buf_xbit', 'inv_xbit', 'transition', and 'switch' primitives. These parameters support mapping of logic-X and logic-Z values of their inputs.
  • Added 'siph_cwlaser_var' primitive modeling a multi-wavelength, tunable laser source.
  • Fixed a bug with 'meas_max', 'meas_min', 'meas_pp', 'meas_avg', 'meas_rms', and 'meas_integ' primitives crashing with segmentation faults with some inputs are not initialized.
  • Improved the XWAVE speeds of loading waveform files and displaying waveforms.
  • Added XWAVE support for command script generation of XWAVE analyses.
  • Added XWAVE support for reloading the XWAVE analysis results.
  • Improved XWAVE API interface for XWAVE analyses.
  • Fixed the statistical operation of the 'and_xbit', 'or_xbit', 'tribuf_xbit', and 'xor_xbit' primitives.
  • Added GLISTER symbols for 'trig_call' primitive.
  • Fixed the GLISTER interface for the 'trig_time' primitive, omitting the parameter 'delay' of 0.0 when the parameter 'period' has a positive value.
  • MODELZEN supports the case of multiple outputs of 'bit', 'wire', 'reg', or 'logic' type driving a single 'wire'-type output port, internal net, and global net.

  • Added a 'freq_offset' parameter to the 'probe_ac' primitive to support the AC transfer function measurement with frequency offsets.
  • XWAVE now supports the use of scale units and expressions in the analysis dialog entries.
  • Re-arranged the XMODEL common package files in the include/ directory to get around potential issues when pre-compiling the libraries; the 'XMODEL_global' module is defined in a new file named 'xmodel_global.sv' and the new 'XMODEL_RELOAD_HEADER' can enable the redundant reload of the 'xmodel.h' contents.
  • Improved the numerical stability of 'delay_to_clk' primitive especially when the input contains low-frequency terms with large residues.
  • Fixed a bug with the 'vprobe' primitive not producing output unless the input ports are not being dumped.
  • Fixed a bug with 'phase_to_clk' and 'freq_to_clk' primitives producing missing clock edges.
  • Fixed a bug with the XMODEL circuit-level simulation producing zero voltages for the floating nodes especially when the connecting transistors turn off.
  • Fixed a bug with the 'filter' primitive’s parameter callback function in GLISTER.

  • XMODEL supporting advanced cluster partitioning for vsource elements, speeding up simulation measuring total cu
    rrent or power.
  • MODELZEN now converts the voltage source elements to 'vsource' primitives by default. The old behavior of using
    'dc_gen' can be enabled by setting 'devo_options["use_dcgen"]=True'.
  • Renamed 'math_pkg' package used internally to 'xmodel_mathpkg' to avoid possible naming collision.
  • Fixed GLISTER bugs when netlisting 'systemVerilog' cellviews.
  • Fixed a bug with 'comblogic' UDM when the circuit has no inputs.

  • Updated the nonlinear element models for DC analysis to improve the accuracy.
  • Updated 'meas_bathtub.py' script to avoid crash when all the measured BER values are zero.
  • Updated the SystemVerilog reserved keyword list of MODELZEN.
  • Added MODELZEN support for regex/wildcard expressions for '--real', '--wire', '--xbit', '--expand', and '--exclude' options.
  • Added the 'Modules to Exclude' option field to MODELZEN GUI interface.
  • Fixed a bug with 'replay_xreal' primitive when producing waveforms with more than one points at the same timestep.
  • Fixed a GLISTER bug with global design parameters when running XMODEL simulations via ADE.
  • Fixed a MODELZEN bug with evaluating parameter values when expanding modules.

  • Added '--exclude' option to MODELZEN to exclude definitions of selected modules from the generated model.
  • Fixed a bug with 'filter' and 'filter_var' primitives handling inputs with poles very close to the poles of the filter transfer function.
  • Fixed a bug with MODELZEN/GLISTER interface checking the valid mode specification expressions.

  • Fixed a bug with MODELZEN evaluating expressions containing 'as' parameter.
  • Updated the XMODEL’s cross-finding algorithm to address some numerical issues.
  • Updated XMODEL to address the crash problem when running VCS-XA co-simulation.
  • Updated MODELZEN to support simple expressions without surrounding quotes in HSPICE-format netlists.
  • Updated MODELZEN to raise an error when the technology configuration file does not contain the definition for 'devo_options'.
  • Updated XWAVE to support multi-PAM prDFE eye diagram plotting.

  • MODELZEN supports independent control of the DUT netlist format using the 'sim_dutformat' option.
  • MODELZEN renames instance names when they have conflicts with parameter/net names or reserved keywords.

  • Updated MODELZEN support for PrimeSim (previously FineSim) especially when it is used with '-spectre' option.
  • Updated the built-in UDMs to support PrimeSim (previously FineSim).

  • Fixed bugs with 'jez2vcd' script producing VCD-format readable by Cadence VIVA.
  • Fixed bugs with '$xmodel_dumpfile()' supporting new VCD-format waveforms.
  • Fixed a bug with 'xbit_to_xreal_var' connect primitive producing null waveforms in Xcelium.

  • XMODEL can now dump VCD-format waveform files using '$xmodel_dumpfile()'.
  • Added MODELZEN support for multiplication factor parameters for UDM instances.
  • Added MODELZEN support for net names like '0p75v' in Spectre-format netlists.
  • Added '--udmmap' option to 'devo' utility to show 'devo_udmmap' mapping examples.
  • Added '--nperiod' option to 'meas_jtran.py' script to define the measurement periods.
  • Fixed a bug with 'filter', 'filter_var', and 'filter_sel' primitives producing diverging outputs.
  • Fixed a bug with 'filter_var' primitive not taking the pole, zero, gain values at time 0.
  • Fixed a bug with 'integ_mod' primitive stalling the simulation progress.

  • MODELZEN now produces multiplication factor parameter for UDM instances.
  • Added MODELZEN support for net names like '0p75v' in Spectre-format netlists.
  • Added '--udmmap' option to 'devo' utility to show 'devo_udmmap' mapping examples.
  • Added '--nperiod' option to 'meas_jtran.py' script to define the measurement periods.
  • Fixed a bug with 'filter', 'filter_var', and 'filter_sel' primitives producing diverging outputs.
  • Fixed a bug with 'filter_var' primitive not taking the pole, zero, gain values at time 0.
  • Fixed a bug with 'integ_mod' primitive stalling the simulation progress.

  • Added a utility script 'fsdbvers', which can display the API version information of FSDB reader/writer libraries.
  • Fixed a bug with MODELZEN, handling 'npn' and 'pnp' elements located in the lower design hierarchies.
  • Fixed a bug with GLISTER/OA integration handling instance names when their 'hspice' properties have SPICE directives (e.g. '.ic', '.probe'), but not the NLP expressions for the instance names.

  • Hot fix to improve the simulation speed by removing redundant iterations performed by 'slice' primitive.

  • GLISTER supports the aliases of 'analogLib' library ('xmodelAltViewAliases').
  • Fixing the bug with 'xreal_to_real' primitive operating in 'pwc' mode.
  • Fixing the event accumulation issue when simulating certain circuits for extended period of time.
  • Fixing the bug with 'npn', 'pnp', and 'diode' primitives in their exponential I-V equations.

  • Added primitives for setting and getting temperature values: 'xreal_to_temp', 'real_to_temp', 'temp_to_xreal', 'temp_to_real'.
  • Updated 'dff_xbit' and 'latch_xbit' primitives to improve their speeds.
  • Updated 'npn' and 'pnp' primitives to support dynamic changes in temperature during simulation.
  • Fixed a MODELZEN bug in characterizing UDMs with Spectre ('stop limit must not equal start limit').

  • Added 'npn' and 'pnp' primitives for modeling bipolar junction transistors (BJTs) with temperature-dependent characteristics.
  • Added MODELZEN support for calibrating bipolar junction transistor model parameters.
  • Added MODELZEN support for the use of wildcard/regular expressions in 'devo_udmmap' in technology configuration files.
  • Added MODELZEN support for the use of '-' characters in the node names of SPICE netlists.
  • Added 'udm_options["assert_invalid_mode"]' option in MODELZEN technology configuration file to enable customization of assertion message for invalid UDM mode values.
  • Added 'devo_options["passive_novalue"]' option in MODELZEN technology configuration file to define handling of passive elements with no element values.
  • Updated 'deriv' primitive to avoid trimming of small-amplitude signals.
  • Fixed a MODELZEN bug to interpret the scaleunit 'M' as 'mega' instead of 'milli' in Spectre-format netlists.
  • Fixed a bug with 'replay_all' primitive in GLISTER handling digital bit vectors.
  • Fixed a bug with 'select' UDM.

  • MODELZEN treats the 'resistor', 'inductor', and 'capacitor' instances without the element values specified as 'open', 'short', and 'open' elements, respectively.
  • MODELZEN characterizes the circuits/devices only with the sets of parameters actually used within the design; previously, it also characterized the circuits/devices with their default parameter values.
  • MODELZEN now generates models excluding the cells mapped to UDMs when producing a single-file output.
  • MODELZEN has a new '--real' option that can specify a list of modules with the default I/O port type of 'real'.
  • Added 'srlatch' UDM.
  • Fixed a MODELZEN bug handling SPICE netlist containing subcircuits with no default parameter definitions.

  • Added '--uvm' and '--uvm-option' options to the 'xmodel' launcher script that specify UVM-related options.
  • Revised GLISTER netlisting format for unpacked real-type arrays, for example, to make the ADC receiver example with 'filter_disc_var' primitives work with all the simulators.
  • Fixed a bug with 'compare' primitive when it is used in the finite-aperture mode.
  • Fixed a bug with 'stline' primitive when the reflection transfer functions are defined in split-delay format.
  • Fixed a bug with 'inline' primitive when the source code includes '%' characters.
  • Fixed a bug with 'filter_var' primitive when it receives the changes in the 'gain', 'poles', or 'zeros' inputs before the input 'in' becomes valid.
  • Fixed a bug with the 'xmodel' launcher script when it parses '--sweep' and '--param' expressions.

  • Added a GLISTER option 'xmodelExpandUnpackedArray' to control whether to expand the unpacked array signals into their members or not during the GLISTER netlisting (default: nil).
  • Updated the 'nmosfet' and 'pmosfet' primitives so that their GMIN resistance at the cut-off state is placed between the source and drain instead of between the source/drain and ground.
  • Updated GLISTER to make the script files executable when they are being netlisted from testbench views.
  • Improved XWAVE to reduce its aliasing effects when plotting waveforms of 'xreal'-type signals.

  • Improved GLISTER license check-out behavior preventing the orphaned license when users interrupt while GLISTER waits for the license to check out.
  • Added 'const_xreal' primitive for producing a vector of constant xreal-type values.
  • Added 'const_bit' and 'const_real' primitives as GLISTER’s pseudo primitives.
  • Updated 'const_xbit' symbol view.
  • Updated 'filter' primitive in GLISTER so that parameters can define its pole and zero frequencies.
  • Updated 'filter_disc' and 'filter_disc_var' primitives so that they can keep their initial states while the input has a 'NaN' value.
  • Updated 'prbs_gen' and 'pat_gen' primitives to have 1-unit delay to avoid racing issues when a 'dff_xbit' primitive registers their outputs with the same clock.
  • Updated the default value of 'devo_namemap' to treat names like 'A\(1\)' as array members.
  • Updated the 'jtol.py' script to support the use of 'probe_ber' primitives checking multi-bit outputs.
  • Fixed a GLISTER bug misplacing top-side labels for auto-created symbols.
  • Fixed a GLISTER netlisting bug handling the unpacked real array terminals of the 'filter_disc_var' and 'filter_var' primitives.
  • Fixed a GLISTER netlisting bug handling 'mux_xbit' primitives with the 'width_sel' parameter set to 4.
  • Fixed a bug with the 'meas_ac' script crashing when the measurement data contains all zeros.

  • Revised 'inductor.py' UDM with parameter checks.
  • Fixed a bug with the FSDB dumping of multi-dimensional array nets.
  • Fixed a precision issue with the stimulus generated by 'probe_dc' primitive.
  • Fixed a MODELZEN bug when the input netlist does not contain default parameter values with the subcircuit definitions.

  • Added 'inductor.py' UDM to model multi-port inductors/transformers.
  • Added 'xmodelMapTermNameReplayAll()' GLISTER API function to support formatting terminal names of 'replay_all' primitives.
  • Adjusted GMIN values from 1e-9 to 1e-11 to reduce artificial leakages in off-state switches/transistors.
  • Added MODELZEN support for net names starting with backslashes.
  • Added MODELZEN support for 'nport' elements with keyword-valued parameters.
  • Added MODELZEN UDM support for circuits containing mutual inductors.
  • Fixed a bug with the 'sparam_to_tline' script estimating delays of transfer functions.
  • Fixed an XMODEL bug with AC coupling capacitors driven by zero rise/fall-time signals.
  • Fixed an XWAVE bug with displaying signal values at cursors with FSDB-format waveform files.
  • Fixed a GLISTER bug to support older version of Cadence Virtuoso (06.17).

  • Improved the GLISTER speed of importing large SystemVerilog source files.
  • Updated the 'adc' primitive to support negative LSB values.
  • Updated the 'transition' primitive to avoid false warnings on its 'rise_time' and 'fall_time' parameter values.
  • Updated 'dlatch.py' UDM to support reset/set operation while the clock is low.
  • Updated the GLISTER API function 'xmodelUpdateCellView()' to generate a symbol view when the 'genSymbol' argument is 't'.
  • Fixed an XMODEL bug crashing during the FSDB waveform dump with Questa.
  • Fixed a bug with XMODEL CLM engine handling low-frequency poles.
  • Fixed a GLISTER bug with loading/saving MODELZEN property files.

  • GLISTER supports the mapping of UDMs to individual slices of parallel instances with the “Apply to Slices” option.
  • $xmodel_dumpvars() now supports current probing for res_var, res_sw, res_idx, cap_var, cap_sw, cap_idx, ind_var, ind_sw, and ind_idx.
  • Updated the UDM dlatch.py to support multiple clock inputs.
  • GLISTER/MODELZEN supports the use of global signals as the UDM ports’ conversion level values.
  • Improved the stability of XMODEL CLM’s engine especially when the signal’s multiplicity keeps increasing.
  • Fixed MODELZEN bug handling global nets with mixed-case letters (e.g. vccD!).

  • Added '--log-conn' option to MODELZEN, which displays messages when type-coercing connectors are inserted during model generation.
  • Improved XMODEL CLM simulation speed by reducing overhead of measuring execution times.
  • Improved GLISTER’s execution time of cross-checking between views for parameterized cells.
  • Updated 'switch' primitive so that with -`INFINITY resistance, the switch would not have GMIN resistances when it is open.
  • Fixed memory leak problems in 'slice' and 'dac' primitives.
  • Fixed a GLISTER netlisting bug expanding busses even when the index ordering has conflicts.

  • Updated 'step_gen' primitive to support generation of periodic waveforms with 'width' and 'period' parameters.
  • MODELZEN can trim open/short elements with multiple instance members.
  • Fixed bugs with 'replay_xreal' and 'replay_xbit' primitives generating multiple events within one timestep when its time precision is finer than that used in the simulation.
  • Fixed bugs with 'integ', 'integ_mod', and 'integ_rst' primitives processing events at time 0.
  • Fixed a MODELZEN bug crashing when grouping instances with names containing '<...>'.

  • Supporting unpacked arrays for 'xbit' and 'xreal' signals for CLM simulation and dumping waveforms.
  • Improved XMODEL numerical stability handling complex poles with high multiplicities.
  • Added 'licstat' utility for plotting license usage statistics.
  • Added MODELZEN support for 'group' property in 'devo_devicemap' to combine multiple instances into one (e.g. PODE instances).
  • GLISTER uses an alternate location ($HOME/xmodel.sim) for the simulation directory when the $XMODEL_SIMDIR environment variable is not defined and the default location ($CDS_PROJECT/xmodel.sim) is not writable.
  • Fixed MODELZEN bug not handling global nets correctly.
  • Fixed MODELZEN bug not enclosing expressions with quotes.
  • Fixed GLISTER’s license time-out operation.
  • Fixed a bug with 'inductor' primitive not acting as a short when L=0.
  • Fixed intermittent segmentation fault issues when starting MODELZEN in RHEL7.
  • Fixed a bug with 'sparam_to_tf' adding DC offsets to the fitted transfer functions.

  • Added a check in MODELZEN whether the simulation vault ('sim_vault') is identical to the simulation directory ('sim_dir').
  • Fixed a bug with 'replay_xreal' primitive due to the duplicate event filtering in FSDB version 5.8.
  • Fixed XMODEL bug crashing when the XMODEL_SIMULATOR environment variable is undefined.

  • The '$xmodel_dumpvars()' command supports the option "probe=*.I" that records the currents of all types of circuit primitive instances.
  • The 'xmodel' launcher script skips checks for simulator executables when 'use_runfile' option is enabled.
  • The 'cap_var' primitive supports the use of 'INFINITY' capacitance to express saturation of its voltage.
  • Fixed a bug with 'scale_var' primitive when the input is not initialized.

  • MODELZEN supports mapping of subcircuits to basic primitives.
  • MODELZEN supports string-type parameters in Spectre netlists.
  • Fixed XMODEL bug reporting ill-formed error messages when the FSDB writer API could not be found.

  • The ‘xmodel‘ launcher script creates a XWAVE command file (waves.py) and Custom WaveView session file (waves.sx) after sweeps.
  • Improved the speed of ‘adc‘ primitive when its resolution is high.
  • Added ‘AM_phase‘ parameter to ‘sin_gen‘ primitive to support amplitude modulation with arbitrary phase.
  • Fixed XMODEL bug not updating the nmosfet/pmosfet currents when they are in cut-off modes.
  • MODELZEN supports non-standard terminal orders for devices listed in ‘devo_devicemap‘ with the ‘terms‘ parameter.
  • MODELZEN supports ‘*‘ as the comment-starting character in Spectre-format netlists.
  • MODELZEN API modelzenRunBatch() can be run either in foreground or background mode.

  • Added example MODELZEN setup files for Spectre ($XMODEL_HOME/tutorial/modelzen_basic/etc/spectre/tech_config.py).
  • Added ‘+ncerror+CUVMPW‘ option to the elaboration command as default to escalate the severity of port mismatch errors.
  • Added ‘$‘ to the list of characters to be escaped when using Spectre netlists.
  • Updated the UDM refgen.py to fix its iout-related bug.
  • Fixed GLISTER bug that keeps the schematic view in the modified state even when there is no actual change.
  • Fixed MODELZEN bug when the device mapping (devo_devicemap) defines non-default terminal orders with the ‘terms‘ attribute.
  • Fixed MODELZEN bug handling current source elements in the netlists.
  • Fixed MODELZEN bug handling the user-defined functions containing other parameters.

  • Improved MODELZEN’s limitation of not being able to handle user-defined functions including other parameters in their expressions.
  • Updated the list of special characters (‘<’, ‘>’, ‘$’) that must be escaped when generating Spectre netlists for the MODELZEN’s circuit characterizations.

  • Adding new UDMs: amp_linear, capacitor, comblogic, delayline, dflipflop, dlatch, refgen, resistor, select, slice, and switch.
  • The ‘res_sw‘, ‘cap_sw‘, and ‘ind_sw‘ primitives act as open circuits when their impedance is infinite.
  • MODELZEN supports propagation of conversion level information for xbit/bit-type UDM ports.
  • MODELZEN avoids name collision between the global nodes (e.g. vdd!) and local nodes (e.g. vdd).
  • GLISTER suppresses warning messages when it encounters pcell instances without master cellviews during model generation.

  • Fixed bugs with the 'filter_disc' and 'filter_disc_var' primitives processing statistical noise.
  • Fixed MODELZEN bugs handling global nets with aliases.
  • MODELZEN supports the parsing of SPICE library names starting with numerals.
  • MODELZEN supports faster reading of large parameter files with out-of-order inter-dependencies.

  • Added 'filter_disc' and 'filter_disc_var' primitives to model discrete-time filters with xreal-type inputs.
  • Added 'scale_var' primitive, a scaler with variable scale factor.
  • The 'sample' primitive now supports statistical simulation mode.

  • The 'sparam_to_tf' script is improved with: 1) the faster speed of fitting, 2) support of plotting single-bit or step responses after fitting in addition to frequency responses, and 3) more stable behavior of splitting the frequency response into multiple transfer functions.
  • The 'sparam_to_tf' script can plot the frequency response and step/single-bit response from a result data file (*.dat) when its name is given as an argument: sparam_to_tf <filename.dat>.
  • The previous tolerance options '--reltol' and '--abstol' of the 'sparam_to_tf' are consolidated into the '--threshold' option, which indicates the maximum error bound when the channel receives a unit-amplitude single-bit or step signal.
  • The '--quiet' option is newly added to the 'sparam_to_tf' script that suppresses verbose messages or plots during the fitting.

  • Added the '--split' and '--delay' options to the 'sparam_to_tf' script, which supports splitting of the frequency response into multiple transfer functions separated by time delays.
  • Added the '--abstol' and '--reltol' options to the 'sparam_to_tf' script, with which one can specify either the absolute or relative error tolerance of fitting.

  • Added new silicon photonics primitive for modeling ring resonators/filters: 'siph_ringres', 'siph_ringres_var', 'siph_ringfilter', and 'siph_ringfilter_var'.
  • Added new function primitives for modeling comb filters: 'filter_comb' and 'filter_comb_var'.
  • Fixed a bug with the 'multiply' primitive.

  • Improving the FSDB dumping speed.
  • Leaving the GLITCHNUM value for FSDB dumping at its default value. Its value can be set using the Verdi’s environment variable FSDB_ENV_MAX_GLITCH_NUM.
  • Supporting NAN’s in the MODELZEN’s devo_udm.format_realarray() function.
  • Adding quotes for the expression values in the regenerated SPICE netlists.
  • Fixed a MODELZEN bug when the instance names contain unsupported characters.

  • Added support for 'read_paramfile()' function in the technology configuration files.
  • The 'freq_to_clk' primitive treats a NAN input as 0 to prevent all the subsequent outputs from becoming NAN.
  • The 'replay_xreal' and 'replay_xbit' primitives give error messages instead of crashing when the filename is not specified.
  • Fixing a bug with 'delay_to_clk' primitive when there are multiple pending in/trig events in the same timestep.
  • Fixing MODELZEN’s default instance name prefix for switches.

  • Added new DPI functions for C array access.
  • Added MODELZEN support for dependent sources included in SPICE netlists.
  • Fixed bugs with $xmodel_dumpvars() in FSDB format.

  • Added devo_options["reserved_keywords"] option to support renaming of signals whose names conflict with SystemVerilog’s reserved keywords.
  • Added 'trim_mode' parameter for 'buffer' primitive to selectively enable PWL-based multiplicity trimming for use in tline/mtline primitives.
  • Fixed an issue with 'replay_all' primitive handling signal names containing escaped brackets ("\<" or "\>").

  • Improved MODELZEN support for global signals.
  • The 'replay_xreal/xbit' primitives display the location of the loaded FSDB reader library when opening a new waveform file fails.
  • Fixed a MODELZEN bug omitting signal levels when converting .VEC files.

  • Updated 'tline' and 'mtline' primitives, disabling MOR by default for speed reasons.
  • Added utility functions in 'devo_util' to support technology configuration file developments.
  • Added MODELZEN support for expressions in .MEASURE statements.
  • Added MODELZEN support for UDM debugging.
  • Fixed a bug with 'pwl_gen' primitive hanging.

  • Added GLISTER symbol for 'mtline' primitive.
  • Updated documentations for 'tline' and 'mtline' primitives.
  • Fixed bugs with 'tline' and 'mtline' primitives.

  • Added a new tutorial 'xmodel_dcdc'.
  • Improved 'tline' and 'mtline' primitives to support S11, S22, … as well as crosstalks.
  • Revised 'mtline' primitive’s port and parameter interfaces.
  • Improved XWAVE to reduce aliasing effects when displaying high-frequency waveforms.
  • Added a scroll bar for UDM Edit Property Dialog window when there are too many items.
  • Added multi-bit input/output support for 'prbs_gen' and 'probe_ber' primitives.
  • MODELZEN lists the top-level cell the first in the generated model.
  • Fixed numerical instability issue when the 'tline' and 'mtline' primitives experience multiple reflections.
  • Fixed hanging issue when XWAVE is launched within GLISTER while the infix option is set.
  • Fixed a bug with XWAVE’s Fourier analysis.
  • Fixed MODELZEN bug handling indexed-parallel circuits.

  • Improved 'interp_xbit' and 'interp_var_xbit' primitives to handle longer delays.

  • Introducing 'replay_all' primitive for building testbenches using previously-run FSDB waveform files.
  • $xmodel_dumpvars() supports FSDB dumping of multi-dimensional arrays (MDAs) with "mda=1" option.
  • $xmodel_dumpvars() supports dumping of enumeration-type signals.
  • Fixed 'meas_ac' script’s bug not loading the result file after simulation.
  • 'sparam_to_tf' supports TOUCHSTONE-format file with an arbitrary extension '.s#p'.

  • Added 'meas_ac' script for plotting the AC transfer functions analyzed by the 'probe_ac' primitive.
  • Supporting FSDB-format files storing the real-type waveforms in 8-byte format.
  • Revised MOSFET capacitance equations for 'nmosfet' and 'pmosfet' primitives.
  • Providing error messages for illegal syntax used for 'devo_namemap' in the technology configuration file.
  • Fixed a GLISTER/MODELZEN bug with using the current conversion level with "i:" syntax.
  • Fixed a GLISTER bug in converting expressions larger than 1-Tera.

  • Added 'probe_ac' primitive to support pseudo-small-signal AC analysis with XMODEL.
  • Added 'chirp_gen' primitive that can generate sinusoidal chirp signals.
  • Added 'meas_freq' primitive that measures the frequency of trigger events.
  • Added 'meas_ac.py' script to example/bin directory that can plot AC transfer functions.
  • Added 'scale' parameters to 'sin_func' and 'exp_func' primitives.
  • 'pulse_gen' primitive can generate one-time pulses when 'width' or 'period' is negative.
  • 'meas_max', 'meas_min', 'meas_integ', 'meas_avg', 'meas_pp', 'meas_rms' can make consecutive measurements when the 'from' and 'to' ports are connected to a common trigger.
  • Added GLISTER symbols for 'chirp_gen', 'meas_freq', 'interp_var_xbit', 'vinit', 'iinit' primitives.
  • Improved precision of the outputs of 'meas_delay', 'meas_period', and 'meas_freq' primitives.
  • Fixing bugs with 'meas_max', 'meas_min', 'meas_integ', 'meas_avg', 'meas_pp', 'meas_rms' primitives when there are multiple input events between 'from' and 'to' trigger events.
  • Fixing bug with 'sin_func' primitive when mode='cos'.
  • Fixing a MODELZEN bug interfacing 'wire' types of UDMs.

  • MODELZEN UDM interface supports the use of 'inout' ports with 'wire' type.
  • Fixed a bug with replay_xreal and replay_xbit primitives trying to load alternate names "V:xyz" and "v(xyz)" when the signal named "xyz" is not found in the FSDB waveform file.

  • replay_xreal and replay_xbit primitives try loading “V:xyz” and “v(xyz)” if the signal named “xyz” is not found in the FSDB waveform file.
  • Added devo_options['mult_factor'] for MODELZEN to allow users to define their own names for the multiplication factor in case of name collision with the same-named terminals or nets.
  • Added documentations for meas_* and trig_* primitives in the XMODEL Reference Manual.
  • Improved stability of the GLISTER license check-out routine.

  • MODELZEN converts parallel instances with xbit/wire indices to multiplicity-scalable instances using 'mscale' primitives.
  • Added MODELZEN’s ‘use_realbus’ option to support the use of real-type array ports.
  • Fixed GLISTER bug mishandling ‘inout’ ports during import.

  • Added GLISTER primitive symbols for measurement primitives (meas_* and trig_*)
  • Improved UDM property assignment interface: supporting terminal parameters, loading/saving/browsing in MODELZEN Property Browser.

  • Added 'init_value' parameters for 'inv_xbit' and 'delay_xbit' primitives to specify initial output values at time 0.
  • GLISTER adds symbols for 'transformer' and 'minductor' primitives.
  • MODELZEN supports recycling for UDM characterization results.
  • MODELZEN strips index specifiers for the whole array instance terminal names to improve NCVerilog’s elaboration speeds.

  • XMODEL is recompiled for RedHat Enterprise Linux (RHEL) 6; XMODEL may not work on RHEL 5 any more.
  • Added support for FSDB format versions 5.5~5.7.
  • GLISTER pops up a dialog window when the netlisting fails.
  • Added option to use an external text editor when editing text fields for inline primitives or from XMODEL Testbench Editor’s cosimulation tab.
  • Added support for probing internal V, I, P variables of vsource and isource using the "probe=" option of $xmodel_dumpvars().
  • Improved XWAVE’s speed of computing the Fourier transform of xreal-type signals.
  • Improved XWAVE’s debugging supports: --vars option supports use of wildcards (*,?), --time option supports definition of time ranges, and -l option supports listing variable names for FSDB-format waveforms.
  • Fixed a bug with slice primitive not finding crossing events of a slowly varying signal.
  • Fixed a bug in the XWAVE’s phase noise plotting function.
  • Fixed GLISTER bug handling split busses.
  • Fixed MODELZEN bug not being able to find the simulation result files when working with the latest versions of Spectre.
  • Fixed MODELZEN bug with pnp/npn devices generating 'max_leveldc'-related errors.

  • GLISTER supports the insertion of current-level type converters when the conversion level is defined with i: prefix.
  • MODELZEN supports the insertion of variable-level and current-level type converters.
  • Fixed GLISTER bug generating incorrect default parameter values for replay_xbit primitive.

  • Added support for Cadence Xcelium(TM) in XMODEL and GLISTER.
  • Added debugger mode in XWAVE (--debug option) to guide users which signals have the most events.
  • Adjusted MOR criteria in the buffer primitive for faster simulation speed.
  • Fixed XMODEL bug incorrectly estimating free memory in latest Linux versions (RHEL 7.2).

  • Revised the buffer primitive to generate a warning message when a circular loop causing steady increase in the poles’ multiplicities is detected.
  • Fixed GLISTER’s parsing errors when importing SystemVerilog source files.

  • $xmodel_dumpfile() supporting size-based automatic file switching for FSDB-format waveforms.
  • Fixed $xmodel_dumpvars() bugs not recording some variables in FSDB format and not closing the file when the simulation ends before the specified stop time.
  • Supporting $VERDI_HOME environment variable as well as $NOVAS_HOME for specifying Synopsys’ Verdi installation path.
  • Adding incremental profiling features to $xmodel$cktsim_profile().
  • Supporting lower/upper-case conversion in MODELZEN for devo_subcktmap and devo_instmap entries.
  • Disabled merging of anti-parallel res_var, cap_var, and ind_var elements in MODELZEN.

  • Improved MODELZEN’s result recycling mechanisms to avoid false caching.
  • Added xmodelFormatInstName() API function for customizing bitblasting format in GLISTER.
  • Fixed a bug with the XMODEL’s crossing-finding algorithm.
  • Fixed missing support for vmax/vmin for cap_var model generation in MODELZEN.
  • Fixed missing support for max_leveldc for diodes in MODELZEN.
  • Fixed gate primitive bugs when their inertial delays are non-zero values.

  • Added support for per-cluster profile analysis for $xmodel$cktsim_profile().
  • Fixed GLISTER bug causing parsing errors when importing modules containing ports of which names start with “input” or “output”.
  • Fixed MODELZEN bug propagating signal type information within a module.

  • Revised the plot_eyediag() XWAVE API function for plotting eye diagrams (supporting loop-unrolling DFEs).
  • Supporting parameter sweeps via ‘–sweep’ option in the 'xmodel' launcher script.
  • Supporting parameter value overrides via ‘–param’ option in the 'xmodel' launcher script.
  • Added checks for simulation time format in the 'xmodel' launcher script such as ‘100n’ that causes the NCVerilog to hang.
  • Supporting add, subtract, multiply with XMULAN trace objects.
  • XMODEL CLM engine adds minimal capacitance to transistors when they are found switching too frequently.
  • MODELZEN supports merging of equivalent nodes to simplify models and improve speeds.
  • Fixed a bug with 'mux_xbit' primitive causing crash during statistical simulation.
  • Fixed a bug with 'slice' primitive missing certain crossing events.
  • Fixed a bug in the GLISTER UDM interface causing errors.

  • Improved FSDB dumping speed by supporting aliasing for instance arrays.
  • Fix XMODEL bug related to circuit cluster management.

  • Improved speed of the GLISTER API function modelzenDeleteProp().
  • Improved the numerical stability of filter and filter_var primitives handling inputs of which poles are very close to those of the transfer function.
  • Improved the numerical accuracy of sampling methods for xreal-type signals.
  • Improved XMODEL speed of simulating circuits with a large number of off switches (e.g. bitlines of SRAM).

  • Improved GLISTER netlisting speeds.
  • Fixed bugs related to model-order reduction algorithms used by the 'buffer' primitive.

  • Reverting the 'buffer' primitive’s synchronization delay to 0.
  • Revising GLISTER’s instance formatting policy when there is a mismatch in the I/O pin lists between the instance symbol and master cellview.

  • MODELZEN uses multiplication factors instead of instance arrays for parallel connections of identical instances.
  • All circuit primitives support the use of multiplication factor (‘m’).
  • Added MODELZEN properties named 'max_leveldc' for limiting the maximum level_dc pwl knots for serially-stacked nmosfet/pmosfet devices.
  • Added 'max_warn' parameters for 'interp_xbit' and 'interp_var_xbit' primitives to optionally suppress the warning messages generated when the input clocks are too wide apart.
  • Improved DC convergence behavior of XMODEL CLM simulation.
  • Improved circuit clustering algorithms for circuits containing diodes.
  • Fixed a bug with 'real_to_xreal' primitive when its input switches from a 'NaN' value.

  • The buffer now has a 1-step synchronization delay with improved event-filtering algorithm.
  • Fixing GLISTER bug propagating conversion level properties.

  • Added $xmodel_progress() system call that displays simulation progresses.
  • Improved XMODEL’s CLM simulation speed (MNA2TF and COMPUTE_OUTPUT).
  • Added MODELZEN option to customize instance/net bit-blasting format.
  • Fixed a bug with replay_xreal primitive handling ideal steps.
  • Fixed a MODELZEN bug with the internal supply option.

  • Added/revised GLISTER API functions modelzenSetPropPin, modelzenSetPropInst, modelzenSetPropInstGroup for setting MODELZEN properties of a pin, instance, and instance group, respectively.
  • Fixed a bug with delay_to_clk primitive.
  • Fixed a MODELZEN bug not restoring the original net names in the schematic when it is used as part of aggregate bus expressions.
  • MODELZEN supports the use of global signal names in a subcircuit port list (e.g. gnd) and treats them as local signals within that subcircuit.
  • MODELZEN device mapping to 'open' supports arbitrary number of terminals.

  • Introducing User-Defined Model (UDM) generation interface for MODELZEN.
  • Improved GLISTER’s parsing speed when importing source files.
  • GLISTER uses the order information returned by xmodelGetPinOrder() in the module definitions.
  • Improved the Ro models of nmosfet/pmosfet primitives.

  • Improved GLISTER support for ADE-XL integration.
  • GLISTER recovers mapping between the symbol and schematic bus-type pins when one of them is expanded to individual pins.
  • MODELZEN ignores .LIB statement without a section name rather than raising errors.

  • Added init_value parameters for buffer and buffer_xbit primitives as ways to set the initial value of a signal within a feedback loop.
  • MODELZEN ignores the device rather than raising errors when it cannot find a turn-on behavior for nmosfet, pmosfet, diode, and switch within the specified voltage range.
  • Fixed MODELZEN bug handling commented continuation lines in the input SPICE/Spectre netlist.
  • Updated the PFD models in the PLL examples to avoid ‘X’ propagation issue with the updated dff_rst_async_xbit.

  • Added XMODEL support for initial value expressions in the port definitions when parsing the input source files.
  • Revised nmosfet/pmosfet’s ro-fitting methods and model behavior.
  • Revised delay_to_clk primitive to initialize its output at time=0.
  • Added GLISTER support for buffer insertion.
  • Revised modelzenSetPropPin() API function not to override existing values when not specified.
  • Added MODELZEN support for inherited ports with explicit pins.
  • Added MODELZEN support for user-defined functions in HSPICE format.
  • Added MODELZEN support for npn/pnp bipolar transistor devices.
  • MODELZEN asks whether option reloading is desired when the user changes the technology configuration file from the GUI menu.
  • Fixed a bug with dff_rst_async_xbit and dff_set_async_xbit handling rst/set signal switching from 0 to X.
  • Improved eye-diagram plotting speed and memory consumption.
  • Fixed a bug with sparam_to_tf reading s-parameter files.
  • Fixed a bug with GLISTER resetting the user-custom CIW menus.
  • Fixed a bug with readline library when executing MODELZEN.
  • Updated the xmodel_pll tutorial.

  • Added a new tutorial xmodel_pll.
  • Updated the setup_registry script configuring the GLISTER-ADE integration.
  • Improved stability of the model-order reduction algorithm used by the XMODEL CLM engine.
  • Fixed bug with MODELZEN handling some comments and inductors in Spectre-format netlist.
  • Added MODELZEN support for .TEMP statement in SPICE.
  • Fixed bug with res_var primitive.

  • Revised the select primitive to support propagation of statistical information.
  • Improved XWAVE and XMULAN to handle more than 2,000 variables.
  • Improved XWAVE’s speed of plotting eye-diagrams.

  • Revising the slice primitive to produce 0 output instead of metastable x when the net input is a DC value exactly equal to the threshold to avoid undesired propagation of x.
  • Fixed a bug in the latch_xbit primitive handling non-zero delay_dq parameter values.
  • Added --interactive option to the xmodel launcher script to support user-interactive simulation mode.
  • XMULAN retries the simulation when the first trial fails due to file system network latency.
  • Fixed overflow issues in MODELFIT when fitting high-order filter parameters.
  • MODELZEN does not require instance terminal mapping (instterms) for instances mapped to open primitives.

  • Entirely renewed GLISTER-ADE integration support with updated documentation.
  • Fixed a bug with slice primitive handling events occurring at the times with offset=0.

  • Initial roll-out of GLISTER-ADE integration.
  • Added support for license queuing with XMODEL_LICENSE_WAIT environment variable.
  • Added new XMODEL registry file installer for GLISTER setup.
  • XMODEL uses statistical option for dumping by default when the statistical simulation mode is enabled.
  • Named all generate blocks used in the XMODEL primitives to suppress unnamed generate block warning messages.
  • MODELZEN renames the instance names in the generated models when they collide with the parameter names.
  • Added simulation corner option to MODELZEN enabling the selection of different process corners without modifying the technology configuration file.
  • Fixed a bug with pwl_gen primitive checking the minimum time spacing requirement too tightly.
  • Fixed a bug with delay_var primitive not producing the correct output with frequent input events.
  • Fixed a bug with interp_xbit and interp_var_xbit.
  • Fixed an XWAVE bug with eye-diagram plotting.
  • FIxed MODELZEN bug converting the cases of file path strings within quotes when –upper or –lower option is used.

  • Added a new ilo primitive for modeling injection-locked oscillators.
  • GLISTER treats xreal-type input nets as driving terminal when no explicit driving net exists for an output port.
  • Added GLISTER global environment variables for setting tolerance of xreal_to_real connectors: xmodelConvXrealToRealAbsTol and xmodelConvXrealToRealRelTol.
  • Fixed GLISTER bug handling ExternalHDL marking.
  • Fixed a bug with mux_xbit primitive not propagating the initial values.

  • Newly added delay_var, sin_func, and exp_func primitives.
  • Added MODELZEN support for sgn() function and inter-dependent parameter definitions.
  • Fixed bug with modelzenSetPropPin() GLISTER API function not disabling the isolation buffer property.
  • Fixed bugs with minductor and scale primitives.

  • Fixed bugs with and_xbit and or_xbit primitives computing outputs when one of the inputs is X.
  • Fixed a bug with pwl_func primitive handling cases when the input is a very slow transient compared to the timescale.
  • Fixed a bug with XWAVE’s plot_eyediag() command (prDFE mode).
  • Supporting NODENAME and numeric timescales when MODELZEN converts HSPICE digital vector files.

  • Further reduced the number of scheduled event callbacks and improved CLM simulation speed with NC-Verilog.
  • Removed GMIN resistance added for cut-off transistors.

  • Improved XMODEL’s event scheduling algorithms to mitigate the slow callback cancellation in NC-Verilog.
  • Added MODELZEN’s support for digital vector file conversion (.VEC in HSPICE).
  • Updated GLISTER symbols for exp_gen, pat_gen, pwl_gen, pwl_func.
  • Added trig_mode parameter for pat_gen primitive.
  • Fixed the mis-interpretation of tau2 parameter in exp_gen primitive.

  • Fixed XMODEL bug to improve numerical stability of CLM simulation.
  • Removed warning message appearing in NCVerilog when multiple vsource/isource elements are driven by the same in input.
  • Revised the criteria determining CLM and FLM modules.

  • MODELZEN uses the names in the original schematics when expanding bus names.
  • GLISTER looks for terminal properties for "A__1" when it cannot find them for “A<1>“.
  • GLISTER adds interfaces for defining whether to include Ro for nmosfet/pmosfet instances.
  • Fixed minor bug in sparam_to_tf script handling s2p files.
  • GLISTER supports External HDL marking and Reference Verilog Files from HED.
  • Reverted the criteria for adding GMIN resistances.

  • MODELZEN uses escape characters for instance names that are not legal in Verilog.
  • MODELZEN now displays local times instead of standard times for completion messages.
  • The slice primitive supports conversion of statistical information in voltage to timing.
  • Fixed slice primitive’s bug not handling the crossing and input events occurring in consecutive time steps properly.
  • Fixed MODELZEN’s bug not trimming the negligible devices properly.

  • MODELZEN supports node names starting with numbers and containing underscores (“_”), like “12_3”.
  • MODELZEN does not extract Ro for nmosfet/pmosfet primitives to keep compatibility with the previously extracted models.
  • Fixed MODELZEN bug handling properties incorrectly when merging parallel devices.

  • Fixed DC initialization problem with nmosfet_idx and pmosfet_idx primitives.
  • Polished the MODELZEN’s error message when vmax for nmosfet, pmosfet, or diode element is set too low and its I-V curve does not reveal turn-on behavior.
  • Fixed MODELZEN’s bug propagating ro properties when merging parallel/serial devices.
  • Fixed XMODEL bug not triggering the initial transient events for vsource/isource elements.
  • Improved XMODEL’s numerical stability handling repeated complex poles.

  • MODELZEN now extracts output resistance (Ro) for nmosfet/pmosfet primitives.
  • Improved numerical stability of XMODEL handling large residue terms.
  • Added “–incdir” option to the xmodel launcher script.
  • The pulse_gen primitive can produce X initial value.
  • The const_xbit primitive can produce X values.
  • Upgrading the LAPACK library to 3.7.1.
  • Fixed XMODEL issue with discontinuity in the I-V curves with finite Ro values.
  • Fixed XMODEL bug for transistor current probing.
  • Fixed XMODEL bug producing “XBIT_CLS get_value()” errors.
  • Fixed GLISTER bug handling inherited terminals defined without symbol instances when extracting pin information.
  • Fixed MODELZEN bug handling the “R” parameter in the PWL sources.

  • Fixed bug in replay_xreal, replay_xbit primitives handling differences in timescales.
  • Improved XMODEL’s numerical stability handling high multiplicities of poles.
  • Fixed GLISTER bug in generating dbinfo file for cells containing inherited nets.
  • Added MODELZEN option (devo_options[‘ground_nets’]) for defining absolute ground net names.
  • Fixed MODELZEN bug while comparing signal attributes including level1=None.

  • Fixed MODELZEN bug handling : in net name expressions and handling ?: ternary operator.

  • Added GLISTER User Guide to the documentation.
  • Updated GLISTER modelzenGenDBInfo() API function to perform MODELZEN property exporting even when the design map information does not exist.
  • Added GLISTER symbols for replay_xreal, replay_xbit, xreal_to_xbit_var, xbit_to_xreal_var, etc.
  • GLISTER uses the port information of the master cellviews for verilog/systemverilog views.
  • Added Apply button to the MODELZEN stand-alone GUI window to enable repeated model generation.
  • Fixed XMODEL bugs repeating DC initialization with external input changes.
  • Fixed an XMODEL bug with the select primitive’s initial states.
  • Fixed a GLISTER bug related to the design information file generation when inherited nets are used.
  • Fixed a GLISTER bug related to cross-probing bus signals with FSDB waveform files.
  • Fixed MODELZEN bugs converting transient source elements.

  • MODELZEN supports mapping of nmos/pmos transistors to switch primitives.
  • MODELZEN supports automatic reduction of nmosfet/pmosfet to switches when the gate signals are xbit or bit types.
  • Fixed XMODEL bug with $xmodel_dumpvars() crashing with no signals to dump.

  • Updated pwl_gen primitive for support for added parameters: repeat_pos, period, and delay.
  • Updated replay_xreal and replay_xbit primitives for their added functionalities and bug fixes.
  • Updated GLISTER symbol parameters for pwl_gen, xreal_to_real, and dump.
  • Updated GLISTER to support logic types during model imports.
  • Fixed GLISTER bug with inline primitives during netlisting.
  • MODELZEN can convert transient source elements in HSPICE/Spectre formats, such as PULSE, PWL, SIN, EXP, AM, and SFFM.

  • Improved xreal_to_real and FSDB dumping algorithms.
  • Fixed MODELZEN bug when merging cap_var elements.
  • Fixed MODELZEN bug when fitting exponential I-V curves.

  • Tightened error tolerance on the DC initialization algorithm for more accurate DC solutions.
  • Fixed an XMODEL bug of falsely propagating events through an open switch with infinite resistance.

  • Using BLAS routines directly for MNA-to-TF conversion for faster speed.
  • Fixed a bug in the xreal-to-real conversion algorithm.
  • Fixed a bug with cross-detection algorithm when the input has a high-frequency pole with very small residue.

  • Improved DC solver algorithm to address the case when the solution does not converge within the predefined iteration limits.
  • Fixed MODELZEN bug characterizing "cap_var” elements with the latest version of Spectre.

  • Added pwc mode to xreal_to_real primitive to produce real value-events assuming piecewise-constant waveforms.
  • Fixed a bug with bit_to_xbit primitive suppressing X and Z.
  • Added replay_xreal primitive for replaying FSDB waveforms in XMODEL simulations.
  • Users now need to add their own FSDB reader API library to view FSDB waveforms with XWAVE and use replay_xreal primitive.

  • MODELZEN supports .include/.lib statements included in the input netlist.
  • MODELZEN supports automatic conversion of dependent sources (vcvs, vccs, cccs, ccvs).
  • MODELZEN supports .NODESET as well as .IC.
  • MODELZEN supports user-defined function in Spectre-format netlists.
  • The conversion utility jez2vcd is updated with bug fixes.
  • Added cdsinfo.tag files to GLISTER component libraries.
  • Adding new XMODEL primitives for piecewise models: res_idx, cap_idx, ind_idx, nmosfet_idx, pmosfet_idx.

  • GLISTER uses connect-by-order styles for a Verilog instance if its master source defines a split bus across its terminal and internal net.
  • GLISTER inserts *_var connectors with signal-based references when the signal names are used for logic-1 or logic-0 conversion levels.
  • Revised the MODELZEN’s MOSFET capacitance extraction algorithm to account for nonlinear variation of the gate capacitance when the device is within cut-off region.
  • MODELZEN uses multiple processes instead of multiple threads to ensure that all the device characterization jobs are run in parallel across multiple cores.

  • Added MODELZEN support for C-like expressions (e.g. !, &&, ||, ?:) for the parameter values.
  • Further improved GLISTER netlisting speed with large designs with vector signals and array instances.
  • Added xmodelMapNetName() in GLISTER to enable user-defined net name mapping.

  • Fixed MODELZEN bug in handling wildcard/regular expressions used in modules_expand, modules_xbit, modules_wire options in GUI mode.
  • Reverted the XMODEL’s condition for Taylor-expansion of large-residue exponential terms.

  • Improved GLISTER netlisting speeds for large designs with vectors and array instances.
  • Added MODELZEN support for .PARAM statements in SPICE format.
  • Added MODELZEN support for honoring xmodelPortDir properties defined on schematic pins.
  • Added MODELZEN support for wildcards/regular expressions when defining modules_expand, modules_xbit, and modules_wire.
  • Fixed MODELZEN bug of not propagating instance parameters correctly when flattening them.
  • Fixed MODELZEN bug of evaluating M-factor expressions when merging a large number of parallel subckt instances.

  • Added connect primitives between analog (xreal, real) and digital (xbit, bit) type signals with variable logic-1 and logic-0 levels.
  • Fixed GLISTER bug in handling XMODEL_LICENSE_TIMEOUT environment variable.
  • Fixed missing library issues in comp_lib python library.

  • Added MODELZEN support for reduction of source-drain connected nmosfet/pmosfet’s to variable capacitors (cap_var).
  • Added minductor primitive for modeling mutual inductance and the related MODELZEN support for processing K elements or transformer elements in HSPICE/Spectre netlists.

  • Restricted the XMODEL’s continuity-enforcing algorithm only to signals with states.
  • Revised the XMODEL’s waveform approximation algorithm for exponential terms with large residues so that it is applied only when the residue is large compared to the initial value.

  • GLISTER relaxed the error check for an instance output terminal with wire type driving an input port.
  • Minor bug fixes for XMODEL’s MOSFET internal probing support.
  • Enabling MOSFET operating region probing via nmosfet/pmosfet’s level variable.

  • Fixed MODELZEN bug handling substrate node of pmosfet transistors when they are reduced to capacitors.
  • Improved timing precision of control signals for switch primitives.
  • Improved timing precision of signals produced by pulse_gen and transition primitives.
  • Enabled V, I, P probing for nmosfet/pmosfet primitives in addition to passive primitives.
  • Added “probe=” option to enable automatic selection of internal probing variables.

  • Improved speed of crossing detection method.
  • Fix a bug related to a large number of clusters simultaneously computed within one time step.
  • Fix a bug related to wrong generation of FSDB signal names.

  • Adopting KLU solver for DC initialization.

  • A clean-up version fixing possible memory leaks and misalignments.

  • Fixed a minor bug in the XMODEL partial-fraction decomposition algorithm dealing with two closely-spaced poles.
  • Fixed memory leaks in the XMODEL CLM engine.

  • $xmodel_dumpfile() now supports “filename=”, “version=”, “scopesep=” parameter fields. The “scopesep=” parameter defines the scope separator for FSDB format waveform files.
  • Speed improvement of Eigen-3.3.3 DC solver engine by relaxing the termination criteria.

  • Fixed the crash problem during XMODEL CLM initialization.
  • Reverted to the Eigen-3.2.9 restart mechanism for BiCGSTAB solver.

  • Reduced memory footprint for loading device parameters and node/element connectivity.
  • Reverted to Eigen 3.3.3 with fix to its iterative solver routines.

  • Improving CLM output computation performance using BLAS routines directly.
  • Polishing the connectivity traversal routines.

  • Reverted the change with find_cross() method as it causes infinite loop.
  • Reverted the change with transition primitive as it causes DC initialization failure.

  • XMODEL CLM uses vinit information to partition DC clusters.
  • Reverted EIGEN to older version as the new iterative solver shows convergence issue.
  • Improved DC analysis speed when DC cluster is large.

  • Revised pwl_func and add primitives so that the events at DC can propagate without #0 delay.
  • Fixed an XMODEL’s bug with CLM expiration time which caused excessive events.

  • Added checks for possible overflow of data structures used by the XMODEL CLM engine.
  • The filter_var symbol is updated to reflect that its poles and zeros inputs can be real-type arrays.
  • GLISTER is updated to support unpacked arrays for real-type signals.
  • Updated tutorial documentations to reflect transition from LM-X to FlexLM.

  • MODELZEN can convert ideal DC voltage/current sources into equivalent primitives.
  • Reduced iteration counts during DC analysis by removing zero delays in transition primitives (also used in xbit_to_xreal, bit_to_xreal).
  • Added checks for event queue overflow.
  • Fixed MODELZEN bug handling global ground nodes.
  • Fixed XMODEL bug with find_cross() causing missed detection of crossing events.
  • Fixed GLISTER bug with handling ports with mixed busses and nets.
  • Fixed GLISTER bug with license timeout operation.

  • Further improved speed of MODELZEN merging parallel devices when the number of device elements is very large (>10,000) in one subcircuit.
  • Disabled performance profiling for FSDB dump routines.
  • Fixed bug with MODELZEN bus format handling.
  • Revised MOSFET capacitance model for level_ac=1 to properly account for operating region changes.

  • Fixed xreal_to_bit to properly support strength levels.
  • Minor polish on pwl_func primitive.

  • Fixed pwl_func primitive handling multiple events within the same timestep.
  • Adjusted the continuation schedule used in DC analysis to improve convergence.

  • Reduced memory footprint in storing the transfer functions between the internal states and outputs.
  • Using initial condition values as initial guess for DC solver (ala .NODESET).
  • Polished debug logging in DC solver.
  • Added debug logging for pwl_func primitive.

  • Fixed bugs in buffer, delay, delay_xbit, and pwl_func primitives in making sure scheduled events are later than the current time.
  • Reduced sensitivity to time precision in pwl_func primitive when processing sparsely-distributed events.
  • Added more debug messages to DC analysis to investigate root cause of certain DC inconvergence.

  • GLISTER uses connection-by-position style instance lines when the master cell contains aggregate ports (e.g. “A,B”).
  • Fixed the partial fraction decomposition bug that was in 2017.0526 and 0530 releases.

  • Polished the way CLM handles floating nodes to improve the numerical stability.
  • Added time measurement to DC analysis steps to diagnose reported issues.
  • GLISTER uses connect-by-name terminal mapping for instances when the leaf cell terminals have aggregate ports.

  • Fixed remaining bug with filter and filter_var primitives.

  • The FSDB waveform dumping is further improved especially when the number of signals being dump is vary large (e.g., >100,000).
  • MODELZEN’s external parameter evaluation routine is improved to handle cases with very large number of parameters.
  • The filter and filter_var primitives’ bugs with DC poles or DC zeros are fixed.

  • Fixed a bug with filter_var primitive handling simultaneous changes in the input and filter coefficients.

  • Fixed pwl_func primitive bug when handling very narrowly spaced intervals.
  • Fixed phase_to_clk primitive bug generating outputs with non-causal timestamps.
  • Improved CLM engine handling xreal terms with high multiplicities.
  • Fixed CLM engine’s bug doing multithreading.

  • Fixed CLM’s aborting problem when a circuit has no poles and no inputs or outputs.
  • The maximum limit on PWL knot numbers for serially-stacked MOSFET devices is adjusted from 3 to 5.
  • Improve buffer primitive with improved MOR algorithm and continuity-preserving filtering.
  • Added options to switch between the new and old FSDB dump algorithms for speed comparison.

  • Fixed bug with pwl_func primitive which gave incorrect results when the input value coincides with the PWL knot value at the event instant.
  • Fixed MODELZEN bug in handling bus expressions used for instance terminals.
  • MODELZEN can merge parallel R, C, and MOSFET elements considering the symmetric terminals (pos-neg and s-d).
  • MODELZEN can merge parallel SUBCKT instances.
  • Improved CLM’s DC convergence speed by using incremental Gmin stepping.
  • FSDB dump uses a faster data structure to improve speed.
  • CLM’s transfer function computation speed is improved.

  • Improved the memory footprint and performance of the transfer function computation routines.
  • Properly handling the homogenous responses associated with poles with multiplicities greater than 1.
  • FSDB dump routines use vector/sort instead of priority queue to improve speed.
  • XWAVE and XMULAN read the aliases in the FSDB files properly.

  • Improved FSDB waveform dumping to reduce the number of Verilog events generated during simulation.
  • Experimental multithreading is enabled with “MULTITHREAD” option.

  • Further improvements in the level verification and event detection algorithms.
  • Polishing debug messages for clarity.

  • Applied hysteresis in the level verification routines to avoid false chattering.
  • Guaranteed continuity of waveforms.
  • Removed new routines that have remaining issues.

  • Revising the intra-time-step behavior to avoid dead-lock conditions.
  • Fix bugs in the new MOR algorithm handling unstable poles.

  • Fixed a bug in the XMODEL’s partial-fraction decomposition algorithm.
  • Improved scheme that handles poles with large residues.
  • Applying the above scheme to antistable part of the circuit system as well.
  • Reducing the minimum prediction time in the CLM engine to avoid incorrect results due to result expiration.

  • Optimized the transfer function calculation for speed.
  • Adding artificial poles for pure-DC systems to enable simulation with level_ac=0.
  • Added experimental multithreading support.

  • The filter_var primitive is newly updated. It can realize a time-varying linear dynamical system in a numerically stable manner, while preserving the continuity in the output waveform and its derivatives.
  • The MOR algorithm in the XMODEL CLM is polished to handle cases where the waveform starts with a small, fast transient followed by a large, slow settling response.
  • MODELZEN bug of generating merged bus names incorrectly when dbinfo file is not used is corrected.

  • Two minor bug fixes on the way the XMODEL CLM engine handles the low-frequency complex poles.

  • XMODEL CLM engine adds a 1-Gohm resistor to a floating node to avoid incorrect simulation with level_ac=0.
  • GLISTER updates on modelzenRunInteractive() to properly handle its input arguments: runDir, netlistDir, simDir, and outDir.

  • Polishing minor bugs on the new model-order reduction algorithms.

  • Fixed MODELZEN bug in handling scaling unit expressions as parameter values.
  • Fixed MODELZEN bug that incorrectly propagates buffer insertion property to higher-level cells.
  • Fixed MODELZEN bug in handling port attributes of subcircuits of which definitions do not appear in the input circuit netlist.
  • Fixed MODELFIT bug in fitting a piecewise linear data.

  • Fixes MODELZEN bug handling subcircuit instances with partial parameter lists.
  • The buffer primitive reduces the number of poles in the signal expressions.

  • Minor polishes on GLISTER and MODELZEN to support SK Hynix’s MLS+MAMS environment.

  • Resolved potential memory leakage problem in buffer primitive.
  • Fixed minor bugs with tline primitive.

  • Fixed memory leakage problems in XMODEL primitives using change_state().
  • Fixed bug with probing hierarchical nodes in ModelSim.

  • Added synchronization delay to slice primitive’s input events to avoid glitches.
  • Fixed FSDB dumping issues with real-type ports interfacing with SPICE subcircuits in co-simulation.
  • Updated FSDB read/write libraries to version 6.1.

  • Further improvement in CLM numerical stability; improved handling of repeated poles.
  • Corrected bugs in synchronizing external events of CLM clusters.

  • A SKILL API function “modelzenSetPropPin()” is added.
  • Added time-out feature for GLISTER licenses.

  • The numerical stability of the XMODEL CLM engine is improved when dealing with systems with large and small poles. Particularly the vulnerability to clustered small poles and slow systems receiving fast inputs is addressed.

  • Added user-customizable SKILL functions for MODELZEN to allow custom name mapping and pin ordering.
  • Improved the MODELZEN’s device reduction algorithm for stacked MOSFETS. Also, MOSFETs with G, S, B nodes all shorted are trimmed.

  • Improved CLM routine that checks nonlinear device operating regions.
  • Fixed MODELZEN bugs related to instance/net name recovery.

  • MODELZEN can recover original module names and terminal names even after they are converted to match case-insensitive netlists.
  • Fixed MODELZEN bugs related to buffer insertion and module expansion.

  • MODELZEN can flatten more than one hierarchy levels to allow more merging and reduction.
  • MODELZEN can support non-xreal signal types and connector insertion even for sub-level subcircuit modules.

  • XMODEL uses a new algorithm for computing matrix exponential functions.
  • MODELZEN can handle cases with long subcircuit/instance parameter lists.

  • A completely new CLM simulation algorithm is implemented. Maybe unstable due to remaining bugs.