AN 999: Drive-on-Chip with Functional Safety Design Example: Agilex™ 7 Devices
ID
823627
Date
7/04/2024
Public
1. About the Drive-on-Chip with Functional Safety Design Example for Agilex™ 7 Devices
2. Getting Started
3. Rebuilding the Drive-on-Chip Design
4. Functional Description of the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
5. HPS Channel Safety Software
6. Drive-on-Chip Design Recommendations and Disclaimers
7. Document Revision History for AN 999: Drive-on-Chip with Functional Safety Design Example for Agilex 7 Devices
2.1. Software Requirements for the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
2.2. Hardware Requirements for the Safe Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
2.3. Downloading and Installing the Design
2.4. Installing Python
2.5. Creating an SD Card Image
2.6. Setting Up your Development Board for the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
2.7. Debugging and Monitoring the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices with Python GUI
2.8. Looking into the Drive-On-Chip Output
3.1. Generating the Platform Designer System
3.2. Generating and Building the NiosV/g BSP for the Drive-On-Chip Design Example
3.3. Compiling the Hardware in the Intel Quartus Prime Software
3.4. Modifying the Motor Control Software Application
3.5. Generating .jic and .rbf files After Hardware Modifications
3.6. Recreate an SD Card Image
3.7. Modifying the HPS Safety Function Application
4.4. Shared Memory Subsystem
The shared memory is a 4x32 bit dual-port block RAM.
One side connects via AXI to the HPS. The other side connects via APB interface to the FPGA cross comparison block. The design implements error correction codes (ECC) on both ports, allowing single-bit errors to be automatically corrected and multibit errors to be detected. The correction of single-bit errors allows the safety function to continue despite a single fault. If uncorrectable multibit errors are detected, the memory_fault_p/n complementary-pair output is asserted. You can only deassert this output by the active-low reset_safety_n input.
Address | Data |
---|---|
0x0 | FPGA payload |
0x4 | FPGA status |
0x8 | HPS payload |
0xC | HPS status |
FPGA status / HPS status bit | Meaning |
---|---|
0 | Valid data from the channel is ready to be compared. Comparison pending. |
1 | Comparison done in the corresponding channel. |