Download XMODEL Official Releases

release-icon Latest Version: 2024.05

Supported Platforms

  • Red Hat Enterprise Linux 7.0 or later (32-bit and 64-bit)
  • Synopsys VCS I-2014.03 or later
  • Cadence INCISIVE 15.20 or later (XCELIUM 18.09 or later)
  • MentorGraphics ModelSim 10.4b or later
  • Cadence Virtuoso Schematic Editor IC6.1.5 or later (ICADV12 or later)

Release Notes

  • XMODEL now supports advanced cluster partitioning with vsource elements, speeding up simulations measuring the total current 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'.
  • Improved MODELZEN to handle the larger number of 'mode' inputs (> 20).
  • Added 'devo_options["resting_time"]' to specify an extra wait time after each SPICE simulation for UDM characterization.
  • Improved the stability of the MODELFIT’s algorithm for fitting the frequency-domain transfer functions, especially with near-improper systems.
  • Updated Fourier transform and power-spectral density (PSD) analyses for XMULAN and XWAVE.
  • Updated XWAVE to display 'X' and 'Z' for single xbit/bit signals.
  • Renamed 'math_pkg' package used internally to 'xmodel_mathpkg' to avoid possible naming collision.
  • Fixed a bug when dumping 1-bit-long net/reg vectors (e.g. X[0:0] and Y[8:8]) in JEZ format.
  • Fixed a XWAVE bug plotting jitter histograms when the standard deviation value is 0.0.
  • Fixed GLISTER bugs when netlisting 'systemVerilog' cellviews.
  • Fixed a bug with 'comblogic' UDM when the circuit has no inputs.

  • Updated the XMODEL’s 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 '--exclude' option to MODELZEN to exclude definitions of selected modules from the generated model.
  • 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 'filter' and 'filter_var' primitives handling inputs with poles very close to the poles of the filter transfer function.
  • 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.
  • Fixed a bug with MODELZEN/GLISTER interface checking the valid mode specification expressions.

  • XMODEL can now dump VCD-format waveform files using '$xmodel_dumpfile()'.
  • 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'.
  • 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).
  • 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.
  • Updated XWAVE to support multi-PAM prDFE eye diagram plotting.
  • Fixed a XMODEL bug not computing certain nodes by forcing DC initialization on transmission line elements and all passive elements connected to `ground.
  • 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.
  • 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.
  • Fixed a bug with MODELZEN evaluating expressions containing 'as' parameter.

  • Updated 'xmodel_dcdc' tutorial documentations.
  • Added a utility script 'fsdbvers', which can display the API version information of FSDB reader/writer libraries.
  • Added support for array expressions like 'A<3:0>' when mapping UDM ports via technology configuration files ('devo_udmmap').
  • Added type-checks when mapping UDMs via technology configuration files ('devo_udmmap').
  • Fixed a bug with 'compare' primitive operating in the finite-aperture mode.
  • Fixed a bug with 'slice' primitive, where redundant iterations were limiting the simulation speeds.
  • Fixed a bug with circuit-level simulation where a non-zero pole is treated as a DC-pole when it is very close to 0.
  • 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.

  • 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.
  • 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.
  • GLISTER supports the aliases of 'analogLib' library ('xmodelAltViewAliases').
  • 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.
  • 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.
  • 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.
  • Fixed a MODELZEN bug in characterizing UDMs with Spectre (‘stop limit must not equal start limit’).
  • 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.
  • Fixed a MODELZEN bug handling SPICE netlist containing subcircuits with no default parameter definitions.
  • 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 new primitives 'vlimit', 'vlimit_sw', 'ilimit', and 'ilimit_sw', describing voltage and current limiting elements, respectively.
  • Added a new primitive 'probe_value' for recording the sampled values of a signal to a text file at triggered events.
  • Added new scripts 'meas_bathtub.py', 'meas_jtran.py', 'meas_jtol.py' for BER bathtub, jitter transfer (JTRAN), and jitter tolerance (JTOL) simulations, respectively.
  • Fixed a MODELZEN bug making incorrect signal connections when there exist multiple connectors supporting different conversion levels for the same signal.
  • Updated the lectures #07~#09 of the tutorial 'xmodel_hslink'.
  • Updated the PID controller designs and analyses in the tutorial 'xmodel_dcdc'.

  • Added 'seq_mode' parameter to 'prbs_gen' primitive to support both MSB-first and LSB-first ordering of parallel data outputs.
  • Added 'trig_mode' parameters to 'meas_ber' and 'probe_ber' primitives to support the input sampling at the positive edge, negative edge, or both edges of the clock.
  • Updated the documentations on 'probe_*' primitives.
  • Updated 'glister' script to produce cleaner messages when an error occurs.
  • Further improved the numerical stability of the XMODEL CLM simulation engine.

  • The XMODEL installation no longer contains 'libfontconfig', 'libfreetype', 'libxml2', and 'libz' libraries to avoid version conflict issues in RHEL8.
  • Improved the numerical stability of the XMODEL CLM simulation engine.
  • Added 'period' parameters to 'trig_edge', 'trig_posedge', 'trig_negedge', 'trig_cross', 'trig_rise', 'trig_fall', and their 'meas_' counterparts to support repetitive triggering.
  • 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.
  • Made minor improvements to the 'probe_ac' primitive and 'meas_ac.py' script.
  • Improved XWAVE to reduce its aliasing effects when plotting waveforms of 'xreal'-type signals.
  • Added support for 'Kp_data' parameters for 'nmosfet' and 'pmosfet' primitive symbols in GLISTER.
  • 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 GLISTER menu item ‘Stop XMODEL Simulation’ to ‘Monitor/Stop XMODEL Processes’, which opens the XMODEL Simulation Process Monitor.
  • Updated GLISTER to make the script files executable when they are being netlisted from testbench views.
  • Updated the MODELZEN’s CDL netlist parser to support more advanced options and syntaxes of CDL.
  • Added MODELZEN support for fine-grained simulation result caching during UDM characterization.
  • Fixed the xmodel launcher script’s bug when using '--param' and '--sweep' options with ModelSim.
  • Fixed the 'meas_freq' primitive’s bug when computing the inverse of NaN with ModelSim.

  • XMODEL, GLISTER, MODELZEN drops support for RHEL6. The last release that supports RHEL6 is 2021.12.
  • Added a new primitive 'trig_call' supporting procedural generation of trigger signals.
  • Added a new primitive 'impedance' supporting an impedance defined using a circuit expression.
  • Added 'trig_mode' parameter to 'sample' primitive to support the positive-edge, negative-edge, and both-edge triggering.
  • Added 'finish' parameters to 'replay_xreal' and 'replay_xbit' primitives, which can finish simulation when the replay ends.
  • Updated 'pulse_gen' primitive to support both periodic and arbitrary pulse waveforms.
  • Improved the speed of silicon photonic primitives.
  • Improved the speed of 'sparam_to_tf' and 'sparam_to_tline' scripts extracting models from S-parameter files with large numbers of data points.
  • Updated the 'xmodel' launcher to support 'inf' as the simulation time, implying indefinite time.
  • Added '--loadall' option to XWAVE for loading all the sweep results at once.
  • Updated XWAVE to support ‘ALL: All Opened Files’ option when all the loaded waveform files share the same set of variables.
  • Updated GLISTER to support netlisting of testbench schematic views containing selected 'analogLib' instances.
  • Updated GLISTER to open the ‘XMODEL Simulation Progress Monitor’ when a user requests to stop a simulation while multiple simulations are running.
  • Updated MODELZEN to support optional parentheses enclosing a list of nodes in the instance statements of SPICE-format netlists.
  • Introducing EQCHECK, which validates the equivalence between the model and circuit by comparing their output waveforms to the same inputs.
  • Updated the lectures #04~#06 of the tutorial 'xmodel_hslink'.
  • Fixed a bug with 'phase_to_clk' and 'freq_to_clk' primitives producing erroneous multi-phase outputs at low frequencies.
  • Fixed bugs with 'select', 'multiply', 'add', 'add_xbit' primitives when the number of inputs is greater than 14.
  • Fixed a bug with 'switch' primitive where its current does not become 0 even when it is off.
  • Fixed a MODELZEN bug handling nested '?:' operators in the parameter value expressions.
  • Updated GLISTER to support importing XMODEL source files using expressions for terminal indices (e.g. 'A[40-1:0]').

  • Added mode specification support for UDMs to constrain the values of mode bits during circuit characterization.
  • Added new DPI functions for random number generation: rand_poisson(), rand_binomial(), and rand_gamma().
  • Fixed an XMODEL bug giving incorrect results for silicon photonic simulations.
  • Fixed an XMODEL bug raising segmentation faults when the filename provided to $xmodel_dumpfile() has no extension.
  • Fixed a GLISTER bug creating P-cell symbol views for cells with real array ports.

  • 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 'jtol.py' script to support the use of 'probe_ber' primitives checking multi-bit outputs.
  • Updated XMODEL to support expansion of environment variables embedded in the parameter description filenames.
  • Improved the XWAVE speed of plotting statistical eye diagrams.
  • Revised the GLISTER license check-out and waiting behaviors as set by the $XMODEL_LICENSE_WAITMODE environment variable.
  • Updated GLISTER to support reordering of the parameters in the model parameter editing dialog window.
  • Updated the default value of 'devo_namemap' to treat names like 'A\(1\)' as array members.
  • Updated MODELZEN to support double quotes (“) as well as single quotes (‘) enclosing the parameter value expressions in HSPICE-format netlists.
  • 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 GLISTER bug misplacing top-side labels for auto-created symbols.
  • Fixed a GLISTER bug handling non-numerical values for the parameters of the 'limit' primitive.
  • Fixed a bug with the 'meas_ac' script crashing when the measurement data contains all zeros.
  • Fixed a MODELZEN bug converting the cases of string constants included in Spectre-format netlists.

  • Added a tutorial on modeling and simulation of analog-to-digital converters (xmodel_adc).
  • 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 a bug with the FSDB dumping of multi-dimensional array nets.
  • Fixed a precision issue with the stimulus generated by 'probe_dc' primitive.
  • 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).
  • Fixed a MODELZEN bug when the input netlist does not contain default parameter values with the subcircuit definitions.

  • Improved the speed of 'stline' primitive with imperfectly-matched port impedances.
  • Added '--select' option to 'sparam_to_tline' utility to support partial selection of ports.
  • Fixed the XMODEL CLM engine problem causing leakage currents on nodes with many transistors/switches.
  • Fixed the XMODEL CLM engine problem due to incorrectly added GMIN resistances.
  • Fixed remaining GLISTER bug with dbinfo file generation when a design contains inherited connections.
  • Fixed a GLISTER bug with renaming internal nets whose names conflict with SystemVerilog’s reserved keywords.
  • Fixed a XWAVE bug with 'plot_eyediag()' command when the waveform is a constant signal.

  • 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 'dff_xbit', 'dff_rst_async_xbit', 'dff_rst_sync_xbit', 'dff_set_async_xbit', 'dff_set_sync_xbit' primitives to support positive/negative/dual-edge triggering, active-high/low reset and set inputs, and setup/hold-time constraint checks.
  • Supporting internal current (.I) and power (.P) probing for switch primitives.
  • 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 an XMODEL CLM engine problem handling low-frequency poles.
  • Fixed an XMODEL CLM engine problem related to generation of reduced-order waveforms.
  • Fixed a GLISTER bug with loading/saving MODELZEN property files.
  • Fixed a GLISTER bug with dbinfo file generation when a design contains inherited connections.
  • Fixed a GLISTER bug raising error when simulating a testbench cellview with dependent files only.

  • Improved the stability and simulation speed of the XMODEL CLM’s engine.
  • Updated 'switch' primitive so that with -`INFINITY resistance, the switch would not have GMIN resistances when it is open.
  • $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.
  • Fixed memory leak problems in 'slice' and 'dac' primitives.
  • Improved GLISTER’s execution time of cross-checking between views for parameterized cells.
  • GLISTER supports the mapping of UDMs to individual slices of parallel instances with the “Apply to Slices” option.
  • Fixed a GLISTER netlisting bug expanding busses even when the index ordering has conflicts.
  • GLISTER/MODELZEN supports the use of global signals as the UDM ports’ conversion level values.
  • Added '--log-conn' option to MODELZEN, which displays messages when type-coercing connectors are inserted during model generation.
  • Updated the UDM dlatch.py to support multiple clock inputs.
  • Fixed MODELZEN bug handling global nets with mixed-case letters (e.g. vccD!).

  • Added 'stline' primitive to model multiport transimission lines with per-port characteristic impedances and split-delay transfer functions.
  • Added 'sparam_to_tline' utility that calibrates model parameters for an 'stline' primitive from a S-parameter file.
  • 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 time format displaying during MODELZEN model generation.
  • 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 new function primitives supporting mathematical functions: 'log_func', 'abs_func', and 'sqrt_func'.
  • Added 'integ_rst' primitive for integrate-and-reset operation.
  • Added 'pwl_sel', 'poly_sel', 'filter_sel', and 'delay_sel' primitives for modeling 'pwl_func', 'poly_func', 'filter', and 'delay' primitives with selectable characteristics.
  • Updated 'filter_var' primitive to perform one-timestep synchronization.
  • Fixed a bug with 'freq_to_clk' creating outputs with fluctuating frequencies even when the input frequency is steady.
  • Fixed a bug with 'probe_dc' primitive crashing when the 'trig' input toggles with uninitialized 'resp' input.
  • Updated the PWM model using the 'slice' primitive in the 'xmodel_dcdc' tutorial.
  • XWAVE suppresses glitches in digital vector values when displaying waveforms.
  • MODELZEN avoids overfitting in the sub-threshold region for nmosfet/pmosfet devices.
  • Updated 'select.py' UDM to support cases with dependent ports when the independent ports have different DC bias levels (e.g. level converter).

  • Added 'probe_dc' primitive and 'meas_dc' script for DC transfer measurement.
  • Added multi-processing support for MODELZEN UDM characterization.
  • Updating UDMs for multi-processing support.
  • GLISTER generates parameterized symbol when importing SystemVerilog sources with variable port widths.
  • Improved 'limit' primitive to support infinite lower or upper limits.
  • Fixed a bug with 'xreal_to_real' primitive in the 'pwc' mode.
  • Fixed a GLISTER netlisting bug for 'probe_ber' primitive when 'width' > 1.
  • 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.
  • Added 'use_unpackedbus' option to MODELZEN to support the generation of models using unpacked arrays for xreal/xbit buses.
  • Fixed a bug with 'scale_var' primitive when the input is not initialized.
  • Fixed bugs with 'slice', 'freq_to_clk', and 'integ_mod' primitives detecting crossing events with very slowly-varying signals.
  • Fixed a bug with MODELZEN mistaking an escaped '$' character as a comment starter.

  • Added a tutorial on silicon photonics modeling and simulation with XMODEL.
  • 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.
  • Fixed XMODEL bug reporting ill-formed error messages when the FSDB writer API could not be found.
  • Added GLISTER symbols for XMODEL primitives 'filter_comb' and 'filter_comb_var'.
  • Fixed GLISTER bug with 'replay_all' primitive handling the signal names containing a colon (e.g. I1:3).
  • MODELZEN supports mapping of subcircuits to basic primitives.
  • MODELZEN supports non-standard terminal orders for devices listed in 'devo_devicemap' with the 'terms' parameter.
  • MODELZEN supports string-type parameters in Spectre netlists.
  • 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.
  • Updated the vco_p1 and pwm_v1 UDMs in the tutorials to support Spectre.
  • Fixed XMODEL bug reporting incorrect simulation time when the time exceeds 24 hours.
  • 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.

  • Added 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.
  • XMODEL and XWAVE added support for FSDB reader API version 5.8.
  • GLISTER suppresses warning messages when it encounters pcell instances without master cellviews during model generation.
  • 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).
  • Fixed MODELZEN bug handling ‘<’, ‘>’ characters in Spectre netlists.

  • Added 'siph_ybranch' primitive modeling an optical Y-branch element.
  • The connect primitives with bit-type inputs are now revised to have wire-type inputs in order to support 'x' input values.
  • Supporting 'x' and 'z' as valid inputs to the 'switch' primitives, resulting in infinite resistances.
  • The 'transition' primitive keeps the current output when the input is 'x' and has a 1-timestep delay when the rise or fall time is greater than zero.
  • Adding 'modelzenDefaultGlobalNets' option to MODELZEN/GLISTER environment to support UDM port mapping for global nets.
  • Fixed a bug of $xmodel_dumpvars() missing some variables due to the sequence of hierarchy traversal.
  • Fixed a bug of MODELZEN reporting incorrect execution time when it exceeds 24 hours.

  • 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 .
  • 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 '--quiet' option to the 'sparam_to_tf' script that suppresses verbose messages or plots during the fitting.
  • 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 the 'inv_func' primitive that computes a reciprocal function (1/x) of an xreal-type signal (x).
  • Added the ‘filter_comb’ and 'filter_comb_var' primitives for modeling comb filters.
  • Added new silicon photonics primitive for modeling ring resonators/filters: 'siph_ringres', 'siph_ringres_var', 'siph_ringfilter', and 'siph_ringfilter_var'.
  • The clock-generating primitives 'clk_gen', 'phase_to_clk', 'freq_to_clk', 'period_to_clk', 'duty_to_clk', and 'ilo' are updated to support the generation of 1/f^3 noise, 1/f^2 noise, and flat noise floor with the parameters 'PN_fcenter', 'PN_foffset', 'PN_dbc', 'PN_fcorner', 'PN_floor', 'RJ_kappa', and 'RJ_rms'.
  • The clock-delaying primitives 'delay_to_clk' and 'delay_xbit' are updated to support the generation of the accumulated jitter due to 1/f noise or white noise, and the independent jitter with the parameters 'PN_fcenter', 'PN_foffset', 'PN_dbc', 'PN_fcorner', 'PN_floor', 'RJ_kappa', and 'RJ_rms'.
  • The 'period_to_clk' primitive now updates the frequency of the output clock with the input period signal in a continuous-time fashion, instead of updating it at the output clock transitions only.
  • The 'interp_var_xbit' primitive now gives a warning instead of error when the input delay has an out-of-range value.
  • The 'sparam_to_tf' script uses an improved algorithm (Loewner matrix method) that fits the channel characteristics better with fewer poles. The old algorithm (vector fitting) can still be used with the '--v2019' option.
  • XMODEL now loads the 'FsdbReader' library instead of the 'FsdbReader_pure' library of Synopsys Verdi in order to support the loading of 'FSDB gate' format.
  • Added the GLISTER symbol for the 'ilo' primitive, which models an injection locked oscillator.
  • MODELZEN adds a new technology configuration option 'devo_udmmap' to support a limited scope of UDM mapping with the technology configuration file.
  • MODELZEN adds a new technology configuration option 'devo_option["optional_instprefix"]' to allow matching of instance names with extra prefixes between the schematic and its SPICE netlist.
  • MODELZEN sorts the port mapping orders for UDMs so that the busses appear in the same order as in the original circuits.

  • Introducing a new set of XMODEL primitives supporting silicon photonics modeling.
  • Added a fail-safe mechanism for GLISTER license time-out operation.
  • Handling the mixed-language case (e.g. VHDL) for NCVerilog/Xcelium.
  • Updating the tutorials 'xmodel_pll' and 'xmodel_hslink' with the latest features.
  • Setting the default FSDB glitchnum to 2 instead of 1 to express a step change properly.
  • Fixed a bug with the modelzenUpdatePropInstGroup() API function.

  • XMODEL now uses the external FSDB Writer API library (libnffw.so) when dumping the waveforms in FSDB format. The definition for the $VERDI_HOME or $NOVAS_HOME environment variable is required.
  • XMODEL leaves the GLITCHNUM setting for FSDB dumping at its default value. This value can be overridden with the Verdi’s environment variable FSDB_ENV_MAX_GLITCH_NUM.
  • XMODEL’s dumping speed in FSDB format is improved.
  • Added new primitives vcvs_sw, vccs_sw, ccvs_sw, and cccs_sw to express dependent voltage/current sources with switchable scale factors.
  • MODELZEN supports the extraction of MOSFET models with negative Vth.
  • Fixed MODELZEN bugs handling the netlists containing explicit definitions for multiplication factors, instance names containing unsupported characters, and designs containing cells with duplicate names.
  • Fixed MODELZEN bugs with ‘modules_expand‘ operation and with parameter values containing expressions.
  • Updated the readline library to address the messages regarding undefined references during installation.

  • Added 'trim_mode' parameter for 'buffer' primitive to selectively enable PWL-based multiplicity trimming for use in tline/mtline primitives.
  • The 'replay_xreal/xbit' primitives display the location of the loaded FSDB reader library when opening a new waveform file fails.
  • Added a new GLISTER API xmodelCheckModelTimeStampLib() for checking whether the models in the library are up-to-date.
  • Added devo_options["reserved_keywords"] option to support renaming of signals whose names conflict with SystemVerilog’s reserved keywords.
  • Added support for 'read_paramfile()' function in the technology configuration files.
  • Added MODELZEN support for dependent sources included in SPICE netlists.
  • Improved MODELZEN support for global signals.
  • Added new DPI functions for C array access (NPRIMS_getarray_* and NPRIMS_getelem_*).
  • Added support for adding symbol label markers when a new model is generated from a schematic cell (modelzenUpdateSymbolAfterModelGeneration).
  • 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.
  • Fixed an issue with 'replay_all' primitive handling signal names containing escaped brackets ("\<" or "\>").
  • Fixing a bug with 'delay_to_clk' primitive when there are multiple pending in/trig events in the same timestep.
  • Fixed bugs with $xmodel_dumpvars() in FSDB format.
  • Fixing MODELZEN’s default instance name prefix for switches.
  • Fixed a MODELZEN bug omitting signal levels when converting .VEC files.

  • Added a new tutorial xmodel_dcdc, addressing modeling and simulation of DC-DC converters.
  • Newly revised the tline and mtline primitives, with the support for all transfer functions between the ports.
  • Added GLISTER symbols and updated documentations for tline and mtline primitives.
  • Added multi-bit input/output support for prbs_gen and probe_ber primitives.
  • Improved MODELZEN support for the conversion of .MEASURE statements and .VEC input files.
  • MODELZEN always puts the top-level cell first in the generated model.
  • The sample technology configuration file located etc/tech_config.py is updated with new styles, using new utility functions added to the devo_util library.
  • Improved XWAVE to reduce aliasing artifacts when displaying high-frequency waveforms.
  • Added a vertical scroll bar for the UDM Edit Property Dialog window when it has too many items.
  • Fixed a bug with the pwl_gen primitive.
  • Fixed GLISTER hanging issue when XWAVE is launched within GLISTER with the infix option enabled.
  • Fixed MODELZEN bugs handling global nets.
  • Fixed MODELZEN bug handling indexed-parallel circuits.
  • Fixed XWAVE bug with Fourier analysis.

  • Added 'replay_all' primitive that can build testbenches using previously-run FSDB waveform files.
  • 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' script for plotting the AC transfer functions analyzed by the 'probe_ac' primitive.
  • 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.
  • $xmodel_dumpvars() supports FSDB dumping of multi-dimensional arrays (MDAs) with "mda=1" option.
  • $xmodel_dumpvars() supports dumping of enumeration-type signals.
  • Added GLISTER symbols for 'chirp_gen', 'meas_freq', 'interp_var_xbit', 'vinit', 'iinit' primitives.
  • Fixing bug with 'sin_func' primitive when mode='cos'.
  • 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.
  • Revised MOSFET capacitance equations for 'nmosfet' and 'pmosfet' primitives.
  • 'sparam_to_tf' supports TOUCHSTONE-format file with an arbitrary extension '.s#p'.
  • 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.
  • Providing error messages for illegal syntax used for 'devo_namemap' in the technology configuration file.
  • Fixing a MODELZEN bug interfacing 'wire' type or 'inout' ports of UDMs.

  • XMODEL now supports RedHat Enterprise Linux (RHEL) 6 and above and may not work for RHEL 5 any more.
  • Added 'init_value' parameters for 'inv_xbit' and 'delay_xbit' primitives to specify initial output values at time 0.
  • Added support for probing internal V, I, P variables of vsource and isource using the "probe=" option of $xmodel_dumpvars().
  • Added support for FSDB Reader API versions 5.4, 5.5, 5.6, and 5.7.
  • Added documentations for meas_* and trig_* primitives in the XMODEL Reference Manual.
  • GLISTER adds symbols for measurement primitives (meas_* and trig_*).
  • GLISTER adds symbols for 'transformer' and 'minductor' primitives.
  • GLISTER pops up a dialog window when the netlisting fails.
  • GLISTER adds option to use an external text editor when editing text fields for the 'inline' primitives or from XMODEL Testbench Editor’s cosimulation tab.
  • Improved XWAVE’s speed of computing Fourier transforms of xreal-type signals.
  • MODELZEN supports recycling for UDM characterization results.
  • Improved UDM property assignment interface: supporting terminal parameters, loading/saving/browsing in MODELZEN Property Browser.
  • 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.
  • 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.
  • 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 GLISTER bug handling ‘inout’ ports during import.
  • 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.

  • Added support for Cadence Xcelium(TM) in XMODEL and GLISTER.
  • Added parameter sweeping support for the xmodel launcher script (--sweep option).
  • Added parameter value overriding support for the xmodel launcher script (--param option).
  • Added size-based automatic file switching support for FSDB-format waveforms to $xmodel_dumpfile() (sizelimit= option).
  • Added incremental profiling and per-cluster profiling support to $xmodel$cktsim_profile().
  • Added support for $VERDI_HOME environment variable as well as $NOVAS_HOME for specifying Synopsys Verdi(TM) installation path.
  • Improved the stability of the buffer primitive performing event filtering and model order reduction.
  • Revised the plot_eyediag() XWAVE API function for plotting eye diagrams (supporting loop-unrolling DFEs).
  • XMULAN supports add, subtract, multiply operations with waveform trace objects.
  • Added xmodelFormatInstName() API function for customizing bitblasting format in GLISTER.
  • MODELZEN supports merging of equivalent nodes to simplify models and improve speeds.
  • Added MODELZEN’s lower/upper-case conversion support for entries listed in devo_subcktmap and devo_instmap.
  • 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.
  • Fixed XMODEL bug incorrectly estimating the amount of free memory in RHEL 7.2.
  • Fixed gate primitives’ bugs producing erroneous outputs when their inertial delays have non-zero values.
  • Fixed a bug with mux_xbit primitive causing crash during statistical simulation.
  • Fixed a bug with slice primitive missing certain crossing events.
  • Fixed GLISTER parsing errors when importing SystemVerilog source files.
  • Fixed MODELZEN bug incorrectly propagating signal type information within a module.
  • Fixed missing support for vmax/vmin for cap_var model generation in MODELZEN.
  • Fixed missing support for max_leveldc for diodes in MODELZEN.

  • Improved XMODEL simulation speed with a large switch arrays (e.g. memories).
  • Improved FSDB dumping speed by extending support for aliasing.
  • Improved GLISTER netlisting speed.
  • Improved numerical stability of’ the filter and filter_var primitives handling inputs of which poles are very close to those of the transfer function.
  • Improved numerical accuracy of sampling xreal-type signals.
  • Improved speed of the GLISTER API function modelzenDeleteProp().
  • Added support for a corner argument in modelzenRunBatch() and modelzenRunInteractive() API functions.
  • Fixed XMODEL bug with circuit cluster management.
  • Fixed a bug in the model-order reduction algorithm used by the buffer primitive.

  • MODELZEN uses multiplication factors instead of instance arrays for parallel connections of identical instances.
  • 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.
  • GLISTER uses the pin ordering information returned by xmodelGetPinOrder() in the module definitions.
  • Introducing $xmodel_progress() system call that displays the progress of simulation.
  • Added 'init_value' parameters for buffer and buffer_xbit primitives as ways to set the initial value of a signal within a feedback loop.
  • Added/revised GLISTER API functions 'modelzenSetPropPin', 'modelzenSetPropInst', 'modelzenSetPropInstGroup' for setting MODELZEN properties of a pin, instance, and instance group, respectively.
  • Added MODELZEN option ('format_bitblast') for customizing instance/net bit-blasting format.
  • 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 the speed and DC convergence of XMODEL CLM simulation.
  • Improved the GLISTER’s parsing speed when importing source files.
  • Improved the output resistance (Ro) models of 'nmosfet' and 'pmosfet' primitives.
  • Improved GLISTER support for ADE-XL integration.
  • Updated the PFD models in the PLL examples to avoid ‘X’ propagation with the updated 'dff_rst_async_xbit' primitive.
  • Fixed bugs with 'delay_to_clk', 'replay_xreal', and 'real_to_xreal' primitives.
  • Fixed a GLISTER bug when propagating conversion level properties.
  • Fixed MODELZEN bugs handling the internal supply option, restoring the original net names in the schematic, and handling commented continuation lines in the input netlist.

  • Added a new tutorial xmodel_pll.
  • Added --interactive option to the xmodel launcher script to support user-interactive simulation mode.
  • Added GLISTER support for buffer insertion and for initial value expressions in the port definitions when importing SystemVerilog source files.
  • Added MODELZEN support for inherited ports with explicit pins, user-defined functions in HSPICE format, and npn/pnp bipolar transistor devices.
  • MODELZEN asks whether option reloading is desired when the user changes the technology configuration file from the GUI menu.
  • Improved XWAVE and XMULAN to handle more than 2,000 variables.
  • Improved XWAVE’s speed of plotting eye-diagrams.
  • Revised nmosfet/pmosfet’s ro-fitting methods and model behavior.
  • Revised modelzenSetPropPin() API function not to override existing values when not specified.
  • Fixed a bug with sparam_to_tf reading s-parameter files.
  • Fixed a bug with GLISTER resetting the user-custom CIW menus.
  • Fixed bugs with MODELZEN handling some comments and inductors in Spectre-format netlist.
  • Fixed bugs with slice, select, res_var, latch_xbit, dff_rst_async_xbit, dff_set_async_xbit, delay_to_clk primitives.

  • Newly introduced GLISTER-ADE integration.
  • Added setup_registry script to help the installation of GLISTER registry files.
  • Added support for license queuing with XMODEL_LICENSE_WAIT environment variable.
  • Added --corner option to MODELZEN to support the selection of process corners.
  • XMODEL enables statistical option for dumping by default when the statistical simulation is enabled.
  • Fixed bugs with slice, interp_xbit, interp_var_xbit, delay_var, and pwl_gen primitives.
  • Fixed an XWAVE bug with eye-diagram plotting.
  • FIxed MODELZEN bug converting the cases of filenames within quotes when --upper or --lower option is used.
  • Fixed MODELZEN bug creating instances of which names collide with parameter names.

  • Newly added ilo, delay_var, sin_func, and exp_func primitives.
  • Fixed bugs with scale, pwl_func, and_xbit, or_xbit, mux_xbit, and minductor primitives.
  • Improved XMODEL CLM simulation speed especially with NC-Verilog by reducing the number of scheduled event callbacks.
  • Improved MODELZEN support for math functions, inter-dependent parameter definitions, and digital vector file conversion.
  • GLISTER treats xreal-type input nets as driving terminal when no explicit driving net exists for an output port.
  • Added GLISTER global variables for setting default tolerance of xreal_to_real connectors: xmodelConvXrealToRealAbsTol and xmodelConvXrealToRealRelTol.
  • Fixed GLISTER bugs with modelzenSetPropPin() API function and External HDL marking.
  • Fixed XWAVE bug with plot_eyediag() command.

  • Bug fixes and performance improvement for XMODEL CLM simulation engine.
  • MODELZEN supports conversion of digital vector files (.VEC in HSPICE).
  • Updated exp_gen, pat_gen, pwl_gen, and pwl_func primitives.

  • Improved XMODEL’s numerical stability and speed for circuit-level simulation.
  • Improved MODELZEN’s model extraction speed with multi-processing.
  • Improved GLISTER’s netlisting speed.
  • Added GLISTER User Guide documentation.
  • XMODEL, GLISTER, and MODELZEN fully support for the output resistance (Ro) modeling and simulation for nmosfet/pmosfet primitives.
  • Improved GLISTER and MODELZEN’s support for net and instance names that are illegal in Verilog or converted to different names due to the use of bus names or case conversion.
  • Added new XMODEL primitives including: replay_xreal, replay_xbit, xreal_to_xbit_var, xbit_to_xreal_var, etc.
  • Added minductor primitive for mutual inductance modeling and GLISTER/MODELZEN support for it.
  • Added support for V, I, P probing and operating region (level) probing for nmosfet, pmosfet instances.
  • XMODEL and XWAVE can use external FSDB reader API library of which location is defined by $NOVAS_HOME or $XMODEL_FSDBRD_PATH.
  • GLISTER supports the use of External HDL marking and Reference Verilog Files from the Cadence Hierarchy Editor.
  • MODELZEN supports conversion of transient sources in SPICE and Spectre to XMODEL primitives (PULSE, PWL, SIN, EXP, AM, and SFFM) and dependent sources (vcvs, vccs, cccs, ccvs).
  • MODELZEN supports conversion of nmos/pmos transistors to switch primitives.
  • MODELZEN supports the conversion of .INCLUDE/.LIB, .IC/.NODESET, and the use of .PARAM statements, user-defined functions in Spectre format, and C-like expressions (!, &&, ||, ?:).

  • Added transformer and minductor primitives to support ideal transformer and mutual inductors, respectively.
  • Added XMODEL support for probing MOSFET internal variables (e.g. V, I, P) and added "probe=" option to $xmodel_dumpvars() for recording their waveforms.
  • Added MODELZEN support for cap_var model calibration.
  • Improved XMODEL simulation speed with a new DC solver and new crossing detector.
  • Fixed XMODEL bugs in enforcing signals’ continuity and approximating signals with large-residue exponential terms.
  • Fixed MODELZEN bug in handling substrate node of pmosfet transistors when reduced to capacitors.

  • Improved the XMODEL CLM initialization speed when loading large designs.
  • Improved the DC initialization speed by revising the solver algorithm and termination criteria.
  • DC initialization uses vinit primitives for partitioning clusters.
  • Added support for custom scope separator for FSDB dumping. Use “scopesep=” parameter with $xmodel_dumpfile().
  • MODELZEN now converts ideal DC voltage/current sources into equivalent primitives.
  • Fixed GLISTER bugs with concatenated-bus ports and license timeout operation.

  • XMODEL CLM engine memory footprint is further reduced.
  • FSDB dump speed is improved especially when the number of signals is very large.
  • GLISTER supports connect-by-position style during netlisting in addition to the connect-by-name style.
  • Bug fixes on filter, filter_var, buffer, delay, delay_xbit, pwl_func, xreal_to_bit primitives.

  • Stability, performance, and memory usage of the XMODEL CLM engine is further improved.
  • Fixed bugs in XMODEL’s pwl_func, phase_to_clk, buffer, and filter_var primitives.
  • Fixed bugs in MODELZEN related to the case conversion, port attributes, connector insertions, bus merging, and default subcircuit parameters.
  • Fixed a bug in MODELFIT fitting piecewise linear models.
  • XWAVE and XMULAN can read aliased signals from FSDB files.

  • Numerical stability of the XMODEL CLM engine is greatly improved.
  • MODELZEN can generate models with various signal types at each block level and insert connectors between different-type signals.
  • MODELZEN supports module expansion (e.g. flattening) of multiple hierarchies.
  • MODELZEN/GLISTER recovers the original module names even when the user’s netlister modifies them (e.g. lowercasing them).
  • Improved MODELZEN’s device reduction algorithms for serially-stacked devices.
  • MODELZEN now trims MOSFETS with G, S, B nodes all shorted.

  • Added new tutorial materials: xmodel_basic, glister_basic, and modelzen_basic.
  • Added MODELZEN support for instance parameters used in the circuit netlists.
  • Introduced simulation vault in MODELZEN to improve reuse of previous characterization results.
  • MODELZEN locks each device characterization directory before using in order to avoid collisions between multiple instances of MODELZEN running.
  • Added GLISTER support for auto-inserting connectors between analog types (xreal and real) and digital types (xbit and bit).
  • Added GLISTER support for treating inputOutput ports in the schematics as “auto” ports and modifying their port directions based on their actual use.
  • Improved the co-simulation interface in the GLISTER testbench editor.
  • Added capability in GLISTER to stop the XMODEL simulation before ending.

  • Greatly improved XMODEL circuit-level simulation speed.
  • Newly added connect primitives: {xreal,real}_to_{xbit,bit} and {xbit,bit}_to_{xreal,real}.
  • Resolved stale NFS filehandle issue when netlisting or model generation fails.
  • Added support for setting MODELZEN properties without replacing pin masters.
  • Added support for checking-in GLISTER license feature from Virtuoso.

  • Added a new gate primitive latch_xbit.
  • Added support for open/short in ModelGen properties.
  • Fixed some crashing issues with the updated add/tline primitives.

  • Minor bug fixes for GLISTER netlisting function.
  • Added nlAction=ignore support for GLISTER.
  • Added XMODEL_PYTHONPATH variable to allow users to add external Python library paths.
  • Added isolation buffer insertion support for MODELZEN.
  • Added trig_*, meas_* primitives for online measurements.
  • Improved PWL model fitting methods for MODELZEN.

  • Added tutorials on XMODEL basics and high-speed I/O design with XMODEL.
  • Added color markers for signals displayed in XWAVE.
  • Newly introduced XMODEL Testbench Editor to facilitate GUI-based testbench editing and simulation launching.
  • Newly introduced XMODEL documentation view so that users can open XMODEL documentations from Cadence® Virtuoso®.

  • Improved XWAVE’s speed in toggling markers.
  • Improved probe_ber and meas_ber primitives to optionally use an internal PRBS generator as reference source.
  • And symbols for probe_ber and meas_ber primitives are updated accordingly.
  • Various CLM instability issues are corrected.
  • Fixed discontinuity issues with the limit primitive output.
  • Added inline symbol to allow inline module definition.
  • Added `meas_value macro that returns the value of an xreal-type signal at current time step.
  • Fixed malfunctioning issue with XWAVE’s save_image method.

  • Added an XMODEL primitive symbol dump to enable the use of $xmodel_dumpvars() in Cadence® Virtuoso® environment.
  • Added support for cross-probing between the Virtuoso® schematic editor and XWAVE waveform viewer.
  • Added support for more cosimulators (e.g. VCS-HSIM and VCS-FineSim).

  • Introducing MODELZEN: an automatic structural model generator with GUI interface and multi-threading support.
  • Updated features of GLISTER to support MODELZEN.
  • Improved speed and stability of CLM primitives.
  • Fixed numerical issues with filter and filter_var primitives.
  • Added XMODEL syntax highlighting support for geany.

  • XWAVE and XMULAN can read FSDB-format waveform files.
  • New circuit primitives such as switchable passives (res_sw, cap_sw, and ind_sw) and variable passives (res_var, cap_var, and ind_var) are added.
  • Some circuit primitives like resistor, capacitor, inductor, diode, and switch now include parasitic capacitance parameters Cpos and Cneg.
  • The parameters for nmosfet and pmosfet primitives are updated to keep the consistency with the other circuit primitives.

  • Fixed bugs in the XMODEL primitive symbols.
  • filter, pwl_gen, pwl_func, and poly_func now take the parameter files in Python format.
  • MODELFIT now generates parameter files in Python format.
  • conv_dat utility is provided to convert the old parameter file into the new Python-based format.
  • Added MODELZEN (beta).

  • Added new CLM primitives: gm_rect, tline, nmosfet, and pmosfet.
  • Improved the variable time-stepping algorithm used in the xreal_to_real primitive.
  • Resolved the inconsistencies between the primitive symbols and sources.
  • Added support for “<*N>” syntax in GLISTER.
  • Changed the type of the en port of tribuf_xbit and triinv_xbit from wire to xbit.
  • Added const_xbit to facilitate constant expressions in xbit.