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.
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.
bluetcl
in the user's PATH
)For waveform viewing:
exec/fixvcd
script)For correlating with source files:
emacsclient
) or GVim editorFor viewing scheduling graphs visually:
You can install with:
$ make install
And then you can run with:
$ ./inst/bin/bdw
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
.
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
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
.
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.