Home > Community > Blogs > Industry Insights > webinar new interface links specman e language to systemc tlm models
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more convenient.

Register | Membership benefits
Get email delivery of the Industry Insights blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Webinar: New Interface Links Specman e Language to SystemC TLM Models

Comments(0)Filed under: Industry Insights, ESL, SystemC, TLM, specman, verification, Functional Verification, webinar, e language, TLM 2.0, Specman/e, generic payload, transaction-level modeling, e to SystemC, transport functions, sockets, Froehlich, high-level modeling, TLM interface, SystemC TLM

As the use of SystemC transaction-level models (TLM) increases in verification environments, there's a growing need to connect SystemC TLM 2.0 models to hardware verification language testbenches. A newly archived webinar details a new interface that links the Specman e language to SystemC TLM 2.0 models.

Originally given Sept. 11, 2012, the webinar is titled "No More Wrappers - New Interface Between e and SystemC TLM 2.0." The webinar was presented by Hannes Froehlich, solutions architect at Cadence and author of a recent whitepaper, "Interface Additions to the e Language for Effective Communication with SystemC TLM 2.0 Models" (you can read my earlier summary of the whitepaper here). The webinar gives you a more interactive presentation of the same material along with a demo.

Kishore Karnane, product marketing manager for Specman, gave a brief introduction at the start of the webinar. "In the last several years we've seen a lot of interest in SystemC TLM models for high-level modeling," he said. "It's important to provide a convenient mechanism to interact with these high-level models from a testbench." He noted that the Specman e language interface was created following customer demand.

Sockets and Generic Payload

Froehlich provided a very brief review of the TLM  2.0 standard, and showed the following slide, which depicts an interoperability layer for modeling memory-mapped busses that includes sockets and core interfaces. Of particular note is the generic payload, which contains control attributes and data. The generic payload "means that any model compliant with TLM 2.0 can communicate with another model that uses the same standard," he said.

The e language TLM 2.0 interface is based on communicating via sockets, and passing the generic payload across a multi-language boundary. Froehlich went into detail about core interfaces and sockets, the generic payload, and a base protocol that determines sequences of requests and responses. He showed how the TLM interface uses blocking and non-blocking transport functions between initiator sockets and target sockets.

Some e language additions were needed to allow e-to-SystemC TLM communication. They include the following:

  • Two new kinds of ports to represent sockets: tlm_target_socket and tlm_initiator_socket
  • Two new structs - tlm_generic_payload and tlm_extension
  • Enumerated types required for transport functions, including tlm_phase_enum, tlm_command, tlm_response_status, tlm_sync_enum, and tlm_endianness
  • Extended functionality for ml_uvm (multi-language) objects

In general, naming follows SystemC conventions, and the e language code looks very similar to SystemC, Froehlich said.

What about additions to SystemC? Very little is required here, although users must enable the multi-language functionality of Incisive. To do so, they must include the ml_tlm2.h header file. This file contains declarations of the multi-language TLM 2.0 interface functions and field registration macros.

Froehlich's slide presentation only took about 20 minutes and was followed by a 15-minute demo and a question-and-answer session. His summary: "We added a carbon copy of sockets and transport interface functions to enable you to directly communicate with SystemC TLM 2.0 sockets. So there is no need to write extra e or SystemC code - you can connect directly. There is nothing to do apart from registering sockets for multi-language communications."

The webinar is available here.

Richard Goering



Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.