From ea84a17691c1fbea81644788b78699702c8faaf3 Mon Sep 17 00:00:00 2001 From: Deborah Soung Date: Mon, 14 Jun 2021 15:34:45 -0700 Subject: explain sub-projects in README (#1962) * explain sub-projects * Update README.md Co-authored-by: Megan Wachs Co-authored-by: Megan Wachs --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 91aef6b6..9aba4e8a 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,17 @@ Also included is: - **Chisel Stage**, `chisel3.stage.*`, which contains compilation and test functions that are invoked in the standard Verilog generation and simulation testing infrastructure. These can also be used as part of custom flows. + +### Chisel Sub-Projects + +Chisel consists of 4 Scala projects; each is its own separate compilation unit: + +- [`core`](core) is the bulk of the source code of Chisel, depends on `macros` +- [`src/main`](src/main) is the "main" that brings it all together and includes a [`util`](src/main/scala/chisel3/util) library, which depends on `core` +- [`plugin`](plugin) is the compiler plugin, no internal dependencies +- [`macros`](macros) is most of the macros used in Chisel, no internal dependencies + +Code that touches lots of APIs that are private to the `chisel3` package should belong in `core`, while code that is pure Chisel should belong in `src/main`. ### Which version should I use? -- cgit v1.2.3