Details
-
Enabler
-
Not Assigned
-
None
-
Obs Mgt & Controls
-
-
-
3
-
3
-
3.333
-
Team_CIPA
-
Sprint 5
-
-
-
-
10.6
-
Stories Completed, Outcomes Reviewed, Satisfies Acceptance Criteria, Accepted by FO
-
-
TALON-Infra Team_CIPA
-
SPO-1006
Description
Each TALON-DX Board is equipped with Intel Stratix 10 Soc (FPGA and ARM processor, a.k.a. Hardened Processor System - HPS, on the same silicon die). Stratix-10 provides two busses for communication between the HPS and FPGA, hi-performance Avalon bus and light-weight Avalon bus. The FPGA bitstream consists of many firmware IP blocks, each implementing a specific function. Each firmware IP block provides a set of registers that can be used to configure, control and monitor firmware, in addition, when needed a whole memory block may be transferred from software to firmware (or vice versa).
TDC team design a custom solution for communication between application software (running in the Linux user space) and FPGA firmware IP blocks (registers), to enable efficient and reliable mapping between software and firmware. Initial idea was to represent each firmware IP block as a Linux device, and use a standard Unix method for communication with firmware IP blocks.
The purpose of this enabler is to investigate an alternative solution (direct memory mapping), develop a prototype and measure performance. Results of the preliminary investigation and prototyping are promising, but more work is required.
(DeTri / tools / memory mapping)
This feature is limited in scope to developing a prototype(s) to:
- Investigate the use of AXI response codes (i.e. DECERR) to signal addressing errors to the userspace software.
- Supposedly, the DECERR raises an ARM data-abort exception in the CPU, that linux will handle and send a signal (maybe SIGBUS) to the offending process that can trap it and then raise an exception up the software/Tango stack.
- Investigate the use of AXI interface to issue outstanding transactions, which will inform the proposed solution.
- transition from Avalon memory mapped implementation to a more efficient solution. Should offer further performance improvements, especially with clock domain crossings in the register bus at run time and with timing closure at compile time.
To investigate -
- performance improvements for reading, by optimising reading of bulk data - hopefully simultaneously increasing data transport speed and reducing blocked CPU time.
- implement burst read and write on the HPS2FPGA high-performance bridge. This is a firmware modification and may double the throughput, and reduce blocking CPU time.