Plc2 2015 your own ide

17
Assembling your own IDE for hardware design Dr. Ir. Philippe Faes Dr. Ir. Hendrik Eeckhaut

Transcript of Plc2 2015 your own ide

Assembling your ownIDE for hardware design

Dr. Ir. Philippe FaesDr. Ir. Hendrik Eeckhaut

Overview

● Eclipse○ What is Eclipse○ Why is it so slow

● Installing○ Organizing Eclipse○ Installing multiple plugins

● Plugins○ Languages○ Create documentation○ Version Control○ Warnings○ Team: Mylyn

● Customization○ Domain Specific Languages (DSLs)

● The Eclipse Marketplace● List of interesting Plugins

What is Eclipse?

● Integrated Development Environment● Community● Modular● Extensible● Multi-language

Industry standard in HW design community

Why is Eclipse so slow?

Startup time is longer than notepad / Vim / ...

but: Think about what you get in return.

Getting on an airplane is a lot slower than getting into your car.

That does not make your car faster than an airplane.

Organizing Eclipse

● One or several Eclipse installations?● Update cycle

○ managed by IT department?○ never update?○ continually update?○ File > Import > Install > From Existing Installation

http://support.sigasi.com/Knowledgebase/Article/View/140

● Sharing settings across your team○ http://support.sigasi.com/Knowledgebase/Article/View/77

Installing multiple plug-ins

● Share with your colleagues○ Export / Import list of plugins

File > Export > Install > Installed software items ● Managed by your IT department

○ Genuitec SDC○ https://yoxos.eclipsesource.com/○ Eclipse Oomph (new)○ Local mirror

Languages

Dozens of languages supported.Java, most prominently. but also:● C / C++● Tcl ● Python● VHDL / (System)Verilog● XML / HTML / CSS● Wikitext (e.g. Markdown; used for documentation)● and much more...

How to create documentation

● Doxygen (all languages)● JavaDoc (Java)● Sigasi documentation generator (VHDL)

● HTML● Wikitext / Markdown● LaTeX

● See which files have changed since the latest commit

● Commit, annotate (praise), diff

Supporting:● Subversion● GIT● Clearcase● Perforce● ...

Version control

Warnings

● Java: ○ Java annotations:

// @SuppressWarnings(“unused”)

● Language independent:○ MarkerManager:

-- @suppress

● Find tasks (from issue tracker)● Track changes● Track which file you need for a task● Commit to version control, using correct task

reference

For example: GitHub, Trac, Jira, ...

Team connectors: Mylyn

Customization

● External Tools○ run a command, optionally based on selected file

● Custom builder○ automatically run command as part of compilation

● Process output of external tools○ generate warning markers in your source files

● Create a plugin○ plain plugin○ Xtext○ Zest

Domain Specific languages

Refrigerator description

Cooling algorithm

Code Generation

C-code

Documenation

Domain specificsimulator

http://www.voelter.de/data/presentations/RefrigeratorsAndDSLs.pdf

The Eclipse Marketplace

The Eclipse Marketplace is where you find all these nice plugins.

https://marketplace.eclipse.org/ or

Click Help > Eclipse Marketplace…

List of interesting plugins

Revision control:https://marketplace.eclipse.org/content/egit-git-team-provider https://marketplace.eclipse.org/content/subversive-svn-team-providerhttps://marketplace.eclipse.org/content/p4eclipsehttp://sourceforge.net/projects/eclipse-ccase/ clearcase

Mylyn connectorshttp://www.eclipse.org/mylyn/

Free trial

Get a free 2-month trial of the Sigasi IDE:http://www.sigasi.com/plc2-2015