commit | e1d3120d279f5baa93bfce3da5fca4f2e4a352a6 | [log] [tgz] |
---|---|---|
author | manarabdelaty <manarabdelatty@aucegypt.edu> | Wed Dec 09 23:36:09 2020 +0200 |
committer | manarabdelaty <manarabdelatty@aucegypt.edu> | Wed Dec 09 23:36:09 2020 +0200 |
tree | 0da38497e2c0c0974b051a8d110fe850906c07c0 | |
parent | 9ed16cc7b77ccf2c6ee9cb2604a3cef4eb862168 [diff] | |
parent | 4c191e772151e556c99e0ebb552f996ccd66eec2 [diff] |
Merge branch 'master' of https://github.com/Manarabdelaty/Caravel-OpenFPGA-EF
The repo contains the FPGA layout integration with the Caravel chip. Thee layout is an 8x8 FPGA fabric generated using OpenFPGA and hardened using OpenLANE.
<<<<<<< HEAD
Start by cloning the repo and uncompressing the files.
git clone https://github.com/efabless/caravel.git cd caravel make uncompress
Then you need to install the open_pdks prerequisite:
* 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 shows how.
The 8x8 fpga interface to the managent area can be found at fpga_top.v . The fabric is conncted to the managemtent area logic analyzer and wishbone bus.
4c191e772151e556c99e0ebb552f996ccd66eec2
(WIP)
<<<<<<< HEAD Then, you can learn more about the caravel chip by watching these video:
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.
If you will use OpenLANE to harden your design, go through the instructions in this README.md.
Then, you will need to put your design aboard the Caravel chip. Make sure you have the following:
./gds/
in the Caravel directory.* Note: You can avoid the need for the magic prerequisite by using the openlane docker to run the make step. This section shows how.
Run the following command:
export PDK_ROOT=<The place where the installed pdk resides. The same PDK_ROOT used in the pdk installation step> make
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.
To use the magic installed inside Openlane to complete the final GDS streaming out step, export the following:
export PDK_ROOT=<The location where the pdk is installed> export OPENLANE_ROOT=<the absolute path to the openlane directory cloned or to be cloned> export IMAGE_NAME=<the openlane image name installed on your machine. Preferably openlane:rc5> export CARAVEL_PATH=$(pwd)
Then, mount the docker:
docker run -it -v $CARAVEL_PATH:$CARAVEL_PATH -v $OPENLANE_ROOT:/openLANE_flow -v $PDK_ROOT:$PDK_ROOT -e CARAVEL_PATH=$CARAVEL_PATH -e PDK_ROOT=$PDK_ROOT -u $(id -u $USER):$(id -g $USER) $IMAGE_NAME
Finally, once inside the docker run the following commands:
cd $CARAVEL_PATH
make
exit
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.
<macro>
/ : includes all configuration files used to run openlane on your project.The managment SoC runs firmware that can be used to:
The memory map of the management SoC can be found here
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 for details. The repository contains a sample user project that contains a binary 32-bit up counter.
The firmware running on the Management Area SoC, configures the I/O pads used by the counter and uses the logic probes to observe/control the counter. Three firmware examples are provided:
=======
4c191e772151e556c99e0ebb552f996ccd66eec2