United Business Media EE Times


Search

HOMEMARKET INTELLIGENCE UNITFORUMSDESIGNNEW PRODUCTSCAREERSBLOGSCONTACTEVENTSSIGN UP!RSSMost Popular contentTrusted Sources

 


A new approach to system-level design
Print this article Email this article Reprints RSS Digital Edition

EEdesign.com


System-level description languages are mandatory for the efficient design of complex systems. These description languages include SystemC and SystemVerilog. SystemC is currently very popular for hardware-software system level design. It provides all the basic concepts used by HDLs (such as modules, ports, signals, and time) and more abstract concepts (such as interfaces, communication channels, and events).

However, most of the features for software modeling are still missing or not completely implemented in SystemC. These include dynamic process creation, process control (suspend, resume, kill), preemption, and software-specific communication primitives such as monitors and semaphores. Connecting tools to SystemC is a relatively costly task, due to the complexity of C++ as well as the lack of introspection mechanisms.

SystemVerilog is an extension of Verilog, adding a significant set of features including high-level concepts for abstract system modeling and simulation, testbench automation, and the integration of Verilog with the C programming language. While SystemC is an "open" environment based on C++, SystemVerilog is a standalone language.

Despite all these efforts, the following requirements that we think are mandatory for an efficient modeling and simulation framework are still not provided by a single existing environment:

  • Easier software component specification, and component integration into an overall hardware-software system specification.
  • Clean programming features and memory management to enable less error-prone models, easier specification and reuse.
  • Introspection, also called reflection, and the possibility of annotating models, which simplifies the debugging and analysis of complex specifications as well as the development of synthesis and verification tools.
  • Translation to a standard intermediate format to enable the design of EDA tools independently of the used description languages.
  • Integration in a distributed web-based design environment. Easy system documentation to facilitate cooperation between different design groups and to allow remote processing.
  • Multi-platform and multi-language features for describing and designing the overall embedded systems composed of heterogeneous components.
  • Preservation of the openness of the system.
Most of the presented requirements are already provided by the .NET Framework (announced by Microsoft in 2000, and which led to three ISO standards in April 2003). It is intended to be platform and operating system independent. It simplifies application development in the highly distributed Internet environment. It is meant to facilitate the reuse of existing code.

Currently, the Microsoft version supports 20 languages, such as Java, C++ and C#. These languages are mapped to a Common Intermediate Language and execute in a common language runtime. This simplifies programming by assisting with different tasks, including memory management and error handling. The framework also provides a class library that can be used by the developers to extend the capabilities of their software.

We propose a new .NET Framework based system level modeling and simulation environment called ESys.NET. This environment respects all the requirements above. In particular, it allows:

  • Cooperation — by enabling web-based design and multi-language features.
  • Easy system specification — by enabling integration of software components running application and operating systems, and by alleviating memory management.
  • Links to automatic refinement tools — by enabling translation of specification models into a standard intermediate format and annotation of specification models.
  • Comparative performances with existing environments.
The core of ESys.NET is based on a set of classes that encapsulate the concepts of modules, communication channels, signals and events. One of its important characteristics is that it offers the designers the possibility to easily specify execution directives by tagging the different concepts in the specification.

These directives concern the association of a thread or parallel method semantic to a class method, the addition of a sensitivity list for a parallel method or a thread, the call of methods before or after the execution of a certain process, and the execution of a class method at a specific moment during the execution. This was implemented by exploiting attribute programming provided by .NET and the C# language. The available directives also permit the hooking of external tools to the simulator and model. The ESys.Net layered architecture is illustrated in Figure 1.


Figure 1 -- Layered architecture of ESys.NET

ESys.NET is intended to be an evolution of SystemC by offering a user-friendlier environment free of eclectic implementation details like macros, pointers, and function prototyping. It is also intended to be a superset of SystemC's core functionalities, extending it with features like automatic memory management, system level primitives, strong typing, native interfaces, safe pointers, reflective capabilities, remoting, and dynamic thread creation/control.

We have also added hooking points, within the kernel, for third-party tools written in specialized languages permitting the analysis, synthesis, verification and viewing of models. It is possible to execute unmodified SystemC models in cooperation and in parallel with our models in the same binary file.

ESys.NET was designed by a team at Universit de Montral and a prototype has been developed in C#. The ISO standard C#, a part of .NET, is a strongly typed, object-oriented language designed to give the optimum blend of simplicity, expressiveness, and performance.

ESys.NET is currently used at our lab for simulation, hardware/software partitioning, and distributed simulation exploration.

El Mostapha Aboulhamid is a professor at the Universite de Montreal, Canada.





The views and opinions expressed in this column are strictly those of the author and should not be taken as an editorial position of EE Times or any of its other editors, publications or Web sites.


  Free Subscription to EE Times
First Name Last Name
Company Name Title
Email address
  Click here for your Free Subscription to EETimes Europe
 
CAREER CENTER
Looking for a new job?
SEARCH JOBS
SPONSOR

RECENT JOB POSTINGS
CAREER NEWS
SRC Expands R&D Centers
The Semiconductor Research Corp has added a new center to its university R&D efforts.

For more great jobs, career related news, features and services, please visit EETimes' Career Center.



All White Papers »   

  Design Resources
Designing for a dual Galileo-based GPS system
Malcolm Lomer of SiGe Semiconductor discusses GPS design challenges with the Galileo satellite system.
More »
 
Education and
Learning


Learn Now:












Home | About | Editorial Calendar | Feedback | Subscriptions | Newsletter | Media Kit | Contact | Reprints|  RSS|   Digital|  Mobile
Network Websites
International
Network Features




All materials on this site Copyright © 2009 TechInsights, a Division of United Business Media LLC All rights reserved.
Privacy Statement | Terms of Service | About