AMR - Clock and Reset Concepts (Common)

For board-specific clock/reset configurations, see:

Overview

This document describes common clock and reset concepts shared across all AMR Boards. All boards use CIPS-generated clocks and processor system reset IP for reset synchronization.

All AMR boards follow common clock and reset patterns despite implementation differences. The CIPS generates multiple PL reference clocks at standard frequencies for use by programmable logic IP blocks. Processor System Reset IP blocks synchronize asynchronous reset inputs to specific clock domains, ensuring proper reset timing relationships. Designs typically employ multiple clock domains to accommodate different IP block requirements, with some logic operating at lower frequencies for power efficiency and other logic at higher frequencies for performance. External reset inputs from CIPS are synchronized to internal clocks through the reset IP to prevent metastability and ensure reliable operation.

CIPS PL Reference Clocks (Common)

Standard CIPS Clock Outputs

All AMR boards generate these clocks from CIPS:

Clock Signal Typical Frequency Common Usage
pl0_ref_clk 100 MHz PL logic, SmartConnect, GPIO, general AXI
pl1_ref_clk 33.33 MHz Clock wizard input (for custom frequencies)
pl2_ref_clk 250 MHz NoC AXI interfaces, high-speed logic

CIPS Configuration:

PMC_CRP_PL0_REF_CTRL_FREQMHZ {100}
PMC_CRP_PL1_REF_CTRL_FREQMHZ {33.3333333}
PMC_CRP_PL2_REF_CTRL_FREQMHZ {250}

Board variations exist in clock usage strategies. Some boards use these CIPS clocks directly without additional clock generation, maintaining simplicity in the base design. Other boards may instantiate clocking wizard IP to generate additional custom frequencies when user kernels or application logic requires clock rates beyond the standard CIPS outputs.

PL Resets (Common)

CIPS Reset Output

All boards generate PL reset:

Reset Signal Configuration
pl0_resetn Main PL reset output from CIPS
Polarity Active low
Source CIPS reset logic
Count 1 (PS_NUM_FABRIC_RESETS = 1)

CIPS Configuration:

PS_NUM_FABRIC_RESETS {1}

Processor System Reset IP (Common)

Purpose

All boards utilize the Processor System Reset IP (xilinx.com:ip:proc_sys_reset) to handle reset synchronization requirements. The IP synchronizes external asynchronous resets to specific clock domains, preventing metastability and ensuring clean reset assertion and deassertion. The IP generates appropriately timed resets with proper setup and hold relationships relative to the clock edges. Separate reset outputs serve different purposes, with interconnect resets for AXI switches and arbitration logic distinct from peripheral resets for endpoint IP blocks.

Common Reset Outputs

Reset Output Purpose
interconnect_aresetn AXI interconnect reset (SmartConnect, NoC)
peripheral_aresetn AXI peripheral reset (GPIO, custom IP)
mb_reset MicroBlaze reset (if used)
bus_struct_reset Bus structure reset

Typical Usage Pattern

CIPS pl0_resetn (async)
  ↓
proc_sys_reset (synchronized to clock)
  ↓
interconnect_aresetn → SmartConnect
peripheral_aresetn → AXI GPIO, peripherals

Clock Domains (Common Concepts)

Typical AMR Clock Domains

Base designs typically have:

Clock Domain Frequency Usage
100 MHz pl0_ref_clk Most PL logic, AXI-Lite
250 MHz pl2_ref_clk NoC AXI interfaces
33.33 MHz pl1_ref_clk Available for clock wizard

Board-Specific:

  • V80: May need additional clocks for user kernels

  • RAVE: PCIe clock domain from GT, additional clocks for QDMA

Clock Domain Crossing

AXI NoC IP handles clock domain crossings:

  • Each AXI interface can have different clock

  • NoC synchronizes between domains

  • ASYNC fifos for different clock frequencies

Reset Synchronization (Common)

Reset Topology Pattern

Common reset structure:

External Reset (CIPS pl0_resetn)
  ↓
Primary proc_sys_reset (100 MHz domain)
  ↓
├─ interconnect_aresetn → SmartConnect
├─ peripheral_aresetn → Peripherals
└─ Can drive additional proc_sys_reset blocks
     ↓
  Secondary proc_sys_reset (other clock domains)
     ↓
  Domain-specific resets

Multiple Clock Domain Support

For designs with multiple clocks:

  1. Primary PSR - Synchronizes CIPS reset to primary clock (100 MHz)

  2. Secondary PSRs - Synchronize to additional clocks

  3. Clock Wizard - Generates custom frequencies

  4. dcm_locked - Used as input to secondary PSRs

Base Design Reset Pattern (Common)

Minimal Base Design

AMR base designs typically have:

  • 1-2× proc_sys_reset blocks

  • Simple reset topology

  • No clock wizard (uses CIPS clocks directly)

Located in:

  • PF1 test hierarchy

  • Additional domains if needed

Board-specific implementations vary in reset block count and complexity. Some board maintain minimal base designs with a single processor system reset block in the PF1 hierarchy, sufficient for the basic test logic. Other boards require multiple reset blocks to handle the various clock domains introduced by PL-based PCIe IP, QDMA IP, and user application logic, with each clock domain requiring its own synchronized reset.

Expansion for User Kernels

Adding Custom Clock Domains

When user applications require custom clock frequencies beyond the standard CIPS outputs, designs can add clocking wizard IP to generate the needed frequencies. The clocking wizard accepts pl1_ref_clk (33.33 MHz) as input and generates custom output frequencies such as 300 MHz, 500 MHz, or other application-specific rates through PLL multiplication and division.

Each custom clock domain requires a corresponding processor system reset block to provide properly synchronized resets. These reset blocks accept the primary reset signal along with the dcm_locked signal from the clocking wizard as inputs. The dcm_locked signal indicates that the PLL has achieved lock and the output clocks are stable. The reset blocks then generate domain-specific reset outputs synchronized to each custom clock.

An example structure for custom clock domains follows this pattern:

pl1_ref_clk (33.33 MHz)
  ↓
Clocking Wizard
  ↓
clk_300mhz, clk_500mhz
  ↓
proc_sys_reset_300, proc_sys_reset_500
  ↓
Kernel clocks and resets

Device Reboot / PDI Reload

Software-Based Device Reboot

AMR supports software-based device reboot functionality to reload PDI from flash partitions without requiring a full power cycle. Use the device_boot command to trigger a firmware-controlled partition boot:

sudo ami_tool device_boot -d <bdf> -p <partition_number>

Important: AMR does not support GPIO-based PCIe hot reset. Device reboots are performed through software commands that trigger firmware-initiated partition boot.

Board-Specific Clock/Reset Details

V80 Clock/Reset Configuration

V80 Clock Reset

V80-Specific:

  • Single proc_sys_reset in PF1 hierarchy

  • Uses CIPS clocks directly (no clock wizard)

  • Minimal clock domains

RAVE Clock/Reset Configuration

RAVE Clock Reset

RAVE-Specific:

  • PCIe clock domain from GT transceivers

  • QDMA clock requirements

  • Potentially more proc_sys_reset blocks

  • May use clock wizard for custom frequencies

References