29
Release Notes Active-HDL 8.3 Release Notes www.aldec.com

Active-HDL 8.3 Release Notes

Embed Size (px)

Citation preview

Page 1: Active-HDL 8.3 Release Notes

R e l e a s e N o t e s

Active-HDL 8.3

Release Notes

w w w . a l d e c . c o m

Page 2: Active-HDL 8.3 Release Notes

This page is intentionally left blank.

Page 3: Active-HDL 8.3 Release Notes

T A B L E O F C O N T E N T S

Table of ContentsWhat's New in Version 8.3? .......................................................................................................................... 4

Licensing ................................................................................................................................................. 4 Compiler and Simulator ........................................................................................................................... 4 Simulation Database ............................................................................................................................. 12 LINT/ALINT Support .............................................................................................................................. 13 Libraries ................................................................................................................................................. 13 Design Flow Manager ............................................................................................................................ 14 Statement/Branch Coverage ................................................................................................................. 15 Path Coverage ....................................................................................................................................... 16 Expression Coverage ............................................................................................................................ 16 Scripts .................................................................................................................................................... 17 Block Diagram Editor ............................................................................................................................. 19 HDL Editor ............................................................................................................................................. 20 Waveform Viewer .................................................................................................................................. 20 Active-HDL Interfaces and Wizards ....................................................................................................... 22 Documentation ...................................................................................................................................... 23 Others .................................................................................................................................................... 23 Problems Corrected in Version 8.3 ........................................................................................................ 24

Page 4: Active-HDL 8.3 Release Notes

Active-HDL™ 8.3 provides many new features and enhancements that simplify team-based design, increase design productivity and the speed of behavioral, RTL, and timing simulation of VHDL, Verilog®, SystemC™, SystemVerilog and EDIF projects.

Active-HDL 8.3 is offered in an FPGA vendor-independent edition and supports all leading C/HDL synthesis and implementation tools which can be started directly from the Active-HDL environment. The installation program automatically installs all system libraries and allows selecting both target FPGA technology and vendor-specific libraries required for running HDL simulation.

The release notes describe new options and updates available in Active-HDL 8.3. Not all features and enhancement described are available in every product configuration or OEM edition. The product license file provides configuration information for the features to which you have access. Please, refer to Active-HDL Configurations for more information about available product configurations.

What's New in Version 8.3?The following is a brief overview of new features and changes introduced to Active-HDL 8.3 (BUILD 2118, 7/23/2010)

Licensing Active-HDL 8.3 may require validation of your existing maintenance contract. The latest version

requires a valid maintenance contract as of 7/1/2010. For more information refer to the License Maintenance section of the Licensing chapter.

Compiler and SimulatorNOTE: Due to internal changes in the compiler and simulator as well as updates in third-party tool libraries, all user-defined libraries should be re-compiled after the installation of Active-HDL 8.3. The installation program of version 8.3 delivers and installs only the updated system and vendor-specific libraries that do not require re-compilation after Active-HDL is installed.All existing designs will not have any problems associated with re-compiling the libraries. If you update Active-HDL to version 8.3 and do not re-compile your design libraries, the following error message will be displayed in the Console window:

# ELBREAD: Warning: Files created by the old version of the compiler found.# ELBREAD: Error: Library '<library_name>' has incompatible format. Recompile all library units.

VHDL Compilation and Simulation

Support for VHDL 2008 (IEEE Std 1076™-2008) has been extended. The IEEE library delivered with Active-HDL now contains all packages required by the standard. The following new language features are supported in this version of Active-HDL:

The if generate construct can now contain optional elsif and else branches, for example:

genif: if( g = 0 ) generate

4 of 29 Active-HDL 8.3

Page 5: Active-HDL 8.3 Release Notes

U1: behav port map( A, B, D, OVF, CLK );elsif( g <= 32 ) generate gates: for i in 1 to g generate --.. end generate;else generate assert( FALSE ) report "Component not implemented yet." severity failure;end generate;

The case generate statement is now supported. It allows instantiating different components based on the value of the case expression, for example:

gencase: case g generate when 1 => U1: bhv_v1 port map( A, B, D, OVF, CLK ); when 2 => U1: bhv_v2 port map( A, B, D, OVF, CLK ); when others => assert( FALSE ) report "Incorrect version number." severity failure;end generate;

The following changes in the names of the packages and the source files of the IEEE_PROPOSED library have been introduced:

The math_utility_pkg package has been renamed to fixed_float_types. The fixed_float_types package is now delivered along with the precompiled library.

The math_utility_pkg.vhdl source file has been renamed to fixed_float_types.vhdl.

The to_suv() function in the fixed_pkg package has been renamed to to_sulv().

The order of the parameters in the following conversion functions of the float_pkg package has been changed:

to_integer()

to_unsigned()

to_signed()

to_ufixed()

to_sfixed()

to_real()

In order to check the current order of the parameters, you can open the float_pkg_c.vhdl source file in the HDL Editor by using the View Source: Text context menu option in the Library Manager window.

Active-HDL 8.3 5 of 29

Page 6: Active-HDL 8.3 Release Notes

Interface packages are now supported and can be declared in uninstantiated packages (i.e. in packages that contain a generic clause). When the uninstantiated package is instantiated, the actual for the interface package is specified as one of the generics.The support of interface packages allows for example, writing algorithms at a high level using types and subprograms that are not yet known and will be specified later, at package instantiation. This new functionality is used in the IEEE library, where the fixed_pkg interface package is used in the float_pkg package. The interface package is declared in the float_generic_pkg package.

package fixed_pkg is new IEEE.fixed_generic_pkg generic map (<>);

The interface package declaration specifies that fixed_pkg must be an instance of the IEEE.fixed_generic_pkg package. The box symbol indicates that arbitrary generics can be used. When the fixed_generic_pkg package is instantiated, IEEE.fixed_pkg is specified as the actual for fixed_pkg.

package float_pkg is new IEEE.float_generic_pkg ( -- ... fixed_pkg => IEEE.fixed_pkg)

Note that IEEE.fixed_pkg itself is the instance of fixed_generic_pkg. The addition of the two packages completes the transition of the IEEE library to VHDL 2008. All source files required by the standard are compiled into the library.For more information about VHDL 2008 features related to packages, see the VHDL Reference Guide available from the References | VHDL Language Reference Guide section in the main TOC or from the References | Active-HDL Reference Guides | VHDL Language Reference Guide page of the Graphical View of Contents main window.

Aggregates can now be formed not only from array elements but also from array slices. For example, the following declaration is now valid:

variable a5: bit_vector (4 downto 0) := ('0', "1111");

The aggregates can also use object names. For example, assuming that the a4 variable is declared as bit_vector (3 downto 0), the following assignment could be made:

a5 := (a4, '1');

The 'SUBTYPE attribute is supported. The prefix of the attribute is an object or an alias for an object. The returned value is the fully constrained subtype of the object in the prefix.

The 'ELEMENT attribute is supported. The prefix of the attribute is an array object or an alias for an array. The returned value is the fully constrained subtype of the array element.

Character literals can now be used as simple names. This simplifies defining aliases for values. For example, an alias for value '0' of the bit type can now be defined as:

alias low is '0'[return bit];

6 of 29 Active-HDL 8.3

Page 7: Active-HDL 8.3 Release Notes

Note that the above code is incorrect according to VHDL 2002 and earlier language version. Because a character literal could not be used a simple name, an expanded name had to be used instead, for example:

alias low is STANDARD.'0'[return bit];

VHDL 2008 external names are now supported. External names can be used to access design objects declared elsewhere in the design hierarchy. For example, the testbench code can access the value of a signal declared anywhere in the design and write that value to a line variable, for example:

