home | products | downloads | support | online store | about us | search


This is an archive of release notes of each build. The following build numbers are for Version 1.5. Note that build numbers restart with every release of the software. Only builds that were released to the general public are documented here.

What is new in Build #17: August 18, 2001

  • This is the final release build for VHDL Simili Version 1.5

What is new in Build #16a: June 12, 2001

  • BugFix: The simulator crashed when the -G option was used with a generic name that was part of an entity but was not directly referenced in the generic map in the instantiation. This is now fixed.

What is new in Build #16: June 10, 2001

  • BugFix: The compiler did not allow indexed names where the index involved function calls in individual port-map associations.
  • BugFix: The compiler did not allow an OTHERS on a non-locally-static aggregate type even if the rest of the aggregate choices were not named-associations (the compiler was overly strict).
  • BugFix: There was an error in optimizing boolean expressions involving std_logic constants which under certain circumstances, produced an erroneous result.
  • BugFix: SDF annotation was not possible if the target instance was nested inside an if/for generate block.
  • BugFix: The simulator crashed during elaboration if an unconstrained port was initialized with an unconstrained generic which did not have a default value.

What is new in Build #15a: May 23, 2001

  • BugFix: The compiler did not allow indexed names where the index involved function calls in the sensitivity list. This is now allowed.
  • A couple of minor edits were made to the documentation

What is new in Build #15: May 21, 2001

  • BugFix: The compiler incorrectly allowed the use of OTHERS in an aggregate when the type of the aggregate was a non-locally-static type. Although the simulator and the compiler handled this case as expected, we have decided to disallow this since the language specification forbids such a use of OTHERS.
  • BugFix: The compiler failed when a type-name (such as "bit") was used as a array-type-port-name in a component and if the instance of such a component has individual named associations (such as bit(7) => mysig) in the port-map.
  • BugFix: The compiler failed to compile a record-aggregate with named associations where a record-field name and an enumeration literal with the same name were visible at that point.
  • BugFix: There was an error in subtype-checking for integer signals (not variables) where the subtype of the integer was determined by generics and such an entity/architecture was instantiated more than once.

What is new in Build #14: Mar 31, 2001

  • User contributions: There are now two VCD translators available on the contribs page. These utilities can be helpful in being able to see waveforms. These utilities will work with both 1.4 and 1.5 releases.
  • BugFix: The simulator crashed when an architecture that contained a scalar type-conversion in the port-map was instantiated more than once. This has been fixed
  • BugFix: The compiler did not allow 'ascending attribute on an array. This is now supported. The 'ascending can now be used on scalar types, constrained array types and any array variable.

What is new in Build #13: Mar 21, 2001

  • Improvement: The compiler and the simulator have been enhanced to now support port/generics in block statements.
  • BugFix: The compiler crashed when a multi-dimensional array was initialized using string literals for the inner dimensions -- This is a regression since Release 1.4 and has now been fixed.
  • BugFix: Using Xilinx simprim libraries, simulation results may have been wrong under some circumstances for post-route timing simulation (with SDF annotation) -- This is a regression since Release 1.4 and has now been fixed.

What is new in Build #12: Mar 7, 2001

  • BugFix: Under certain conditions, the initial value of a signal was wrong when it involved ports and multiple connections and multiple initial values (from the port map, the component and the entity). This has been fixed according to the rules of VHDL '93.
  • BugFix: A crash in the simulator was fixed due to a bug in the compiler. The compiler did not properly translate an array type definition that involved very complex expressions. The compiler (vhdlp) has been fixed to prevent this in the future.
  • BugFix: The simulator did not give correct results when nested guarded blocks were involved and when the "guard" signal from an upper scope was used in the definition or a nested (inner) "guard" signal. If such guard signals were used (even when nested) in other situations, this was not a problem. This problem has been fixed.

What is new in Build #11: Feb 20, 2001

  • Feature: The REPORT statement now responds to the -breakon option as well. Prior to this build, the -breakon option only affected the ASSERT statement.
  • BugFix: The simulator (vhdle) crashed when a signal was involved in more than one port-map with a function call on the actual part of a port-map.
  • BugFix: When a physical number was divided by a real number there was potential for a round-off error (because the division was occuring in fixed point). According to the VHDL spec, the division should happen in in the floating point domain and then the result is rounded to a integral value. This has been corrected.

What is new in Build #10: Jan 28, 2001

  • The Vital example (tutorial) was broken. This has been fixed.

What is new in Build #9: Jan 16, 2001

  • This is the first public build for version 1.5 since the production version 1.4 was made.
  • The release notes contain the list of changes from 1.4. Users with very large designs and Xilinx 3.1i users will see the immediate benefits of this version.

Build Updates for Version 1.4:

There are no updates as of this moment. While we transition into the next version, please watch this area for updates to 1.4. We will try our best to update 1.4 with important bug fixes. Please read below if you were a beta user of Simili 1.4.

Build Updates for Version 1.4 Beta:

What is new in Build #33 and #34: November 14, 2000

  • Build 34 is the final build of version 1.4. We would like to thank everyone who provided valuable feedback and help make VHDL Simili a better tool. We could not have done it without you.
  • BugFix: The reject clause within an intertial delay assignment did not work correctly. Fixed
  • BugFix: The '-g' option did not work under certain circumstances. Fixed.
  • BugFix: Wrong error message was printed when maximum number of delta-cycles were exceeded. Fixed.
  • BugFix: When a string literal contained an character in the range of 0x80-0xff, it crashed the compiler. With build#34, you can now safely use the entire range allowed by 8-bit ascii.

What is new in Build #32: August 8, 2000

  • BugFix: Type conversions on port-map's were not working correctly when the type-conversion was done via a function-call. This has been fixed and there is no easy or acceptable workarounds for previous builds.
  • Two new technical-notes have been created to document limitations of VHDL Simili that cannot be remedied in version 1.4.
  • BugFix: An attribute specification on an invalid component instantiation label caused the compiler to produce an internal error. With this build, you will get a proper error message instead of an internal error. For previous builds, fixing the semantic error in the VHDL code will prevent the internal error.

What is new in Build #31: July 25, 2000

  • Feature: In the VHDL87 mode, we now treat bit-string literals strictly as bit-vectors (in VHDL 93 bit-strings are essentially like overloaded constants like character literals and can be of any compatible type).
  • BugFix: The simulator crashed while trying to elaborate the use of an incomplete type. This has been fixed.
  • BugFix: Initalizing a deferred constant with an aggregate produced a false compiler error. This has been fixed.

What is new in Build #30: June 30, 2000

  • Feature: This build contains additional Synopsys packages that are shipped precompiled. These are ATTTRIBUTES, BV_ARITHMETIC, DISTRIBUTIONS, and SDF_HEADER. None of these new packages are accelerated, however, they might be useful in being able to compile models that refer to these packages.
  • BugFix: The was a bug in the accelerated version of the std_logic_arith package where in some cases, the result was all 'X's if one of the operands was a single bit (std_ulogic type). Workaround for previous builds is to use the "-noaccel std_logic_arith" option.
  • BugFix: In certain cases, user defined physical types with certain ranges caused an "Internal Error". This has been corrected. If you run into this problem with previous builds, there is no workaround.
  • BugFix: Configurations statements caused an "Internal Error" under certain conditions.
  • BugFix: When multi-dimensional arrays were passed as PROCEDURE arguments, access to the array elements was flawed (could only access a limited portion of the array correctly). There is no workaround for previous builds. Multi-dimensional arrays worked fine every place else.

What is new in Build #29: May 29, 2000

  • BugFix: A procedure with zero arguments failed to compile if the procedure was declared in a package and then later defined in the package body. This was not a problem with functions.
  • BugFix: The 'POS attribute on discrete types sometimes caused an internal error in the simulator. Specifically, the 'POS attribute failed if it was the direct target of an assignment.
  • BugFix: The implicit/predefined WRITE procedure (not the one in TEXTIO) had a bad signature. The 'value' parameter was declared as a VARIABLE instead of a CONSTANT which may have caused some false compilation errors. You would have seen this error only if you were declaring your own FILE types and were using the WRITE procedure with arguments that were objects other than variables.
  • BugFix: User defined physical types may have caused false subtype check errors.

