Reduce, Reuse, Recycle

What can system design learn from environmentalism?


By Neil Hand
I’m not talking about how to make more environmentally friendly products, because let’s face it, the gadgets we love are monsters when it comes to environmental impact. I’m referring to the ideals of environmentalism and how those can be applied in a system-design context.

Reduce, Reuse, Recycle
This is the mantra you see everywhere and it maps very well into the system and SoC space. Lets look at each aspect in turn and see how taking these ideals to heart can improve productivity and reduce design cost more than any tool-related change in the design process.

Reduce unnecessary complexity
I talked about complexity in my last blog post, and how the move to intelligent subsystems will significantly simplify the task of systems design by effectively compartmentalizing and redistributing complexity.

Going even further, though, system designers need to step back, look at the key differentiating capabilities that the product needs, and focus only on those. Just because you have the technology to create a product that can do 20 different things, doesn’t mean you should.

If only a small subset of capabilities is needed to drive core business, focusing on those will simplify overall system design, while at the same time increasing the overall value the product delivers.

Re-use effectively
Everyone talks about reuse, but how many are doing this effectively today? The third-party IP ecosystem has driven a significant increase in design reuse and delivered productivity gains by freeing designers from the chore of implementing standard interfaces.

But what about the rest of the design—that unique hardware and software value developed within the system design team? Very few are able to make good reuse of this value due to an inability to manage the evolution of that design IP and effectively communicate its existence to the wider design community within the company.

System designers need to think about everything they do in the IP and reuse context, not just about the latest standard interfaces.

Recycle old ideas
As an old song title once stated “Everything old is new again.” There are many system design ideas that are put aside either due to a lack of technology to effectively implement the idea, or an incompatibility with design practices in place at the time.

Design teams need a way to capture and then effectively evaluate these previously discarded ideas as new projects evolve. Unfortunately for most teams, old ideas leave with the people who developed them or are simply forgotten.

Capturing these “design patterns” is now common practice in the software world, and needs to be embraced by hardware and systems designers. If the trend toward subsystems and effective compartmentalization continues, the scope for doing more creative problem solving in a well-defined space is going to explode. For example, introducing asynchronous logic in the middle of a synthesized SoC would wreak havoc on the design process, but some handcrafted and well-verified logic embedded within a standard subsystem would be transparent to the larger design.

Better for systems designers, not so much for the environment…
Embracing the ideas of reduce, reuse and recycle as a core part of systems design will help reduce design costs, accelerate time to market, and create more compelling products. This is great for us lovers of gadgets and the infrastructure to support them, but it’s unlikely to endear us to the cause whose ideals we have embraced.