Prd Standalone Driver
Table of Contents
Introduction
The Partial Reconfiguration (PR) Decoupler IP provides logical isolation capabilities for PR designs. One or more PR Decoupler cores can be used to make the interface between a Reconfigurable Partition (RP) and the static logic safe from unpredictable activity while partial reconfiguration is occurring. When active, user-selected signals crossing between the RP and the static logic are driven to user-configurable values. When inactive, signals are passed unaltered. PR Decoupler cores can be connected to the PR Controller IP or custom user controllers to create a complete Partial Reconfiguration management solution.
The PR Decoupler core can be customized for the number of interfaces, type of interfaces, decoupling functionality, status and control. AXI-based interfaces are natively supported; and easily and efficiently enable AXI4-Stream based control, AXI4-Stream based status, or AXI4-Lite based status and control.
For more information, please refer to the Prd product page which includes links to the official documentation and resource utilization.
NOTE: Partial Reconfiguration (PR) Decoupler IP has now been renamed as DFX (Dynamic Function eXchange) decoupler.
Driver Sources
The source code for the driver is included with the Vitis Unified Software Platform installation, as well as being available in the Xilinx Github repository.
Driver Name | Path in Vitis | Path in Github |
---|---|---|
prd | <Vitis Install Directory>/data/embedded/XilinxProcessorIPLib/drivers/prd_<version> | https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/prd |
Note: To view the sources for a particular release, use the rel-version tag in github. For example, for the 2024.1 release, the proper version of the code is: https://github.com/Xilinx/embeddedsw/tree/xlnx_rel_v2024.1/XilinxProcessorIPLib/drivers/prd
The driver source code is organized into different folders. The table below shows the prd driver source organization.
Directory | Description |
---|---|
doc | Provides the API and data structure details |
data | Driver .tcl , .mdd and .yaml files |
examples | Example applications that show how to use the driver features |
src | Driver source files, make and cmakelists file |
Note: The .yaml(in data folder) and CMakeLists.txt(in src folder) files would be used in the System Device-tree based flow.
Driver Implementation
For a full list of features supported by this IP, please refer to the Prd product page
Features
- Support for all interface types registered in the Vivado™ Design Suite, including customer interfaces
- Multiple interfaces allowed per decoupler
- Unique decoupling behavior per interface
- Each interface can have clock domain crossing support
- Compatible with AXI4-Lite and AXI4-Stream user interfaces
- Multiple status and control options
- Connects directly to the Partial Reconfiguration Controller using the signal-based control interface
- Phased decoupling supported
Known Issues and Limitations
- None
Example Applications
Refer to the driver examples directory for various example applications that exercise the different features of the driver. Each application is linked in the table below. The following sections describe the usage and expected output of the various applications. These example applications can be imported into the Vitis IDE from the Board Support Package settings tab.
Links to Examples
Examples Path: https://github.com/Xilinx/embeddedsw/tree/xlnx_rel_v2024.1/XilinxProcessorIPLib/drivers/prd/examples
Test Name | Example Source | Description |
---|---|---|
Self Test | xprd_selftest_example.c | This example does a basic read-and-write test for the PR Decoupler device |
Set the Decoupler state | xprd_example.c | This example demonstrates how to set the Decoupler state(Decoupling OFF/ON). |
Example Application Usage
Self Test
This example does a basic read-and-write test for the PR Decoupler device
Expected Output
--- Entering main() --- Successfully ran PR Decoupler Selftest example --- Exiting main() --
Set the Decoupler state
This example demonstrates how to set the Decoupler state(Decoupling OFF/ON).
Expected Output
--- Entering main() --- Successfully ran PR Decoupler Example --- Exiting main() ---
Change Log
2024.1
- None
2023.2
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2023.2/doc/ChangeLog#L287
Related Links
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy