With every generation, the count of transistor has increased unexpectedly and chips have become more intricate. This tremendous growth in intricacy and size has resulted in a corresponding growth in EDA tool data-base sizes, which includes waveform dumps, GDSII, net lists, etc.
Most EDA tools available for programmers are compute intensive and memory intensive. Company finds the idea great to use Python as a mainstream language to develop EDA tools. Look what experience they shared in this post.
EDA Tool is used to handle input data sets that possessed signal level activity and bring results in seconds. It is used to examine this signal level activity and determine patterns and sort them accordingly.
Python language is extremely productive and a great tool for development that lets developers to add functionality to the product. It also makes developers eligible to make attempts and try different approaches and pick the one that works best for them.
The language is not a high-performing one and developers have to pay for the performance. It’s like a penalty they have to pay for the productivity gains an extreme-level language like Python brings.
Premature optimization is the root cause of all issues. This is why tool developers are specialized and targeting functional correctness and not the performance. Initial performance optimization was performed with feedback that is received from a performance profiler. How he does the job? Profiler determined the area where the program was spending more execution time.
A Profiler Helps In Identifying Performance Issues
- Bad data-structures choices
- Better algorithm options
- Sub-optimally written code
- Compute vs Memory tradeoffs
In short, Python language has rich high-level programming features and “C Extension” capabilities that give potential to developers to acquire performance goals by using techniques, such as “Code or memory profiling, Parallelizing the core engine and implementing performance critical, small kernels, in C”.