Answers Database


V1.5, V1.4 COREGEN, VIEWLOGIC SPEEDWAVE, ACTIVE-VHDL, SUMMIT, VHDL-93 support: COREGEN Sync FIFO FULL and EMPTY outputs stuck high on VHDL-93 simulators


Record #4316

Product Family: Software

Product Line: ViewLogic

Product Part: Workview Office

Product Version: 7.4

Problem Title:
V1.5, V1.4 COREGEN, VIEWLOGIC SPEEDWAVE, ACTIVE-VHDL, SUMMIT, VHDL-93 support: COREGEN Sync FIFO FULL and EMPTY outputs stuck high on VHDL-93 simulators



Problem Description:
Urgency: standard

General Description: The Full and Empty outputs of a
Synchronous FIFO synthesized by the 1.5.0 and 1.4 versions
of the CORE Generator do not appear to behave correctly in
VHDL behavioral simulation using the Viewlogic Speedwave,
Active-VHDL, and Summit Visual HDL simulators. On these
platforms, both outputs are permanently asserted.


Solution 1:

Modify the code:

There are four processes in the FIFO model that are triggered by the rising edge of c_i. The code c urrently looks like
this:

      PROCESS
      BEGIN
           WAIT UNTIL c_i'EVENT;
           IF (c_i'LAST_VALUE='0' AND c_i='1') THEN
                ...
           END IF;
      END PROCESS;

The simulator is never proceeding past the WAIT statement.

The problem is that the Viewlogic Speedwave simulator is
VHDL-93 compliant, whereas the behavioral model generated for
the FIFO by CORE Generator is currently only VHDL-87
compliant. Xilinx software releases up to and including
M1.5 support VHDL-87 only.

As a workaround, the condition that triggers the code
following the WAIT statement (a change in the c_i signal)
can be modified as follows:

      PROCESS
      BEGIN
           WAIT UNTIL (c_i'EVENT) AND (c_i='1');
           ...
      END PROCESS;

With the addition of the additional (c_i='1') condition, the
change in c_i is detected by Speedwave, and the simulation
works correctly.




Solution 2:

Another code change that will function correctly under VHDL-93 is to modify the following code:

--from
WAIT UNTIL c_i'EVENT;

--to
WAIT ON c_i UNTIL c_i'EVENT;



Solution 3:

Use a different simulator.

The simulation works properly on MTI.




End of Record #4316 - Last Modified: 11/17/98 14:45

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips!