BEAVERTON, Ore. Consulting firm Willamette HDL this week is slated to roll out AccurateC, a language rule checker for C/C++ electronic design, in a bid to make the SystemC modeling platform more accessible to chip designers. AccurateC identifies syntax, semantic and style errors in C/C++ code before synthesis and simulation.
Launched by Synopsys and CoWare, SystemC is an attempt to define a standardized C++ class library. Although SystemC has gained widespread industry backing, the lack of a tool such as AccurateC has slowed adoption, said Willamette president Mike Baird.
"Engineers taking our classes are looking for these kinds of tools," said Baird. "This is a hole we can fill."
A SystemC language checker is needed, he said, because it's possible to write C/C++ code that will compile with no problem but that will not comply with SystemC requirements. That's because SystemC places some restrictions on the use of function calls. There's a "wait" call, for instance, that SystemC allows only at certain places. But a generic C/C++ compiler would permit such a call at any point where it's legal to make a function call.
AccurateC won't always be tied to SystemC, Baird noted. It can accept other language rule sets, and an upcoming companion product will let users define their own rules. But for now, the only rule set that's supported is SystemC.
Since it checks for coding style problems, AccurateC provides a full "lint" capability, Baird said. But he noted that AccurateC goes beyond lint products in several ways. For one, it checks for compliance with Synopsys synthesis rules. Second, it doesn't just spotlight errors; it has a "code consultant" feature that can suggest possible ways to fix a problem.
AccurateC can be used at several points in a design cycle. First, it can be used at the system level, to check untimed functional or timed functional SystemC code. On a typical first-analysis run, AccurateC will identify syntax and connectivity errors.
Subsequently, AccurateC can perform a full set of coding style checks and can be used to ensure that code is suitable for Synopsys behavioral and register-transfer-level synthesis. The tool has separate basic, behavioral and RTL rule sets, each of which can be selected or turned off by the user.
Users can customize report generation. AccurateC includes filtering options that let designers select specific types and categories of rule-violation messages to display. Each violation is linked to the line of source code that caused it. AccurateC also reports statistics for each design.
Baird said the current tool fully supports the SystemC 1.0 specification and offers partial support for the 1.2 specification. Full version 1.2 support is slated to roll this spring.
Baird expects to follow up with support for version 2.0, which includes system-level modeling constructs (see Feb. 5, page 63).
AccurateC is shipping this month on Sun and Linux platforms starting at $10,000 for a one-year subscription license. Further information on AccurateC and on Willamette HDL's training classes is available at the company's Web site.