write(l_out, <<signal .testbench.UUT.I11.OFF : std_logic>>, right, 2);An extended name consists of angled brackets followed by object class (signal, variable, or const), an external pathname (e.g. testbench.UUT.I11.OFF), a colon, a subtype indication, and a pair of closing brackets. An external pathname can be a package pathname, an absolute pathname, or a relative pathname. Package pathnames start with the at sign @ and may denote only objects declared in packages. Absolute paths start with a dot .. Relative paths may start with a circumflex accent ^ (indicating a region declared one level above), or without any additional characters, for example:

signal pckg : std_logic := <<constant @my_library.my_package.CONST_1 : std_logic>>;

signal rltve_1 : std_logic := <<signal ^.^.OFF : std_logic>>;signal rltve_2 : std_logic := <<signal UUT.I11.OFF : std_logic>>;

signal abslt : std_logic := <<signal .testbench.UUT.I11.OFF : std_logic>>;

(SPT45319) For additional information about the new VHDL constructs supported in this release, refer to the Compilation | VHDL Compilation | VHDL 2008 section in the on-line documentation.

The following changes and improvements not related to VHDL 2008 simulation are also available:

Simulation of RTL designs has been accelerated by 10% on average.

Simulations of VHDL units compiled without debugging information consume less memory due to a number of new optimizations. Internal benchmarks have shown an average reduction of 10%, however, the results vary significantly depending on a design.

Clicking on a message generated by the assert statement in a package from the IEEE library (e.g. STD_LOGIC_ARITH ) now opens the HDL Editor and places the insertion point in a line where a statement that triggered the message is located. A sample message is shown below:

# KERNEL: WARNING: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).# KERNEL: Time: 0 ps, Iteration: 1, Instance: /UUT/I14, Process: line__36.s;

Note that you do not have to compile source files with debugging information (-dbg) for this new feature to work. (SPT45514)

The compiler generates a new error message (COMP96_0661) when multiple logical expressions are chained and not parenthesized. In the previous version, a generic syntax error message (COMP96_0049) was reported. For details on both error messages, see the Message Reference Guide. The Message Reference Guide is available from the References | Message Reference Guide section in the main TOC or from the References | Active-HDL Reference Guides | Message Reference Guide page of the Graphical View of Contents window. (SPT48163)

Active-HDL 8.3 7 of 29

Page 8: Active-HDL 8.3 Release Notes

Verilog Compilation and Simulation

The output of the $write task is now flushed to the standard output whenever the simulator enters the interactive mode (e.g. after executing the $stop task). In the previous version, the output could be buffered until a new line character was added to the buffer, the simulation was interrupted by the GUI or a breakpoint, or the simulation terminated. (SPT18891)

The ports of the time and realtime type are now allowed as module outputs. (SPT45465)

It is now possible to prevent the simulator from splitting net vectors in VCD files. To do so, use the new -solid_vcd argument of the asim command. The option affects both VCD files created from source code (with Verilog $dump* tasks) and from the command line (with vcd* commands).

The utility for encrypting source files (protectip) can now skip processing of the `include directives and included files when invoked with the new -ni or --noinclude option. Now more than one input file can be specified for the protectip utility. (SPT45812, SPT47850, SPT47866)

Unrecognized arguments passed to the compiler and prefixed with the + sign are now ignored. In the previous version, they triggered an error. (SPT45090)

The messages produced on the console by the $display, $monitor, and $strobe families of tasks can now be prefixed by the file location (i.e. the file name and the line number) where the task was called. For example, the output of $display("hello") can be changed from KERNEL: hello to the more verbose KERNEL: hello.v (5): hello. To enable such output, set variable printdisplaytasksource to 1.This maybe useful when creating logs for further analysis or when working in the text console. (The graphical Console allows you to navigate to the task by double-clicking its output, even if it is not prefixed by the file location.)

When a source library is specified on the command line (alog -v <filename>) the compiler will scan it not only for missing modules definitions but also for macros. The compiler will read macros even if the source library does not contain any module definitions. (SPT45084)

SystemVerilog Compilation and Simulation

The fork-join_any and fork-join_none constructs are supported within automatic tasks and functions. (SPT47221)

Statements that do not block, specifically, non-blocking assignments, event triggers, procedural assignments, clocking drives, and the fork-join_none construct can now be used inside functions. This is an extension introduced by SystemVerilog 2009 (IEEE Std 1800™-2009). It will not be available, if the compiler runs in the SystemVerilog 2005 mode (alog -v2k5). The support for the latest SystemVerilog standard has been also added to the GUI settings (i.e. to the Standard version list boxes in the Preferences, Design Settings, and File Properties dialog boxes).

Arguments to automatic tasks and functions can now be passed by reference. Passing by reference requires preceding the argument declaration with the ref keyword, for example:

task automatic datadump ( ref integer arr[1024] );

The task will not receive a copy of the actual argument; instead it will access the actual argument data via the reference handle.

Event merging and event comparison is now supported for automatic events declared in classes.

Queues of class handles are now supported. It is now possible to clear the queue by assigning the {} literal to it. (SPT46243, SPT46132)

Properties and fields of classes and structures stored in dynamic arrays, associative arrays, and queues can now be accessed by appending the dot and the property/field name to an indexed name (i.e. an array/queue element). (SPT46737, SPT46756)

8 of 29 Active-HDL 8.3

Page 9: Active-HDL 8.3 Release Notes

Specification of the seed value for the random number generator at the initialization of simulation is now possible. To set the seed, use the -sv_seed option of the asim command followed either by an integer value (sets the seed to the specified integer) or the random string (sets the seed to a random value selected by the simulator). (SPT48408)

The srandom() method is supported. This method sets the seed for the random number generator. It is built into each SystemVerilog object and can be called against an object handle.

Non-static class properties declared with the rand modifier can be randomized by calling the randomize method against the class handle, for example:

module top; class C; rand int data; int min, max; constraint cnstr { data > min; data < max; } endclass

C hnd; initial begin hnd = new; hnd.min = 5; hnd.max = 10; hnd.randomize(); endendmodule

Constraints guards have been implemented. This is a mechanism that prevents null pointer access errors during calls to the randomize method against a class handle. When the randomization mechanism detects that a class handle is null, the it excludes that handle from randomization.

The set membership operator is supported both in the constraint block and in the with clause. For detailed information on randomization and expressions supported by the solver, see Constrained Random Value Generation in the SystemVerilog Reference Guide. The guide is available from the References | SystemVerilog Reference Guide section in the main TOC or from the References | Active-HDL Reference Guides | SystemVerilog Reference Guide page of the Graphical View of Contents window. (SPT45154)

Constraints blocks within class objects can now be controlled with the constraint_mode method. This method disables or enables selected constraints. For further details and code examples, see the SystemVerilog Reference Guide. (SPT45155)

Class process built into the std package is supported. Users can declare variables of type process that allows one process to access and control another process once it has started. For more information on the process class, see the SystemVerilog Reference Guide.

Dynamic class variables are supported as arguments for probabilistic system functions such as $dist_exponential. (SPT45157)

Support for the compilation unit scope has been improved. Several language constructs that previously were not allowed in the compilation unit scope, now compile and simulate correctly. For example, all string methods are supported; vector ranges can be specified with constant functions declared in the compilation unit scope, etc.

Arrays are now allowed as modports in interfaces. (SPT46427)

A dynamic array of multidimensional packed arrays can be used as the actual argument of a task or a function. (SPT45160)

A packed array of registers can now be assigned to an unpacked array of nets. (SPT47613)

Active-HDL 8.3 9 of 29

Page 10: Active-HDL 8.3 Release Notes

Unpacked two dimensional arrays can be used as arguments of tasks and functions. (SPT46694)

Associative arrays, dynamic arrays, and queues can be used on the right-hand side of continuous assignments. This is an extension to the SystemVerilog standard. (SPT46054)

Parameters in classes can now be declared by using the parameter and localparam keyword, for example:

class C; parameter int p = 1; localparam int l = 2;endclass

Parameters declared in this way are local to the class and cannot be overridden when instantiating the class (unlike parameters declared with the parameter port list syntax #(<type> <name>=<value>) ). This feature is not available when the compiler runs in the SystemVerilog 2005 mode (alog -v2k5) because SystemVerilog 2005 allows declaring class parameters only in the parameter port list. (SPT46236)

Class objects can be declared const. Such objects must be initialized at declaration. Declaring the const object does not preclude an assignment to object properties. However, an assignment to an object handle declared const is forbidden.

Classes can now be declared in packages. (SPT45242)

The foreach loop can now iterate over associative arrays indexed by the string type. For example, given a declaration of associative array dict:

typedef class C;C dict[ string ];

the following loop will print all keys placed inside dict:

foreach( dict [s] ) $display( "%s", s );

The step assignment in the for loops can now contain multiple comma-separated assignment statements, for example:

for( int i = 0, int j = MIN; i < 10 && j < MAX; ++i, ++j ) begin //..end

Arguments of the string type can be passed by reference.

The if-else style constraints are now supported. (SPT45153)

The width of the data field in the $display and $fdisplay tasks output can now be set to an arbitrary number. For example, to output a four character wide integer field, use %4d:

$display( "%4d", i );

This works for the following format specifiers: %d, %h, %h, %o, %b, %s, %t, %e, %f, and %g. For %h, %o and %b specifiers, the output is zero padded if the number contains fewer digits than the specified width of the output field. The numbers are by default right-aligned. To make them left-aligned, use a hyphen after the % sign, for example:

$display( "%-4d", i );

The width and the alignment specification is ignored for the following specifiers: %v, %m, %l, %c, %u, %z.(SPT45588, SPT46126)

10 of 29 Active-HDL 8.3

Page 11: Active-HDL 8.3 Release Notes

Support for virtual interfaces has been improved.

Virtual interfaces can now include modport declarations.

Virtual interfaces can be declared in packages.

Virtual interfaces can be declared as static class properties.

Clocking blocks can be referenced via virtual interfaces.

Local variables can now be declared inside SystemVerilog named sequences and properties. (SPT17386, SPT19100)

The simulator can now call functions, tasks, and system tasks upon a successful, non-empty sequence match. This is demonstrated in the example below, where the $display task is called whenever the s sequence matches.

sequence s; @(posedge CLK) (REQ ##[4:16] GNT, $display( "Sequence s matched at time %0t.", $time ));endsequence

(SPT47051)

The $psprintf function is now supported. The $psprintf function behaves similarly $sformat except that the string result is passed back as the function result, not placed in the first argument as for $sformat. Thus $psprintf can be used where a string value would be valid.

The $shortrealtobits and $bitstoshortreal tasks are supported.

DPI export declarations are now supported. An exported SystemVerilog function or a task can be called from a foreign language (i.e. a C or C++ application). The sample foreign declarations are shown below:

export "DPI-C" function f1;export "DPI-C" task t1;

When compiling SystemVerilog code containing foreign declarations, the Verilog compiler (alog) automatically generates a C file (dpi_header.h) containing definitions of foreign functions. After including the generated file in your C/C++ application, you can call exported SystemVerilog tasks and functions from C/C++.

DPI libraries loaded by the simulator are now searched in the order they are specified on the command line. If identically named functions exist in more than one DPI library, then the function from the library specified earlier on the command line is used. In the previous version, libraries were searched in the alphabetical order.

Complex types such as structures or arrays are now supported by the DPI interface. This enhancement applies both to imported and exported functions.

Unpacked structures can now be used as arguments of imported DPI functions. (SPT46695)

Unpacked arrays can now be used in the program port list. (SPT46536)

The wildcard modifier for value bins declaration within the coverpoint construct is now supported.

Casting is allowed in the property declaration. The cast (') operator used before an expression converts the result of this expression of one type to another type. (SPT47091)

The performance of SystemVerilog cross coverage has been significantly improved. Now, designs that produce a large amount of coverage data allocate less memory.

Source code for the SystemVerilog list container is now available in the list.vh file in the vlib/sv subdirectory of the Active-HDL installation directory. The prototype for the list class, list methods,

Active-HDL 8.3 11 of 29

Page 12: Active-HDL 8.3 Release Notes

and list iterator methods were specified in Annex D of IEEE Std 1800™-2005. The actual implementation is provided by Aldec. This annex is not available in the newest revision of the standard (IEEE Std 1800™-2009).

The -sv30, -sv31, and -sv31a arguments of the compiler (alog) are no longer supported. The arguments were used to force compatibility with older revisions of SystemVerilog standard (3.0 and 3.1, respectively).

The messages produced on the console by the severity tasks ($info, $warning, $error, and $fatal) are now prefixed by the file location (i.e. the file name and the line number) where the task was called. The old behavior (i.e. not printing the file location) can be restored by setting variable printseveritytasksource to 0.

Automatic variables can now be used in wait statements. (SPT47663)

The %p format for the display and write families of tasks is now supported. This format can be used to print aggregate values, such as unpacked structures or arrays. (SPT46264)

An array of interfaces can now be used as a module port. (SPT47927)

Local variables of type enum and packed struct are now supported.

Covergroup declarations within packages are supported.

Covergroup triggering event expressions are now sensitive to non-static properties of the enclosing class.

Mixed-Language Compilation and Simulation

It is now possible to map Verilog scalar ports to VHDL bit type when instantiating Verilog in VHDL, that is the component declaration for a Verilog module can use ports of type bit. (SPT46240)

C/C++/SystemC Compilation and Simulation

Mixed SystemC-HDL designs simulate up to two times faster. The most significant speedups can be observed in designs with intensive communication between SystemC and HDL modules.

Active-HDL 8.3 supports the latest version of Microsoft Visual Studio 10.0. Now, Microsoft Visual Studio 10.0 can be also used to compile DPI and PLI/VPI applications. The systemc100.lib file required for building SystemC applications with Visual Studio 10.0 is included in the installation.

When generating a SystemC module wrapper for an HDL unit to be instantiated in SystemC, you can now specify that VHDL ports of the boolean type should be mapped to SystemC ports of the bool type (rather than sc_logic or sc_bit). To force the bool type, use the new -boolasbool argument of the scgenmod command. Note that if you use the Copy SystemC Class Declaration option available in the context menu of the Design Browser and the Library Manager, the boolean type will be converted to the sc_logic type. (SPT18081)

Simulation Database The amount of system memory the simulator allocates when recording signals to the simulation

database has been reduced.

The format of the ASDB files (i.e. files used for recording signal history during simulation) has been enhanced. The following improvements have been implemented:

Compression algorithms have been enhanced, which results in faster operation and better compression ratios.

Signal compression runs in a separate thread, possibly on a different CPU core. This enlarges

12 of 29 Active-HDL 8.3

Page 13: Active-HDL 8.3 Release Notes

the address space available to the simulator and improves run times for simulations that record signal history.

The size limit for the ASDB file has been enlarged to 16TB.

Note however that the ASDB file generated by version 8.3 cannot be used in earlier editions of Active-HDL. For more information, refer to Known Problems.

LINT/ALINT Support The functionality of the basic LINT tool previously built into the Active-HDL GUI and the HDL

compilers (acom, alog) has been moved from Active-HDL to ALINT which is a stand-alone product offered at no cost. (SPT47149)

The command line version of Aldec's ALINT tool, a programmable design and coding guideline checker, has been moved from VSimSA to ALINT.

LibrariesThe following changes have been introduced to the system and vendor-specific libraries delivered with Active-HDL 8.3:

New Libraries

Implementation1. Actel® Designer 9.0 SP1 (AXCELERATOR_GCLR, AXCELERATOR_GPSET, SMARTFUSION, OVI_AXCELERATOR_GCLR, OVI_AXCELERATOR_GPSET, OVI_SMARTFUSION)2. Altera Quartus® II 10.0 (CYCLONEIVE, STRATIXV, STRATIXV_HSSI, STRATIXV_PCIE_HIP, OVI_CYCLONEIVE, OVI_STRATIXV, OVI_STRATIXV_HSSI, OVI_STRATIXV_PCIE_HIP)

Updated Libraries

HDL Synthesis1. Synopsys® FPGA Synthesis D-2010.03 SP1

Implementation1. QuickLogic® QuickWorks™ 2010.1.12. Xilinx ISE™ 12.1 (SPT47907)

Removed Libraries

Simulation1. Celoxica DK Design Suite 5.0 SP2 (CELOXICA, OVI_CELOXICA)2. Chip Express (SPT47471)

NOTES: 1. For the complete list of all the pre-compiled vendor libraries delivered with Active-HDL 8.3, refer to the Vendor-Specific Libraries chapter.2. For additional information about availability of discontinued libraries, please contact Aldec Technical Support at [email protected].

Active-HDL 8.3 13 of 29

Page 14: Active-HDL 8.3 Release Notes

Design Flow Manager New Flowcharts

HDL Synthesis1. Altera Quartus II Synthesis & Implementation 10.02. Mentor Graphics® Precision RTL 2010 Synthesis (supports Precision RTL 2010a.218 and Precision RTL 2010a.218 OEM edition for Actel)3. Lattice® Synthesis & Implementation in ispLEVER 8.0 (SPT45920)4. Synopsys® Synplify®/Synplify Pro/Synplify Premier/Premier with Design Planner D-2010.03 (supports Service Pack 1 for FPGA Synthesis D-2010.03)5. Synopsys Synplify Pro 2009.12 for Actel (supports Synplify Pro 2009.12A OEM edition for Actel)6. Xilinx ISE/WebPack 11.5 XST™ VHDL/Verilog7. Xilinx ISE/WebPack 12.1 XST™ VHDL/Verilog

Physical Synthesis1. Xilinx PlanAhead 11.52. Xilinx PlanAhead 12.1

Implementation1. Actel Designer 9.0 (supports Actel Designer 9.0 SPA, Actel Designer 9.0 SPB, Actel Designer 9.0 SPC, and Actel Designer 9.0 SP1)2. Altera Quartus II 10.03. QuickLogic QuickWorks 2010.x (supports QuickWorks 2010.1.1)4. Xilinx ISE/WebPack 11.55. Xilinx ISE/WebPack 12.1

Updated Flowcharts

HDL Synthesis1. Mentor Graphics Precision RTL 2009 Synthesis (supports Precision RTL 2009a.95 OEM edition for Actel)

Implementation1. Altera Quartus II 9.1 (supports Service Pack 2 for Quartus II 9.1) (SPT47304)2. QuickLogic QuickWorks 2009.x (supports QuickWorks 2009.4.1)

Discontinued Flowcharts

C Synthesis1. Celoxica DK Design Suite

HDL Synthesis1. Mentor Graphics LeonardoSpectrum (Chip Express)

Flowchart Changes and Improvements

Synopsys flowchart1. The Additional options on startup option has been added to the Synplify flowcharts. It allows specifying additional arguments (e.g. -licensetype, -batch, etc.) that will be passed to the syntax of the executable files starting up the synthesis tool from the Design Flow Manager window. The new option is available in the following Synplify flowcharts: Synplify, Synplify Pro, Synplify

14 of 29 Active-HDL 8.3

Page 15: Active-HDL 8.3 Release Notes

Premier, and Synplify Premier with Design Planner ver. 9.6 or newer. (SPT46866)

Altera flowchart1. The set of auxiliary tools available in the Design Entry Tools window has been supplemented with Altera SOPC Builder. (SPT48348)

Lattice flowchart1.The Macro Search Path option has been added to the Translate tab of the Implementation Options dialog box in the Lattice ispLEVER 8.0 flowchart. The new option allows specifying the location of a macro/core netlist file (*.ngo) that will be merged with a top-level netlist during implementation. (SPT47600)

Xilinx flowchart1. The Preferred Implementation File option has been removed from the General tab of the Xilinx CORE Generator and Architecture Wizard Interface dialog box in the Xilinx ISE/WebPack 11.1 flowchart. (SPT47209)

NOTE: For additional information about availability of discontinued flowcharts, please contact Aldec Technical Support at [email protected].

Statement/Branch Coverage Branch Coverage show overflow value instead "?". (SPT46745)

The Statement and/or Branch Coverage functionality has been enhanced. Now, it is possible to include or exclude from overall statistics coverage data for selected source files or user-defined file sections. Note that previously, only a design region could be include or excluded from overall statistics. For additional information, refer to the Scripts section. (SPT46319)

The new options that allow specifying design regions or source files to include or exclude from coverage statistics have been added to the Code Coverage category in the Design Settings dialog box. The Show entries for list box along with the list of included/excluded items (specified by the options: Hierarchy, Recursive, Files, and Lines) are equivalent to the corresponding -cc_include and -cc_exclude arguments of the asim command. For additional information, refer to the Scripts section. (SPT47731, SPT46681, SPT47187)

The Output directory edit box in the Simulation | Code Coverage/Profiler category of the Preferences dialog box allows now entering user-defined paths (absolute or relative) for coverage/profiler data. (SPT45269)

Branch Coverage for the ternary operator can be limited to two branches only (0 and 1) with X and Z values excluded. To enable this behavior, pass the new -bc_ternary_01 argument to the asim command or enable the matching option in simulation preferences. (SPT46259)

Shortcuts for navigating in the Hierarchy tab of the Code Coverage Viewer have been implemented. The right, left, up, and down arrows allow you to traverse the hierarchy tree. Additionally, new shortcuts for navigation between executable statements in the Source Code tab have been added. Shortcuts allow to move the focus to the previous uncovered (Ctrl+Up), next uncovered (Ctrl+Down), previous covered (Ctrl+Shift+Up) and next covered (Ctrl+Shift+Down) statements. (SPT46658)

The Source Code tab in the Code Coverage Viewer can be browsed by different objects (blocks, branches, expressions and statements) specified in the new Browse By list box available on the toolbar.

Active-HDL 8.3 15 of 29

Page 16: Active-HDL 8.3 Release Notes

Path Coverage A new tool dedicated to Code Coverage analysis is delivered with Active-HDL 8.3. Path Coverage

is a debugging tool that collects information about the program execution and analyzes whether all combinations of program sequences (program paths) are verified by a testbench. A program path is a sequence of statement executions performed in a particular order. In this type of analysis, except checking whether a logical condition was met and in consequence a particular statement was executed, the tool also collects information about the order the consecutive statements are executed, the branches that are examined, and how logical conditions evaluated during simulation.To enable Path Coverage, compile VHDL source files by using the -pac argument of the VHDL compiler (acom) or check the Path Coverage option in the Coverage/Profiler category of the Design Settings dialog box. When you initialize simulation, pass the -pac argument (simultaneously specifying the operating mode for Path Coverage) to the asim command. The database with coverage statistics is automatically saved to a binary file when simulation terminates or you can generate a coverage report manually.The Path Coverage session and its settings can be controlled from the command line with the use of the pathcoverage command. (Refer to the Scripts section for additional information.) The GUI preferences can be customized in the Path Coverage subcategory of the Design Settings dialog box. Path Coverage is not available in Verilog.(SPT21168, SPT47727)

Expression Coverage Coverage pragmas can now be used not only for Statement Coverage but also for Expression

Coverage. Those pragmas selectively disable blocks of source code analyzed by Expression Coverage. For VHDL, use vhdl_cover_off and vhdl_cover_on, for example:

--vhdl_cover_offwhen others => null;--vhdl_cover_on

For Verilog, use verilog_cover_off and verilog_cover_off, for example:

// verilog_cover_offdefault: $display( "Error in input data" );// verilog_cover_on

Statements surrounded by coverage pragmas never show up in Expression Coverage reports.

The Expression Coverage engine can now generate Decision Coverage reports. To select the type of a report that should be generated (Expression or Decision Coverage), use the new -exc (Expression Coverage ) and -dc (Decision Coverage) arguments available both for the excoverage report and excoverage write commands.

The functionality of Expression Coverage has been enhanced. Now, it is possible both in the GUI and the command line to include or exclude from overall statistics coverage data for user-defined design regions. The GUI options that allow specifying design regions to include or exclude are available in the Expression Coverage category in the Design Settings dialog box. The Show entries for list box along with the list of included/excluded items (specified by the options: Hierarchy and Recursive) are equivalent to the corresponding -exc_include and -exc_exclude arguments of the asim command. For additional information, refer to the Scripts section.

16 of 29 Active-HDL 8.3

Page 17: Active-HDL 8.3 Release Notes

(SPT47187, SPT47731)

The Enable atomic expressions option has been added to the Expression Coverage subcategory of the Design Settings dialog box. The new option is the equivalent of the -exci argument of the acom command. (SPT46853)

ScriptsThe following changes have been introduced to internal macro commands:

The adir command has been enhanced to show VHDL packages in a more detailed way. The output of the command will now include types, subtypes, and shared variables defined in packages. If the -l argument is passed, the command returns additional information about parameters specified during compilation. Additionally package constants, shared variables, signals, and VHDL 2008 generics will have their type (or subtype) listed. Previously, the command showed only object names, without the type information. (SPT17147)

The -check_sensitivity_list argument has been added to the syntax of the acom command. The new argument reports missing, duplicated, or redundant signals on a sensitivity list of a process. (SPT47274)

The -force_celldefine argument of the acom command has been implemented. The new argument prevents signals of a unit compiled with this argument from forcing during simulation.

The acom command has been supplemented with the -delaybinderr argument. The new argument prevents the compiler from reporting an error when component binding at compile time has failed. Refer to the description of the command for more information. (SPT47973, SPT47974)

The -sv2k9 argument has been added to the alog, verilogstandard, and fileveroptions commands. The new argument specifies the IEEE Std 1800™-2009 SystemVerilog standard.

The name of the automatically generated DPI header file can be changed with the new -dpiheader argument of the alog command. If the argument is omitted, the default name dpi_header.h is used for the header. For additional information on improved DPI support, refer to the SystemVerilog Compilation and Simulation section.

The -vc10 argument has been added to the syntax of the ccomp command. The new argument allows changing the default C/C++ compiler (gcc) used in Active-HDL and compiling C/C++/SystemC source files with the use of Microsoft Visual Studio ver.10.0.

The -solid_vcd argument has been added to the syntax of the asim command. The new argument prevents splitting net vectors in VCD files and it is the alternative to the -split_vcd argument.

The asim command has been supplemented with the new -asdbserialprocessing argument. The argument forces both the ASDB engine and the simulation kernel to run on the same core of the CPU regardless of the number of available cores. By default, the ASDB engine and the simulation kernel use separate cores (if Active-HDL is run on a machine with a multi-core processor).

The -asdbrefresh and -asdbsizelimit arguments of the asim command are ignored in this version of Active-HDL.

The values of Verilog parameters assigned on the command line with the -g and -G arguments of the asim command can now use Verilog size constant number notation, for example 6'h0_a.

Recording signals to the ASDB file can be controlled with the new asdbdump command. The command can be used to temporarily disable logging (asdbdump -off), re-enable it after it has been disabled (asdbdump -on), or to flush any buffered data to the database (asdbdump -flush). The command is the equivalent of the asdbdump procedure in VHDL and the $asdbDump and

Active-HDL 8.3 17 of 29

Page 18: Active-HDL 8.3 Release Notes

$asdbFlush tasks in Verilog. (SPT45031, SPT45338)

The functionality of the -cc_include and -cc_exclude arguments of the asim command has been enhanced and now the arguments allow including and excluding from Statement and/or Branch Coverage statistics not only design regions but also individual files or file sections. For example, to prevent the top.v file from collecting coverage data, you can use the following syntax:

-cc_exclude top.v

To disable lines 100 through 200 in the top.v file, use the following syntax:

-cc_exclude top.v:100-200

Note that previously, the arguments could only be followed by a region name, not a source file or line number(s). (SPT46319)

The -exc_exclude and -exc_include arguments have been added to the syntax of the asim command. The new arguments allows preventing Expression or Path Coverage statistics from being collected for user-defined design regions. (SPT47187)

The -cell and -vital arguments have been added to the syntax of the list, trace, watch, and wave commands. If wildcards are used in name specification while adding objects to some debugging windows, passing this argument allows inserting and observing signals of:

Verilog cell modules, i.e. modules tagged with the `celldefine and `endcelldefine directives

Verilog modules compiled with the use of the +force_celldefine argument

VHDL units compiled with the use of the -force_celldefine argument

If these arguments are omitted, such signals do not match specification and cannot be presented in the debugging windows. -cell and -vital are not required when signal names are specified explicitly, i.e. without wildcards.

The msginfo command is supported. The command returns a verbose description of a compiler error or warning message. The description of a warning or an error can be displayed in the HDL Editor window or in the Console window.

The list, trace, watch, and wave Active-HDL commands and the log command in VSimSA (in the Tcl and Compatibility mode) have been supplemented with the -lib <library> argument. When wildcards are used in specification of an object name, passing the new argument to the command allows adding signals from the specified library to the Watch window and the Waveform or List Viewer or tracing those signals during simulation. (SPT47539)

The -color argument of the wave command allows now specifying the color of a waveform object not only as the RGB value but it can be also specified as a symbolic color name. Refer to the command description for additional information. (SPT45441)

The new pathcoverage command has been added. The command allows saving Path Coverage statistics to a text or binary report file during simulation (pathcoverage write), converting a binary database to a textual report file (pathcoverage report), or merging results collected in multiple simulations into a single database (pathcoverage merge). The command also allows clearing Path Coverage data (pathcoverage clear) and enables (pathcoverage enable) or disables (pathcoverage disable) collecting coverage statistics.

The excoverage report and excoverage write commands have been supplemented with the -dc, -exc, and -path arguments. The new arguments define the type of statistics that will be included in the report generated by the command, i.e. simplified Expression Coverage report, the regular Expression Coverage report, and the Path Coverage report.

The -locked argument of the cursor command has been added. The new argument allows locking a timing cursor added to the Accelerated Waveform Viewer window. Similarly, the <lock_cursor>

18 of 29 Active-HDL 8.3

Page 19: Active-HDL 8.3 Release Notes

argument of the waverestorecursors command is now supported in the DO mode. (SPT48268)

The bookmark command has been implemented. The new command allows adding and removing bookmarks from the Accelerated Waveform Viewer window. (SPT48267)

The wavecompare command allows comparing simulation results saved to the ASDB simulation databases. (SPT47480)

The waveautoreload command has been renamed and replaced by the wavereload command.

The -t argument of the expwave command supports additional values. The bin_txt, dec_txt, and hex_txt values allow specifying the radix (binary, decimal, or hexadecimal) while exporting signals saved in the Standard Waveform Viewer file (.awf) to a text file. Note that the exported text files cannot be read by the Standard List Viewer. (SPT46877)

The functionality of the removefolder command has been extended. Now, Active-HDL displays the confirmation message box prior to executing the command and allows detaching or deleting folders and specifying if a directory will be deleted only from the \src folder or from all its subfolders. (SPT45941)

The pwd command is now supported in the Tcl and Compatibility mode. (SPT46635)

The addfile, open, close, view, and set commands support arguments specifying neither Handel-C source files, environment settings, nor Handel-C-related debug windows.

The hcdebug command is no longer supported.

Block Diagram Editor Double-clicking on a text block or the use of the Edit using HDE option available in the context

menu of the text block opens now HDL code in a separate and fully functional HDL Editor document window. (Previously, a small HDL Editor window blocking access to remaining Active-HDL documents was opened in the foreground.) Note however that if HDL code of a text block is edited in the HDL Editor then the Save As command in the File menu is unavailable. (SPT45374, SPT46401, SPT47507, SPT47720)

The Edit in External Editor option has been added to the context menu of the text blocks. The new option allows editing source code specified in the text blocks in an external tool instead of the built-in Active-HDL text editor (HDL Editor). This option is unavailable for generics and parameters.

If an HDL source file describes an implementation of a fub or a symbol and the use of an external editor is enabled (the Use external text editor option in the External HDL Editors category of the Preferences dialog box is enabled), the Push option opens HDL source code in an external text editor. (SPT46567)

Hiding objects is allowed on block diagrams. The Hide option available in the context menu of a block diagram object (e.g. a symbol, fub, wire, bus, HDL text block, global signal, terminal, etc.) makes an object invisible. In order to see it on a block diagram again, you can use the Show hidden items option from the Diagram menu. Note however that this option just allows displaying invisible items until it is enabled. Otherwise, all hidden objects are not presented on a diagram. In order to permanently restore visibility of all hidden objects on a diagram, the Unhide all items option should be used.

Some tabs of the Objects View window have been equipped with an additional column (Hidden) presenting if an object is visible on a block diagram or it was hidden.

Showing or hiding the names of diagram objects (e.g. symbols, terminals, wires, etc.) has been

Active-HDL 8.3 19 of 29

Page 20: Active-HDL 8.3 Release Notes

improved. For example, the Ctrl+N shortcut sequentially enables or disables the display of the object name. The default assignment for the shortcut can be changed in the Shortcuts tab of the Customize dialog box. The Block Diagram Editor category in this tab has been supplemented with several new command types, i.e. Toggle Text: <property_name> which allow displaying or hiding other object properties, e.g. a comment, value, attributes, type, and many more. Note that properties that can be shown or hidden with the use of this new feature are equivalent to checking respective property in the View Texts tab of the object Properties dialog box. (SPT45212)

Enabling or disabling a property in the View Texts tab of the object Properties dialog box has been improved and now an attribute can be checked or unchecked by pressing the space bar.

HDL Editor Setting a code breakpoint is now possible with the use of a mouse. To toggle the breakpoint, just

click with the left-mouse button in the breakpoint status column (i.e. in a column separating the margin presenting the line numbers from the source code editing area). After the mouse-click, the symbol of a white hand is displayed in this column. Note that enabling or disabling a code breakpoint is still possible by using the F9 key or the bp and bd macro commands. (SPT45854)

The Auto Complete feature has been enhanced. Now, instead of a suggested reserved word showing up while writing source code, the HDL Editor displays the pop-up with a list of all keywords or construct templates that can be manually selected and then inserted into source code. Additionally, the interactive templates (i.e. the templates filled with user-defined names, arguments, or parameter values) can also shows up in the HDL Editor when you start typing the first letters of a reserved word. The Auto Complete feature, and automatic appearance of the list with templates in particular, can be controlled by using the options of the Auto Complete section in the HDL Editor | Language subcategory of the Preferences dialog box. Note however, that the template list can be activated not only automatically (while typing) but it can be also invoked manually by pressing the Ctrl+Space key. (SPT47505, SPT47705, SPT47994)

Active-HDL allows now not only using external text editors to optionally open source files, but now you can also set an external tool as the default source code editor and act in the same way that was previously reserved for the built-in HDL Editor. For example, it is possible to push into a fub or a symbol used on a block diagram, edit text blocks used on block diagrams, and open source files attached to the design tree in the Design Browser by pressing the Enter key or double-clicking on a file. The preferences for the default external HDL editor can be specified in the External HDL Editors category of the Preferences dialog box. (SPT16274, SPT46056, SPT46642, SPT46731)

A new word completion feature is available. Pressing the Alt+Num / keys searches the current file backwards for the first word matching the string at the cursor and inserts the match. Pressing the keys again cycles through possible completions. The editor finds one match at a time, searching the file backwards and then forward. The new feature and functionality is very handy when typing in identifiers. Note that the identifiers are not shown in the autocomplete pop-up list that contains only keywords.

Waveform ViewerAccelerated Waveform Viewer

Waveform comparison is substantially faster.

Basic waveform viewer operations such as redrawing signal waveforms or scrolling window contents are up to three times faster.

20 of 29 Active-HDL 8.3

Page 21: Active-HDL 8.3 Release Notes

Signals can be added when the simulator is busy advancing the simulation after clicking the Run button or executing the run command typed in the Console window.

The contents of the waveform viewer window can be refreshed during simulation. Previously, simulation results were reloaded in the waveform window when simulation was finished, i.e. after all test-vectors passed, when a breakpoint stopped the simulation session, or when simulation reached the specified time in the last simulation step. Now, you can update the view and see the recent simulation results at any time while the simulator is running. The Waveform View pane is updated once you click on the Update Simulation Data icon located on the Simulation toolbar. Additionally, the waveform viewer window is also refreshed when you change the current zoom (e.g. in the Zoom Mode or by using the Zoom In, Zoom Out, Zoom to Fit, Zoom Range, or Previous Zoom option).

Dynamically allocated VHDL objects, including record fields and protected type variables can now be logged to the simulation database and displayed in the waveform viewer. The waveform viewer will show not only the address but also the designated value. The following limitations apply:- the value must be logged after it is allocated with the VHDL new allocator- logging stops after the value is deallocated and cannot be resumed.

The Remove All Cursors option has been added to the pop-up menu of the active cursor and the Cursors View pane. The new option allows deleting all inactive timing cursors at once. Previously, it was possible to remove only the selected timing cursor. (SPT48266)

The Save To Macro option allows saving bookmarks defined in the waveform window by using the Toggle bookmark (Ctrl+F2) option in the GUI. Now, the bookmarks can be also set or cleared from the command line. Refer to the Scripts section for additional information. (SPT48267)

The timing cursors can be locked. You can lock/unlock the active timing cursor by using the Lock Cursor or Unlock Cursor option available in the pop-up menu of the active cursor or the Cursors View pane. Note that the timing cursors can be also locked from the command line. Refer to the Scripts section for additional information. (SPT48268)

The Add Signal Breakpoint option has been added to the context menu of the Signal Grid pane in the Accelerated Waveform Viewer window. It allows setting a signal breakpoint on the selected waveform object. (SPT46055)

The preferences of the waveform viewer have been supplemented with the Use one CPU core for simulation kernel and ASDB processing option. The new option forces the ASDB engine and the simulation kernel to use only one core of the CPU during simulation. This setting allows decreasing allocation of system resources and simulation performance. By default, the ASDB engine and the simulation kernel use separate cores (if Active-HDL is run on a machine with a multi-core processor).

Displaying HDL vector objects of the integer and real type in the Analog mode has been improved. Now, calculating values of signals displayed in the Analog mode is faster and more accurate. Additionally, in previous versions, analog waves were presented by using the full value range resulting from the object declaration in source code or it had to be defined manually. Now, the full range presented in the From .. To fields of the Signal Properties dialog box is used only initially and it can be adjusted to the current range of object values calculated by the simulator and displayed in the current zoom of the Waveform View pane. Whenever you scroll the waveform or change the zoom, the Auto-calculate Range option available in the Display tab can be used to re-calculate the range of displayed values. (SPT21636)

The Load ASDB to memory option available in the Behavior tab of the Waveform Preferences dialog box has been replaced by the Memory for caching ASDB option. The new option allows specifying the size of the memory that will be used to cache the ASDB file. The default value is 128MB. (SPT22415)

Active-HDL 8.3 21 of 29

Page 22: Active-HDL 8.3 Release Notes

The Stimulators column can now be enabled and displayed in the Signal Grid pane of the waveform window. The column shows the type of the stimulator for the selected signal.

The Hotkey stimulator is supported. (SPT21220)

Filtering waveform objects in the Signal Browser window has been improved. Now, the Mode Filter window allows you to select whether the Object View pane will show all types of waveform objects or the view will present only the user-selected types of objects, e.g. input and output ports. (SPT47674)

Renaming row separators while inserting them to the waveform window has been improved. Now, when a new named row is being added, the field with the name of the virtual object remains in the edit mode, which allows you to immediately rename the row without invoking additional options. Previously, a new virtual object was inserted with a default name and to change it, the Rename Signal option from the context menu had to be used. (SPT21992, SPT46072)

Active-HDL Interfaces and WizardsThe following changes have been made to the built-in co-simulation interfaces:

Co-simulation Interface to Celoxica1. Active-HDL 8.3 discontinues the support for the co-simulation interface to the Celoxica DK Design Suite software. The interface allowed co-simulation of HDL units with blocks described in the Handel-C language.2. The Handel-C language is no longer supported by the design entry tools (HDL Editor, Language Assistant), debugging tools (Watch and Handel-C Code Debug windows, Waveform Viewer), and the Design Flow Manager.3. The Handel-C-specific GUI options, design settings, and macro commands are not supported in Active-HDL 8.3.

The following changes and improvements have been made to the built-in Active-HDL DSP interfaces:

Interface to Simulink®/MATLAB®1. The MATLAB and Simulink interfaces support now 64-bit versions of MATLAB. (SPT47839)2. The eval_string routine prints the output on the Console or not depending on whether it is terminated with the semicolon. This follows the established M-language convention.

The following changes and improvements have been made to the built-in interfaces and import/export of third-party projects:

Import of Altera Quartus II Project1. Active-HDL 8.3 allows importing Altera Quartus II projects (File | Import) containing macros or IP cores generated by the MegaWizard Plug-In Manager in the Quartus II environment. (SPT46894)

Denali/Debussy Interface1. Active-HDL 8.3 discontinues the support of the Denali and Debussy interfaces. (SPT46743)

The following changes and improvements have been made to the built-in source revision control interface:

New Interfaces1. The support for Subversion (SVN) has been added. (SPT47522, SPT47660, SPT47992, SPT47993)

The following changes and improvements have been made to the CODE2GRAPHICS Conversion Wizard:

The BDE Settings tab of the CODE2GRAPHICS Settings dialog box has been supplemented with the Choose items that will be hidden after conversion option. The new option enables

22 of 29 Active-HDL 8.3

Page 23: Active-HDL 8.3 Release Notes

hiding selected types of design objects (symbols, signals, processes, etc.) on a converted block diagram. If the option is selected, the additional Select transparent items dialog box appears during conversion and allows you to specify objects that will be hidden on a converted block diagram.

The following changes and improvements have been made to the PLI/VPI/DPI/VHPI Interfaces:

Double-clicking on an information, warning, or error message printed to the Console window by a VHPI/PLI/VPI routine such as vhpi_assert, tf_error, or tf_message now opens the HDL Editor and shows the source code. This functionality is available for VHDL simulations and Verilog simulations running with the -O2 option. (SPT48028)

Documentation The on-line documentation has been supplemented with Message Reference Guide

(\books\msgref.chm). The guide provides a verbose description of compiler error and warning messages accompanied by code samples and suggested code corrections/solutions. The Message Reference Guide is available from the References | Message Reference Guide section in the main TOC or from the References | Active-HDL Reference Guides | Message Reference Guide page of the Graphical View of Contents window. (SPT48509)

The on-line documentation describing the Accelerated Waveform Viewer has been updated. (SPT47313, SPT47361)

The Handel-C Reference Manual (handelc.chm) is no longer installed along with the Active-HDL on-line documentation.

The following application notes have been removed:

Co-simulation of Handel-C Projects in Active-HDL

Debugging Handel-C Projects

Using Celoxica Flowchart in Altera Designs

Using Celoxica Flowchart in Xilinx Designs

Others The default installation directory (C:\Program Files\Aldec\Active-HDL <version>) has been

changed. Now, Active-HDL is installed to C:\Aldec\Active-HDL <version>. (SPT48424)

The new Save Design Status command has been added to the Design menu. The new command allows generating a design report providing a set of detailed report files containing information about a user workstation, active design, attached design files, Design Flow Manager settings, design libraries, synthesis and/or implementation results, etc. The reports can be generated at any moment of design development. They are saved to the separate folders that are automatically attached to the design tree. (ANA49, SPT22446, SPT47732)

The context menu of the document tabs visible in the main application window has been supplemented with the Close All But This option. The option closes all document windows except the current one. (SPT47417)

The Select Window and Windows List windows have been changed. Now, the windows list the names of all open documents, present their types (file icons), and display an asterisk next to the

Active-HDL 8.3 23 of 29

Page 24: Active-HDL 8.3 Release Notes

file name if a file has been modified. If a design file is located outside the \src folder, the full file path is presented at the bottom of the window. Additionally, the Close All But This button has been added to the Windows List window. (SPT47675)

The Refresh contents window allows filtering and selecting whether hidden files and folders will be added to an active design. (SPT45941)

Active-HDL allows changing the current path in the Open (File | Open) or Add Files (Design | Add Files to Design) dialog boxes also with the use of the My Recent Documents or Recent Places shortcuts. Previously, the history of recently opened or added files was not available in the Open and Add Files dialog boxes. (SPT45735)

The View Message Help option has been added to the pop-up menu of the Console window. The new option opens the on-line documentation window with a description of an error/warning message pointed by the cursor in the Console window.

The SystemVerilog Source option has been added to the File | New menu. The new option opens an empty SystemVerilog source file. (SPT22616)

Problems Corrected in Version 8.3VHDL Compilation and Simulation

An issue with compiling array aggregates was resolved. (SPT21126)

A bogus out-of-range error could be reported during simulation at a call to the to_integer function if a source file containing the call was compiled with debugging data. (SPT45882)

Using the for loop after the empty wait statement could trigger a bogus compilation error if the compiler ran in the -dbg mode. (SPT46125)

An issue with expressions containing both access types and attributes with an array prefix was resolved. When placed inside a method inside a protected type, such expressions could result in a runtime error. (SPT46673)

Using an indexed name with a function prefix inside a port map could crash the compiler. (SPT46652)

Using a slice name prefixed by another slice name in the formal part of the port map could sometimes yield incorrect simulation results. (SPT46841)

Using attribute range for accessing complex types inside for loop parameter specification caused a code generator error. (SPT46379)

Under rare circumstances, the compiler running in the -O3 mode could sometimes trim sensitivity lists. This resulted in incorrect simulation results. The issue is now corrected. (SPT45193, SPT46093)

A defect in producing incorrect compilation data causing errors while merging coverage results generated for expressions in procedures and functions was fixed. (SPT46336)

The compiler could sometimes produce a bogus error about cyclic package dependencies during recompilation of source files. The issue is now resolved. (SPT46114)

An issue with assignments to complex types was fixed. In several cases, the issue could cause a fatal error during simulation, for example when assigning an aggregate to an array of records, provided that array bounds were calculated with a function. (SPT46854, SPT46896, SPT46904)

In previous versions, if a name of an instantiated component was the same as the name of an

24 of 29 Active-HDL 8.3

Page 25: Active-HDL 8.3 Release Notes

object declared in a package, Active-HDL did not report an error. Now, this issue is fixed.

Previously, if an output port was used in a complex expression being a parameter of a procedure, Active-HDL reported no error when source code was compiled with the -93 or -2002 argument. Now, this issue is fixed.

The previous versions of Active-HDL did not reported improper use of a deferred constant within a prefix of AttributeName. Now, the issue is revised.

If a variable is declared as an output in a function used in a procedure and then no assignment is made to that variable in the function, then its value will be equal to the default value upon the completion of the function call. (For example, a variable of type boolean will acquire the false value.) (SPT47287)

An elaboration error messages about out-of-range index indicated the formal part instead of the actual part where the violation had really occurred. (SPT46687)

A problem with mapping generics via an expression in configurations was fixed. (SPT46298)

Under specific circumstances, the wait statement inside a procedure defined in a package did not suspend execution. (SPT47232)

The change command works correctly for variables from protected types. (SPT47330)

The compiler crashed when a type declared in a package was used on an entity port and then another type with the same name was declared in the architecture body and used to specify arguments for an overloaded function. (SPT47099)

Several defects resulting in occurrence of application error, internal compiler or simulator errors were fixed. (SPT46738, SPT47028, SPT47317, SPT47430, SPT47784, SPT48404)

Verilog/SystemVerilog Compilation and Simulation

An issue with assigning parameter values with defparam statements that contained hierarchical references through arrays of instances was resolved. (SPT45173)

Signal values were not propagated correctly when a continuous assignment was made to a variable connected to an output port. (SPT45147)

An issue with compiling assignments at declaration inside the generate statement in the -v2k mode was resolved. This issue could occur when compiling the xilinxcorelib library. (SPT45804)

Omitting parenthesis in a method call that did not require any arguments triggered a bogus error at the initialization of simulation. (SPT45251)

Using a typedef'ed structure with parameterized members could trigger a simulation runtime error if the structure was declared in a package and imported to the current scope with the import statement. (SPT46221)

A misleading warning printed by the $dumpon task was corrected. (SPT45748)

Previously, the compiler reported an error when compiling an event expression containing a hierarchical name with an instance array index. Now, this issue is revised. (SPT45990)

An issue with the use of multi-dimensional arrays on module ports was resolved. (SPT45402)

Simulation failed to initialized when a concatenation of memory words was used on a module port and the memory was indexed by a four-value signal or variable. (SPT45876)

A problem with initializing simulation without specifying the names of Verilog top-level units to the asim command was resolved. (SPT45518)

An issue with using clocking declarations in modports was resolved. (SPT18125)

Active-HDL 8.3 25 of 29

Page 26: Active-HDL 8.3 Release Notes

An issue with loading timing data from SDF file ver. 2.1 containing removal entries has been resolved. (SPT46875)

Under specific conditions, a module output port driven by a concatenation of Verilog signals and recorded both to a simulation database (.asdb) and a VCD file was not correctly recorded in VCD. (SPT22965)

Retrieving the value.integer field from the from s_vpi_value structure crashed the simulator if s_vpi_value was assigned with the vpi_get_value routine, the handle argument for vpi_get_value was a task or function argument, and the actual argument value in Verilog was a concatenation. (SPT45561)

An issue with the use of the vpi_get_value() routine was resolved. The routine did not force values correctly when the format filed in the s_vpi_value structure was set to vpiObjTypeVal and the vpiReleaseFlag was used. (SPT45196)

The message about the missing startup routine (Cannot find init_usertfs routine ...) was modified to include names of other allowed routines: vlog_startup_routines and veriusertfs. (SPT46115)

Several issues with ports of the real and realtime types were resolved.

An issue with a nonblocking assignment via virtual interface to a bit selection from a parameterized vector was resolved. (SPT46757)

Associative arrays with a string index type caused a simulation crash when used in the foreach loop. (SPT46537)

Fork-join blocks within automatic class methods were not correctly detected when the tasks where declared extern. (SPT46509, SPT46515, SPT46516)

Several problems with using a clocking block in a modport were fixed. (SPT15872)

A problem occurring when a task was driving virtual interface modport was fixed. (SPT47082)

The compiler now correctly reports that type parameters for modules, interfaces, and programs are not yet supported. In the previous version, using such constructs could crash the compiler. (SPT47157)

Objects stored in mailboxes were sometimes prematurely garbage-collected. This could result in a simulation runtime error. (SPT47055, SPT47083)

An issue with using parameterized arrays in interface modports was resolved. (SPT46424)

A problem with an interface actual parameter was fixed. (SPT46869)

Several problems related to multidimensional arrays have been resolved. For example, assigning a multidimensional packed array to a single dimension packed array is now possible. (SPT45158)

An issue with using an array with one packed and one unpacked dimension as an argument of a class method was resolved. (SPT46769)

Under specific circumstances using a localparam to parameterize vector range could result in a simulation runtime error. (SPT46540)

The compiler allowed assignments to non-local variables inside sequence_match_items. Such assignments are now correctly flagged as errors. (SPT46207)

The compiler sometimes incorrectly detected multiclock context and reported errors for valid SystemVerilog code. (SPT46238)

Signals of the bit type could acquire incorrect values during simulation when used in a ternary operator in a continuous assignment alongside signals of the reg type. (SPT47073)

The compiler sometimes incorrectly flagged references to triggered properties as illegal.

26 of 29 Active-HDL 8.3

Page 27: Active-HDL 8.3 Release Notes

(SPT46129)

A problem with local variable usage in parameterized properties is fixed. A subroutine call or any sequence match item attached to a sequence allowing an empty match reports an error: Sequence match item attached to empty match subsequence. (SPT46104)

The following defects resulting in occurrence of application error, internal compiler or simulator errors were fixed. (SPT46113, SPT46131, SPT46213, SPT46234, SPT46316, SPT46467, SPT46538, SPT46558, SPT46585, SPT46930, SPT46948, SPT46949, SPT47196, SPT47197, SPT47468, SPT48092)

Mixed-Simulation

An error in the simulation of a memory control block (MCB) generated by Xilinx's CORE generator was resolved. (SPT45066)

SystemC Compilation and Simulation

An issue with instantiating modules derived from the sc_foreign_module class was resolved. When using the OVM_SC library, this could result in incorrect driver creation for module ports. (SPT46890)

Coverage Analysis

A discrepancy between reports generated by the Code Coverage Viewer and the excoverage report command was removed. (Reports generated by the viewer said expression rather than conditional expression.) (SPT45224)

Library Management

Temporary files (*.ref) created while refreshing libraries are now deleted. (SPT17718)

Active-HDL Interfaces

An issue in the setup script causing errors in some specific blockset installation cases was corrected. (SPT45407)

Console

Improvements in selected error, warning, and information messages generated to the Console window were introduced. (SPT47701, SPT47702, SPT47703)

Block Diagram Editor

Several issues with improper handling of text blocks defining generics that caused incorrect code generation, compilation errors, or detecting discrepancies between an interface of fubs/symbols and corresponding compiled units were revised. (SPT45782, SPT46752, SPT47020, SPT47267, SPT47528, SPT47571)

Accelerated Waveform Viewer

An issue with creating a large simulation database and navigating through waveforms in case large array objects were traced during simulation was corrected. (SPT45461)

Previously, Active-HDL might stop responding if waveform comparison started when simulation was running. Now, this issue is resolved. (SPT46990)

The vertical position of objects presented in the waveform window is retained after the simulation restart. Previously, the view was scrolled to the top of the waveform view. (SPT48269)

Others

Previously, when compilation was run from the GUI, no information about the -dbg argument passed to the compiler was presented in the Console window. Now, when generation of

Active-HDL 8.3 27 of 29

Page 28: Active-HDL 8.3 Release Notes

debugging data is enabled during GUI compilation, the information about the -dbg argument is presented explicitly. (SPT46083, SPT47375)

28 of 29 Active-HDL 8.3

Page 29: Active-HDL 8.3 Release Notes

N O T E S

Aldec, Inc.

Corporate Headquarters2260 Corporate CircleHenderson, NV 89074

Tel: +1 702 990 4400Toll Free: +1 800 487 8743Fax: +1 702 990 4414

Active-HDLTM is a trademark of Aldec, Inc.All other trademarks or registered trademarks are property of their respective owners.