The Embedded Bridge
In this issue: designing for version independence.
If youíre attending the Embedded Systems Conference (www.embedded.com/esc/sv/), April 1-5, 2007, in San Jose, Calif., mark your calendar now to attend the following session:
If you cannot attend the session but would like to meet during the conference, let me know. www.garystringham.com/contact.
Accommodating Product Changes
Late in the development of a new printer, a third-party print engine that interfaced with a block on the ASIC changed its interface behavior. The print engine would quit sending pulses before the block was done with its job, causing the block to hang waiting for more pulses. This behavior existed in other printer models; their associated blocks had support to detect early pulse termination. Because this new printerís block did not have that support, I had to create a firmware workaround for it.
I tried three different algorithms over a three-week period and finally settled on one, even though under rare circumstances, it had a severe performance penalty. Unfortunately, one particular customer bought several of these printers for a specific application and experienced this rare circumstance that cut print speed in half for every page. Obviously the customer was dissatisfied and threatened to return the printers and cancel the large order, which included other printer models. I spent another two weeks to come up with a fourth algorithm that avoided the penalty. We upgraded the customerís printers and they were happy.
Had this particular block had the early termination support (at a low cost of a few hundred gates), we could have accommodated this late product change with a one-hour firmware change. Instead, beyond nearly costing us a major contract, it also cost five weeks of engineering effort, thousands of warranty dollars and some damage to our reputation.
In contrast, we had an ASIC that was designed for portrait-format printers that was being investigated for use in landscape-format printers. The ASIC was based off previous ASICs that did support landscape-format printers. The engineers did not remove the landscape-format support even though the ASIC was not targeted for landscape-format printers. ASICs for landscape-format printers require more onboard memory in several places in the pipeline to accommodate longer scan lines. Reducing the memory requirement would have reduced their gate count, but they decided not to do that when they made this ASIC.
After verifying that landscape-format support was still in the ASIC, we used them in landscape-format printers. This saved us millions of dollars and several months from having to develop and produce a new ASIC.
Ideally, every ASIC will support any product, whether old or new, high-end or low-end. Since that is not realistic, choices have to be made. Old functionality can be removed once you are sure that it will never be needed again, even for mid-life kicker products. Functionality with large gate-count requirements that is only needed for specific family lines of products could be removed. But where possible, leave as much functionality in an ASIC, even if not all of it is needed for the targeted products.
If you have comments, pro or con, about this monthís topic, please send them to email@example.com. For training and consulting on this and many other bridge-building topics, visit www.garystringham.com/contact.
Next month: designing for contingencies.
Until the next shipment,
About The Embedded Bridge
The Embedded Bridge is a monthly newsletter containing best practices on improving the interface between hardware and firmware. Comments on the topic or suggestions for future topics are welcomed. Send them to firstname.lastname@example.org. The newsletter is a free service of Gary Stringham & Associates, LLC, www.garystringham.com, a firm providing consulting and training services to embedded systems engineers.
Feel free to pass this newsletter along to your colleagues. To use this newsletter for commercial purposes, write to email@example.com for information.
Gary Stringham & Associates, LLC
PO Box 2443
Eagle, ID 83616
Copyright © 2007 by Gary Stringham & Associates, LLC. All Rights Reserved.