Prd Standalone Driver

This page gives an overview of the bare-metal driver support for the Xilinx® LogiCORE™ IP Partial Reconfiguration Decoupler(PRD) soft IP.   


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 NamePath in VitisPath 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 2023.2 release, the proper version of the code is: https://github.com/Xilinx/embeddedsw/tree/xlnx_rel_v2023.2/XilinxProcessorIPLib/drivers/prd


The driver source code is organized into different folders.  The table below shows the prd driver source organization. 

DirectoryDescription
doc

Provides the API and data structure details

dataDriver .tcl , .mdd and .yaml files
examplesExample applications that show how to use the driver features
srcDriver 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_v2023.2/XilinxProcessorIPLib/drivers/prd/examples

Test NameExample SourceDescription
Self Testxprd_selftest_example.cThis example does a basic read-and-write test for the PR Decoupler device
Set the Decoupler statexprd_example.cThis 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

2023.2

https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2023.2/doc/ChangeLog#L287


Related Links





© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy