It would be a house like no other. Starting with just a bare patch of ground, he could design exactly what he wanted without worrying about what was already in place. This house was, among other things, going to be a green fashion plate. He could design in all the latest tricks and use the coolest technologies.
The key was managing the power. Everything would be in zones, and a central controller, run by a computer, would regulate what went on or off where, as well as providing a fault safeguard in case anything went wrong. The master could always bring down the “grid” to ensure that no one was put in danger, automatically bringing it back up again when things were set back to rights.
Bringing all of his engineering skills to bear, he designed the system from concept to implementation. Decided what power would go where and what things would share power. Decided when to power things up and down. Figured out how to implement fault sensors for his failsafe. Gave the final result to the contractor, who ensured that all the wires ended up in the right place and that plugs were duly apportioned and labeled.
And what a work it was when done. The sleekest high-end power-stingy European appliances had been thought through and allocated their judicious share of the juice. Converter blocks were eliminated so that their respective devices could be directly hooked in, eliminating all of that wasted power when the devices were off. It was a grand symphony, conducted in grand style by the master program on the master power host.
And he powered it up.
And all hell broke loose.
As the whole thing started up, he noticed that some appliances sounded a bit wan, but then he completely forgot all about that as everything shut down, accompanied by some dramatic fireworks. It happened so quickly that he really wasn’t sure what to start repairing where. The first thing that needed repair was the ego that had drooped almost as fast as the power had. How could this have happened after all the work he had done?
Setting aside his fallen crest for a while, he started poking around through what little evidence there was. The scorch marks near some of the devices were one clue. It was only after several days of head-scratching that he noticed a common thread amongst the toasted devices and delivered himself a monumental dope-slap: he had eliminated the power blocks that steal so much power, but had simply wired things into the grid without taking into account that these were DC appliances that no longer had converters. He had burned them out in a blaze of glory.
He replaced them all (at no minor cost) and stood back to let the master host detect that all was well so that it could power everything back up.
And nothing happened.
Which meant that something else must be wrong
He had cleaned up all the fiery bits, so he was pretty sure that was ok. He spent several more days prodding and checking connectivity and whatever other things he could think of, to no avail. Then he remembered that, for a brief moment things worked, but there were some things that sounded like they weren’t running as energetically as one would expect, given the weaker than usual sound. He had noticed, but didn’t get a chance to investigate further given the ensuing pyrotechnics. So he checked one or two of those appliances out, even going so far as to check out the users manuals.
And that’s where he noticed a small detail that had escaped him in one of the appliances: it was European and was wired for 220 V. His house ran only 110 V (except, of course, for the dryer; everyone knows they need 220). Going back through the other European appliances, he realized he had more of an issue on his hands. He had to completely redo some of the wiring, tapping into the 220 that was fortunately already available. He could have just put converters at each of the plugs, but he simply couldn’t bring himself to waste the power, so rewiring took almost as long as it had taken him to figure out what the problem was.
He finished, plugged the appliances back in, and, once again, stood back to let the master power host do its magic.
And nothing happened.
He went back and checked and rechecked and re-rechecked everything over and over again, for a couple weeks. For the life of him, he could not figure out what was wrong. Everything seemed in order.
Finally he decided to go investigate the master host, his pride and joy, which contained his intricate sensing algorithms and complex powering schemes. He thought he had completely tested it, but maybe something was wrong there. He went down to the basement closet housing the box, and the problem became immediately apparent: it was powered off. It hadn’t occurred to him that by using the very power he was controlling for the computer, as soon as the power went down, so did the computer.
By this time, there was no repair possible for his ego. He felt like a complete idiot. He had made some of the stupidest mistakes, but the thing that was most annoying was how long it had taken to figure out what was wrong. The fixes had been so much faster than the diagnoses. And he made a mental note to himself that, once his bruised psyche felt back up to the task of actually inventing something new, he would develop a tool that could help debug power issues in his house.
SoC power is near the top of everyone’s list of things to pay attention to these days. The focus has primarily been on implementing power-reduction techniques, but verification has also been important. Two power formats, CPF and UPF (why have one standard when two will do?), were developed as a way to specify power intent; now a tool could tell what someone is trying to do and help build it. It could also be used to confirm that the result was consistent with the intent.
But what happens when verification fails? You’ve got to figure out where the problem is. And that’s where debug comes in. Springsoft has added a power module to its Verdi debug system to help address this. Whereas, under normal circumstances, power is there simply to support real signals, now power can be treated as if it’s a signal. You can go through the power structure, checking domains to see what’s on and off, confirming whether level shifters and isolation are in place, and use assertions just like you would with signals. It knows about the intended power structure by accepting both CPF and UPF formats.
It may not be able to debug issues with the toaster, but it will hopefully help keep your chip from heating up like a toaster.