What is new in Build #28: May 13, 2000

  • Feature: SDF annotated designs will see as much as 50% performance improvement in design elaboration time.
  • BugFix: The simulator failed during elaboration if an alias to a signal was involved in a port map. This has been fixed.
  • BugFix: In UNICODE versions (many Asian language versions) of the Window's OS'es, the compiler was unable to save modules whose names had extended identifiers. This have been corrected. This was not a problem with Engilsh (and other European languages) versions of the OS'es. You may wish to cleanup (remove) any existing .sym directories -- not required but recommended.
  • BugFix: Fixed an intermittent crash that would randomly occur on certain designs. This bug was not related to a particular design construct or compiler/simulator/library feature.

What is new in Build #27: Apr 29, 2000

  • Feature: Some changes have been made to the VHDL library structure to better allow VHDL Simili to work with the WINE -- the windows emulator under Linux. Windows user should NOT be affected by this change.
  • BugFix: Writing out real (floating point) numbers did not work when the 'digits' parameter to the std.textio.write procedure was non-zero.
  • BugFix: Under certain contains, the simulator exited without flushing the list output file. This happened if the simulator exited due to an exception caused by illegal VHDL or an ASSERTION failure. This was not a problem under normal conditions.

What is new in Build #26: April 16, 2000

  • Feature: You can now disable warnings emanating from the accelerated std_logic_arith package using the -nowarn option
  • BugFix: The simulator produced and internal error if the top level entity had unconstrained array ports.
  • BugFix: The std_logic_arith multiplication operator produced one fewer bits for a result if the types of the operands were not the same (one signed and another unsigned).

What is new in Build #25: April 3, 2000

  • Feature: You can now set generics for the entity/architecture you are simulating from the command line using the -gName=Value option. You can override the existing defaults from the command line for all scalar types and 1-dimensional character types (such as std_logic_vector, bit_vector, string, etc.)
  • Feature: The compiler now allows VHDL'87 style syntax for FILE types. You can enable VHDL'87 compatible mode using the -87 option on the compiler. When this option is enabled, the VHDL'87 syntax/semantics for FILE types are translated to their VHDL'93 equivalents. Please note that the use of this option is not recommended since the semantics of dealing with FILE types is much better defined in VHDL'93 and we recommend that you port your existing designs to the VHDL'93 style if possible.
  • Feature: VHDL Simili now supports Cypress' Warp 6.0. The scripts files have been updated to auto-detect Warp 6.0. Also, VHDL Simili no longer ships source files for the Cypress libraries. The script file has been updated to use your copy of these files.
  • Feature: VHDL Simili also ships with a GUI that aids in compilation/simulation tasks. Please visit out contributions area for more information
  • BugFix: The simulator did not correctly handle a slice to a slice assignment under the following condition -- the prefix of the two slices are the same and the array type is an array of an array and the assignment was essentially a left shift. Workaround for previous builds is to use a temporary to make the assignment.

What is new in Build #24: Mar. 19, 2000

  • BugFix: Use of a ".ALL" construct for an access type as an argument to a subprogram caused in internal error in the simulator during elaboration. Use of .ALL in other contexts was not a problem. This problem has been fixed.

What is new in Build #23: Mar. 6, 2000

  • Feature: Added an option -nostderr to the compiler and the simulator to force all output produced by these tools to go to stdout only. This is helpful in environments where it is not easy to redirect/capture both stdout and stderr to a file.
  • BugFix: The simulator produced an internal error in certain cases if the prefix of an attribute was not a simple name and if such an attribute existed in an entity/architecture with generics.
  • BugFix: The simulator required a real number to precede a time unit while reading in values of type time using textio. The simulator now allows an integer also.

