feature article
Subscribe Now

Fight! Fight! Please?

Trying to Start a War Between SystemC and SystemVerilog

Everyone loves a good fight. Peace? Harmony? Teach the world to sing? Bah! That’s hippie talk! There’s no excitement (or money) in that! Drama, now that’s what we want! (Some of us even want our own drama, but that’s a separate topic.)

OK, so when it comes to tech, perhaps the drama is less, well, compelling. Yes, we can snicker and leer self-righteously, but when we hold our grandkids in the thrall of stories about how things used to be back when we used wires, I’m not sure we’ll keep their attention with rollicking tales of the wars between CPF and UPF, or of legendary rivalries like AMD vs. Intel or Altera vs. Xilinx. So at this point it’s probably fair to start ratcheting back expectations a little; I’ll ask that your pulses diminish ever so slightly, that you ease your bottoms back away from the edge of your seats, where I know they’re positioned with great anticipation.

Oh, and did I mention? Drama turns out to be less… well… dramatic when it turns out that perhaps there’s not as much drama there as expected. As turns out to be the case for our tale today. A tale that turns on initial misplaced expectations, a rival in the ascendancy, and then peace and harmony for all. OK now I wanna puke. You’ve been warned.

Our tale is one of two languages, and, listening to snippets of snarky hallway conversations, they would at first blush appear to be vicious rivals. One is SystemC, an early pretender to the “System” crown. The other is SystemVerilog, the big brash respondent whom you can practically hear booming in a loud cocky voice, “Now THIS is ‘ow it’s REALLY done!”

I must confess to have been somewhat skeptical of SystemC’s intentions early on. It sure seemed to want to be a design language. Yes, perhaps with the potential for a higher level of abstraction, and yet… I mean, what was it? Essentially it seemed to be a class library that allowed you to instantiate hardware using C++.

OK, show of hands… how many of you C programmers really understand C++ well? Hell, how many of you C++ programmers do? Oh, wait, most of you reading this probably aren’t C or C++ programmers. OK, how many of you designers are conversant in C? Yeah, not so many. How about C++? Anyone? Mmm hm… So you might guess that not much low-level design got done using SystemC. Having to learn abstraction is hard enough. Doing so along with an entire new language is even harder. And C++? Forget it.

So who does use C? Well, architects, system-level designers creating algorithms for eventual implementation in software and/or hardware… you know, the idea people. The ones that come up with plans for other people to implement. (Yeah, I know, they’re not as evil as the marketing people, but it’s all a matter of degree.) (Hey, I’ve already said there wasn’t as much drama to be had as it at first appears, so I need to stir up diversionary drama wherever I can.) So after an initial halting foray into the world of implementation, SystemC has been repositioned for higher-level system design and modeling.

OK, so if those who implement don’t use C, what do they use? OK, more specifically, what do RTL designers use? OK, anyone who couldn’t answer that is hereby banished to a special happy room that has been blessed by portraits of wood-nymphs on the wall, redolent of burnt sage and patchouli, with an endless loop of Kumbaya playing. Tie dye optional. They use <drum roll> RTL. Of course, which RTL, well, there may indeed be drama there. Bring on the VHDL vs. Verilog wars! And yet, even here we fail. For even though the name “SystemVerilog” suggests the triumphant pre-eminence of Verilog over its utterly vanquished rival, it has even been suggested that SystemVerilog represents the best of both Verilog and VHDL1.

So again our efforts to stir up controversy fail. Silicon Valley is clearly suffering from a dearth of good old-fashioned competitive spirit. Next thing you know people will be suggesting that software should be given away for free. (Not that they’ll work for free, but that’s another topic.)

Of course, as with all RTLs, the language does far more than provide a way to design hardware – the synthesizable subset is relatively small. Verification is where it’s at. All the way from standard old simulation to assertion-based verification. With object orientation to provide for higher levels of abstraction.

