Release Notes For ModelSim Altera 10.5a Apr 04 2016 Copyright 1991-2016 Mentor Graphics Corporation All rights reserved. This document contains information that is proprietary to Mentor Graphics Corporation. The original recipient of this document may duplicate this document in whole or in part for internal business purposes only, provided that this entire notice appears in all copies. In duplicating any part of this document the recipient agrees to make every reasonable effort to prevent the unauthorized use and distribution of the proprietary information. TRADEMARKS: The trademarks, logos and service marks ("Marks") used herein are the property of Mentor Graphics Corporation or other third parties. No one is permitted to use these Marks without the prior written consent of Mentor Graphics or the respective third-party owner. The use herein of a third-party Mark is not an attempt to indicate Mentor Graphics as a source of a product, but is intended to indicate a product from, or associated with, a particular third party. The following are trademarks of of Mentor Graphics Corporation: Questa, ModelSim, JobSpy, and Signal Spy. A current list of Mentor Graphics trademarks may be viewed at www.mentor.com/terms_conditions/trademarks.cfm. End-User License Agreement: You can print a copy of the End-User License Agreement from: www.mentor.com/terms_conditions/enduser.cfm. _______________________________________________________________________ * How to Get Support ModelSim Altera is supported by Altera Corporation + World-Wide-Web Support [1]http://www.altera.com/mySupport _______________________________________________________________________ Index to Release Notes * [2]Key Information * [3]Release Announcements in 10.5a * [4]Base Product Specifications in 10.5a * [5]Compatibility Issues with Release 10.5a * [6]General Defects Repaired in 10.5a * [7]SystemVerilog Defects Repaired in 10.5a * [8]VHDL Defects Repaired in 10.5a * [9]SystemC Defects Repaired in 10.5a * [10]General Enhancements in 10.5a _______________________________________________________________________ Key Information * The following lists the supported platforms: + win32aloem - Windows 7, Windows 8, Windows 10 + linuxaloem - RedHat Enterprise Linux 5 and 6, SUSE Linux Enterprise Server 10 and 11 _______________________________________________________________________ Release Announcements in 10.5a * [nodvtid] - In the next major release (10.6), support for Redhat Enterprise Linux (RHEL) 5 and Suse Linux Enterprise Server (SLES) 10 will be dropped. * [nodvtid] - Release 10.5 uses FLEXnet v11.13.1.2 server, v11.13.0.2 client. For floating licenses, it will be necessary to verify that the vendor daemon (i.e., mgcld) and the license server (i.e., lmgrd) have FLEXnet versions equal to or greater than 11.13.0.2. If the current FLEXnet version of your vendor daemon and lmgrd are less than 11.13.0.2 then it will be necessary to stop your license server and restart it using the vendor daemon and lmgrd contained in this release. If you use node locked licenses you don't need to do anything. This release will update licensing to MSL v2015_1_patch2 with MGLS v9.13_5.4 and PCLS v9.13.5.2 In summary, this release uses the following license versions: + FLEXnet v11.13.1.2 server, v11.13.0.2 client + MSL v2015_1_patch2 + MGLS v9.13_5.4 + PCLS v9.13.5.2 + [nodvtid] - 10.5 release onwards, Questa will be using Microsoft Visual Studio 12 a.k.a Visual Studio 13. This would mean that all the executables shipped with the 10.5 release and onwards would be linked in with "msvcr120.dll". If you have SystemC or PLI/VPI/DPI/FLI libraries compiled with older release with any gcc compiler shipped with the product, those will have to be re-compiled with 10.5. Windows platform compiler details is as follows: o "gcc-4.2.1-mingw32vc9" has been replaced with "gcc-4.2.1-mingw32vc12" and is shipped with the product. o "gcc-4.5.0-mingw64" has been replaced with "gcc-4.5.0-mingw64vc12" and is shipped with the product. o "gcc-4.5.0-mingw32vc9" has been replaced with "gcc-4.5.0-mingw32vc12" and will be available for download on a request basis. Compiler versions have not been changed compared to previous release. Please refer to User's Manual for more details. o [nodvtid] - (source) In the next major release (10.6) # support for Windows 8.0 will be dropped. No change for Windows 8.1 # support for gcc-4.3.3-linux and gcc-4.3.3-linux_x86_64 will be dropped ______________________________________________________________ Base Product Specifications in 10.5a + [nodvtid] - [Supported Platforms] Linux RHEL 5 x86/x86-64 Linux RHEL 6 x86/x86-64 Linux RHEL 7 x86/x86-64 Linux SLES 10 x86/x86-64 Linux SLES 11 x86/x86-64 Windows 7 x86/x64 Windows 8 x86/x64 Windows 10 x86/x64 [Supported GCC Compilers (for SystemC)] gcc-4.7.4-linux/gcc-4.7.4-linux_x86_64 gcc-4.5.0-linux/gcc-4.5.0-linux_x86_64 gcc-4.3.3-linux/gcc-4.3.3-linux_x86_64 gcc-4.2.1-mingw32vc12 [OVL (shipped with product)] v2.8.1 [VHDL OSVVM (shipped with product)] v2014.07 [Licensing] FLEXnet v11.13.1.2 server, v11.13.0.2 client MSL v2015_1_patch2 MGLS v9.13_5.4 PCLS v9.13.5.2 ___________________________________________________________________ Compatibility Issues with Release 10.5a Key Information Compatibility * [nodvtid] - (source) A bug related to Windows DLL symbol export is fixed in 10.5 and later. A side effect of the fix is that there may be incompatibility on Windows platforms regarding existing DPI usage. The required setup change is one of the followings: 1) Use vlog -dpiheader to generate DPI routine prototype declarations. Include generated DPI header file in the DPI code. OR 2) If DPI header is not being generated or used, one needs to manually attach DPI_DLLESPEC in front of all DPI routines. DPI_DLLESPEC is a standard macro defined inside svdpi.h The generated DPI header flow is recommended. Failing to do the above will incur the following warning at elab time # ** Warning: (vsim-3770) Failed to find user specified function 'foo' in DPI C/C++ source files. and the fatal error at runtime: # ** Fatal: (vsim-160) test.sv(11): Null foreign function pointer encountered wh en calling 'foo' * [nodvtid] - (results) Designs that depend on the IEEE floating point package "float_generic_package" may require a refresh in some situations when simulated using 10.5a. Specifically: 1. If a design unit that uses functionality from the IEEE floating point package was compiled with an earlier 10.5* release of Questa using the command "vcom -novopt", it may need to be refreshed. If the "-novopt" switch was not used with vcom, then such design units will not need refreshing. 2. If a PDU generated using an earlier 10.5* release of Questa uses functionality from the IEEE floating point library, it may need to be refreshed. In these cases vsim would error out with error number 3274 in case a refresh is not done. SystemVerilog Compatibility * dvt84871 - (results) vsim crashed when annotating SDF to a full specify path ( "*>") with path selects on source and destination terminals. This happened only when the specify block contained more than 64 paths and the width of the source and destination part-selects were different. E.g. (a[17:9] *> y[36:18]) = (0); * dvt83391 - (results) In some situations, a performance optimization for FSDB dumping caused pli errors: # ** Error: (vsim-PLI-3532) acc_vcl_add(): The object_handle parameter is not a handle to a register, net, variable, port, terminal, or event. # ** Error: (vsim-PLI-3494) acc_fetch_size(): The object_handle parameter is not a handle to a net, register, or port, or a bit-select thereof. setting the env variable MTI_OPT_FSDB=0 will also workaround this problem. * dvt66421 - (results) When vsim was run with any "-radix" other than "binary", UVM backdoor functions uvm_hdl_deposit and uvm_hdl_force didn't deposit/force the correct value into VHDL data objects. SystemC Compatibility * [nodvtid] - (results) sccom would invoke scparse with the '--c++0x' option by default, which would enable the c++11 standard. The enabling of the c++11 standard by default would lead to scparse compilation errors in certain cases, while the g++ compilation would run fine. sccom has been fixed not to pass '--c++0x' by default. If a design has c++11 constructs, sccom needs to be invoked with the '-std=c++11' option so that both, g++ and scparse will run with the c++11 standard enabled during compilation. Release Announcements Compatibility * [nodvtid] - (source) In the next major release (10.6) + support for Windows 8.0 will be dropped. No change for Windows 8.1 + support for gcc-4.3.3-linux and gcc-4.3.3-linux_x86_64 will be dropped _______________________________________________________________________ General Defects Repaired in 10.5a * dvt84629 - [ModelSim Microsemi] Wrong license feature name 'actelmsimvlog' mentioned in licensing error message for expired licenses. Should have been 'microsemimsim'. _______________________________________________________________________ SystemVerilog Defects Repaired in 10.5a * dvt84871 - (results) vsim crashed when annotating SDF to a full specify path ( "*>") with path selects on source and destination terminals. This happened only when the specify block contained more than 64 paths and the width of the source and destination part-selects were different. E.g. (a[17:9] *> y[36:18]) = (0); * [nodvtid] - Extended Mac OS new-line warning message to cover line comments when the line comments is the first text found within a source file. * dvt84189 - Inline randomization constraints with type casts would sometimes generate compilation errors like: ** Error: test.sv(10): Illegal field 'my_type' * dvt83391 - (results) In some situations, a performance optimization for FSDB dumping caused pli errors: # ** Error: (vsim-PLI-3532) acc_vcl_add(): The object_handle parameter is not a handle to a register, net, variable, port, terminal, or event. # ** Error: (vsim-PLI-3494) acc_fetch_size(): The object_handle parameter is not a handle to a net, register, or port, or a bit-select thereof. setting the env variable MTI_OPT_FSDB=0 will also workaround this problem. * dvt85773 - vsim crashed with "+bitblast" when a module contained a wide port in $setuphold (or $recrem) but not corresponding delayed nets. For example, "$setuphold(posedge CLK, posedge A, 0,0,notify);" where A is a wide port. In comparison, "$setuphold(posedge CLK, posedge A, 0,0,notify,,, dCLK, dA);", which has the delayed nets specified, did not crash. * dvt66421 - (results) When vsim was run with any "-radix" other than "binary", UVM backdoor functions uvm_hdl_deposit and uvm_hdl_force didn't deposit/force the correct value into VHDL data objects. _______________________________________________________________________ VHDL Defects Repaired in 10.5a * dvt85740 - The compiler (vcom) would issue an Internal error message when an array aggregate expression was associated with a port of a direct instantiation (ENTITY) when that port was of an array-of-unconstrained array type and the port subtype was fully constrained at the inner array and the constraint depended on generics of the ENTITY, different from the ENTITY of the design unit that contains the direct instantiation statement. * dvt85842 - If a subprogram contained a formal of mode IN and of type TIME and the declaration of the formal included a default expression, then a call to the subprogram that had an explicit association element for that formal would result in the subprogram being called with the value of the default expression, not the value of the actual. * dvt86029 - The simulator would crash when a port map associated an array subelement of a record type signal with an array type port, when the array subelement was defined as an unconstrained array (i.e, the record type was record-with-unconstrained array subelement). _______________________________________________________________________ SystemC Defects Repaired in 10.5a * [nodvtid] - (results) sccom would invoke scparse with the '--c++0x' option by default, which would enable the c++11 standard. The enabling of the c++11 standard by default would lead to scparse compilation errors in certain cases, while the g++ compilation would run fine. sccom has been fixed not to pass '--c++0x' by default. If a design has c++11 constructs, sccom needs to be invoked with the '-std=c++11' option so that both, g++ and scparse will run with the c++11 standard enabled during compilation. _______________________________________________________________________ General Enhancements in 10.5a * dvt78423 - When the design unit being instantiated was contained inside library 'work', and the design unit of the scope of the instantiation statement was contained in a library that was not named 'work', vopt (and vsim in -novopt flow) would fail to find the instantiated design unit in spite of using -L work. Using -L ./work would make the test pass. This has been fixed, and now -L ./work is no longer required. * dvt85061 - Added a sub-option 'compress' to option -createlib to automatically create compressed missing libraries. i.e. whenever a new library is created based on -createlib option, it is created compressed. The syntax is -createlib=compress. * [nodvtid] - Usability improvements and bug fixes have been made to Questa's library search features. There are no known incompatibilities with earlier library search operations. All working designs will continue to elaborate as they have in the past. The following new features have been added to Questa's library search algorithm: 1. A new option called -Ldir has been added to vopt and vsim. This option allows users to pass container folders for the libraries specified with -L/-Lf options. Once a container folder has been specified, the libraries contained in this folder can be directly referenced using their logical names. When multiple -Ldir options are used, the tool searches in the order in which -Ldir paths are specified on the command line. $cwd is always searched before any -Ldir options, as if there was an implicit "-Ldir ." specified first on the command line. 2. Vopt now detects inconsistencies between its -L/-Lf options and the options passed to vlog. Any inconsistency that can possibly result in a difference in the composition of the design will generate a warning. 3. A new option -libverbose=libmap has been added to display library map pattern matching information during compilation. 4. Some design units were missing source information next to their loading messages with -libverbose=prlib. This has been fixed. All design units now consistently show their source libraries when -libverbose=prlib is used. 5. A new option -work has been added to vsim. This is an optional option; When used, it would override the library in which vsim writes the optimized design generated by the internally invoked vopt command in the 2-step flow. 6. Error messages vsim-19 and vopt-19, generated for non-existent -L/-Lf libraries, are now suppressible.