What is new in Build #22: Feb. 26, 2000

  • BugFix: The simulator produced an internal error in certain cases where, in a guarded block, a slice of a guarded signal was the target of an assignment. This has been fixed in Build#22.
  • BugFix: The simulator produced an internal error if the actual of a port map in a component instantiation was a slice of an array, AND the architecture containing such a component instantiation was instantiated more than once.

What is new in Build #21: Feb. 12, 2000

  • Feature: VHDL Simili now supports "Negative Constraint Calculation" that is required as part of achieving full Vital/SDF compliance. Most vendors' Vital models do not need this feature. This feature may be necessary if you have Vital models that expect negative delays for setup, hold, recovery or removal type parameters.
  • Feature: VHDL Simili now supports the INTERCONNECT construct in SDF files (Atmel SDF files use this construct).
  • BugFix: If you use a qualified expression for a case expression of an array type, where the argument of the qualified expression was a slice of a non-constant range, it caused a fatal error in the compiler. This is fixed in Build#21. There is no acceptable workaround for previous builds.
  • BugFix: A signal assignment to a signal that is a formal parameter of a procedure, caused an internal error in the simulator IFF such a procedure was declared inside a process. This is fixed in Build#21. The workaround for previous builds is to move the procedure definition outside the process (to a package or the architecture scope).

What is new in Build #20a: Feb. 1, 2000

  • News: Build 20 now includes preliminary support for the Atmel FPGA devices using Atmel's IDS 6.0 software. We have also verified Build 20 for the Xilinx CPLD devices (both CoolRunner and 9500 Series devices).
  • BugFix: The semantics of the nand and nor operators were reversed for the bit/boolean data types. This was not a problem for any other type or even for bit/boolean arrays. There was no acceptable workaround for previous builds. This has been fixed.
  • BugFix: The compiler was overly strict in configuration specifications that occur inside architectures with regards to references to architecture names inside configurations (it  required that the architecture already be compiled). This has been fixed.

What is new in Build #20: Jan. 30, 2000

  • This build has been revoked because configurations statements declared inside architectures can sometimes trigger a false internal error. This build has been superceded by Build#20a.

What is new in Build #19: Jan. 24, 2000

  • BugFix: The 'stable attribute was not simulating correctly under certain circumstances. This has been fixed.
  • BugFix: The simulator did not handle functions that terminated without executing a RETURN statement in a graceful manner. You will now get a meaningful error message along with a stack trace.
  • BugFix: The compiler produced false errors when you have a port/generic map using named associations, and the name of the formal also happens to be a visible enumeration literal. For example, if you have a port/generic called ERROR or WARNING which are enumeration literals declared in the STANDARD package, you will not be able to associate such a port/generic using named associations. This problem has been fixed.

What is new in Build #18: Dec. 29, 1999

  • Feature: The command line and the command file only allowed integers in time specification. This has been changed so that you can now enter time units such as 0.1ns (before you would have had to say 100ps).
  • BugFix: In Build#17, some accelerated Vital simulations were producing an internal error. This has been fixed.
  • BugFix: The "wait until" construct used in a procedure may not have behaved as expected (was not a problem with "wait for" or "wait on"). This has been fixed.

What is new in Build #17: Dec. 13, 1999

  • Feature: It is officially here...You can now write command files that allow you to monitor signal values (and write them out to a file) anywhere in your design hierarchy. You can monitor simple scalar signals to very complex data types or portions there of. Click here to view documentation for this feature and see examples.
  • BugFix: A concurrent procedure call where the procedure being called invokes wait statements causes the simulator to produce an error. Workaround for previous builds is to enclose such a procedure call in an equivalent process (with a wait statement).
  • BugFix: Using a non locally static attribute expression while defining a subtype may have caused a compiler error. The workaround for previous builds was to define constant(s) initialized with such expression(s) and then using these constants to define a range of the subtype.

What is new in Build #16: Dec. 6, 1999

  • Feature: A 5% improvement in performance has been achieved. Designs using heavy use of arrays may realize an even greater performance improvement. Designs that are mostly structural with no vectors and/or subprogram calls involving vectors will see the same performance as before.
  • BugFix: A couple of bug fixes related to RECORD type objects have been made.
  • BugFix: In a case statement, a discrete range choice (such as "when 2 to 4 =>...") did not produce the expected behavior. This has been fixed.

What is new in Build #15a: Nov. 29, 1999

  • Build#15 may have been corrupted. This has been replaced by Build#15a. If you have Build#15, you might not have seen one or more of the bug fixes listed for Build#15.

What is new in Build #15: Nov. 28, 1999

  • With build #14, the size of the download had increased by almost a megabyte. With build#15, the download should be back at 2.3MB. To be able accomplish this, build #15 will use the Xilinx libraries that are already on your hard disk (under the Xilinx installation directories). We also added support for the Xilinx LogiBlox library.
  • BugFix: A concatenation involving two constants whose subtypes are not the same as the result causes an internal error. An inconvenient workaround exists for this problem (declaring one of the operands to be a variable or a signal).
  • BugFix: An integer/enum/real subtype declaration may crash the compiler if the range specified for the subtype contains expressions involving function calls (note that operators are also functions). The work around is to declare temporary constants for the expressions that are appearing in the range definition.
  • BugFix: Fixed a bug in the TEXTIO accelerated package where the printing of a bit_vector type was erroneous.
  • BugFix: The compiler did not allow a string type to be a case expression. This has been corrected.

What is new in Build #14: Nov. 23, 1999

  • Yes, we have heard the requests from the Xilinx community. This build supports the Xilinx UniSim and SimPrim libraries. We would like to thank Xilinx for providing us the necessary help in being able to do this very quickly.
  • BugFix: There was a problem with SDF back-annotation of generics related to vectored ports The SDF annotator complains of type mismatches when it should not.
  • BugFix: There was an error in the rules used to check for the validity of a wait statement inside a procedure. 
  • BugFix: The simulator (actually the code generator) hung when a type conversion from a subtype of an integer to a real was done.

What is new in Build #13: Nov. 14, 1999

  • Added a command line option to stop the simulator at a user specified severity. This feature is accessible through the -breakon command line option. Please see the updated documentation for more information.
  • BugFix: The simulator was producing an internal error when an aggregate was used as an actual of a generic map and the formal for such a generic was a non locally static type.
  • BugFix: The compiler was not using the proper lexical rules for based-integer-literals. When an exponent is not used, a based-integer-literal must now end with a '#' character (this is according to the rules of VHDL). The compiler now follows the rules set forth by the VHDL language specification.
  • BugFix: A case expression which was an indexed expression was not being allowed by the compiler if the index was not locally static. Now such an expression is allowed as a case expression as long as the type of the expression is locally static.
  • BugFix: The simulator was unable to parse in integers/reals correctly using file io. This has been corrected.
  • BugFix: The simulator sometimes produced an internal error upon closing a file multiple times. This has been fixed and it now issues a better error message.

What is new in Build #12: Nov. 8, 1999

  • We have added a second tutorial/example that demonstrates the use of VHDL Simili with Vital and SDF to perform post-layout simulation and to use the same test bench to perform pre-synthesis simulation.
  • BugFix: We may have uncovered a bug in our optimizer that can cause wrong simulation results. This bug affects all currently active builds but it shows up under extremely rare conditions. If you suspect that your simulations are not working as you expected, please use the -nocycleopt option. This has been fixed in the current build.
  • BugFix: A sliced/indexed expression whose prefix is a function call requiring overload resolution was not handled by the compiler. For example, myfunc(arg1,arg2)(7 downto 0) gave you a type mismatch error. Workaround for previous builds is to assign the result of myfunc(arg1,arg2) to a temporary variable and then take the slice of that variable.
  • BugFix: The code generator (simulator) use to complain erroneously about an array aggregate not having enough elements if this aggregate is formed with one choice and this choice is a discrete range that is not static. For example, (size-1 downto 0 => '0') caused a runtime error if 'size' was a variable or a signal). Workaround for previous builds is to do (others => '0') which essentially does the same thing and is more efficient.
  • BugFix: A FILE class parameter is was being flagged as error if the subprogram is being declared/defined in a package. Works fine if the subprogram is in an defined in an entity/architecture.

