And God said...let there be

And there was a new EDA tool. Rife with all the pleasures of architecting it and the pains of seeing it dissected by infidels!!

But verily I say unto thee, I will show you the path of     O(log n) complexity upon which you will walk with <10% inaccuracy!!

A large part of EDA tool designing is being able to think ahead of the designers - huddling together and brainstorming on how a designer may be working on his design and the ways that fundamental assumptions in which an algorithm is designed could be broken. But of course, there is always the disconnect between working day in and day out on C++ and thinking in terms of Verilog. Naturally, there are trip ups .. but the question is - how many do you have? How well have you anticipated the breakages?

Which brings us to another aspect of programming - the assert construct. Similar to the discussion of whether Balrogs have wings , there is nothing in the debate of the assert that has not been beaten to death. I believe that assert is invaluable as a developmental/prototyping tool in the hands of a developer. However, as development progresses from code monkeying to testing , the asserts in the code should be phased out when they are hit. Instead, they should be replaced with comments and handling of code for exceptional circumstances.

If you dont handle inout ports, then you dont. While writing code, you could have asserted to check that you only get input ports. Suppose, you manage to write a testcase that gets you an inout gate. Wham! You assert out of the program, however now it is the responsibility of the developer to handle such situations cleanly and gracefully (since it is proven that such situations may occur).

Therefore an effort has to be made to test the code to remove assertions. I personally believe that the greatest embarassment is when a piece of software asserts at in a customers face - which means he did something you did’nt anticipate…or more dangerously.. did’nt reproduce in your testing.

And so the endless circle goes on…

On the topic of circles, I never knew that GDSII had support for curvilinear shapes. What the hell do you do with curvilinear shapes in chips? And somebody please explain why a data format that is 10 times better than GDSII has no adopters. Tags: eda software


And God said...let there be


September 21, 2006

Find me on Twitter @sandeepssrin

Did i make any mistake? Please consider sending a pull request.