130 likes | 146 Views
Learn how constraints can drive better design outcomes by optimizing solutions and fostering attention to detail within set limitations.
E N D
Letting Constraints Work For You Proportional Design
Agenda – Proportional Design • Conceptual background • Types of constraints • Examples • The proportional design mindset • Summary
Conceptual Background • Three parts to solving a problem: • Need, solution set, constraints • All parts have a role to play in the solution • Ignoring any of them will lead to problems
Conceptual Background (cont.) • Example • Need: means of conveyance to work • Solution set: Skateboard, bicycle, bus, jogging shoes, mid-size sedan, luxury car, helicopter • Constraints: Distance (6 miles), $, not on bus route, $, not in very good shape, $ • Solution: 1992 Honda Accord (120 kmiles, 4 k$) • The constraints guide selection of the solution from the solution set • The particular solution is not necessarily - • The cheapest (roller skates) • The most desired (Lexus LS400) • What is perceived as best for society (bus) • But … the best overall fit to the needs
Conceptual Background (cont.) • Definitions • Constraint: the state of being checked, restricted, or compelled to avoid or perform some action (AH) • Proportional: corresponding in some degree or intensity (AH) • Proportional design is design that results in a product “sized” appropriately to the needs and restrictions of the specification • The concept of proportional design: • Accepts the reality of constraints • Attempts to optimize the solution given the constraints • Accepts that the constraints provide benefits (more later) • More efficient designs • More thorough designs • More correct designs • Caveat – All other things being equal
Types of Constraints • External (mass, power, cost, quality) • Internal • Derived (packaging, architecture, component availability, maximum clock speed) • Self-imposed • Design rules/guidelines (free space, clock use, logic structure, HDL language) • Documentation style (pre-design, post design) • Component acceptability (maturity of part, limited use of various features
Examples (1) • Problem: provide decoding logic for memory map • 0-3FFF = SRAM; 4000-4FFF = Peripheral; E000-FFFF = PROM • Constraint: use minimum amount of logic • But what about … • Unused addresses, future expansion, etc. • Doesn’t matter – given the constraints
Examples (2) • Problem: provide all combinational / sequential logic for the RADARSAT ACP • Constraint: Only low density high speed logic available (16X8 PALs, MSI/SSI logic) • What was forced by the constraint? • Careful mapping of peripherals into available address space • Careful partitioning between: • Programmable logic and MSI/SSI • MSI/SSI functionality • Efficient data bus partitioning (tri-state enable issues) • Special attention to component delays at the gate level
The Proportional Design Mindset • Constraints inevitably foster attention to detail (creativity “inside the box”) • With respect to methodology • With respect to level of planning • With respect to implementation • Attention to detail is of inherent value because it produces carefully structured, well-thought out designs • Improved up-front correctness • Decreased design post-processing time (simulation, verification, validation, lab time) • Efficient designs that meet the stated requirements • Increased reliability • Therefore, constraints are welcomed, whether externally imposed or self-imposed
The Proportional Design Mindset (cont.) • Examples of self-imposed constraint • Ignoring achievable flexibility (when not necessary) • Removing non-specified capability • Avoiding gratuitous cleverness (especially with abstract design techniques) • Rejecting brute force solutions without analysis
The Proportional Design Mindset (cont.) • Characteristics of the right mind set • Planning before starting • Reviewing before finalizing • Simplifying ruthlessly • Making the design do only what it must • Viewing resources as precious commodities to be used only to the extent needed • Understanding the implication of the design’s level of abstraction • Being satisfied with the result
The Proportional Design Mindset (cont.) • Why aren’t self-imposed constraints more common? • They aren’t absolutely essential because we have: • Lots of logic space [FPGAs, ASICs] • Lots of memory space [DOS file systems, complicated operating systems] • Lots of bandwidth [fast data busses, general purpose communications protocols] • They don’t match the current paradigm • Flexibility is all-important [re-use, re-configure, adapt] • Specifications are malleable late in the game • Software changes, why can’t hardware? • We can catch problems in simulation and reprogram the part • They aren’t fun • We don’t train people to value constraints and work within them • This is unfortunate because constraints can make our job easier without degrading the end product
Summary • The proportional design mindset is important because it: • Focuses on fulfilling needs, not wants [specification orientation] • Deepens understanding of the final design [ownership oriented] • Avoids unnecessary effort [efficiency oriented] • Fosters simplicity that aids verification and validation [quality oriented]