Overview of EDA Tools and Design Concepts:Design—The Art of Trial and Error

Design—The Art of Trial and Error

Andrea:

That's a good question.

Suppose we want to build a doghouse. We could build it from existing things like pieces of lumber, roof tiles, screws, and paint. We plan what it will look like and how big it should be. We decide what materials to use, how much to buy, and what it will cost. The plan shows how all the pieces fit together. What are the steps needed to build it, and in what order do they have to be done? The step-by-step procedure of how to build it is part of the plan.

This planning process is called designing and the resultant plan is called the design.

An architect starts with client requirements and makes a plan or trial house design. The plan may use existing parts or materials used as in prior designs or in a new way. If necessary, the architect creates a new part (a new shape of window, for instance). There are many types of styles and materials from which to compare and choose. The architect must make trade-offs among cost, function, and appearance.

Similarly, electronic design includes defining the product requirements, creating trial designs and exploring design trade-offs. The system engineer must trade off issues such as cost versus performance, or hardware versus software.

The designer breaks (partitions) the trial product design into smaller chunks. These may be new or re-used design blocks, either in hardware or software. Blocks may be separate functions or physical blocks (e.g., a voice recognition block or a microprocessor).

Designs are usually incremental advances to something that already exists. Modifying an existing design to make it smaller, run faster, or use a new interface are examples.

Design engineers usually don't get it right the first time. They make a trial design, then verify (test or measure) it to see if it works. If not, they fix the error, and try again.

The more complex (or new) the design is, the more trials are needed to get it right. Each trial and error sequence is a design iteration. The design team must create both the design and the tests, so errors are likely in both.

Nora:

Okay, so you redesign repeatedly until you get it right?

Andrea:

Yes, and we learn more about the problem on each pass. The description of the customer problem or goal may be ambiguous, fuzzy, or incomplete. Getting the customer's requirements (the specification) correct and complete is one of the hardest design problems.

A customer often has only a vague idea of what he or she wants or needs, as strange as that seems. "Right" means complete, unambiguous, accurate, and possible to do. That's true when designing a house, an EDA tool, an IC, or an airplane. It applies to every level of design.

There are three main causes of design iterations: specification errors, design errors, and test errors. Better EDA tools help us get it right faster.

Nora:

Okay, but how do you start a design?

Did You Know?

Verification is the process of confirming that the design does what the designer thought it should do, i.e., the design works as the designer intended. Validation, on the other hand, is the process of confirming that the design does what thecustomer intended. These two terms are often confused, or used interchangeably, or used together as a pair, i.e., verification and validation.

Design Styles

Andrea:

The designer may start from the highest level of abstraction (least amount of detail). Then the team repeatedly refines the design to lower levels of detail. This approach is called top-down design. Sometimes an engineer will keep the design very abstract and explore different architectures (e.g., gate array, standard cell, or software).

In a second approach, (bottom-up design), the design team starts with well-known low-level blocks and builds upward. Sometimes the team is constrained to use only existing parts for reasons such as cost or schedule.

A third style (middle-out design) starts with some known portion in the middle. The designers progressively describe the design up (in more abstract terms). At the same time, the individual blocks are refined down (in more detailed terms).

At other times, the design engineer will start a design based on known physical blocks or constraints (block-based design).

None of these approaches is fixed. There are variations of these styles, and some designs use a mixture of styles.

Nora:

So how do you know which style to use?

Andrea:

Experience, mostly, the constraints of the problem, and what the EDA tools will allow us to do.

Nora:

But how do you decide who on the team does what?

Design Partitioning

Andrea:

That's part of the design partitioning task. We break up any design job into partitions (blocks or sections). We may partition it to allow parallel work on different sections. Alternatively, we may partition it by function into software and hardware portions. Or we may partition by which parts can be re-used and which parts need to be designed.

In IC design, we also partition the design work by people according to their skills. In the IC front-end, we may partition by chip architects, logic designers, analog designers, and programmers. The back-end design phases include layout designers, verification engineers, and test engineers.

Comments

Popular posts from this blog

Design using Standard Description Languages:The simulation model in VHDL

EDA Tutorial:Place and Route in a Standard Cell Design Style

Overview of EDA Tools and Design Concepts:Major Classes of EDA Tools.