Skip to content
Snippets Groups Projects
Forked from atlas / athena
Source project has a limited visibility.

EMU 0xBEFE Project

This repository contains firmware code for endcap muon systems (GEM and CSC) backend and frontend electronics.

0xBEFE
├── Makefile
├── README.md
├── doc           ; documentation
├── regtools      ; XML to VHDL register tool
├── Hog           ; HOG build system (submodule)
├── Top           ; directory for HOG projects
├── address_table ; xml address tables
│   ├── boards    ;; board specific address tables
│   ├── common    ;; common address tables (ttc etc.)
│   └── gem       ;; GEM specific address tables
├── boards        ;; Board specific VHDL/BD/Constraints/IP
│   ├── apex
│   ├── ctp7
│   ├── cvp13
│   ├── ge11_oh
│   ├── ge21_oh
│   ├── glib
├── common        ; Common sources (GEM + CSC + OH)
│   ├── hdl
│   └── ip
├── gem           ; GEM specific sources
│   ├── hdl
│   └── ip
├── IP_repository ; Folder for packaged Xilinx IP
└── scripts       ; useful scripts

Building the firmware

This firmware is using the HOG framework as a build system:

HOG allows for multiple projects to happily coexist within a single repository, allowing sharing of source code between OH + GEM backend + CSC FED, as well as managing the deployment to the numerous hardware platforms that are supported.

In general, the process to build firmware from a fresh checkout consists of:

# shortcut to initialize git submodules
make init 
# creates a Vivado / ISE project 
Hog/CreateProject.sh <project name> 
# Launches synthesis + implementation 
Hog/LaunchWorkflow.sh <project name> 

The available projects can be seen as directories in the Top/ folder. HOG will also report a list of projects if you type Hog/CreateProject.sh without a project name.