Answers Database


SIMPRIMS: Why do the models for the X_RAMD16 have only one output port?


Record #3050

Product Family: Software

Product Line: Merged Core

Product Part: simprims

Problem Title:
SIMPRIMS: Why do the models for the X_RAMD16 have only one output port?


Problem Description:
Urgency: Standard

General description:
A dual port RAM has two output ports, SPO (single port out) and DPO
(dual port out). Why do the Verilog and VHDL SIMPRIM models for the
Dual Port RAM primitive (X_RAMD16) have only one output port?

For example, in the Verilog SIMPRIM library, the
X_RAMD16 port declaration shows only one output called "OUT":

   module X_RAMD16 (OUT, IN, CLK, WE, WADR0, WADR1, WADR2,
   WADR3, RADR0, RADR1, RADR2, RADR3);



Solution 1:

The X_RAMD16 in a post-Ngdbuild, post-Map, or post-Par netlist is
only part of the model for a RAM16x1D Unified Library component.

The dual output RAM16X1D component is actually modeled using
a combination of an X_RAMD16 and and an X_RAMS16 SIMPRIM
(single port Synchronous RAM) in the simulation netlist.

The main reason behind this is because the Xilinx Alliance Tools
require that all SIMPRIM (simulation primitive models) have only ONE
output pin. In keeping with this rule, the X_RAMD simprim has only
a DPO (dual port output) pin. (Note, however, that it still has both read
and write address ports.)

To achieve the full function of the RAM16X1D library element, the
X_RAMD simprim is wired in parallel with an X_RAMS (single port sync
RAM) simprim. The X_RAMS simprim is used to generate the SPO
output of the RAM16X1D, using the write address as its address input.




End of Record #3050 - Last Modified: 06/29/99 14:32

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