Quantcast
Channel: Cadence Blogs
Viewing all articles
Browse latest Browse all 6660

Logical Equivalence Checking to Get Smart

$
0
0
In the late 1960s and early 1970s, there was a TV show called "Get Smart." It was a sort of cross between a James Bond movie, and a Mel Brooks movie, not least because it was created by Mel Brooks. Given that, you won't be surprised to know that the show was more Mel Brooks than James Bond, and Maxwell Smart, our hero, was anything but smart. Even if you are too young to have seen the show, you might have seen pictures of Smart on the phone, which was built in to his shoe. This has a lot more comedic value when a call comes in than speaking into your watch. In fact, now that we can speak into our watches, it turns out most of us don't want to. In fact, we rarely speak into our phones, for that matter. I can't remember when I last had a phone conversation with either of my kids, rather than just texting. At CDNLive Korea, Cadence announced the logical equivalence checking (LEC) would get smart. And not in the Maxwell Smart sense. It's about 20 times faster and doesn't require manual guidance (self-driving LEC). The new product is called Conformal Smart LEC. It is one part of formal verification, in this case comparing the RTL representation of a design to the netlist (or, less often, two netlists). In some sense, you can think of it as checking that synthesis did its job, but other tools can change the netlist, too, or even ECO changes might be made by hand (to take advantage of spare gates in a design to do a metal mask fix, for example), and LEC will prove that the netlist still is a faithful representation of the design intent captured in the RTL. How LEC Works You can't actually compare RTL to netlist, only two netlists. So under the hood, LEC does a generic synthesis of the RTL. About ten years ago, it was assumed that the registers of the two netlists would correspond one-to-one. That is still largely true. But aggressive optimization, especially RTL power optimization in datapaths, and other aggressive power optimization, make this false. Plus, even timing optimization can change behavior due to something called register retiming, where logic may get pushed from one side of a register to the other, inverting the register bits (if an inverter is pushed across the register, the behavior of the circuit will remain the same at the outputs, but the value in the register will differ from the generic synthesis and LEC needs to understand this). So LEC does a generic synthesis, followed by all the gate-level equivalence checking. This has led to the somewhat embarrassing situation that, as design size has increased, LEC has longer runtimes than synthesis, despite not having to do all the timing optimization that synthesis does. The LEC Challenge There are two big challenges for LEC. The most obvious is that (tell me if you've heard this before) designs are getting larger, which pushes up the runtime. The other, hinted at in the above paragraph, is that aggressive optimization by synthesis tools such as Genus is challenging the underlying formal proof methods used in LEC. This has led to users having to manually intervene with the tool and decide what to do hierarchically, and what to do flat. Some parts of designs, such as datapaths, are other areas where the user can contribute by guiding the tool. The effect of this is that the user is forced to try various approaches and then abandon them if they don't work. All formal tools, and LEC is one, have three outcomes. The design is good, or the design is bad. Or the tool is unable to prove either of these things, indicated by the tool running until it reaches a time limit of some sort. The effect of manual intervention in this environment is that users are forced to try something, and if the result is inconclusive, try something else until they find a strategy that gives a result (for LEC, hopefully that the designs are, indeed, identical). The current version of Conformal LEC allows multiple-cores on the same machine to be used, but cannot automatically distribute a larger design across a lot of servers in a datacenter. The user is forced to split the design up and run the separate jobs on separate servers. One fundamental problem with manual intervention in any formal tool is that there is the potential for the user to get something wrong, and for the tool to rely on that wrong information to bless the design as correct, when in fact it is not. Beginners using a powerful formal tool like JasperGold are infamous for setting the tool up with bad input, such that the constraints imply the design works without even requiring any analysis. Conformal Smart LEC The new Conformal Smart LEC solves these two problems. In addition, there are also a lot of improvements to the underlying engines. But the two biggest changes are: Conformal Smart LEC automates the selection of proof strategies. It doesn't just do what a user does by trial-and-error, it analyzes the design and chooses an optimal proof strategy. It allows a design to be automatically distributed across a massively parallel compute infrastructure. Since each individual module is restricted to a given server (although it can use multiple cores on that server), just how effective this is turns out to be design dependent. Results This first graph shows the speedup moving from LEC to Smart LEC on a 4-core CPU. So this is only looking at improvements to the algorithms, without also taking advantage of massive parallelization. You can see that the average speed up is 4.2X compared to the previous version. This chart shows the LEC vs Conformal Smart LEC using 16 CPUs. Of course, (old, or should we say "classic") LEC can't use 16 CPUs, it's only running on 4. The overall speedup is anywhere from 10X to 25X. Roughly 4X of this speedup is due to the algorithmic improvement, and the rest is due to the additional compute resources that can be brought to bear on the problem. One of the lead customers who have been beta testing Conformal Smart LEC was Renasas. They found that complicated designs used to require multiple iterations with an expert user, but now that is reduced to just one iteration (although whether iteration is quite the right word when the flow just goes through the tool once, I'm not sure). Learn More There is more on the Conformal Smart LEC product page . And the memorable title sequence for Get Smart: (Please visit the site to view this video) Sign up for Sunday Brunch, the weekly Breakfast Bytes email

Viewing all articles
Browse latest Browse all 6660

Trending Articles