Microchip Technology Microsemi PolarFire Demo Manual

DG0799
Demo Guide
PolarFire FPGA 1G Ethernet loopback Using IO CDR
Microsemi Headquarters
One Enterprise, Aliso Viejo, CA 92656 USA Within the USA: +1 (800) 713-4113 Outside the USA: +1 (949) 380-6100 Sales: +1 (949) 380-6136 Fax: +1 (949) 215-4996 Email: sales.support@microsemi.com
www.microsemi.com
©2019 Microsemi, a wholly owned subsidiary of Microchip Technology Inc. All rights reserved. Microsemi and the Microsemi logo are registered trademarks of Microsemi Corporation. All other trademarks and service marks are the property of their respective owners.
Microsemi makes no warranty, representation, or guarantee regarding the information contained herein or the suitability of its products and services for any particular purpose, nor does Microsemi assume any liability whatsoever arising out of the application or use of any product or circuit. The products sold hereunder and any other products sold by Microsemi have been subject to limited testing and should not be used in conjunction with mission-critical equipment or applications. Any performance specifications are believed to be reliable but are not verified, and Buyer must conduct and complete all performance and other testing of the products, alone and together with, or installed in, any end-products. Buyer shall not rely on any data and performance specifications or parameters provided by Microsemi. It is the Buyer’s responsibility to independently determine suitability of any products and to test and verify the same. The information provided by Microsemi hereunder is provided “as is, where is” and with all faults, and the entire risk associated with such information is entirely with the Buyer. Microsemi does not grant, explicitly or implicitly, to any party any patent rights, licenses, or any other IP rights, whether with regard to such information itself or anything described by such information. Information provided in this document is proprietary to Microsemi, and Microsemi reserves the right to make any changes to the information in this document or to any products and services at any time without notice.
About Microsemi
Microsemi, a wholly owned subsidiary of Microchip Technology Inc. (Nasdaq: MCHP), offers a comprehensive portfolio of semiconductor and system solutions for aerospace & defense, communications, data center and industrial markets. Products include high-performance and radiation-hardened analog mixed-signal integrated circuits, FPGAs, SoCs and ASICs; power management products; timing and synchronization devices and precise time solutions, setting the world's standard for time; voice processing devices; RF solutions; discrete components; enterprise storage and communication solutions, security technologies and scalable anti-tamper products; Ethernet solutions; Power-over-Ethernet ICs and midspans; as well as custom design capabilities and services. Learn more at www.microsemi.com.
50200799. 3.0 7/19
Contents
1 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Revision 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Revision 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Revision 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 PolarFire FPGA 1G Ethernet Loopback Using IOD CDR . . . . . . . . . . . . . . . . . . . . . 2
2.1 Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3.1 About PF_IOD_CDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.2 Design Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.3 IP Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Clocking Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Libero Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Synthesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 PLL, DLL, and Lane Controller Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.2 Resource Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Verify Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Generate FPGA Array Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 Configure Design Initialization Data and Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Generate Bitstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.7 Run PROGRAM Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Programming the Device Using FlashPro Express . . . . . . . . . . . . . . . . . . . . . . . . . 23
5 Running the Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 Appendix: Multi-Lane 1G IOD CDR Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7 Appendix: 1G Ethernet BASE-T and BASE-X Using Transceiver . . . . . . . . . . . . . . 33
7.1 1G Ethernet BASE-T and BASE-X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2 Transceiver Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.3 Transceiver Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8 Appendix: References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 iii
Figures
Figure 1 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figure 2 Top-Level Libero Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figure 3 PF_IOD_CDR Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figure 4 CORETSE_0 Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Figure 5 Mi-V Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Figure 6 pf_sram_0 Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Figure 7 PF_CCC_0 Input Clock Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Figure 8 PF_CCC_0 Output Clock Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Figure 9 PF_IOD_CDR_CCC Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Figure 10 CoreSPI_0 Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figure 11 Mi-V Processor Bus Interface Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figure 12 CoreAHBLite_0 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Figure 13 CoreAHBLite_2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figure 14 CoreAPB3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Figure 15 Clocking Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figure 16 Libero Design Flow Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figure 17 Configure Design Initialization Data and Memories Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figure 18 Fabric RAMs Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figure 19 Fabric RAM Tab Apply Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figure 20 Board Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figure 21 FlashPro Express Job Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figure 22 New Job Project from FlashPro Express Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figure 23 Programming the Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 24 FlashPro Express—RUN PASSED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 25 Cat Karat Packet Builder Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Figure 26 Host PC Ethernet Network Connection . . . . . . . . .
Figure 27 Interface Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Figure 28 Packet Flow and View Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figure 29 Wireshark Main Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figure 30 Wireshark Interface Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Figure 31 Wireshark - Start a New Live Capture Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Figure 32 Wireshark Live Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Figure 33 Car Karat - Transmit Packets Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Figure 34 Transmitted and Looped Back Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figure 35 I/O Banks and PLL placement in MPF300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figure 36 8 Lane 1G IOD CDR Design in PolarFire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figure 37 1G BASE-T Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figure 38 1G BASE-X Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figure 39 Transceiver Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 iv
Tables
Table 1 Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Table 2 I/O Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Table 3 Resource Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table 4 Jumper Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Table 5 AN Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Table 6 XCVR Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Table 7 XCVR Port Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 v
Revision History

1 Revision History

The revision history describes the changes that were implemented in the document. The changes are listed by revision, starting with the most current publication.

1.1 Revision 3.0

The following is a summary of changes made in this revision.
Updated the document for Libero SoC v12.1.
The design uses a new IP PF_IOD_CDR_CCC. For more information, see PF_IOD_CDR_CCC_C0, page 10.

1.2 Revision 2.0

The following is a summary of changes made in this revision.
Updated the document for Libero
Added Appendix: Multi-Lane 1G IOD CDR Design, page 31.
Added Appendix: 1G Ethernet BASE-T and BASE-X Using Transceiver, page 33.

1.3 Revision 1.0

®
SoC v12.0.
The first publication of this document.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 1

PolarFire FPGA 1G Ethernet Loopback Using IOD CDR

2 PolarFire FPGA 1G Ethernet Loopback Using
IOD CDR
Microsemi PolarFire® FPGAs support 1G (1000BASE-T) Ethernet solutions for various networking applications. In PolarFire devices, 10/100/1000 Mbps (1G) Ethernet is implemented using the CoreTSE media access control (MAC) soft IP core. The CoreTSE IP implements a serial gigabit media­independent interface (SGMII) with an Ethernet PHY. This Ethernet interface can be implemented in the FPGA by using either a transceiver or a GPIO with clock and data recovery (CDR) capability. Both these features are provided by the PF_XCVR and PF_IOD_CDR IP cores, respectively.
GPIOs in PolarFire devices operate at speeds of upto 1.066 Gbps for single-ended standards and 1.25 Gbps for differential standards. Each I/O has an I/O digital (IOD) logic block that supports gearing up of the output data rate and gearing down of the input data rate. The IOD block with CDR circuitry (PF_IOD_CDR IP) deserializes high-speed Ethernet input data and transfers it to the FPGA fabric at lower speeds. It also serializes the lower-speed Ethernet data from the FPGA fabric and transfers to the high-speed Ethernet PHY.
This document describes how to run the 1G Ethernet loopback demo design, which is a reference design created to demonstrate 1G Ethernet loopback using GPIO on a PolarFire Evaluation Board. The demo design is built using the PF_IOD_CDR_CCC, PF_IOD_CDR, CoreTSE, and Mi-V soft processor IP cores. The reference design is for a single SGMII lane (single RJ45 cable). For information about how to build a multi-lane (multiple links) design, see Appendix: Multi-Lane 1G IOD CDR Design, page 31.
The demo design can be programmed using either of the following options:
Using the pre-generated .job file: To program the device using the .job file provided along with the demo design files, see Programming the Device Using FlashPro Express, page 23.
Using Libero SoC: To program the device using Libero SoC, see Libero Design Flow, page 17.
A license is required to use the CoreTSE IP core. To request a license, contact
soc_marketing@microsemi.com.

2.1 Design Requirements

The following table lists the hardware and software requirements for running the demo design.
Table 1 • Design Requirements
Requirement Version
Hardware
PolarFire Evaluation Kit (POLARFIRE-EVAL-KIT) – PolarFire Evaluation Board – 12 V/5 A AC power adapter and cord – USB 2.0 A to mini-B cable for UART and programming
RJ45 cable to connect the board with the host PC
Host PC Windows 7 or 10
Software
Cat Karat (Ethernet packet generator) Install the v1.51.200
Wireshark (network protocol analyzer) Install the v1.12.4
FlashPro Express v12.1
Rev D
version from the
PacketBuilder website.
version from the
Wireshark website.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 2
PolarFire FPGA 1G Ethernet Loopback Using IOD CDR
Table 1 • Design Requirements (continued)
Requirement Version
Libero SoC Design Suite v12.1

