UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Teacher muzaffer
Teacher
12,587 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
Teacher muzaffer
Teacher
21,041 Views
Registered: ‎03-31-2012

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

Jump to solution
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.
9 Replies
Xilinx Employee
Xilinx Employee
12,534 Views
Registered: ‎10-24-2013

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

Jump to solution
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
Xilinx Employee
Xilinx Employee
12,528 Views
Registered: ‎07-01-2010

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

Jump to solution
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
Teacher muzaffer
Teacher
12,519 Views
Registered: ‎03-31-2012

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

Jump to solution

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
Xilinx Employee
Xilinx Employee
12,494 Views
Registered: ‎07-01-2010

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

Jump to solution
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
Teacher muzaffer
Teacher
12,489 Views
Registered: ‎03-31-2012

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

Jump to solution

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
Xilinx Employee
Xilinx Employee
12,483 Views
Registered: ‎07-01-2010

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

Jump to solution

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
Teacher muzaffer
Teacher
21,042 Views
Registered: ‎03-31-2012

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

Jump to solution
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.
Visitor jpleiker
Visitor
11,420 Views
Registered: ‎05-26-2015

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

Jump to solution

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
Teacher muzaffer
Teacher
11,413 Views
Registered: ‎03-31-2012

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

Jump to solution
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