editor's blog
Subscribe Now

A New Verb for Hardware Engineers

Ever since malloc() (and it’s other-language counterparts), software engineers have had an extra verb that is foreign to hardware engineers: “destroy.”

Both software and hardware engineers are comfortable with creating things. Software programs create objects and abstract entities; hardware engineers create hardware using software-like notations in languages like Verilog. But that’s where the similarity ends. Software engineers eventually destroy that which they create (or their environment takes care of it for them… or else they get a memory leak). Hardware engineers do not destroy anything (unless intentionally blowing a metal fuse or rupturing an oxide layer as a part of an irreversible non-volatile memory-cell programming operation).

So “destroy” is not in the hardware engineer’s vocabulary. (Except in those dark recesses perambulated only on those long weekends of work when you just can’t solve that one problem…)

This is mostly not a problem, since software and hardware engineers inhabit different worlds with different rules and different expectations. But there is a place where they come together, creating some confusion for the hardware engineer: interactive debugging during verification.

SystemVerilog consists of much more than some synthesizable set of constructs. It is rife with classes from which arise objects, and objects can come and go. This is obvious to a software engineer, but for a hardware engineer in the middle of an interactive debug session, it can be the height of frustration: “I know I saw it, it was RIGHT THERE! And now it’s gone! What the…”

This was pointed out by Cadence when we were discussing the recent upgrades to their Incisive platform. The verification engineers that set up the testbenches are generally conversant in the concepts of both hardware and software, but the designer doing debug may get tripped up by this. Their point being, well, that hardware engineers need to remember that the testbench environment isn’t static in the way that the actual design is: they must incorporate “destroy” into their vocabulary.

Leave a Reply

featured blogs
Mar 27, 2020
[From the last episode: We saw how pointers are an important kind of variable, representing data whose location we can'€™t predict in advance.] We saw last time that pointers are used to store the addresses of data stored in memory space that'€™s allocated while the progr...
Mar 27, 2020
Have you ever paused to consider how temptingly tasty electronic circuits would look if their components and copper tracks were mounted on a glass substrate?...
Mar 27, 2020
Solar Power While the cost and benefits of solar power can and have been debated, there'€™s one point that cannot be debated:  the solar energy sector continues to grow.   The solar energy sector has grown 68% over the last decade, and the cost of solar infrastruc...
Mar 26, 2020
Late last week you may have seen the open letter  from our CEO, Tony Hemmelgarn, laying out the steps that Siemens Digital Industries Software is taking to support our customers during the COVID-19 global crisis. All of us are getting use to the “new normal” ...

Featured Video

LE Audio Over Bluetooth with DesignWare Bluetooth IP

Sponsored by Synopsys

The video shows the new LE Audio using Synopsys® DesignWare® Bluetooth 5.2 PHY IP and Link Layer IP with isochronous channels, and ARC® Data Fusion IP Subsystem with ARC EM9D Processor, running the LC3 codec supporting LE Audio.

Click here for more information about Bluetooth, Thread, Zigbee IP Solutions