Recent Changes - Search:

PmWiki

pmwiki.org

edit SideBar

Tools

This page contains a list of the projects used as part of the DREAMER tool flow along with a description of each tool and library that these projects contain. The descriptions are currently pretty minimal, but they should probably be expanded a lot!

libflo (http://www.github.com/palmer-dabbelt/libflo)

flo-canon

Reads in a Flo file and produces (on stdout) a canonicalized version of that circuit. Canonical Flo files have widths directly written into the Flo file everywhere they can be known. One major use of flo-canon is to determine if a Flo file is actually a valid Flo file or not.

flo-stat

Reads in a Flo file and produces (on stdout) some basic statistics about that file.

libflo

A Flo parsing and generation library that's used by the other executables in this project as well as pretty much every other DREAMER tool.

flo-llvm (http://www.github.com/palmer-dabbelt/flo-llvm)

flo-llvm is an LLVM backend for Flo files. It currently helps with verification of the rest of the DREAMER tools, but is eventually designed to replace Chisel's C++ back-end.

flo-llvm

A wrapper script that takes in a Flo file and produces an object file and a header file that allow this Flo file to be executed on a CPU. You'll almost certainly want to be calling this instead of directly calling the different compiler versions, as it's got some tricks to work around odd distribution troubles. Passing "--MODE" will run flo-llvm-MODE to produce output.

Additionally, passing --harness to any of the compiler versions will generate a C++ file that contains a C++ test harness for running against the Chisel tester.

flo-llvm-torture

Generates VCD files that are compatible with flo-torture. This differs from Chisel's default VCD output because it does not include internal registers. If you're not using flo-torture then you almost certainly shouldn't be using this mode of operation.

flo-llvm-release

Generates a VCD file that's compatible with Chisel's default output mode.

flo-llvm-debug

Generates a VCD file that's compatible with Chisel's "--debug" option.

flo-llvm-vcdtmp

Generates a VCD file that's compatible with Chisel's "--emitTempNodes" option.

flo-mwe (http://www.github.com/palmer-dabbelt/flo-mwe)

Multi-Word Expansion for Flo files. This consumes a Flo file and produces another Flo file that has multi-word operations split up multiple single-word operations.

flo-mwe

Produces an output Flo file that contains no extra mapping information. This output format is compatible with Jonathan's DREAMER tools, so it's probably the version you want.

flo-mwe-mapping

Produces an output Flo file that contains CATD and RSHD operations. These two pseudo-operations contains the mapping information from full-width nodes to word-width nodes.

pconfigure (http://www.github.com/palmer-dabbelt/pconfigure)

A build system. See the documentation at http://www.dabbelt.com/~palmer/software/pconfigure/doc/

pconfigure

The main build system command. You should read the documentation, but if not just type

$ pconfigure
$ make
$ make check

ptest

A pretty-printer for test cases, as well as a script that runs tests and formats their output such that in can be understood by the pretty printer.

vcddiff (http://www.github.com/palmer-dabbelt/vcddiff)

vcddiff

Takes two VCD files and diffs them. This is a context-aware diff, so it'll work if the ordering of statements changes within a cycle or if the VCD internal temporary names change.

libvcd

A library that's designed to be used to parse VCD files.

vcd2step (http://www.github.com/palmer-dabbelt/vcd2step)

Converts a VCD file to a file that can be read by the Chisel tester API.

libdrasm (http://www.github.com/palmer-dabbelt/libdrasm)

LIBrary for DReamer ASseMbly, not really used yet.

libocn (http://www.github.com/palmer-dabbelt/libocn)

LIBrary for On-Chip Networks, not really used yet.

tek (http://www.github.com/palmer-dabbelt/tek)

A Makefile generator for LaTeX. There's no documentation, but you can probably just get away with running

$ tek
$ make

to build any of my LaTeX projects.

Edit - History - Print - Recent Changes - Search
Page last modified on May 23, 2014, at 01:23 am