Skip to content

Commit e2fd887

Browse files
committed
Bump for 100219 release
2 parents 0289a2c + 896cad0 commit e2fd887

File tree

8 files changed

+341
-794
lines changed

8 files changed

+341
-794
lines changed

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
![Chisel 3](https://raw.githubusercontent.com/freechipsproject/chisel3/master/doc/images/chisel_logo.svg?sanitize=true)
22

3-
#
3+
---
44

55
[![Join the chat at https://gitter.im/freechipsproject/chisel3](https://badges.gitter.im/freechipsproject/chisel3.svg)](https://gitter.im/freechipsproject/chisel3?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
66
[![CircleCI](https://circleci.com/gh/freechipsproject/chisel3/tree/master.svg?style=shield)](https://circleci.com/gh/freechipsproject/chisel3/tree/master)
77
[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/freechipsproject/chisel3.svg?label=release)](https://github.com/freechipsproject/chisel3/releases/latest)
88

99
[**Chisel**](https://www.chisel-lang.org) is a hardware design language that facilitates **advanced circuit generation and design reuse for both ASIC and FPGA digital logic designs**.
1010
Chisel adds hardware construction primitives to the [Scala](https://www.scala-lang.org) programming language, providing designers with the power of a modern programming language to write complex, parameterizable circuit generators that produce synthesizable Verilog.
11-
This generator methodology enables the creation of re-usable components and libraries, such as the FIFO queue and arbiters in the [Chisel Standard Library](https://www.chisel-lang.org/api/latest/chisel3/util/index.html), raising the level of abstraction in design while retaining fine-grained control.
11+
This generator methodology enables the creation of re-usable components and libraries, such as the FIFO queue and arbiters in the [Chisel Standard Library](https://www.chisel-lang.org/api/latest/#chisel3.util.package), raising the level of abstraction in design while retaining fine-grained control.
1212

1313
For more information on the benefits of Chisel see: ["What benefits does Chisel offer over classic Hardware Description Languages?"](https://stackoverflow.com/questions/53007782/what-benefits-does-chisel-offer-over-classic-hardware-description-languages)
1414

15-
Chisel is powered by [FIRRTL (Flexible Intermediate Representation for RTL)](https://github.com/freechipsproject/firrtl), a hardware compiler framework that performs optimizations of Chisel-generated circuits and supports custom user-defined circuit transformations.
15+
Chisel is powered by [FIRRTL (Flexible Intermediate Representation for RTL)](https://github.com/freechipsproject/firrtl), a hardware compiler framework that performs optimizations of Chisel-generated circuits and supports custom user-defined circuit transformations.
1616

1717
## What does Chisel code look like?
1818

1919
Consider an FIR filter that implements a convolution operation, as depicted in this block diagram:
2020

21-
<img src="doc/images/fir_filter.svg?sanitize=true" width="512" />
21+
<img src="https://raw.githubusercontent.com/freechipsproject/chisel3/master/doc/images/fir_filter.svg?sanitize=true" width="512" />
2222

2323
While Chisel provides similar base primitives as synthesizable Verilog, and *could* be used as such:
2424

@@ -51,15 +51,15 @@ class FirFilter(bitWidth: Int, coeffs: Seq[UInt]) extends Module {
5151
for (i <- 1 until coeffs.length) {
5252
zs(i) := zs(i-1)
5353
}
54-
54+
5555
// Do the multiplies
5656
val products = VecInit.tabulate(coeffs.length)(i => zs(i) * coeffs(i))
57-
57+
5858
// Sum up the products
5959
io.out := products.reduce(_ + _)
6060
}
6161
```
62-
62+
6363
and use and re-use them across designs:
6464
```scala
6565
val movingAverage3Filter = FirFilter(8.W, Seq(1.U, 1.U, 1.U)) // same 3-point moving average filter as before
@@ -72,11 +72,11 @@ val triangleFilter = FirFilter(8.W, Seq(1.U, 2.U, 3.U, 2.U, 1.U)) // 5-point FI
7272

7373
### Bootcamp Interactive Tutorial
7474
The [**online Chisel Bootcamp**](https://mybinder.org/v2/gh/freechipsproject/chisel-bootcamp/master) is the recommended way to get started with and learn Chisel.
75-
**No setup is required** (it runs in the browser), nor does it assume any prior knowledge of Scala.
75+
**No setup is required** (it runs in the browser), nor does it assume any prior knowledge of Scala.
7676

7777
### Build Your Own Chisel Projects
7878

79-
See [the setup instructions](SETUP.md) for how to set up your environment to run Chisel locally.
79+
See [the setup instructions](https://github.com/freechipsproject/chisel3/blob/master/SETUP.md) for how to set up your environment to run Chisel locally.
8080

8181
When you're ready to build your own circuits in Chisel, **we recommend starting from the [Chisel Template](https://github.com/freechipsproject/chisel-template) repository**, which provides a pre-configured project, example design, and testbench. Follow the [chisel-template readme](https://github.com/freechipsproject/chisel-template) to get started.
8282

@@ -88,7 +88,7 @@ resolvers ++= Seq(
8888
)
8989
libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.2-SNAPSHOT"
9090
libraryDependencies += "edu.berkeley.cs" %% "chisel-testers2" % "0.1-SNAPSHOT"
91-
```
91+
```
9292

9393
### Design Verification
9494

@@ -107,12 +107,12 @@ These simulation-based verification tools are available for Chisel:
107107
- [**Gitter**](https://gitter.im/freechipsproject/chisel3), where you can ask questions or discuss anything Chisel
108108
- [**Website**](https://www.chisel-lang.org)
109109

110-
If you are migrating from Chisel2, see [the migration guide on the wiki](https://github.com/ucb-bar/chisel3/wiki/Chisel3-vs-Chisel2).
110+
If you are migrating from Chisel2, see [the migration guide](https://www.chisel-lang.org/chisel3/chisel3-vs-chisel2.html).
111111

112112
### Data Types Overview
113-
These are the base data types for defining circuit wires (abstract types which may not be instantiated are greyed out):
113+
These are the base data types for defining circuit components:
114114

115-
![Image](doc/images/type_hierarchy.png?raw=true)
115+
![Image](https://raw.githubusercontent.com/freechipsproject/chisel3/master/doc/images/type_hierarchy.svg?sanitize=true)
116116

117117
## Developer Documentation
118118
This section describes how to get started developing Chisel itself, including how to test your version locally against other projects that pull in Chisel using [sbt's managed dependencies](https://www.scala-sbt.org/1.x/docs/Library-Dependencies.html).

build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ def javacOptionsVersion(scalaVersion: String): Seq[String] = {
2828
}
2929
}
3030

31-
val defaultVersions = Map("firrtl" -> "1.2.0-RC2")
31+
val defaultVersions = Map("firrtl" -> "1.2-100219-SNAPSHOT")
3232

3333
lazy val commonSettings = Seq (
3434
resolvers ++= Seq(
3535
Resolver.sonatypeRepo("snapshots"),
3636
Resolver.sonatypeRepo("releases")
3737
),
3838
organization := "edu.berkeley.cs",
39-
version := "3.2.0-RC2",
39+
version := "3.2-100219-SNAPSHOT",
4040
autoAPIMappings := true,
4141
scalaVersion := "2.12.10",
4242
crossScalaVersions := Seq("2.12.10", "2.11.12"),

build.sc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ object chiselCompileOptions {
3535
val crossVersions = Seq("2.12.10", "2.11.12")
3636

3737
// Provide a managed dependency on X if -DXVersion="" is supplied on the command line.
38-
val defaultVersions = Map("firrtl" -> "1.2.0-RC2")
38+
val defaultVersions = Map("firrtl" -> "1.2-100219-SNAPSHOT")
3939

4040
def getVersion(dep: String, org: String = "edu.berkeley.cs") = {
4141
val version = sys.env.getOrElse(dep + "Version", defaultVersions(dep))
@@ -67,7 +67,7 @@ trait CommonChiselModule extends SbtModule {
6767

6868
trait PublishChiselModule extends CommonChiselModule with PublishModule {
6969
override def artifactName = "chisel3"
70-
def publishVersion = "3.2.0-RC2"
70+
def publishVersion = "3.2-100219-SNAPSHOT"
7171

7272
def pomSettings = PomSettings(
7373
description = artifactName(),

doc/images/Makefile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.PHONY: all
2+
3+
sources = \
4+
type_hierarchy.dot
5+
6+
all: $(sources:%.dot=%.svg) $(sources:%.dot=%.png)
7+
8+
%.svg: %.dot
9+
dot -Tsvg $< -o $@
10+
11+
%.png: %.dot
12+
dot -Tpng $< -o $@

doc/images/type_hierarchy.dot

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
digraph TypeHierarchy {
2+
graph [rankdir=BT bgcolor="transparent"]
3+
{ node [style=filled,shape=box]
4+
{ node [fillcolor="#f7fbff"]
5+
Data
6+
Element
7+
Bits Num
8+
Aggregate
9+
VecLike
10+
"Chisel Internal"
11+
}
12+
{ node [fillcolor="#e5f5e0"]
13+
Bool UInt SInt FixedPoint
14+
Reset
15+
AsyncReset
16+
Record
17+
Bundle
18+
Vec
19+
"Chisel Types"
20+
}
21+
{ node [fillcolor="#fcbba1"]
22+
"User Types"
23+
Ellipsis [label="..."]
24+
}
25+
26+
subgraph cluster_data_hierarchy {
27+
color=transparent
28+
Element
29+
Bits Num
30+
Reset
31+
Bool UInt SInt FixedPoint
32+
color=transparent
33+
Aggregate
34+
VecLike
35+
Record
36+
Bundle
37+
Vec
38+
39+
{Aggregate Element} -> Data
40+
{Bits Reset} -> Element
41+
{FixedPoint SInt UInt} -> {Bits Num}
42+
Bool -> {UInt Reset}
43+
Ellipsis -> Bundle -> Record -> Aggregate
44+
Vec -> {Aggregate VecLike}
45+
AsyncReset -> {Element Reset}
46+
}
47+
subgraph cluster_legend {
48+
label=Legend
49+
"User Types" -> "Chisel Types" -> "Chisel Internal"
50+
}
51+
}
52+
}

doc/images/type_hierarchy.png

15.5 KB
Loading

0 commit comments

Comments
 (0)