What is new in Build #11: Nov. 1, 1999

This build contains a major performance boost for designs using numeric_std and numeric_bit. It also contains several bug fixes.

  • Acceleration of the standard IEEE packages numeric_std and numeric_bit has been added. These packages were available in their normal un-accelerated interpreted form in previous releases/builds. You can expect a 10x performance improvement of designs using these packages. Acceleration of these packages can be disabled using the regular option (-noaccel). A new option was also introduced (-nowarn) to handle the suppression of warnings emanating from these packages. Please read the documentation on the simulator for more info.
  • BugFix: We have found a bug in Build#10 where if the prefix of a an array attribute was a function call, the compiler was erroneously flagging this as an error. For example, myfunc(arg1,arg2)'length would be flagged as an error in Build#10 (or earlier builds)
  • BugFix: The precedence of the unary +/- operators is wrong. The expression (-a + b) is erroneously interpreted as (-(a + b)) where the correct interpretation is ((-a) + b). However if the operator after 'a' is anything other than a binary '+' or a '-', then the expression is interpreted correctly.
  • BugFix: An expression of the kind type_conversion(qualified_expr'(...)) caused an internal error in the compiler. 
  • BugFix: Fixed a problem in accelerated version of std_logic_arith package where the "/=" operator was not working correctly. Workaround in previous builds was to use -noaccel stdlogicarith option.
  • BugFix: Fixed a crash in the compiler where if you invoked an operator using the function syntax "+"(a,b) (instead of the normal syntax of (a + b)). Most cases compiled okay but there was a potential for a crash if there were multiple design units in file.
  • BugFix: Signal attributes 'stable and 'quiet were not working under certain circumstances. They were being updated a cycle earlier than they should have been when they had a delay of zero time units. This is no longer a problem.
  • BugFix: When a slice was used in an actual of a port map where the formal was a port of mode IN/INOUT, this sometimes caused a fatal error.

What is new in Build #10: Oct. 20, 1999

  • Included in the build is a tutorial/example. There are a few other minor changes in documentation.
  • Vital acceleration has improved the simulator performance by about 30%.
  • Non-Vital simulator performance has also improved by about 15%.
  • The -p option now suppresses progress information instead of enabling it.
  • Preliminary support for guarded blocks has been added. Note that use of a guarded block in an unsupported way will be flagged as an error.
  • An internal limit causing an internal error has been remedied. The problem occurred if you had a process or a subprogram which contained more than 32,000 lines of code. You can now have an almost unlimited number of lines of code in a process or a subprogram. Such subprograms and processes were being created by other automated programs.
  • Fixed an bug in indexed expression where the prefix and the index was a constant. If the prefix was a string literal, it crashed the compiler and if the prefix was a constant name in an architecture (for example MyConst(3) where MyConst was a constant array) would have caused an internal error.
  • There was a bug in the Vital acceleration module where false glitches were reported. The results of the simulation were okay though.
  • A bug in the SDF annotation of a VITAL model has been fixed. This would have caused an incorrect setup hold violation in either accelerated or normal Vital simulations. In certain cases, the results of the simulation would have been wrong.

What is new in Build #9: Sept. 29, 1999

  • A bug in the std_logic_arith package acceleration was fixed. Signed multiplication was not working correctly when one of the operands was negative. This was not a problem if acceleration for std_logic_arith was disabled.

What is new in Build #8: Sept. 15, 1999

  • Fixed a bug in accelerated Vital procedure VitalPathDelay(...) where, in certain cases an improper delay was being calculated at time 0/delta 0. Simulation would ultimately agree with the non accelerated vital models (in most cases) but, at time 0/delta 0, the assignment to the driver was done with the wrong delay.
  • There was a bug that appeared when acceleration for the std_logic_1164 package was disabled. Depending upon the order of elaboration, certain functions defined in this package appeared to have no body thereby crashing the simulator.
  • The VHDL Simili Shell would not function as designed if there were spaces in the PATH of the existing environment (before the VHDL Simili Shell was launched). This condition is now handled.
  • Made some corrections in documentation.