GUI Source Code Guide

From Genesis2
Jump to: navigation, search

Source Code[edit]

$CHIPGEN/gui[edit]

Javascript modules *.js live in the top-level source code directory $CHIPGEN/gui, as does the gui template 0-main-template.php

Subdirectories include: cgi, designs, (scratch?), xml-decoder

$CHIPGEN/gui/cgi[edit]

vlsiweb:/usr/lib/cgi-bin/genesis links to the cgi subdirectory and is thus available via the URL http://vlsiweb/cgi-bin/genesis. Among the files in this directory:

  • choosedesign.pl - Builds a form whereby the user chooses a design to modify via Genesis. choosedesign.pl uses this information to call opendesign.pl
  • opendesign.pl - Uses 0-main-template.php to build and jump to a Genesis instance (instance?) whose database consists of a user-specified design. For now, the database must have been pre-translated from XML to JavaScript objects. In the future, the translation will be done on-the-fly. (Really?)
  • updatedesign.pl - After the user modifies a design and presses "Submit," the GUI sends XML-format changes to updatedesign.pl, which calls updatedesign.csh, which calls Genesis2, which updates the design database with the new changes.

$CHIPGEN/gui/designs[edit]

The gui/designs subdirectory contains

  • sample design subdirectory tgt0 containing multiple user-generated variations;
  • mkdesign.csh uses "make" command to generate an xml database for a given design;
  • updatedesign.csh called by updatedesign.pl, see above;

$CHIPGEN/gui/scratch[edit]

opendesign.pl uses the gui/scratch subdirectory to build intermediate files necessary to put together a design base.

$CHIPGEN/gui/xml-decoder[edit]

Now No longer powered by Python !!

  • xml2js.csh in this directory transforms an XML design database into JavaScript data structures used by the GUI.

BUGS/TODO[edit]

Links[edit]