summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Lawson2015-07-17 08:57:50 -0700
committerJim Lawson2015-07-17 08:57:50 -0700
commit0be11a454b8d5d47111c1d5037e718cc57232e32 (patch)
treee1dd219c26cfe985e55c1d50b3b89e43a7a15d71
parentc2096bdad9af49d4f0e684771565b7bb7c531b7b (diff)
Update README with minimal build and test information.
-rw-r--r--README.md79
1 files changed, 78 insertions, 1 deletions
diff --git a/README.md b/README.md
index 58f3c3a1..d85bddac 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,86 @@
+# Chisel3
chisel3 is a new FIRRTL based chisel
the current backward incompatiabilities with chisel 2.x are:
+```scala
val wire = Bits(width = 15)
-
+```
is
+```scala
val wire = Wire(Bits(width = 15))
+```
+
+## Chisel3 Infrastructure.
+
+Chisel3 is much more modular than Chisel2. What was once provided by a
+monolithic Scala program, is provided by separate components.
+
+Currently, those components are:
+ - Chisel3 (Scala)
+ - firrtl (Stanza)
+
+and for the C++ simulator
+ - filter (Python/C++)
+ - flo-llvm (C++)
+ - clang
+
+firrtl can generate Verilog output directly, so fewer components are
+required for Verilog testing.
+
+### Stanza
+In order to build firrtl, you need a (currently patched) copy of
+Stanza. (We should add this to the firrtl repo in utils/bin.)
+
+### firrtl
+We assume that copies (or links to) firrtl and filter are in
+chisel3/bin. flo-llvm and clang should be found in your $PATH.
+
+Follow the instructions on the firrtl repo for building firrtl and put
+the resulting binary (utils/bin/firrtl) in chisel3/bin.
+
+### filter
+filter is available from the chisel3 repo as a .cpp file. ucbjrl has a
+Python version. You could implment it using sed or awk.
+
+### flo-llvm
+flo-llvm is Palmer's flo to (.o,.v) converter. It's hosted at:
+ https://github.com/ucb-bar/flo
+and
+ https://github.com/palmer-dabbelt/flo-llvm
+
+
+Installation instructions can be found at:
+ https://wiki.eecs.berkeley.edu/dreamer/Main/DistroSetup
+
+### clang
+clang is available for Linux and Mac OS X and usually comes installed
+with development tools. You need to ensure that the version you're
+using is compatible with flo-llvm (currently, clang/llvm 3.6). There
+are instructions on the web for managing multiple versions of
+clang/llvm.
+
+Once you have all the components in place, build and publish Chisel3:
+
+```shell
+% cd chisel3
+% sbt clean publish-local
+```
+
+# Repos of Test Code
+ - Basic Chisel3 tests https://github.com/ucb-bar/chisel3-tests
+
+bin directory contains shell script wrappers that may need editing for your environment (absolute paths)
+
+ - Tutorials https://github.com/ucb-bar/chisel-tutorial
+
+branch chisel3prep should be buildable with either Chisel2 or Chisel3.
+
+```shell
+% make chiselVersion=2.3-SNAPSHOT clean check
+```
+or
+```shell
+% make chiselVersion=3.0 clean check
+```