HOME    COMMUNITY    BLOGS & FORUMS    Optimization Craft
Optimization Craft

• ## Subscribe

Brent Gregory

I'll write about the crafting of optimization software for integrated circuit design. There is a unique joy and struggle in building something that must aim at perfection yet never achieve it. My secret goal is to share the excitement so other programmers decide to join me.
• ## The Author

Brent Gregory

I've been writing software for fun since 1975, and at Synopsys since 1987. When I'm not coding, I manage an amazing team of software engineers who invent algorithms to solve the hardest problems in computer science. I mainly work on the tools that read a user's description of an integrated circuit, and compile it into the billions of polygons that implement the function in silicon.

## I Love a Good Experiment

Posted by Brent Gregory on November 21st, 2013

43% of assumptions are incorrect.
87% of perceptions are distorted by cognitive bias.
52% of statistics are made up.

With so much wrong-headed confusion, how do we tell which way to go?

Experiments.  I love experiments.

Pinewood Derby is a competition where kids build 7-inch (18 cm) cars and race them down an inclined track.  Theories abound:  Weight concentrated in the front will pull the car faster.  Balance the weight at the center for better stability.  Put the weight in the rear for more potential energy.  After endless arguments, I built a car with moveable weight and let everyone see for themselves which placement gives the fastest car.  (The experiment showed that the center of gravity should be about 1-inch (2 cm) ahead of the rear axle.)

Good experiments cut through the intellectual fog created by wrong assumptions and biased perceptions to show what really works.  Nowhere is this process more clear than Electronic Design Automation (EDA), the Grand Central Station of NP-Complete problems.  The problems are NP-Complete and very large, so optimality is often out of reach.  But, some algorithms get closer to optimum than others.  Picking the best triggers heated debate.

All key EDA decisions are settled by experiment.  Which vendor has the best tool?  Run a benchmark.  Which settings should we give to the EDA tool?  Try them all, and pick the best.  Which algorithm should we use inside the tool?  Run many experiments to see what works best.

If you’re a programmer like me, then all this focus on experiments is a win.  I have to write good software.  But, I don’t have to spend much energy convincing other people that it is good.  The experiments do that for me.

What is your seniority?  How well-known are you?  How convincing is your rhetoric?  It doesn’t matter if you work in area where success is governed by experiments.  The only thing that matters is:  How good is your software?  I love working in that kind of environment.  Interested?

Share and Enjoy:

### 2 Responses to “I Love a Good Experiment”

1. Suraj Sinha says:

I am highly interested as I see all kinds of problems in silicon completion cycle using all tools (Synopsys, Cadence, IBM, Mentor). One fundamental question I always asked on what learning our EDA tools tuned themselves towards to make our design completion/tapeout faster/easier. I see very little improvement (fundamental sense). Why don’t EDA developers capture the learning of experienced designers to improvise/improve their tools? They do it incrementally, not fundamentally. Are they doing right experiments/runs with realistic designs or, simulate with right models.

-Suraj
CA 94301

2. Brent Gregory says:

EDA Developers use every trick they can imagine to get a leg up on their competitors. This includes working closely with experienced designers to capture and automate the techniques they use to get good circuits. There is more work to do here, though, because an experienced EDA tool user will often get a superior result to a novice.

Using realistic designs to tune EDA tools is critical and challenging. Designers are reluctant to release their latest designs to outsiders, but they understand the advantages of having the tools tuned on their designs. The key is to build trust between the companies, and have rigorous procedures to protect sensitive information.

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>