OK, so… so far, it seems that perhaps we have two different target audiences for the two different languages. That’s not helping. That doesn’t sound like much of a fight. Perhaps you’re still grasping at the hope that at least there’s a business difference here… that, rightly or wrongly, companies will have aligned themselves with one side or the other and will stubbornly go down with the ship. For instance, Synopsys was a HUGE supporter of SystemC early on. Surely they’ll stand up and denounce the evils of SystemVe… oh, wait… they support SystemVerilog too. Just as vociferously.

Bah, just an illusion, I’m sure. Clearly it’s an internal political war, with the SystemC division jousting to unseat the cheeky SystemVerilog division. A quick conversation at DAC, some obsequious comments to put them at ease, with some well-disguised trick questions designed to bring out candor and the vitriol that must surely be lurking under that slick happy corporate-message exterior; that will certainly bring to the surface that fight-to-the-death spirit we so love to watch. (As long as it’s not our own death.)

Or not.

Seems that pretty much they have a home for both languages. With a different niche for each. For the architect, the algorithm jockey, those that are comfortable with C and C++? SystemC. Useful for high-level modeling, tinkering with systems, figuring out what the RTL lackeys should scurry off and do.

And for the honest, hardworking designers that take on the thankless burden of implementing the harebrained schemes invented by those not responsible for bringing them to fruition? SystemVerilog provides a means more to their liking both for expressing the design and for verifying that the design works.

So, yeah… kinda disappointing. Each has a place. But… believe it or not… it gets worse. Not only can the two languages coexist, but they can even work together. Sort of. Either one can be used to develop transaction-level models, and so, given the right transactors and gaskets, they can all interact to validate a system. Thankfully, they don’t have the same transaction interface, so they can’t actually talk to each other. I know it’s not much, but hey, it’s something; at this point we’ll take whatever points of contention we can find. Of course, that may not last, folks, so enjoy it while you can. Accellera may take up the whole issue of verification IP interoperability, so the whole thing may end up being one happy lovefest. I know… sad…

I guess you just kinda have to chalk it up to the first and second laws of thermodynamics… We’re moving from a well-ordered world of this language vs. that language, with high energy stoking vigorous debate, to a blah low-energy state where you can randomly pick either language and it might actually work just fine if you use it for the right thing.

How boring is that?

Leave a Reply

featured blogs
May 15, 2022
https://youtu.be/ur6dpXrELhg Made at Steve Brown's "moving to San Diego party" (camera Larry Lapides) Monday: no post Tuesday: TechInsights: Foundation for the Future Wednesday: Open... ...
May 12, 2022
Our PCIe 5.0 IP solutions, including digital controllers and PHYs, have passed PCI-SIG 5.0 compliance testing, becoming the first on the 5.0 integrators list. The post Synopsys IP Passes PCIe 5.0 Compliance and Makes Integrators List appeared first on From Silicon To Softwar...
May 12, 2022
By Shelly Stalnaker Every year, the editors of Elektronik in Germany compile a list of the most interesting and innovative… ...
Apr 29, 2022
What do you do if someone starts waving furiously at you, seemingly delighted to see you, but you fear they are being overenthusiastic?...

featured video

Building safer robots with computer vision & AI

Sponsored by Texas Instruments

Watch TI's demo to see how Jacinto™ 7 processors fuse deep learning and traditional computer vision to enable safer autonomous mobile robots.

Watch demo

featured paper

Intel Agilex FPGAs Deliver Game-Changing Flexibility & Agility for the Data-Centric World

Sponsored by Intel

The new Intel® Agilex™ FPGA is more than the latest programmable logic offering—it brings together revolutionary innovation in multiple areas of Intel technology leadership to create new opportunities to derive value and meaning from this transformation from edge to data center. Want to know more? Start with this white paper.

Click to read more

featured chalk talk

WiFi 6 & 6E: Strengthening Smart Home Enablement

Sponsored by Mouser Electronics and Qorvo

Demands on WiFi are growing exponentially, and our aging standards and technology are struggling to keep up. Luckily, WiFi 6 and 6E represent a leap in WiFi capabilities for our systems. In this episode of Chalk Talk, Amelia Dalton chats with Tony Testa of Qorvo about the ins and outs of WiFi 6 and 6E with their increased speed, capacity, and efficiency.

Click here for more information about Qorvo Wi-Fi® 6 Solution