You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Then you need to install the open_pdks prerequisite:
22
39
-[Magic VLSI Layout Tool](http://opencircuitdesign.com/magic/index.html) is needed to run open_pdks -- version >= 8.3.60*
23
40
24
-
> \* Note: You can avoid the need for the magic prerequisite by using the openlane docker to do the installation step in open_pdks. This [file](https://github.com/efabless/openlane/blob/develop/travisCI/travisBuild.sh) shows how.
41
+
> \* Note: You can avoid the need for the magic prerequisite by using the openlane docker to do the installation step in open_pdks. This could be done by cloning [openlane](https://github.com/efabless/openlane/tree/master) and following the instructions given there to use the Makefile.
25
42
26
43
Install the required version of the PDK by running the following commands:
27
44
@@ -34,14 +51,18 @@ Then, you can learn more about the caravel chip by watching these video:
34
51
- Caravel User Project Features -- https://youtu.be/zJhnmilXGPo
35
52
- Aboard Caravel -- How to put your design on Caravel? -- https://youtu.be/9QV8SDelURk
36
53
- Things to Clarify About Caravel -- What versions to use with Caravel? -- https://youtu.be/-LZ522mxXMw
37
-
- You could only use openlane:rc5
54
+
- You could only use openlane:rc6
38
55
- Make sure you have the commit hashes provided here inside the [Makefile](./Makefile)
39
56
## Aboard Caravel:
40
57
41
58
Your area is the full user_project_wrapper, so feel free to add your project there or create a differnt macro and harden it seperately then insert it into the user_project_wrapper. For example, if your design is analog or you're using a different tool other than OpenLANE.
42
59
43
60
If you will use OpenLANE to harden your design, go through the instructions in this [README.md][0].
44
61
62
+
You must copy your synthesized gate-level-netlist for `user_project_wrapper` to `verilog/gl/` and overwrite `user_project_wrapper.v`. Otherwise, you can point to it in [info.yaml](info.yaml).
63
+
64
+
> Note: If you're using openlane to harden your design, this should happen automatically.
65
+
45
66
Then, you will need to put your design aboard the Caravel chip. Make sure you have the following:
46
67
47
68
-[Magic VLSI Layout Tool](http://opencircuitdesign.com/magic/index.html) installed on your machine. We may provide a Dockerized version later.\*
@@ -56,7 +77,7 @@ export PDK_ROOT=<The place where the installed pdk resides. The same PDK_ROOT us
56
77
make
57
78
```
58
79
59
-
This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect hundred of thousands of magic DRC violations with the current "development" state of caravel.
80
+
This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect ~90 magic DRC violations with the current "development" state of caravel.
60
81
61
82
## Running Make using OpenLANE Magic
62
83
@@ -65,7 +86,7 @@ To use the magic installed inside Openlane to complete the final GDS streaming o
65
86
```bash
66
87
export PDK_ROOT=<The location where the pdk is installed>
67
88
export OPENLANE_ROOT=<the absolute path to the openlane directory cloned or to be cloned>
68
-
export IMAGE_NAME=<the openlane image name installed on your machine. Preferably openlane:rc5>
89
+
export IMAGE_NAME=<the openlane image name installed on your machine. Preferably openlane:rc6>
69
90
export CARAVEL_PATH=$(pwd)
70
91
```
71
92
@@ -82,7 +103,12 @@ make
82
103
exit
83
104
```
84
105
85
-
This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect hundred of thousands of magic DRC violations with the current "development" state of caravel.
106
+
This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect ~90 magic DRC violations with the current "development" state of caravel.
107
+
108
+
109
+
## IMPORTANT:
110
+
111
+
Please make sure to run `make compress` before commiting anything to your repository. Avoid having 2 versions of the gds/user_project_wrapper.gds or gds/caravel.gds one compressed and the other not compressed.
86
112
87
113
## Required Directory Structure
88
114
@@ -110,7 +136,7 @@ The memory map of the management SoC can be found [here](verilog/rtl/README)
110
136
This is the user space. It has limited silicon area (TBD, about 3.1mm x 3.8mm) as well as a fixed number of I/O pads (37) and power pads (10). See [the Caravel premliminary datasheet](doc/caravel_datasheet.pdf) for details.
111
137
The repository contains a [sample user project](/verilog/rtl/user_proj_example.v) that contains a binary 32-bit up counter. </br>
@@ -120,4 +146,4 @@ The firmware running on the Management Area SoC, configures the I/O pads used by
120
146
3. Configure the User Project I/O pads as o/p. Use the Chip LA to control the clock source and reset signals and observe the counter value for five clock cylcles: [LA_Test2](verilog/dv/caravel/user_proj_example/la_test2).
0 commit comments