cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
muzaffer
Teacher
Teacher
16,281 Views
Registered: ‎03-31-2012

ERROR: [Synth 8-4556] size of variable is too large to handle ...

Jump to solution

Hi,

I have  64x2048 array of 32 bit numbers. I declare an array of this size and initialize it with an array initializer. I expect this to map to block ram (I have the ram_style = block attribute on the array). This simulates with VCS and works properly. I also have another design where a very similar array is mapped to block ram through synthesis. It seems that this is only a size issue and potentially it's an arbitrary number. Is there a way to increase the size synthesis expects to be able to handle?

 

The actual error is: 

 

ERROR: [Synth 8-4556] size of variable 'mat_lin' is too large to handle; the size of the variable is 4194304, the limit is 1000000

- 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.
0 Kudos
1 Solution

Accepted Solutions
muzaffer
Teacher
Teacher
24,735 Views
Registered: ‎03-31-2012
It seems the tcl param already exists for this purpose:

set_param synth.elaboration.rodinMoreOptions "rt::set_parameter var_size_limit 4194304"
- 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.

View solution in original post

11 Replies
vijayak
Xilinx Employee
Xilinx Employee
16,228 Views
Registered: ‎10-24-2013
Hi,
I didn't see this error before. Which version if Vivado are you using?
Can you please share the testcase?
Thanks,Vijay
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
0 Kudos
achutha
Xilinx Employee
Xilinx Employee
16,222 Views
Registered: ‎07-01-2010
Is "mat_lin" an array declaration or signal in your code ?

Do you have any dynamic access on "mat_lin" ?

I don't see an option to change the limit currently, need to check limit based on the variable used in your case.

Share us the design so that we can clarify further.

Regards,
Achutha
---------------------------------------------------------------------------------------------
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.
----------------------------------------------------------------------------------------
0 Kudos
muzaffer
Teacher
Teacher
16,213 Views
Registered: ‎03-31-2012

I am using 2014.4 and there is nothing interesting in the array. Just a straight static array which needs to be mapped to some block rams:

 

reg[63:0] RAM [2047:0][31:0];

 

One can split it into smaller pieces but it's a hassle and the limit is reached by using a small percentage of block rams in some devices. Also this array is initialized and the initializer will need to be regenerated by an updated script if the array is split. The limit is simply too low I think.

- 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.
0 Kudos
achutha
Xilinx Employee
Xilinx Employee
16,188 Views
Registered: ‎07-01-2010
The limit seen in the error looks like the soft limit.

A CR#841660 is filed to address this.

I will update you on the out come of the CR.

Regards,
Achutha
---------------------------------------------------------------------------------------------
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.
----------------------------------------------------------------------------------------
0 Kudos
muzaffer
Teacher
Teacher
16,183 Views
Registered: ‎03-31-2012

It seems both synplify & xst can manage this size array without any problems so a CR was definitely needed. Thanks to Puli. I wonder what the new limit is going to be.

- 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.
0 Kudos
achutha
Xilinx Employee
Xilinx Employee
16,177 Views
Registered: ‎07-01-2010

The limit was set based on some limitation earlier. We may have to wait for the update on the CR to get the new limit or a solution.

 

I see two options,

1. Fix the limit  and provide a TCL command to change the limit  as this is a soft limit.

2. Increase the memory limit.

 

 

Regards,

Achutha

---------------------------------------------------------------------------------------------
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.
----------------------------------------------------------------------------------------
0 Kudos
muzaffer
Teacher
Teacher
24,736 Views
Registered: ‎03-31-2012
It seems the tcl param already exists for this purpose:

set_param synth.elaboration.rodinMoreOptions "rt::set_parameter var_size_limit 4194304"
- 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.

View solution in original post

jpleiker
Visitor
Visitor
15,114 Views
Registered: ‎05-26-2015

Can you explain where this TCL parameter is set at? Was your 'set_param synth.elaboration.rodinMoreOptions "rt::set_parameter var_size_limit 4194304" ' command entered in a particular file?

 

This appears to be the solution to increasing the soft limit, I was hoping you could provide some guidance on how to implement it.

 

Thanks! 

0 Kudos
muzaffer
Teacher
Teacher
15,107 Views
Registered: ‎03-31-2012
You can just type it into the tcl console in Vivado or add it to your init.tcl
- 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.
0 Kudos
wang68566
Visitor
Visitor
3,357 Views
Registered: ‎08-30-2018

I had the same problem, Running synth_design with no error after executing this command on the TCL console.

0 Kudos
536 Views
Registered: ‎03-11-2021

This command fixed the problem. Thank you .

0 Kudos