2.2 Prerequisites

Before you start:
1. Download the reference design files from:
http://soc.microsemi.com/download/rsc/?f=mpf_dg0799_eval_liberosocv12p1_df
2. Download and install Libero SoC v12.1 on the host PC from
https://www.microsemi.com/product-directory/design-resources/1750-libero-soc#downloads
3. The latest versions of ModelSim and Synplify Pro are included in the Libero SoC PolarFire installation package. Make sure you have a Libero Gold license for design evaluation on MPF300 device. A one year Gold software License is included with the Evaluation kit.
4. If you already purchased a Gold license and received a Software ID from Microsemi, generate your Gold License using the following link:
https://soc.microsemi.com/portal/default.aspx?r=1
5. Download Cat Karat and Wireshark.

2.3 Demo Design

The following is the data flow for the 1G Ethernet loopback demo design:
1. PF_CCC_0 provides the clock to the Mi-V processor and other APB peripherals.
2. PF_IOD_CDR_CCC_C0 generates:
The fabric transmit clock ((TX_CLK_G)) for the CoreTSE block.
The high-speed bank clocks, and drives the high-speed clocks (HS_IO_CLKs) of the
PF_IOD_CDR_C0 block for clock recovery.
3. PF_IOD_CDR_CCC_C0 also generates Delay codes for the PVT compensation.
4. Mi-V performs the following functions:
Executes the application from LSRAM (PF_SRAM IP).
Configures the ZL30364 clock generation hardware through the CoreSPI IP to generate
reference clocks for the VSC PHY and the IOD CDR fabric module.
Configures the Management registers of CoreTSE and VSC PHY.
Sends a request to the CoreTSE IP to negotiate with the on-board VSC8575 PHY.
5. CoreTSE IP implements 1G Ethernet MAC and is configured in ten bit interface mode (TBI) to interface with the PF_IOD_CDR_C0. The CoreTSE IP has an inbuilt MDIO interface to exchange control and status information with the VSC PHY.
6. PF_IOD_CDR IP does the following:
Interfaces with the on-board VSC8575 PHY and forms the SGMII link.
Recovers the data and clock from the incoming RX_P and RX_N ports.
Sends the recovered clock (RX_CLK_R) to the CoreTSE block.
Deserializes the recovered data and sends 10-bit parallel data to CoreTSE.
Receives Ethernet data via the RX_P and RX_N input pads, gears down the receive data rate,
and deserializes the data.
The deserialized data is sent from PF_IOD_CDR_C0:RX_DATA[9:0] to CoreTSE IP: RCG[9:0].
The received data is looped back at the CoreTSE IP, and CoreTSE IP:TCG[9:0] is sent to
PF_IOD_CDR_C0:TX_DATA[9:0].
PF_IOD_CDR_C0 serializes the data, gears up the transmit data rate, and transmits the data to
the on-board VSC PHY via the TX_P and TX_N output pads.
Figure 1, page 4 shows the hardware implementation of the demo design.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 3
PolarFire FPGA 1G Ethernet Loopback Using IOD CDR
PF_IOD_CDR
at
1250 Mbps
PolarFire Evaluation Board
RX_P
TX_P
RJ45
Host PC
Ethernet Test
Solution
(cat KARAT,
Wireshark)
CoreTSE
VSC8575
Ethernet
Copper
PHY
RCG
TCG
RX_DATA
TX_DATA
RX_N
TX_N
APB_S
PolarFire FPGA
Mi-V
SoftProcessor
AHB_MST_MMIO
AHB lite
AHB_APB
Bridge
CoreSPI
ZL 30364
REF_CLK
APB slave
APB slave
AHB slave
pf_sram
PF_IOD_CDR_CCC
RX DATA
TX DATA
AHB_MST_MEM
Packets
transmitted from
host PC catKARAT
to fabric
Packets received
at host PC from
fabric
SGMII
SGMII
TBI
MDIO Interface
HS_IO_CLK
TBI_TX_CLK
TX_CLK_G
Figure 1 • Block Diagram

