System Requirement

edited December 2012 in KLayout Support
Hello Matthias, Everyone,

I'm currently running the KLayout on Windows 7, 2.6GHz i5 processor (quad core) & 4GB RAM.
I have one specific GDSII file that is really heavy in processing & actually most of the time I can't complete a net tracing task (I even leave it overnight). All other applications are already disabled & I already ran the KLayout from a fresh system boot up.

I'm thinking of upgrading my system & focus more on increasing the RAM probably to 8GB since this is were I think my bottleneck (my utilization goes up to approx 3.8GB). But I need your input if this is the right choice or if there are other options like maybe change my OS?

Thanks in advance.

Comments

  • edited December 2012

    Hallo,

    frankly the net tracing feature is not built for extracting large nets. It uses an incremental, flat approach. That means it looks for shapes touching shapes already found on the net through the hierarchy and adds these shapes to the net. This approach is very fast for extracting small to medium size nets, but for huge nets such as power nets, this approach is slow and has large memory requirements. It can be enhanced by storing and reusing partial nets inside cells but I had no time yet to implement that enhancement.

    Currently, the memory requirements and runtimes are roughly linear with the flat number of shapes on the net. "flat" means expanded into the top cell. If for example you have a SRAM with a million memory cells you'll million times the shapes of a single cell. For example, if you have successfully extracted a net on a 100K standard cell block, you extrapolate the memory requirements and runtimes for a 200K block easily.

    If your memory goes up to 3.8G that indicates a lack of memory. 8G may be sufficient (be sure to use 64bit Windows), but given the price of DRAM you might as well use 16G if your board allows that. More cores won't help because the net tracer is not multithreaded. Linux is slightly better with respect to memory management but than't won't make a huge difference.

    You can reduce memory requirements and runtimes when you avoid boolean operations in the layer stack, if possible.

    For extracting a huge net a full scan exploiting the hierarchy in a bottom-up fashion is the better algorithm. This is the approach LVS tools use to get the full netlist in a single sweep for example. But my goal was not to provide LVS functionality but a interactive tracing feature, hence I was choosing the lightweight incremental approach.

    Best regards,

    Matthias

  • edited November -1
    Thank you very much Matthias for taking time in the explanation. I'll take note of your inputs when I upgrade the system.
Sign In or Register to comment.