This repository tracks releases of the BSG Manycore source code and infrastructure. It can be used to:
-
Create Amazon Machine Images with manycore tools and libraries-preinstalled.
-
Compile and Simulate FPGA Designs using the repositories and git hashes listed in
Makefile.deps
-
Generate Amazon FPGA Images using the repositories and git hashes listed in
Makefile.deps
.
-
checkout-repos
: Clone repositories that are needed for the Manycore/Bladerunner project. -
build-ami
: Builds the Amazon Machine Image (AMI) and emits the AMI ID. -
build-dcp
: Compiles the manycore design (locally) as a Design Checkpoint (DCP) -
build-afi
: Uploads a Design Checkpoint (DCP) to AWS and processes it into an Amazon FPGA Image (AFI) with an Amazon Global FPGA Image ID (AGFI) -
print-ami
: Prints the current AMI associated with the version in Makefile.deps.
Makefile
provides targets cloning repositories and building new Amazon Machine
images.
Makefile.amibuild
provides targets for building and installing the manycore
tools on a Amazon EC2 instance. Indirectly used by the target build-ami
in Makefile.
Makefile.deps
Lists the repository dependencies for this project and what
commits from each repository constitute a release (listed as <REPO_NAME> := commit_hash
)
Makefile.common
defines paths to each cloned repository using the DEPENDENCIES
variable defined Makefile.deps
To run cosimulation of the manycore architecture, clone this repository and then
run make checkout-repos
. Define BSG_IP_CORES_DIR and BSG_MANYCORE_DIR as
environment variables pointing to the BaseJump STL and BSG Manycore Directories,
and run make cosimulation
from inside the BSG F1/cl_manycore directory.
(This process will be simplified in v0.4.3)
These steps will build the FPGA image and upload it to AWS. FPGA_IMAGE_VERSION will be used as the value for the 'Version' key in AFI Tags. The new AFI/AGFI IDs are printed on the command line and in upload.json.
-
Clone this repository.
-
Update the FPGA_IMAGE_VERSION variable in
Makefile.deps
to avoid naming conflicts. -
Change the repository commit IDs in
Makefile.deps
to the desired commit IDs. -
Run
make build-afi
from inside this repository.
The new AFI/AGFI IDs are printed on the command line and in upload.json.
These steps will build the Machine image and upload it to AWS. FPGA_IMAGE_VERSION will be used as the value for the 'Version' key in AMI Tags.
-
Clone this repository.
-
Update the FPGA_IMAGE_VERSION variable in
Makefile.deps
to avoid naming conflicts. -
Change the repository commit IDs in
Makefile.deps
to the desired commit IDs. -
Commit changes and push to a branch. (This step is critical!)
-
Run
make build-ami
from inside this repository.
These steps will build an AMI and an AFI and upload them to AWS. FPGA_IMAGE_VERSION will be used as the value for the 'Version' key in the AMI and AFI Tags.
-
Clone this repository.
-
Update the FPGA_IMAGE_VERSION variable in
Makefile.deps
to avoid naming conflicts. -
Change the repository commit IDs in
Makefile.deps
to the desired commit IDs. -
Run
make build-afi
from inside this repository. (See the section Build an Amazon FPGA Image) -
Replace the
AGFI_ID
andAMI_ID
variables with the new values in upload.json (generated by the previous step). -
Commit the new commit hashes, and AGFI/AFI_ID variables and push the changes to a branch.
-
Run
make build-ami
from inside this repository. (See the section Build an Amazon Machine Image) -
Test the release
-
Make a PR to
dev
ormaster
depending on the state of the release. -
Apply a tag to the release when it is merged to master