|
|
# masterFIP gateware support
|
|
|
# masterFIP gateware
|
|
|
|
|
|
-----
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
This project provides gateware support for the
|
|
|
[masterfip](https://www.ohwr.org/project/masterfip)
|
|
|
project.
|
|
|
|
|
|
![](/uploads/a7bf55dc3454bf75a99fe7692752e8bc/masterFIP_gw_arch_900x500.png)
|
|
|
Figure 1: Overview of the gateware architecture of the fmc-worldfip on a
|
|
|
SPEC carrier.
|
|
|
Following the evaluation of different [implementation
|
|
|
solutions](https://www.ohwr.org/project/masterfip/uploads/daecb523471c9efac23b59ee624564d7/masterFIP_technical_choice.pdf),
|
|
|
the technical choice for the design was the use of [Mock
|
|
|
Turtle](https://www.ohwr.org/project/mock-turtle/wiki) (also referred to
|
|
|
as White Rabbit Node Core).
|
|
|
|
|
|
Mock Turtle is a HDL core of a generic distributed control system node,
|
|
|
based on **multiple deterministic CPU cores** where the users can run
|
|
|
any sort of hard real time applications.
|
|
|
The applications can be written in **bare metal C**, using standard GNU
|
|
|
tool set, cross-compiled and loaded into the CPUs. The CPUs can
|
|
|
communicate between each other through
|
|
|
a dedicated **Shared Memory** and with the host through **Host Message
|
|
|
Queues**.The following figure illustrates the SPEC FPGA gateware
|
|
|
architecture,
|
|
|
spec\_masterfip\_mt.
|
|
|
|
|
|
[![](/uploads/a7bf55dc3454bf75a99fe7692752e8bc/masterFIP_gw_arch_900x500.png)](https://www.ohwr.org/project/masterfip-gw/uploads/47ed455884d659478ca4983b9cbb58b7/masterFIP_gw_arch_1800x1100.png)
|
|
|
*Overview of the gateware architecture of the fmc-worldfip on a SPEC
|
|
|
carrier**
|
|
|
|
|
|
The top entity consists of two main blocks: the
|
|
|
*spec\_node\_template**, which is the Mock Turtle top level for SPEC,
|
|
|
and the application-specific **fmc-masterFIP\_core**.
|
|
|
The communication between the two modules is through wishbone.
|
|
|
|
|
|
On one side (red arrows) the fmc\_masterfip\_core is the interface to
|
|
|
the **FMC hardware** i.e. FielDrive chip, external pulse LEMO, 1-wire
|
|
|
DS18B20 chip, LEDs.
|
|
|
On the other side (blue line in the figure below) it provides a set of
|
|
|
[wbgen2](https://www.ohwr.org/project/wishbone-gen/wiki) -generated
|
|
|
control and status registers, to interface through **wishbone** with the
|
|
|
Mock Turtle.
|
|
|
|
|
|
The fmc\_masterfip\_core core ignores the notion of the WorldFIP frame
|
|
|
type (ID\_DAT/RT\_DAT/..etc), or the macrocycle sequence and macrocycle
|
|
|
timing; the sw running on the
|
|
|
Mock Turtle CPUs is responsible for managing these aspects and for
|
|
|
providing to this core all the payload bytes (coming from the host) that
|
|
|
have to be serializedand or
|
|
|
for enabling the deserializer and then providing to the host the
|
|
|
deserialized bytes.
|
|
|
|
|
|
### Supported carriers
|
|
|
|
|
|
- [SPEC](https://www.ohwr.org/project/spec/wikis) PCIe 1-FMC-slot
|
|
|
carrier
|
|
|
|
|
|
### SPEC FPGA resource utilization metrics
|
|
|
### SPEC FPGA XC6SLX45T resource utilization metrics
|
|
|
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td>Number of Slice LUTs</td>
|
|
|
<td>57%</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>Number of RAMB16BWERs</td>
|
|
|
<td>75%</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>Number of RAMB8BWERs</td>
|
|
|
<td>9%</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>Number of bonded IOBs</td>
|
|
|
<td>31%</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
### Git sub-modules
|
|
|
|
|
|
- [etherbone-core](https://www.ohwr.org/project/etherbone-core/wikis):
|
|
|
hdl/ip\_cores/etherbone-core
|
|
|
- [general-cores](https://www.ohwr.org/project/general-cores/wikis):
|
|
|
hdl/ip\_cores/general-cores
|
|
|
- [gn4124-core](https://www.ohwr.org/project/gn4124-core/wikis):
|
|
|
hdl/ip\_cores/gn4124-core
|
|
|
- [nanoFIP-core](https://www.ohwr.org/project/nanofip/wiki):
|
|
|
hdl/ip\_cores/nano-fip
|
|
|
- [wr-cores](https://www.ohwr.org/project/wr-cores/wikis):
|
|
|
hdl/ip\_cores/wr-cores
|
|
|
- [wr-node-core](https://www.ohwr.org/project/wr-node-core/wikis):
|
|
|
hdl/ip\_cores/wr-cores
|
|
|
- Number of Slice LUTs: 57%|
|
|
|
- Number of RAMB16BWERs: 75%|
|
|
|
- Number of RAMB8BWERs: 9%|
|
|
|
- Number of bonded IOBs: 31%|
|
|
|
|
|
|
### Folder structure
|
|
|
|
... | ... | @@ -63,29 +67,29 @@ SPEC carrier. |
|
|
- **ISE project**: masterfip-gw/syn/
|
|
|
- **SPEC carrier top level**: masterfip-gw/top/spec
|
|
|
|
|
|
-----
|
|
|
|
|
|
## Documentation
|
|
|
### Git sub-modules
|
|
|
|
|
|
- [MasterFIP functional
|
|
|
specification](https://edms.cern.ch/document/1457263)
|
|
|
- [WR node core
|
|
|
project](https://www.ohwr.org/project/wr-node-core/wiki)
|
|
|
- Gateware manual:
|
|
|
- [nanoFIP-core](https://www.ohwr.org/project/nanofip/wiki):
|
|
|
hdl/ip\_cores/nano-fip
|
|
|
- [gn4124-core](https://www.ohwr.org/project/gn4124-core/wikis):
|
|
|
hdl/ip\_cores/gn4124-core
|
|
|
- [wr-node-core](https://www.ohwr.org/project/wr-node-core/wikis):
|
|
|
hdl/ip\_cores/wr-cores
|
|
|
- [general-cores](https://www.ohwr.org/project/general-cores/wikis):
|
|
|
hdl/ip\_cores/general-cores
|
|
|
- [wr-cores](https://www.ohwr.org/project/wr-cores/wikis):
|
|
|
hdl/ip\_cores/wr-cores
|
|
|
- [etherbone-core](https://www.ohwr.org/project/etherbone-core/wikis):
|
|
|
hdl/ip\_cores/etherbone-core
|
|
|
|
|
|
-----
|
|
|
|
|
|
## Support
|
|
|
|
|
|
We offer the following sources of support:
|
|
|
|
|
|
- [Frequently Asked Questions](FAQ)
|
|
|
- [Mailing list
|
|
|
fmc-worldfip@ohwr.org](https://www.ohwr.org/mailing_list/show?project_id=fmc-worldfip)
|
|
|
and its archive.
|
|
|
## Project info
|
|
|
|
|
|
*Please*** read the documentation and then the [FAQ](FAQ) ***before***
|
|
|
asking for support on the mailing list.
|
|
|
- [masterFIP functional
|
|
|
specification](https://edms.cern.ch/document/1457263)
|
|
|
- masterFIP design guide:
|
|
|
- [Mock Turtle project](https://www.ohwr.org/project/mock-turtle/wiki)
|
|
|
|
|
|
-----
|
|
|
|
... | ... | @@ -95,7 +99,7 @@ asking for support on the mailing list. |
|
|
|
|
|
-----
|
|
|
|
|
|
## Status
|
|
|
## Project Status
|
|
|
|
|
|
<table>
|
|
|
<tbody>
|
... | ... | @@ -109,7 +113,7 @@ asking for support on the mailing list. |
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>01-2015</td>
|
|
|
<td>Start working on HDL specification</td>
|
|
|
<td>Start working on HDL <strong>specification</strong></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>07-2015</td>
|
... | ... | @@ -117,15 +121,19 @@ asking for support on the mailing list. |
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>07-2016</td>
|
|
|
<td>Long runs with Cryo lab equipment run smoothly</td>
|
|
|
<td><strong>Long runs</strong> with Cryo lab equipment run smoothly</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>09-2016</td>
|
|
|
<td>Successful migration of RadMon</td>
|
|
|
<td>Successful <strong>migration</strong> of the RadMon application</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>02-2017</td>
|
|
|
<td>Stable gateware version</td>
|
|
|
<td><strong>Stable</strong> gateware version</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>03-2017</td>
|
|
|
<td>Section-wide gateware [review](https://www.ohwr.org/project/masterfip-gw/tree/eva_dev/doc/review_02032017)</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
... | ... | @@ -134,5 +142,5 @@ asking for support on the mailing list. |
|
|
|
|
|
-----
|
|
|
|
|
|
Eva Gousiou - 28 Feb 2017
|
|
|
*Eva Gousiou - 28 Feb 2017*
|
|
|
|