/Golirev-IDE

An online Verilog IDE based on YosysJS.

Primary LanguageJavaScriptMIT LicenseMIT

Golirev-IDE

An online Verilog IDE based on YosysJS using Svg.js to create the svg element. YosysJS is an Emscripten-compiled version of the YosysJS logic synthesis tool. The idea of this project is to display digital schematics and to be able to evaluate them.

Here is a demo of the project : http://johndro.github.io/

Current state of the project

This project is not finished.

What is working / done :

  • Parsings the data from the JSON file
  • Generating gates on the SVG element

What is not working / not done :

  • Component placement (currently the placement is too slow.)

Features :

  • Verilog Editor, interactive schematic viewer (zoom, drag and span) and automatic placement using simulated annealing :

Automatic placement using Simulated Annealing

  • Digital gates :

Gates

  • Display errors in your Verilog code :

CodeMiror

Dependencies :

  • YosysJS
    • Synthesises the Verilog code
    • Provides the netlist of the equivalent schematic as an JSON file
  • Svg.js
    • A lightweight library for manipulating and animating SVG
  • Svg.js plugins
    • svg.draggable.js
      • An extension for the svg.js library to make elements draggable
    • svg.pan-zoom.js/
      • An extension for the svg.js for panning and zooming SVG elements
  • CodeMirror
    • A text editor implemented in JavaScript

TODO

  • Improve placement performances, currently the placement is very slow and sometimes innacurate.
  • Look at wire length placer (built-in yosys)
  • Finish to add components (chapter 5 on the yosys manual)
  • Use AIG models and Wavedrom in order to evaluate circuits and display results