Fabric Interface Controller
UG0331 User Guide Revision 15.0
759
24.1.1
MSS to the FPGA Fabric Interface
The FIC interface can be configured towards the fabric to support AHB-Lite or APB. FIC configuration
allows you to implement AHB-Lite or APB slave user logic in the fabric that can expose the memory map
of the Cortex-M3 processor and other masters on the AHB bus matrix. You can also implement an
AHB-Lite or APB master in the fabric that can access any slave on the AHB bus matrix. Since FIC_0 and
FIC_1 have an AMBA interface towards the fabric, user logic should implement the AMBA AHB-Lite or
APB3 protocol in order to communicate with the FIC.
The following options are available for implementing peripherals in the fabric.
•
If you are using a mix of AHB-Lite and APB peripherals, use CoreAHBLite, CoreAHB2APB3, and
CoreAPB3 soft IPs.
•
If you are using APB (APB v3.0) peripherals (for example, CoreUARTAPB), use CoreAPB3 soft IP
for connecting to the fabric.
•
If you are using AHB-Lite peripherals, use CoreAHBLite soft IP for connecting to the fabric interface.
24.1.2
Configure FIC for Master or Slave Interface
FIC_0 and FIC_1 are configured individually through the Libero SoC MSS configurator. There are two
options.
•
The MSS is the master and the fabric has the slave (HM – hard master).
•
The fabric has the master and the MSS is the slave (FM – fabric master).
The MSS side of the FIC has two (master and slave) AHB-Lite interfaces to the AHB bus matrix, as
shown in
page 758. On the fabric side of the FIC, the master and slave interfaces can be
AHB-Lite or APB. Both interfaces on the fabric side always use the same protocol, either AHB-Lite or
APB. However, it is possible to have master and slave at the same time.
24.2
Advanced AHB-Lite Options
24.2.1
Configure FIC in Bypass Mode or Synchronous Pipelined Mode
You can configure FIC_0 and FIC_1 individually through the Libero SoC MSS configurator. The AHB-Lite
configuration in the FIC configurator provides the Use Bypass Mode option to enable or disable the
address and data pipelining between FPGA fabric logic and the AHB bus matrix. In some scenarios, the
FPGA fabric logic needs to access the MSS peripherals (such as eSRAM or eNVM) with very high
throughput. In such cases, the FPGA fabric logic should be connected to the FIC using an AHB-Lite
interface.
In bypass mode (non-pipelined mode / Use Bypass Mode option checked), it is possible to achieve
zero-wait state access between the FPGA master and a zero-wait state capable MSS slave, if there is no
other master accessing that slave. However, the setup time requirement of the FIC interface is a bigger,
which may lower overall frequency of operation. The clock ratio between M3_CLK, FIC_0_CLK, and
FIC_1_CLK, must be set to 1:1 when bypass mode is selected. This requirement is enforced in the MSS
CCC configurator when bypass mode is selected.
In Pipelined mode (Use Bypass Mode option unchecked / default mode), the interface between the AHB
bus matrix and FPGA has registered signals that reduce setup requirements.This may improve overall
system frequency, but these registers introduce a bubble in the AHB transaction pipe. It results in
inserting a wait-state for each transaction even if the Master and Slave are capable of zero-wait state
access. Relative clock frequency between the MSS clock, M3_CLK, and the fabric clock for Synchronous
Pipelined mode can be 1:1, 2:1, 4:1, 8:1, 16:1, or 32:1.
You have to analyze the critical paths between the FIC and the logic in the FPGA fabric, when Use
Bypass Mode is enabled. You need to make sure that all the timing requirements have been met
between FIC and FPGA fabric logic.
FIC32_0_DIVISOR[2:0] and FIC32_1_DIVISOR[2:0] configuration inputs from the SYSREG block
MSSDDR_FACC1_CR configuration register, specify the ratio of clocks between the MSS system clock,
M3_CLK, and the fabric clock used by the soft IP interfacing with FIC_0 and FIC_1. The
FAB0_AHB_BYPASS and FAB1_AHB_BYPASS fields from the SYSREG block FAB_IF_CR register,
configure FIC_0 and FIC_1 in Bypass mode or Synchronous Pipelined mode.