Answers Database


UNISIMS/SIMPRIMS: How is the $recovery system task used in the Block SelectRAM+ models?


Record #1655

Product Family: Software

Product Line: Cadence

Product Part: concept2xnf

Problem Title:
UNISIMS/SIMPRIMS: How is the $recovery system task used in the Block SelectRAM+ models?


Problem Description:
Urgency: Standard

General Description:
How is the $recovery system task used in the Block SelectRAM+ models?


Solution 1:

The $recovery system task specifies a time constraint between an
asynchronous control signal and a clock signal (for example, between
clearbar and the clock for a flip-flop). A violation occurs when a change
to the signal occurs within the specified time constraint.

The $recovery system task has the following syntax format:

$recovery(<control_event>, <clk_event>, <recovery_limit>{, <notifier>});

<control_event>
Asynchronous control signal, which normally has an edge identifier
associated with it to indicate which transition corresponds to the
release from the active state.

<clk_event>
Clock (flip-flops) or gate (latches) signal, which normally has an
edge identifier to indicate the active edge of the clock or the closing
edge of the gate.

Basically, the $recovery is used to check the 1 of 2 dual-port
BlockRAM conflicts:

o If both ports write to the same memory cell simultaneously,
   violating the clock-to-setup requirement, the data stored will
   be invalid.
o If one port attempts to read from the same memory cell that the
   other is simultaneously writing to, violating the clock setup
   requirement, the write will be successful but the data read will
   be invalid.




End of Record #1655 - Last Modified: 06/18/99 14:43

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