Developing an Integrated Development Environment (IDE) for the ODYSSEY Design Methodology

 

Project Code: IDE-Debugger

Registration information: 6 Units for 2 BS students

Abstract

The ODYSSEY design methodology is an “embedded-system design methodology” that starts from an object-oriented high-level model of the system and implements it as cooperating hardware and software components. The “IDE-Debugger” project aims at developing a user-friendly GUI environment to enable easy embedded-system design and debug using the ODYSSEY methodology.

Currently the initial model is in C++, the generated hardware is in SystemC, and the modified software is in C++ again.

Definition

Using the IDE, the designer must be able to complete the following design chain:

Text Box: Design entry

 

 

  1. Design entry:
    1. Browsing the files and selecting the input design file(s)
    2. Also extensible to edit the file in the IDE in future.
  2. Design partitioning:
    1. View all the class methods as a TreeView and specify which goes to hardware and which to software.
  3. HW and SW synthesis:
    1. Run the ODYSSEY synthesis and compilation engines
  4. Co-simulate and debug HW + SW
    1. Run the generated SystemC models of the hardware and the software.
    2. Gather the results of the simulation. Specifically, the method-calls accomplished during the simulation.
    3. Display the above-mentioned method calls.
  5. Implement on a demo board
    1. Consider all required options and actions to run downstream tools in order to actually implement the hardware and software on the demo board.

Objectives

The IDE must be: user-friendly, easily extendable for future upgrades and enhancements, and well documented. Typical future extensions includes: other languages for design entry (e.g. java), other languages for the generated hardware (e.g. Verilog/VHDL), various options when running the synthesis and compilation engines, other demo-boards and downstream logic synthesis tools and their associated options.

The IDE is preferable to be developed in M$ Windows® environment but to be portable to the LinuxJ environment as well. Since .Net is the M$ platform of choice for current and future products, and apparently its support will eventually be added to LinuxJ, we suggest the development platform to be the M$ Windows® .Net.

Student prerequisites

This is a 6-unit BS project for two cooperating BS students.

You should be a (preferably software) BS student near to graduation to choose this project as your final graduation project.

You can also be a fist-year MS student interested in choosing your MS thesis within our research framework.

In both cases you have taken the “software engineering” course and shall implement this project as a professional software engineering one (not just what we normally do with our course projects!!!)

 

Abbreviations

ODYSSEY:             Object-oriented Design and sYntheSiS of Embedded sYstems

GUI:                        Graphical User Interface