Fixed Bugs and Changes in Spectra IP Core ORB (ICO)

This page lists all the changes and enhancements, fixed bugs and known issues in the various releases of Spectra IP Core ORB.

Known Issues in ICO 2.3.2

System exceptions cannot be generated by servants or received by clients.

Standard operations support is not incorporated into the loopback mechanism. This means that an ICO client cannot call is_a or non_existent on an ICO server.

A server must implement at least one method, either in one of the interfaces specified or in an inherited interface. A specification for a server that consists only of interfaces with attributes will be ignored.

Enums, array definitions (in fact, aliases in general), constants and user-exceptions defined at the root level of a repository are ignored. Enums, arrays, constants and user-exceptions that are required for the compilation must be within modules / interfaces.

Changes and Enhancements in ICO

v2.3.2

Updated for Quartus 11.1

v2.3.1

Spectrum Signal quicComm Transport Endpoint Manager support added.

Optimised marshalling support for sequences of struct containing two short values. This processes both short values in the same clock cycle.

v2.3.0

Support for array parameters added.

User code moved to a new generated package containing procedures for each parameter. GPIO terminology replaced by User I/O.

Xilinx support added. Simulation examples now support ISim.

New AM, audio capture and bitmap LCD synthesis examples added.

Ethernet based synthesis examples now have ARP support.

New “net” package introduced to simply ethernet transport deployment.

v2.2.0

Generated sequence handling code now uses a simplified, stack based, mechanism. This has removed the use of length registers per sequence. As a consequence the compiler option “-reusecounters” is redundant and has been removed.

The compiler now generates packages for the root-level of each IDL file specified, not just for each module and interface within the IDL. In addition, empty packages are not generated.

The new compiler options now allows the user to specify the endian for the receive and transmit bridges.

A “-sysexc” option has been added, allowing servers to raise and clients to receive system exceptions.

The compiler will now only report as errors unimplemented aspects of IDL (such as arrays and unions) when these aspects are used in operations implemented by the clients and/or servers.

v2.1.1

CORBA Naming Service client example added.

Enhanced SCA example.

Perfect hash generator utility has been added.

v2.1.0

Support for outgoing CORBA requests from ICO clients.

Support for the CORBA Any type has been added. The Any may contain primitive values or strings.

New client and SCA Resource examples have been added to the examples/simulation directory.

Support for Altera Arria II FPGA added.

v2.0.7

Bug fix release.

v2.0.6

Added configurable endian for output bridge.

v2.0.5

Bug fix release.

v2.0.4

Changed output bridge object key data timing so that object key data can be provided by a separate component.

v2.0.3

Added support for identical operation names on different interfaces.

User Guide revisions.

v2.0.2

Description of generated entity signals added to User Guide.

v2.0.1

One way outgoing client side support has been added. This enables a client on the FPGA to make a GIOP request to external CORBA server.

Two new simualation examples have been added. The “back_to_back” example demonstrates a one way GIOP request between a client in one TLE and a server in another TLE. The “oneway_client” example demonstrates how to select endpoints for outgoing requests.

Additional timing information added to user guide.

The ICO core files are now in an ico_lib library instead of the default work library.

The input and output metadata index widths have been increased to 12 bits, allowing for more complex IDL files to be compiled.

The standardops.vhd file is now part of the ICO core and is found in the src/core directory. It is no longer generated by the compiler.

Entites, types and signals have been renamed to follow a consistent pattern. The general format is an initial type indicator, followed by a specific name (if appropriate) and a numeric index (if required). Types have a “type” suffix.

The compiler no longer generates a metadata_constants_pkg.vhd file. The metadata parameters are now fixed in size.

The compiler no longer generates a default client. If no client/server specifications are given, a default server is still generated that implements all operations in the IDL, but no default client is generated.

The names of the default objects generated by the compiler have changed. The default server (for when no client/server specifications are given) is now called “server” rather than “default_server”; the default input and output bridges (for when no bridge specifications are given) are now called “ipb” and “opb” instead of “default_ipb” and “default_opb”.

The compiler now sends its output to a file idlv.log, created in the current working directory. Only errors are displayed in the console.

The library for the compiler output can be specified via the -library option; if not given, the default is work.

Client/server entities no longer have a default value for the THIS generic. The top level entity will pass in the appropriate value when the client/server is instantiated.

Client/server entities now have a GPIO output record member, continually assigned to the gpio_o port.

Client/server entities now have the gpio_i port in their sensitivity lists.

The generics for the output bridge have changed. The old generics lower_addr and upper_addr have been removed and have been replaced with addr and buffer_size. The addr generic is the object key for the output bridge; the buffer_size generic is set through the corresponding generic at the TLE level.

The compiler now has an enable_objectkey switch, which (when specified) will provide object key information to the output bridges for outgoing CORBA requests.

v2.0.0

Added flow control mechanism to provide feedback when FIFO is nearly full.