
• I/O: I/O BARs can only be 32-bit; the Prefetchable option does not apply to I/O BARs.
I/O BARs are only enabled for a Legacy PCI Express Endpoint.
• Memory: Memory BARs can be either 64-bit or 32-bit and can be prefetchable. When a
BAR is set to 64-bits, it uses the next BAR for the extended address space and makes
the next BAR inaccessible.
• Size: The available size range depends on the PCIe device/port type and the type of BAR
selected. The following table lists the available BAR size ranges.
Table 59: SRIOV BAR Size Ranges for Device Configuration
PCIe Device / Port Type
BAR Type
BAR Size Range
PCI Express Endpoint
32-bit Memory
128 bytes – 2 gigabytes
64-bit Memory
128 bytes – 8 exabytes
Legacy PCI Express Endpoint
32-bit Memory
16 bytes – 2 gigabytes
64-bit Memory
16 bytes – 8 exabytes
I/O
16 bytes – 2 gigabytes
• Prefetchable: Identifies the ability of the memory space to be prefetched.
• Value: The value assigned to the BAR based on the current selections.
• Managing SRIOV Base Address Register Settings: Memory, I/O, Type, and Prefetchable
settings are handled by setting the appropriate Customize IP dialog box settings for the
desired base address register.
Memory or I/O settings indicate whether the address space is defined as memory or I/O. The
base address register only responds to commands that access the specified address space.
Generally, memory spaces less than 4 KB in size should be avoided. The minimum I/O space
allowed is 16 bytes. I/O space should be avoided in all new designs.
A memory space is prefetchable if there are no side effects on reads (that is, data is not
destroyed by reading, as from RAM). Byte-write operations can be merged into a single
double-word write, when applicable.
When configuring the core as an Endpoint for PCIe (non-Legacy), 64-bit addressing must be
supported for all SR-IOV BARs (except BAR5) that have the prefetchable bit set. 32-bit
addressing is permitted for all SR-IOV BARs that do not have the prefetchable bit set. The
prefetchable bit related requirement does not apply to a Legacy Endpoint. The minimum
memory address range supported by a BAR is 128 bytes for a PCI Express Endpoint and 16
bytes for a Legacy PCI Express Endpoint.
• Disabling Unused Resources: For best results, disable unused base address registers to
conserve system resources. Disable base address register by deselecting unused BARs in the
Customize IP dialog box.
Chapter 5: Design Flow Steps
PG346 (v3.3) November 16, 2022
CPM Mode for PCI Express
234