2.3.1 About PF_IOD_CDR

The PF_IOD_CDR IP core provides an asynchronous receive and transmit interface that supports upto
1.6 Gbps speed for serial data transfers. It supports the SGMII interface. PF_IOD_CDR uses the DDRX5
IO gearing mode for the SGMII interface with a 10:1 digital ratio to provide the 10-bit data width for both transmit and receive. The clock recovery circuit, which is part of this PF_IOD_CDR, keeps the receive clock centered in the data eye.
The PF_IOD_CDR interface is compatible with the CoreTSE, CoreTSE_AHB, and CoreSGMII IP cores configured in TBI mode. In this demo, the CoreTSE (Non-AMBA) MAC is used in the TBI mode to transmit and receive the Ethernet packets.
2.3.1.1 Receive interface
The PF_IOD_CDR IP includes the clock recovery block, which is used to generate the recovered clock for sampling the incoming data stream. This IP uses the four clocks of phases 0, 90,180 and 270 degrees for the clock recovery. The recovered clock (RX_CLK_R) is used by the fabric for sampling the Rx data from the PF_IOD_CDR IP. The CoreTSE logic also uses this clock.
2.3.1.2 Transmit Interface
For more information PF_IOD_CDR and its blocks, see UG0686: PolarFire FPGA User I/O User Guide.
The PF_IOD_CDR transmit interface receives the parallel data (TX_DATA[9:0]), converts it into a serial data stream using the IOD interface, and then transmits it via the I/O ports TX_P and TX_N. The 625 MHz clock generated by the PF_IOD_CDR_CCC is used by PF_IOD_CDR transmit interface to transmit the data serially on the TX_P/TX_N ports.
For more information about PF_IOD_CDR, see UG0686: PolarFire FPGA User I/O User Guide.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 4
PolarFire FPGA 1G Ethernet Loopback Using IOD CDR

2.3.2 Design Implementation

Figure 2, page 5 shows the top-level Libero implementation of the demo design.
Figure 2 • Top-Level Libero Implementation
Table 2, page 5 lists the important I/O signals of the design.
Table 2 • I/O Signals
Signal Direction Description
RX_P, RX_N Input IOD CDR receive signals connected to the VSC PHY transmit
data signals.
TX_P, TX_N Output IOD CDR transmit signals connected to the VSC PHY receive
data signals.
REFCLK_N, REFCLK_P
RESET_N Input Active low Mi-V reset. Asserted by pressing the on-board K22
REF_CLK_0 Input 50 MHz input clock received from the on-board 50 MHz
TCK, TDI, TMS, TRSTB
LINK_OK Output Link status indicator. Provides the link up or down status with
PHY_RST Output Active high reset signal to the on-board VSC8575 PHY.
PHY_MDC Output Management Data IO clock fed to the on-board VSC8575 PHY.
PHY_MDIO Output Management Data IO Interface for accessing the on-board
coma_mode Output Signal held low to keep the VSC PHY fully active when it is out
Input 125 MHz input clock received from the on-board ZL30364 and
fed to NWC_PLL_0.
push-button.
oscillator and fed to PF_CCC_0.
Input JTAG signals interfaced to the soft processor for debugging.
the on-board PHY. This signal is mapped to on-board LED7. The LED ON condition indicates that the link is up.
VSC8575 PHY registers.
of reset.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 5
PolarFire FPGA 1G Ethernet Loopback Using IOD CDR
Table 2 • I/O Signals (continued)
Signal Direction Description
REF_CLK_SEL Output Reference clock speed pin of the VSC PHY. Held high for
selecting the 125 MHz reference clock speed.
RD_BC_ERROR Output CoreTSE receive error signal. This LED signal indicates the
receive code group error. This signal is synchronous to RX_CLK_R and mapped to LED4 on the board. When the LED is ON, there is an error in the received code group. When the LED is OFF, there is no error.
SPISCLKO, SPISS, SPISDO, SPISDI
TDO Output JTAG test data output. Serial data output to tap.
Output SPI controller signals to interface with the ZL30364 clock
generation hardware.

2.3.3 IP Configuration

This section describes the IP blocks and user-defined blocks instantiated in the demo design.
2.3.3.1 PF_IOD_CDR_C0_0
The PF_IOD_CDR_C0_0 (PF_IOD_CDR) block is configured for 1250 Mbps. The data rate is set to 1250 Mbps because the SGMII interface operates at this speed. The Enable BITSLIP port check box is not selected because the CoreTSE IP has a built-in word alignment logic.
Figure 3 • PF_IOD_CDR Configurator
The Advanced tab includes the Jump step size option that specifies the precision of the clock adjustment during clock recovery. The supported step sizes are 2 or 3, this demo uses a step size of 3. Figure 3, page 6 shows the configuration of the PF_IOD_CDR_C0 block.
2.3.3.2 CORETSE_0
The CORETSE_0 (CoreTSE) block is used to implement the Ethernet MAC. This block is configured in the ten-bit interface (TBI) mode to interface with the VSC PHY using the SGMII interface, as shown in
Figure 4, page 7. The MDIO PHY Address value is used by the Mi-V soft processor to read and write to
the Management registers of the CoreTSE IP. The Include receive slip logic option is not selected because the CoreTSE IP has a built-in word alignment logic in TBI mode.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 6
PolarFire FPGA 1G Ethernet Loopback Using IOD CDR
Figure 4 • CORETSE_0 Configurator
2.3.3.3 pf_init_monitor_0
The pf_init_monitor_0 (PF_INIT_MONITOR) block is used to issue a reset signal to the user logic (FABRIC_RESET_N). To ensure a glitch-free reset, the DEVICE_INIT_DONE signal is connected to the CORERESET_PF IP with a lock signal from the PF_CCC macro. The AUTOCALIB_DONE signals the completion of I/O calibration after which the I/Os can be used. Hence, the AUTOCALIB_DONE and PLL_LOCK are ANDed and used to reset PF_IOD_CDR_C0_0 and CORETSE_0.
This IP retains the default configuration.
2.3.3.4 Core_reset_pf_0
The Core_reset_pf_0 (CORERESET_PF) block handles the sequencing of reset signals in the PolarFire device. The CORERESET_PF block synchronizes the reset of all the blocks to which it is connected when the PolarFire device is powered up.
2.3.3.5 core_jtag_debug_0
The CoreJTAGDebug IP is used to debug the Mi-V soft processor. This IP retains the default configuration.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 7
PolarFire FPGA 1G Ethernet Loopback Using IOD CDR
2.3.3.6 Mi-V Soft Processor
The Mi-V soft processor supports RISC-V processor-based designs. The Mi-V soft processor executes the application from the LSRAM mapped at 0x80000000. It configures the ZL30364 clock generation hardware through the CoreSPI IP and the VSC PHY through the CoreTSE MDIO interface. It also configures the CoreTSE registers using the AHB interface.
The following figure shows the Mi-V soft processor configuration, where the Reset Vector Address is set to 0x8000_0000. This is because in the Mi-V processor memory map, the memory range used for the AHB memory interface is 0x8000_0000 to 0x8FFF_FFFC, and the memory range used for the AHB I/O interface is 0x6000_0000 to 0x7FFF_FFFF.
Figure 5 • Mi-V Configurator
2.3.3.7 pf_sram_0
The pf_sram_0 block (PF_SRAM_AHBL_AXI) is used to access the fabric RAMs (LSRAMs). The pf_sram_0 is connected to Mi-V as an AHB slave. At device power-up, the LSRAM blocks are initialized with the user application code from sNVM.
The processor uses the SRAM memory to execute the application. Figure 6, page 8 shows the LSRAM depth and the interface settings. The Fabric Interface type is selected AHBLite because the fabric interfaces with the AHB-based Mi-V processor. The memory depth can be selected based on the application size. This design uses 64 KB of memory.
Figure 6 • pf_sram_0 Configurator
2.3.3.8 PF_CCC_0
The PF_CCC_0 (PolarFire Clock Conditioning Circuitry) generates the fabric reference clock that drives the soft processor and the APB peripherals (CoreTSE and CoreSPI). The PF_CCC_0 IP is configured to generate one output fabric clock from an on-board 50 MHz crystal oscillator.
Figure 7, page 9 shows the PF_CCC_0 input clock configuration.
Microsemi Proprietary DG0799 Demo Guide Revision 3.0 8
Loading...
+ 29 hidden pages