Home

Awesome

<div class="title-block" style="text-align: center;" align="center">

BSC Development Workstation (BDW)

A graphical interface for developing BSV/BH designs with BSC


</div>

The BSC Development Workstation (BDW) is full-featured graphical environment in which you can create, edit, compile, simulate, analyze, and debug BSV/BH designs with BSC.

BDW can connect to a waveform viewer, such as GtkWave, to allow source-level debugging of simulations:

BDW can also connect to an editor, such as Emacs or Vim, to pull up the source for any type, function, rule, module, instantiation, etc, from the BDW's various viewer windows.

Among the viewer windows for navigating a design are:

All of this information about packages, modules, types, and schedules is provided by the bluetcl API. BDW is a Tcl/Tk application that provides the graphical interface to this information.

BDW includes an import-BVI wizard that automates much of the process of importing Verilog modules into BSC designs.

BDW can also export a project as a Makefile.


Community

To receive announcements about BDW and related projects, subscribe to b-lang-announce@groups.io.

For questions and discussion about BSC/Bluetcl source, subscribe to the developers' mailing list bsc-dev@groups.io.

For any questions or discussion about Bluespec HDLs, using BDW or BSC, or related projects, subscribe to b-lang-discuss@groups.io.

IRC users might try joining the #bluespec channel on FreeNode.

There's also a bluespec tag on StackOverflow.

And we've enabled the Discussions tab in this GitHub repo. This is a new feature to support discussion within the project itself. Feel free to give it a try and see if it can be useful to our community.


Requirements

For waveform viewing:

For correlating with source files:

For viewing scheduling graphs visually:


Install/Run

You can install with:

$ make install

And then you can run with:

$ ./inst/bin/bdw

Documenation

The doc directory contains a User Guide written in LaTeX. You can build and install the user_guide.pdf with:

$ make install-doc

This requires LaTex tools, such as pdflatex.


Testing

The directory testing/bsc.bdw contains tests for BDW that can be run using the infrastructure of the bsc-testsuite repo. Simply copy the directory to a clone of that repo:

$ cp -r testsing/bsc.bdw /path/to/bsc-testsuite/
$ cd /path/to/bsc-testsuite/bsc.bdw/
$ make check

Notes

BDW builds and runs on macOS, using the native Tcl/Tk/Itcl/Itk, but the appearance is odd and difficult to use. Perhaps building with a different Tk (perhaps with X11) might give a better appearance.

BDW uses a local copy of the IWidgets package. It might be nice to remove that and instead require users to have IWidgets installed in their environment (as we do with Itcl/Itk). However, the local copy has modifications, so "unvendoring" would lose some of the tweaks and extensions that have been applied to give BDW its current appearance. It would be worth identifying those changes and deciding whether we can live without them or implement them without vendoring. If there are only a few modified widgets, we could at least just override those definitions without vendoring the entire package. BDW already does this with some Tk widgets; the directory src/tk/ contains code that overrides Tk definitions, for example. Note also that the file scrolledcheckbox.tcl in src/workstation/ is adapted from the IWidgets checkbox.itk.


License

The BSC Development Workstation is available under the BSD license. The source code also includes several other components under various license agreements (all of it open/copyleft software). See COPYING for copyright and license details.