Skip to content
Snippets Groups Projects
Forked from atlas / athena
Source project has a limited visibility.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

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.