Go to file
2024-06-21 20:31:36 +00:00
home updating xyce and actsim 2024-04-09 12:10:48 +00:00
share/klayout klayout now works 2023-12-31 03:18:50 +00:00
ubuntu fix recursive clone 2024-06-21 20:31:36 +00:00
.drone.yml cleaning up useability, adding a few more tools 2022-09-24 18:31:12 -04:00
.gitignore gitignore .bcli-local-tar 2023-05-18 19:37:11 +00:00
.gitmodules klayout now works 2023-12-31 03:18:50 +00:00
bcli-develop.sh fixing spacing, small fixes 2024-06-21 13:10:27 -04:00
Dockerfile fix recursive clone 2024-06-21 20:31:36 +00:00
LICENSE adding gpl 2024-01-22 12:21:10 -05:00
Makefile small bugfixes 2024-06-21 17:11:22 +00:00
README.md updating for dockerhub 2024-06-05 16:50:55 -04:00
VERSION fixing up linkage, removing unused trilinos reconfigure script 2022-11-25 11:23:28 -05:00

Broccoli Development Environment

The following tools are available:
go - architectural and behavioral simulation
haystack - formal synthesis of self-timed circuits
act - circuit design and digital simulation
prspice - configure digital/analog circuit co-simulation
Xyce - analog circuit simulation
gaw - analog waveform viewer
klayout - circuit layout
magic - circuit layout
OpenROAD - physical design

Semiconductor PDKs are in /opt/cad/conf
Packages may be installed with 'sudo apt install '
Other usages of sudo are disabled

Setup

Download the Skywater 130nm PDK and configuration files, and extract them to your home directory:

wget https://broccoli-hosting.s3.us-east-2.amazonaws.com/sky130.tar.gz
mkdir ~/tech; tar -xzvf sky130.tar.gz -C ~/tech

Pull the docker image for the broccoli command line interface, and configure it.

docker pull broccolimicro/broccoli-cli:latest
git clone https://git.broccolimicro.io/Broccoli/broccoli-cli.git
source broccoli-cli/bcli-develop.sh
export BCLI_TECH="$HOME/tech"

Runtime

Boot up the development environment in docker

bcli up

Open up a shell inside the development environment. Here you will have access to all of the necessary tools.

bcli

Your home directory will be mounted at

/host

Many of the installed tools may be found at

/opt

Finally, vim is fully set up for both golang and act.

vim file.act

When you are done, you can shut down the development environment.

bcli down

Troubleshooting

This script runs the docker container with the following commands:

# This produces a list of groups and their gids like so:
# 1000 nbingham
# 138 docker
# ...
MEMBERS="$(groups | sed 's/ /\n/g' | xargs -I{} getent group {} | sed 's/\([^:]*\):[^:]*:\([^:]*\):.*/\2 \1/g')"

docker run --rm -d --net=host \
	-v $HOME:/host \
	-v "${BCLI_TECH:-/opt/tech}:/opt/cad/conf" \
	--name "bcli-$USER" \
	-h "bcli-$USER" \
	-e USER=$USER \
	-e USER_ID=$(id -u) \
	-e GROUP_ID=$(id -g) \
	-e DISPLAY=$DISPLAY \
	-e MEMBERS="$MEMBERS" \
	-v "/tmp/.X11-unix:/tmp/.X11-unix:rw" \
	broccolimicro/broccoli-cli:latest > /dev/null

There are multiple versions of docker, the one that seems to work best for this is docker.io. docker-ce seems to have trouble writing files in the container.

sudo apt install docker.io

If graphical tools (such as magic and gaw) fail to launch, you may need to install xhost on your local machine, and grant docker permission to access your X server.

xhost +local:docker