Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > EDA/IP

Syntax raises RTL abstraction level

Posted: 16 May 2001 ?? ?Print Version ?Bookmark and Share

Keywords:hdl? abstraction syntax? rtl? c++ class library? sldl?

A University of Toronto professor has proposed a new register-transfer-level abstraction syntax that he claimed can be implemented by a modest extension to traditional imperative programming languages.

RTL design methodologies based on hardware-description languages have problems, said Jianwen Zhu, an associate professor at the university's electrical and computer engineering department, who described the syntax, called MetaRTL, at the Design Automation and Test in Europe conference here recently.

"HDLs are designed as simulation languages and the gap between the simulation semantics and the synthesis semantics causes unnecessary confusion," Zhu said. Nor are HDLs designed with reuse in mind, he said.

A number of efforts have emerged to use programming languages to model RTL hardware. CynApps Inc.'s Cynlib, a C++ class library, allows C++ to be used to model hardware. The Open SystemC Initiative has a similar library in SystemC. Another implementation with arguably superior simulation performance is the Ocapi library developed by the IMEC research consortium. While the expressive power of the software languages can be leveraged to some extent, the goal of these approaches is to repeat HDL semantics in C syntax.

Difficult artifacts

Zhu pointed out that VHDL and Verilog were designed as simulation languages for gate-level hardware systems. To emulate the behavior of hardware, an HDL programmer writes a program that specifies a discrete-event system (simulation semantics), rather than how hardware is constructed (synthesis semantics). While many constructs in HDLs can be conveniently mapped to hardware, the discrete-event semantics introduces artifacts that are difficult or perhaps impossible to map to hardware?that is, to make synthesizable, Zhu said.

The MetaRTL abstraction is in the form of language, but the basic concepts can be used to extend existing languages, Zhu said. "It is in essence a syntactic-free, polymorphic, object-oriented language," he said.

Nevertheless, MetaRTL differs from a traditional programming language in several ways:

  • A MetaRTL object type can specify a set of hardware objects. Each object represents a piece of digital synchronous hardware.

  • A field of value in a MetaRTL object can have a "storage class" modifier prefix.

  • A hardware object in MetaRTL instantiates the piece of digital hardware represented by the corresponding object type.

  • A method function in a MetaRTL object type can be prefixed with the "always" modifier, indicating that the method function specifies a piece of hardware belonging to that object. Alternatively, it can be prefixed with the "public" modifier, indicating that the method function specifies the piece of interface hardware to communicate with the object in order for certain functions to be performed.

  • While the syntax is the same as its software counterpart, statements in MetaRTL are not an abstraction of the instruction sequences executed on processors; instead, they specify a synchronous state machine.

The concepts defined in MetaRTL have been embedded into both a C-based and a Java-based research system-level description language (SLDL). The University of Toronto has also developed MetaSyn, a tool that synthesizes the SLDLs into synthesizable VHDL.

"We have tested MetaSyn with a number of benchmarks," said Zhu. The results showed two orders of magnitude fewer lines of code in MetaRTL than in the generated VHDL. "The bottom line is that MetaRTL is simpler to implement," he said.

? Nicolas Mokhoff

EE Times

Article Comments - Syntax raises RTL abstraction level
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top