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!

Reply

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

Accepted Solution Solved
Teacher
Posts: 5,143
Registered: ‎03-31-2012
Accepted Solution

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

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.

Accepted Solutions
Teacher
Posts: 5,143
Registered: ‎03-31-2012

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

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


All Replies
Moderator
Posts: 3,048
Registered: ‎10-24-2013

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

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.
Xilinx Employee
Posts: 1,128
Registered: ‎07-01-2010

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

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.
----------------------------------------------------------------------------------------
Teacher
Posts: 5,143
Registered: ‎03-31-2012

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

[ Edited ]

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.
Xilinx Employee
Posts: 1,128
Registered: ‎07-01-2010

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

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.
----------------------------------------------------------------------------------------
Teacher
Posts: 5,143
Registered: ‎03-31-2012

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

[ Edited ]

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.
Xilinx Employee
Posts: 1,128
Registered: ‎07-01-2010

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

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.
----------------------------------------------------------------------------------------
Teacher
Posts: 5,143
Registered: ‎03-31-2012

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

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
Posts: 6
Registered: ‎05-26-2015

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

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! 

Teacher
Posts: 5,143
Registered: ‎03-31-2012

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

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.