| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>Virtual Prototyping Platform (VPP)</h1> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("VPP"); | |
| ?> | |
| <h2>Please note that the VPP project will become part of a DSDP Incubator project in the near future.</h2> | |
| <h1>Introduction</h1> | |
| The <i>Virtual Prototyping Platform (VPP)</i> project is a proposed open | |
| source project under the Device Software Development Platform | |
| Project. VPP is intended to collect a number of smaller technologies | |
| together that, when combined, will enable Eclipse to be used for the tasks | |
| associated with constructing, debugging, visualizing, analyzing, and | |
| using (models of) systems constructed from components that may be | |
| based on hardware or software, or a combination of both. | |
| <p>This proposal is in the Project Proposal Phase (as defined in the <a | |
| href="{field{*fldinst{HYPERLINK "http://www.eclipse.org/projects/dev_process/"}}{fldrslt http://www.eclipse.org/projects/dev_process/}}">Eclipse | |
| Development Process document</a>) and is written to declare its | |
| intent and scope. This proposal is written to solicit additional | |
| participation and input from the Eclipse community. You are invited | |
| to comment on and/or join the project. Please send all feedback to | |
| the <a | |
| href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.dsdp.vpp">http://www.eclipse.org/newsportal/thread.php?group=eclipse.dsdp.vpp</a> newsgroup.</p> | |
| <h1>Background</h1> | |
| Today, complex systems are no longer designed monolithically, but | |
| rather as amalgamations (at the system level) of complex | |
| interconnected components, each of which may consist of both | |
| hardware and hardware dependent software components. | |
| In order to design such systems, often models are used. They can be | |
| used to explore potential implementations (in terms of hardware, | |
| software, or the division between hardware and software), enable | |
| early software development on top of the system "platform," or | |
| indeed as a reference model that can be used for verification. The | |
| models can encompass both hardware and software components. | |
| Models can be written to be more or less faithful to the final | |
| implementation, both in terms of their functionality, and in terms | |
| of the "meta" information that they model (for instance execution | |
| time or power consumption). | |
| <p>Functional accuracy can range markedly, from very little (pure | |
| traffic generators), through partially accurate models (which may | |
| not model some specific features of a hardware implementation, which | |
| may or may not be visible to a programmer), to models that are | |
| totally functionally accurate. Further more, models may be | |
| specifically designed to "stress" software components, often for the | |
| purpose of assisting in debug, and ensuring software correctness. | |
| This level of activity is often referred to as the "Electronic | |
| System Level" or ESL. | |
| ESL Design activity often occurs prior to or at the point of making | |
| a split between hardware and software, which is often recognized as | |
| a highly influential point in the design process. The wide range of | |
| uses that ESL models are put to means that there are many "views" of | |
| them that are appropriate.</p> | |
| <p> | |
| These models may be of components destined to for implementation in | |
| hardware or in software. The models constructed (and debugged) in | |
| this way then provide a starting point for the development of | |
| hardware dependent software and the hardware itself. While the | |
| processor-centric view of a system is addressed by other projects | |
| within Eclipse, and other projects focus on connections with | |
| hardware, this project focuses on how to construct, connect, debug, | |
| analyze, visualize and use models (of virtual prototype components destined for | |
| implementation in hardware, or software) to Eclipse. | |
| The language used for the ESL Design activity is predominantly | |
| (though not exclusively) <a href="http://www.systemc.org">SystemC.</a> | |
| SystemC is a language implemented | |
| as a C++ library, so it shares many of the debug requirements of C++ | |
| itself. However, there are additional views of a SystemC model that | |
| are useful to the designer (for instance, SystemC keyword | |
| highlighting, model connectivity diagrams etc). It is expected that | |
| the VPP will cover other languages over time that are relevant to | |
| ESL (e.g. System Verilog). | |
| Once SystemC models are debugged, and executable, they can be run | |
| either using a freely available SystemC library implementation | |
| (provided by the Open SystemC Initiative), or one of the many | |
| proprietary simulators. In either case, a model may wish to interact | |
| with the user, for a number of reasons:</p> | |
| <ul> | |
| <li> Configuration</li> | |
| <li> Run time Control</li> | |
| <li> User input</li> | |
| <li> Visualization (output)</li> | |
| <li> Analysis and Profiling</li> | |
| </ul> | |
| <p> | |
| In each case, mechanisms will be required in Eclipse to support this | |
| user interaction. | |
| <h1>Use Case Scenarios</h1> | |
| The use cases for VPP can be divided into two main categories, those | |
| associated with initial model creation, and those associated with | |
| model execution and analysis. | |
| In the first category, model creation shares many of the same use | |
| cases as other relatively complex software designs. As the languages | |
| (such as SystemC) are increasingly based on C++, many of the | |
| standard Eclipse plugins can be used. However additional plugins are | |
| of some use, for instance specific SystemC syntax highlighting, or | |
| model topology visulisation. In the second category, the scope of | |
| useful plugins is much wider. In general, these will all be | |
| concerned with user interaction with a running (or completed) | |
| model. They will encompass plugins to display statistics about the | |
| execution of the model (analysis data), and others to elicit input | |
| from the user to control a model's execution. | |
| <p> | |
| Overall, a typical use case would be for an Electronic System | |
| Engineer to initially import a number of pre-existing models into | |
| their environment. They may use some VPP topology visualization | |
| plugins to help understand the connectivity of the model they are | |
| trying to build. They may then go on to build a few "component | |
| models" themselves, using many already existing Eclipse plugins, and | |
| some VPP additions. Having debugged the model, again with a | |
| combination of plugins, they would then go on to execute the model, | |
| controlling its execution through other VPP plugins. Finally, they | |
| will need to extract data from the model (the reason for | |
| constructing the model in the first place!). This data will be | |
| provided to the user through VPP plugins.</p> | |
| <h1>Project Principles</h1> | |
| Among the key principles on which this project has been initiated, | |
| and will be run, are the following: | |
| <p> | |
| <b>Leverage Eclipse Ecosystem </b>- A major goal of this project | |
| is to apply the application development strengths of Eclipse to | |
| the System Level Design Domain (especially as, in the end, a | |
| System Level model is nothing more than a relatively constrained, | |
| but none the less complex, application). The project will work | |
| closely with other Eclipse project areas whenever possible to | |
| leverage the capabilities being developed in those areas. | |
| </p> | |
| <p> | |
| <b>Vendor Neutral </b>- We aim to encourage Eclipse participation | |
| and drive Eclipse market acceptance by providing vendor-neutral | |
| capabilities and to encourage participation for complementary | |
| capabilities through additional projects. | |
| </p> | |
| <p> | |
| <b>Open, Standards-based Development </b>- Where market adopted | |
| standards exist that meet the design goals, our aim is to | |
| leverage and adhere to them. Where market adopted standards do | |
| not exist, we will develop and publish any new capabilities in | |
| the Eclipse open forum. | |
| </p> | |
| <p> | |
| <b>Incremental Delivery </b>- In order to meet the pent-up demand | |
| for a standardized framework for device software development | |
| tools, we aim to deliver functionality to the market as rapidly as | |
| possible via an incremental delivery model. | |
| </p> | |
| <h1>Project Scope </h1> | |
| Within the development of Device Software, three phases are identified:<p> | |
| <ul> | |
| <li> | |
| <b>Hardware Bring-up </b></li> | |
| <li> | |
| <b>Platform Software Development </b></li> | |
| <li> | |
| <b>Application Software Development </b></li> | |
| </ul> | |
| </p> | |
| <p> | |
| System Level Design includes all of these, but with respect to | |
| models. In addition, the Bring-up phase will apply to models of | |
| functional components that may be destined for implementation in a | |
| combination of hardware and software and there is one more phase: | |
| Hardware/Software partitioning, or model abstraction level decisions | |
| In this phase, designers decide at what level they need to (or can) | |
| model items in their system. At high levels of abstraction it may | |
| not be clear if this item will be implemented in hardware or in | |
| software. At lower levels details about the implementation become | |
| important. The VPP will use or adapt other projects within DSDP to | |
| address the other three design phases as they relate to system level | |
| design and will add specific exemplary tools aimed at assisting in | |
| the hardware/software partitioning task.</p> | |
| <p>Having designed a model, and chosen a level of abstraction suitable | |
| for the use cases to which the model is to be applied, the wider | |
| range of Eclipse tools and plug-ins will be required including:</p> | |
| <ul> | |
| <li> Model Debug</li> | |
| <li> System Visualization</li> | |
| <li> Model specific Analysis</li> | |
| <li> Transaction level analysis (communication between Virtual | |
| components)</li> | |
| <li> Model execution profiling</li> | |
| <li> User interactions</li> | |
| <li> Configuration</li> | |
| <li> Control (User based control, and script based control)</li> | |
| </ul> | |
| <h3>SystemC (and related languages)</h3> | |
| Specifically within the domain of System Level Design, SystemC is | |
| used as the modeling language of choice. It is based on C++ and can | |
| therefore be used to build software and hardware components. As it | |
| is a language in its own right, there are language related | |
| extensions to Eclipse that fall within this project. | |
| <h3>Initial technologies</h3> | |
| <ul> | |
| <li> SystemC Syntax highlighting </li> | |
| <li> SystemC topology viewer (to view the hardware components of a | |
| system, typically fed by a SystemC parser) </li> | |
| <li> Display of analysis information published by SystemC models </li> | |
| <li> Profiling of SystemC simulations (this requires hooks into | |
| the SystemC kernel to provide simulation activity in order to | |
| improve simulation performance) </li> | |
| </ul> | |
| <p>For each of these, work in disparate organizations is already taking | |
| place, GreenSocs (see below) aims to pull this work together in one central | |
| place and to feed that into VPP.</p> | |
| <h1>Organization</h1> | |
| There is already a project similar in conception to | |
| Eclipse called the <a href="http://www.greensocs.com/GreenSocsEclipse">GreenSocs Eclipse Project</a>, | |
| which is focused solely on System Level Design | |
| infrastructure and built for the most part around SystemC, within which | |
| Eclipse should form a part. Hence the logical point of interaction | |
| between Eclipse and GreenSocs is the VPPy project, which | |
| GreenSocs will run within Eclipse. GreenSocs will aim to collect | |
| funding and supply engineering to continue the development effort, | |
| but also to coordinate activities such as those within universities | |
| worldwide that are engaged in developing Eclipse extensions for ESL. | |
| Greensocs is already committed to offer initial contributions. | |
| This will occur soon after the project is | |
| created. GreenSocs will encourage and coordinate contributions for | |
| other organizations, expected from a number of industrial and | |
| academic institutions. | |
| <h2>Interested Parties</h2> | |
| <h3>Industrial Organizations</h3> | |
| <a href="http://www.xilinx.com">Xilinx Research</a> investigates ESL technologies for FPGA designers and strongly | |
| believes that a robust open-source solution for model development, debug and analysis is needed. | |
| This project's goal (to build open-source modeling extensions to Eclipse) is both timely and | |
| well focused on the set of core problems that an Eclipse open source solution could address. | |
| In terms of direct support, Xilinx Research will continue to offer technical guidance to the | |
| project and may donate code to accelerate the development of Eclipse plug-in modules. | |
| <h3>University Organizations</h3> | |
| <a href="http://www.fzi.de">FZI</a> (a research organization of German Universities), <a href="http://www.unicamp.br">Unicamp</a> (a similar organization | |
| based in Brazil), and <a href="http://www.eis.cs.tu-bs.de/eis/english/welcome.html">EIS</a> (a research lab at TU Braunschweig, Germany) have contributed to the current efforts GreenSocs has made in building | |
| some of the components required by VPP. | |
| <h2>Contact Person</h2> | |
| Mark Burton (mark.burton@greensocs.com) | |
| <h1>Roadmap</h1> | |
| The intention is to provide basic plugins to support SystemC | |
| modeling and debug straight away. These will not be of sufficient | |
| quality to warrant a 1.0 release, but will be worked on to achieve | |
| that goal. Other parallel activities will focus on model to user | |
| interactions. This work is expected to be industrially funded, with | |
| GreenSocs providing the resource. | |
| <p> | |
| </p> | |
| </div> | |
| </div> | |
| <?php | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |