Inferring dual port RAMs with different bus widths.

Hello folks.

I have implemented the entity bellow by instantciating a dual ported block RAM with different bus widths (RAMB16_S18_S36 - I am developing for Virtex II or Spartan 3). Whereas it is relatively simple to do it by instantiacing the component from Xilinx library, I wonder if there is a way to code the module so that Xst infers the block RAM. I tried in one or two ways but it used logic in slices instead of BRAM and it required a lot of logic for a 1kib RAM. Could somebody give a hint on this? I looked at Xilinx documentation and couldn't find an example for this particular problem.

entity gaintab is Port ( -- ports de acesso do processador i_ProcAddr : in std_logic_vector(9 downto 0); i_ProcDataIn : in std_logic_vector(15 downto 0); i_ProcWr : in std_logic; i_ProcEn : in std_logic; i_ProcClk : in std_logic; o_ProcDataOut : out std_logic_vector(15 downto 0); -- ports de acesso interno (fpga) i_FpgaAddr : in std_logic_vector(6 downto 0); i_FpgaClk : in std_logic; o_FpgaDataOut : out std_logic_vector(31 downto 0) ); end gaintab;

TIA.

Elder.

Reply to
Elder Costa
Loading thread data ...

from what I understand.. you cant infer different bus widths sorry.. Not even Synplify can

Simon

Reply to
Simon Peacock

Hello:

If you inferr a ram from a synthesis tool it always be done using slices configured as RAM, to use block RAM in a Xilinx FPGA you must generate it using Coregen and adding the .xco file to your project in ISE.

Regards

Javier Castillo snipped-for-privacy@opensocdesign.com

formatting link

Elder Costa wrote in news:31umvgF3h46qjU1 @individual.net:

by

a

one

required

Reply to
Javier Castillo

Block RAM can be inferred by synthesis tools.

Dual port ram with one read and one write port can be inferred by synthesis tools.

True dual port RAM with two read/write ports requires a device-specific instance.

-- Mike Treseler

Reply to
Mike Treseler

I've been able to make the synthesizer to infer the RAM as above but I had to create an entity similar to the above but with the same bus width in every data port and then by instanciating it twice. Somewhat tricky though.

Regards.

Elder.

Reply to
Elder Costa

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.