cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Visitor
Visitor
1,096 Views
Registered: ‎10-01-2020

System generator simulation hangs/crashes

I'm currently running Vivado 2019.1 with matlab 2019a using system generator. I have run into a situation several times now where certain combinations of precision between blocks will result in a sysgen simulation hanging at the "initializing" step,which is the last step of preparation before a simulation runs.  

I ran the simulink debugger, and the last function it executes before hanging is

S-Function.SetupRunTimeResources

No error messages from either matlab or Vivado. No error file created.  It has just apparently crashed, and the only way out is to kill matlab

It isn't officially a matlab crash, so there is no matlab crashdump file or anything.  It just hangs.

If I change the output precision (total bits and binary point) to certain other values, it starts and runs fine.  Trouble is, with no error message, it's impossible to know what is causing the problem, or what the troublesome combinations are.  All I am trying to do is compensate for filter bitgrowth 

Thanks for any help.

Scott

 

 

9 Replies
Xilinx Employee
Xilinx Employee
1,017 Views
Registered: ‎09-18-2018

Hi @scott_sysgen ,

Which blocks are using in your design ?  is it possible to share it ?

 

 

 

0 Kudos
Reply
Visitor
Visitor
966 Views
Registered: ‎10-01-2020

I am using a ROM to hold complex numbers.  The current precision is set to total bits =10, binary point = 8.  If I change the binary point or increase total number of bits, I see the problem described.  There is nothing in the ROM core that indicates a maximum bit width.  I am using a total of 128 ROMS (64 real, 64 imaginary)

0 Kudos
Reply
Observer
Observer
821 Views
Registered: ‎10-26-2017

I've also been having this issue with two different designs, it's so frustrating. One of them is extremely complex and it has been basically impossible to debug when it hangs, so I have to work extremely slowly/incrementally to make sure I'm not suddenly breaking the simulation. There is often no obvious reason why there should be an issue, so it feels completely arbitrary.

I really don't understand how people successfully use System Generator for large designs. Is everyone just tolerating these issues? Is there a debug window that I'm missing with actual feedback? Having to force quit Simulink 10 times and randomly change things to get my model to run is not a great workflow.

Teacher
Teacher
805 Views
Registered: ‎07-09-2009

I feel your pain,
I gave up on MATLAB / Simulink code a while back.

The Matlab generated HDL code is terrible,
I'm amazed the Xilinx tools manage to synthesise it at all.

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Reply
Observer
Observer
629 Views
Registered: ‎05-15-2018

@vkanchanany news on this?  How we can we troubleshoot the issue?  I'm experience the same thing with this environment:

Ubuntu 18.04.2  LTS

Vivado 2020.2

MATLAB R2020a

 

I've attached a model and diagnostic report from sysgen.  The _sysgen.log file is empty as the simulation never starts.  I see ~/.Xilinx/Sysgen/SysgenVivado/lnx64.o fill with some files but the simulation hangs on initializing.

Observer
Observer
621 Views
Registered: ‎10-26-2017

FYI everyone, I have gotten around this with some luck. By happenstance more than anything, I changed three things at once and haven't had time to experiment to know which one fixed it, but now my design runs reliably and I am coincidentally much more keen on SysGen now

  1. Switched from Redhat (Linux) to Windows 10
  2. Under Model Settings, set Solver Selection to: Variable-Step, discrete
  3. I was simulating with "Accelerator" before, switched to "Normal"

Hopefully it was #2 or #3 that fixed it, since those are easy changes to make! If someone has a chance to try any of these, let me know your results. When I have a chance I will also experiment.

0 Kudos
Reply
Observer
Observer
605 Views
Registered: ‎05-15-2018

Thanks for the reply and suggestions.  Discrete step/normal mode doesn't resolve the issue.  Maybe windows does but I'm hoping to find a solution for Linux.

0 Kudos
Reply
Xilinx Employee
Xilinx Employee
453 Views
Registered: ‎09-18-2018

 Hi @jmdewart ,

Thank you for sharing the model. We have identified the cause of this issue being the multiple ROM blocks present in the design. Once the number of ROM blocks exceeds a certain number of instances, the tool slows down.

We are checking this further and will update once a fix /workaround is found to it.

Observer
Observer
382 Views
Registered: ‎05-15-2018

Thanks for the update, looking forward to a solution.

0 Kudos
Reply