cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
9,773 Views
Registered: ‎06-10-2015

Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

Hi,

 

I am using one of the customer designs which has a memory model in it. I have specified the ram_style= block in the memory model, but still vivado does not infer it as ram and gives error:

 

Size of variable XYZ too large to handle.

 

The variable size is 512*8192 .

(* ram_style = "block" *) reg [WIDTH-1:0]           data [HEIGHT-1:0];

 

Any idea what else I can try to make Vivado infer it as RAM. Unfortunately I cannot share the customer design.

 

Rgds

Sapan

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
16,660 Views
Registered: ‎07-21-2014

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

Hi,

 

Did you compare the coding structure with the given templates in Vivado? Refer below discussion:

http://forums.xilinx.com/t5/Synthesis/BRAM-instead-of-Distributed-RAM/m-p/641958#M15089

 

Thanks,
Anusheel
-----------------------------------------------------------------------------------------------
Search for documents/answer records related to your device and tool before posting query on forums.
Search related forums and make sure your query is not repeated.

Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
-----------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
9 Replies
Highlighted
Moderator
Moderator
16,661 Views
Registered: ‎07-21-2014

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

Hi,

 

Did you compare the coding structure with the given templates in Vivado? Refer below discussion:

http://forums.xilinx.com/t5/Synthesis/BRAM-instead-of-Distributed-RAM/m-p/641958#M15089

 

Thanks,
Anusheel
-----------------------------------------------------------------------------------------------
Search for documents/answer records related to your device and tool before posting query on forums.
Search related forums and make sure your query is not repeated.

Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
-----------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
9,764 Views
Registered: ‎05-07-2015

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

hi

Are you using an asynchrnouis reset in your design?
Even if you define ram_style attribute, BRAM can be inferred only if you use synchrnous resets.

Thanks
Bharath
--------------------------------------------------​--------------------------------------------
Please mark the Answer as "Accept as solution" if information provided addresses your query/concern.
Give Kudos to a post which you think is helpful.
--------------------------------------------------​-------------------------------------------
0 Kudos
Highlighted
Observer
Observer
9,763 Views
Registered: ‎06-10-2015

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

@anusheel Do you mean even if I mention ram_style attribute, it has to follow the templates else it will not work?

 

The same RTl when run on some other SYnthesis tools work fine for me

 

Rgds

Sapan

0 Kudos
Highlighted
Moderator
Moderator
9,758 Views
Registered: ‎01-16-2013

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

Hello @sapan533,

 

Currently there is limitation of 1000000 on variable size in vivado.

 

Check the following thread:

http://forums.xilinx.com/t5/Synthesis/ERROR-Synth-8-4556-size-of-variable-is-too-large-to-handle/m-p/555791

 

--Syed

 

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

 

 

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos
Highlighted
Moderator
Moderator
9,751 Views
Registered: ‎07-21-2014

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

@sapan533

 

Yes, code should follow given guidelines to infer BRAM.

 

Thanks,
Anusheel
-----------------------------------------------------------------------------------------------
Search for documents/answer records related to your device and tool before posting query on forums.
Search related forums and make sure your query is not repeated.

Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
-----------------------------------------------------------------------------------------------

0 Kudos
Highlighted
Explorer
Explorer
9,736 Views
Registered: ‎04-28-2015

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

Hi @sapan533,


Can you try synthesizing block RAM for a smaller size?
This will let you know if the pre-requisites for BRAM are followed properly.

Thanks,
Tushar.

0 Kudos
Highlighted
Observer
Observer
9,729 Views
Registered: ‎06-10-2015

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

@tusharvi Trying with smaller sizes, synthesis is completed but it still doesnt infer it as ram.

 

INFO: [Synth 8-5546] ROM "data_reg[0]" won't be mapped to RAM because it is too sparse

 

Any idea?

 

Rgds

Sapan

0 Kudos
Highlighted
Moderator
Moderator
9,618 Views
Registered: ‎01-16-2013

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution
Hi,

Attribute is meant to guide the tools but it only affect the BRAM inference only the proper coding style is followed.

As pointed by Anusheel and Bharath Can you re-check the RTL?

Also is it possible to share your RAM template/code, so that we can check?

Thanks,
Yash
0 Kudos
Highlighted
Observer
Observer
9,597 Views
Registered: ‎06-10-2015

Re: Vivado 2015.1 not inferring RAM with attribute ram_style set

Jump to solution

Hi All,

 

Thanks for all your help. I had to modify the ram model as per Vivado template and then it worked. Basically introduce an additional signal to read data. Earlier I was reading from same variable.

 

Now I have 

reg [WIDTH-1:0] ram [HEIGHT-1:0];
reg [WIDTH-1:0] ram_data; // for the Vivado template

 

Rgds

Sapan

0 Kudos