RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA - Libero SoC v11.7 DG0622 Demo Guide Contents 1 Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1 1.2 1.3 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA . . . . . . . . . . 6 2.1 2.2 2.3 2.4 2.5 2.6 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.2 Demo Design Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.3 Demo Design Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3.1 Host PC Memory to LSRAM (Read) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3.2 LSRAM to Host PC Memory (Write) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3.3 Host PC Memory to DDR Memory (Read) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3.4 DDR Memory to Host PC Memory (Write) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.3.5 LSRAM to DDR Memory (Write) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.3.6 DDR Memory to LSRAM (Read) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.4 Throughput Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Setting Up the Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.1 Programming the Demo Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.2 Connecting RTG4 Development Kit to Host PC PCIe Slot . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.3 Drivers Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.4 Installing PCIe_Demo Application GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Running the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3 Appendix: Known Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4 Appendix: Register Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5 Appendix: Silk Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7 Product Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.1 7.2 7.3 7.4 7.5 7.6 Customer Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contacting the Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.1 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.2 My Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.3 Outside the U.S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ITAR Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revision 3 45 45 45 45 45 45 45 46 46 2 Figures Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. Figure 14. Figure 15. Figure 16. Figure 17. Figure 18. Figure 19. Figure 20. Figure 21. Figure 22. Figure 23. Figure 24. Figure 25. Figure 26. Figure 27. Figure 28. Figure 29. Figure 30. Figure 31. Figure 32. Figure 33. Figure 34. Demo Design Files Top Level Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 PCIe Data Plane Demo Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 FlashPro - New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 FlashPro Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 FlashPro- Programmer Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 RTG4 Development Kit Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Device Manager - PCIe Device Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Command Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Jungo Driver Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Install this Driver Software Anyway Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Completed Successfully Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Installing PCIe_Demo Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 PCIe_Demo Application Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Successful Installation of PCIe_Demo Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Device Manager - PCIe Device Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 PCIe_Demo Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 PCIe Device Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Demo Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 PCIe Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 PCIe Configuration Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Read and Writes to Scratchpad Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 DMA Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 DMA Transactions between Host PC Memory and LSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 DMA between Host PC Memory and LSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 DMA between Host PC Memory and LSRAM - Loop Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 DMA between Host PC Memory and LSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 DMA between Host PC Memory and LSRAM - Loop Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 DMA between Host PC Memory and LSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 DMA between Host PC Memory and LSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 DMA between Host PC Memory and DDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 DMA between LSRAM and DDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Workaround for Link Enable/Disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Hot Reset Detection Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Top View - RTG4 Development Kit Silk Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Revision 3 3 Tables Table 1. Table 2. Table 3. Table 4. Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 RTG4 Development Kit Jumper Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Throughput Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Register Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Revision 3 4 Preface 1 Preface 1.1 Purpose This demo is for RTG4™ field programmable gate array (FPGA) device. It provides instructions on how to use the corresponding reference design. 1.2 Intended Audience This demo guide is intended for: • • 1.3 FPGA designers System-level designers References The following documents are referred in this demo guide: • • • UG0567: RTG4 FPGA High-Speed Serial Interfaces User Guide UG0573: RTG4 FPGA High-Speed DDR Interfaces User Guide Libero SoC User Guide Revision 3 5 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2.1 Introduction This demo highlights the high-speed data transfer capability of the RTG4 devices through the PCIe interface. To achieve high-speed data transfer, an advanced extensible interface (AXI) based direct memory access (DMA) controller is implemented in the FPGA fabric. An application, PCIe_Demo that runs in the host PC is provided for setting up and initiating the DMA transactions from the RTG4 PCIe endpoint to the host PC device. Drivers for connecting the host PC to the RTG4 PCIe endpoint are provided as part of the demo deliverables. The high-speed serial interface (SERDESIF) available in the RTG4 devices provides a fully hardened PCIe endpoint implementation, and is compliant with the PCIe Base Specification Revision 2.0,1.1 and 1.0. For more information about this, refer to the UG0567: RTG4 FPGA High-Speed Serial Interface User Guide. This demo demonstrates the performance of the PCIe and DDR controller of the RTG4 devices. 2.2 Design Requirements Table 1 • Design Requirements Design Requirements Description Hardware Requirements RTG4 Development Kit: • 12 V adapter • PCI Edge Card Ribbon Cable Rev A (Die: RT4G150_ES) Host PC with 8 GB RAM and PCIe 2.0 Gen1 compliant slot with 64-bit Windows 7 Operating System x4 or higher width. Software Requirements Libero® System-on-Chip (SoC) v11.7 FlashPro programming software v11.7 PCIe_Demo Application – 2.3 Demo Design 2.3.1 Introduction The demo design files are available for download from the following path in the Microsemi website: http://soc.microsemi.com/download/rsc/?f=rt4g_dg0622_liberov11p7_df The demo design files include: • • • • • Drivers_64bitOS GUI Libero Project Programming files Readme.txt file Revision 3 6 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA Figure 1 shows the top-level structure of the design files. Refer to readme.txt file for the complete directory structure. Figure 1 • Demo Design Files Top Level Structure GRZQORDGBIROGHU! UWJBGJBOLEHURYSBGI 'ULYHUVBELW26 *8, /LEHUR3URMHFW 3URJUDPPLQJ)LOH 5HDGPHW[W Figure 2 on page 8 shows the demo design. The PCIe core in the RTG4 devices supports both AXI and AMBA® high-performance bus (AHB) Master and Slave interfaces. This demo design uses the AXI Master and Slave interfaces to achieve maximum bandwidth. The PCIe_Demo application on the host PC initiates the DMA transfers, and the embedded PCIe core in the RTG4 device initiates the AXI transactions through the AXI master interface to the DMA controller in the FPGA fabric. The DMA controller has two independent channels that share the AXI read/write channels of the PCIe AXI slave interface and FDDR AXI slave interface. The DMA controller in the FPGA fabric initiates the DMA channels depending on the type of the DMA transfer. Each channel has a timer to calculate the throughput. It has 4 KB of LSRAM buffer. DMA channel 0 handles the following DMA transfers: • • • Host PC memory to LSRAM Host PC memory to DDR memory LSRAM to DDR memory DMA channel 1 handles the following DMA transfers: • • • LSRAM to host PC memory DDR memory to host PC memory DDR memory to LSRAM Revision 3 7 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA Figure 2 • PCIe Data Plane Demo Block Diagram 57* ''5 0HPRU\ )''5 6 $;, 0 )3*$)DEULF '0$ &RQWUROOHU 6 &RQWUROOHU &KDQQHO $;,5HDG &KDQQHOV /65$0 /65$0 $;,5HDG &KDQQHOV $;,:ULWH &KDQQHOV $;, 3&,H /('V 6ZLWFKHV 0 $;, 6 0 +RVW3& &KDQQHO $;,:ULWH &KDQQHOV 6HULDO&RQWUROOHU3&,H 3&,HB,QWHUUXSW 3XVK %XWWRQ /HJHQG 3DWKIURP+RVW3&WRWKH'0$FRQWUROOHU '0$&KDQQHOSDWK '0$&KDQQHOSDWK The FDDR controller is configured to access the DDR3 memory in x32 mode. The FDDR clock is configured to 320 MHz (640 Mbps DDR) with a 80 MHz DDR_FIC clock for an aggregate memory bandwidth of 1280 Mbps. The PCIe AXI interface clock and fabric DMA controller clock are configured to 80 MHz. 2.3.2 Demo Design Features The following are the demo design features: • • • • • • • • • • • DMA data transfers between the host PC memory and the LSRAM DMA data transfers between the host PC memory and the DDR memory DMA data transfers between the DDR memory and the LSRAM Displays throughput for each DMA data transfer Enables continuous DMA transfers for observing throughput variations. Displays the PCIe link enable/disable, negotiated link width, and link speed on the PCIe_Demo application. Displays the position of DIP Switches on the RTG4 Development Kit on the PCIe_Demo application. Displays the PCIe Configuration Space on the PCIe_Demo application. Controls LEDs on the board according to the command from the PCIe_Demo application. Enables read and write operations to scratchpad register in the FPGA fabric. Interrupts the host PC, when the Push button is pressed. The PCIe_Demo application displays the count value of the number of interrupts sent from the board. Revision 3 8 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2.3.3 Demo Design Description The demo design supports six types of data transfers. The following sections describe the process of each data transfer: • • • • • • Host PC Memory to LSRAM (Read) LSRAM to Host PC Memory (Write) Host PC Memory to DDR Memory (Read) DDR Memory to Host PC Memory (Write) LSRAM to DDR Memory (Write) DDR Memory to LSRAM (Read) 2.3.3.1 Host PC Memory to LSRAM (Read) Data transfer from PC memory to the LSRAM block occurs in the following sequence: 1. 2. 3. 4. 5. 6. 7. 8. PCIe_Demo application sets up the Fabric DMA controller through the PCIe link. This includes DMA direction, address, and size (4 KB). Fabric DMA controller initiates a 16 beat AXI burst (128 bytes) read transaction to the PCIe AXI slave interface. The PCIe core sends the memory read (MRd) transaction layer packets (TLP) to the host PC. The host PC returns a completion (CplD) TLP to the PCIe link. This returned data completes the AXI read initiated by the Fabric DMA controller. This data is stored in the LSRAM. The Fabric DMA controller repeats this process (from Step 2 to 6) until the 4 KB size of data transfer is completed. The Fabric DMA controller provides the DMA completion status and the number of clock cycles consumed to complete the DMA transaction to the PCIe_Demo application. 2.3.3.2 LSRAM to Host PC Memory (Write) Data transfer from the LSRAM to PC memory occurs in the following sequence: 1. 2. 3. 4. 5. PCIe_Demo application sets up the Fabric DMA controller through the PCIe link. This includes DMA direction, address, and size (4 KB). Fabric DMA controller reads the LSRAM data and initiates an AXI 16 beat burst write transaction to PCIe AXI slave interface. The PCIe core sends a memory write (MWr) TLP to the host PC. The Fabric DMA controller repeats this process (Step 2 and 3) until the 4 KB size of data transfer is completed. The Fabric DMA controller provides the DMA completion status and the number of clock cycles consumed to complete the DMA transaction to the PCIe_Demo application. 2.3.3.3 Host PC Memory to DDR Memory (Read) Data transfer from the PC memory to the DDR memory occurs in the following sequence: 1. 2. 3. 4. 5. 6. 7. 8. PCIe_Demo application sets up the Fabric DMA controller through the PCIe link. This includes DMA direction, address, and size (4 KB). Fabric DMA controller initiates 16 beat AXI burst (128 bytes) read transaction to the PCIe AXI interface. The PCIe core sends a memory read (MRd) transaction layer packets (TLP) to the host PC. The host PC returns a completion data (CplD) TLP to the PCIe link. This returned data completes the AXI read initiated by the Fabric DMA controller. This data is stored in the dual port LSRAM. The LSRAM data is written to the DDR controller through the AXI interface as an AXI 16 beat burst write transaction. The reads from the host PC memory and the writes to the DDR memory occur independent of each other for achieving high throughput. Empty flags are generated in the Fabric DMA controller to avoid reading unknown data from the LSRAM. The Fabric DMA controller repeats this process (from Step 2 to 7) until the 4 KB size of data transfer is completed. Revision 3 9 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 9. The Fabric DMA controller provides the DMA completion status and the number of clock cycles consumed to complete the DMA transaction to the PCIe_Demo application. 2.3.3.4 DDR Memory to Host PC Memory (Write) Data transfer from the DDR memory to the PC memory occurs in the following sequence: 1. 2. 3. 4. 5. 6. 7. PCIe_Demo application sets up the Fabric DMA controller through the PCIe link. This includes DMA direction, address, and size (4 KB). The Fabric DMA controller initiates a 16 beat burst (128 bytes) AXI read transaction from the DDR through the FDDR controller. The data is stored in the dual port LSRAM. The LSRAM data is written to the PCIe core as an AXI 16 beat burst write transaction. The reads from the DDR memory and writes to host PC memory occur independent of each other for achieving high throughput. Empty flags are generated in the Fabric DMA controller to avoid reading unknown data from the LSRAM. The PCIe core sends a memory write (MWr) TLP to the host PC. The Fabric DMA controller repeats this process (from Step 2 to 5) until the 4 KB size of data transfer is completed. The Fabric DMA controller provides the DMA completion status and the number of clock cycles consumed to complete the DMA transaction to the PCIe_Demo application. 2.3.3.5 LSRAM to DDR Memory (Write) Data transfer from the LSRAM to the DDR memory occurs in the following sequence: 1. 2. 3. 4. PCIe_Demo application sets up the Fabric DMA controller through the PCIe link. This includes DMA direction, address, and size (4 KB). The LSRAM data is written to the DDR controller through AXI interface as an AXI 16 beat burst write transaction. The Fabric DMA controller repeats this process (Step 2) until the 4 KB size of data transfer is completed. The Fabric DMA controller provides the DMA completion status and the number of clock cycles consumed to complete the DMA transaction to the PCIe_Demo application for display. 2.3.3.6 DDR Memory to LSRAM (Read) Data transfer from the DDR memory to the LSRAM occurs in the following sequence: 1. 2. 3. 4. 5. 2.3.4 PCIe_Demo application sets up the Fabric DMA controller through the PCIe link. This includes DMA direction, address, and size (4 KB). The Fabric DMA controller initiates a 16 beat burst AXI read transaction of the DDR through the FDDR controller. The data is stored in the dual port LSRAM. The Fabric DMA controller repeats this process (Step 2 and 3) until the 4 KB size of data transfer is completed. The Fabric DMA controller provides the DMA completion status and the number of clock cycles consumed to complete the DMA transaction to the PCIe_Demo application for display. Throughput Calculation This demo implements a timer to measure the throughput of DMA transfers. The throughput measured includes all of the overhead of the AXI, PCIe, and DMA controller transactions. The demo design implements following steps to measure throughput: 1. 2. 3. 4. 5. Setup the DMA controller for the complete transfer. Start the timer and the DMA controller. Initiate the data transfer for the requested number of bytes. Wait until the DMA transfer is completed. Record the number of clock cycles used for Steps 2-4. Revision 3 10 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA To arrive at a realistic system performance, the throughput calculation takes into account all the overheads during a transfer. EQ 1 Throughput = Transfer Size (Byte) / (Number of clock cycles taken for a transfer * Clock Period) 2.4 Setting Up the Demo Design The following steps describe how to setup the hardware demo for the RTG4 Development Kit: 1. Connect the jumpers on the RTG4 Development Kit, as shown in Table 2. Table 2 shows the jumper settings. Table 2 • RTG4 Development Kit Jumper Settings Jumper Pin (From) Pin (To) Comments J11, J17, J19, J23, J26, J21, J32, J27 1 2 Default J16 2 3 Default J33 1 3 2 4 Default "Appendix: Silk Screen" on page 43 provides the RTG4 development kit silk screen to identify the jumper locations on board. Note: Ensure that the power supply switch, SW6 is switched OFF while connecting the jumpers on the RTG4 Development Kit board. 2. 3. 4. Connect the host PC to the J47 connector using the USB cable. Connect the USB cable (mini USB to Type A USB cable) to J47 of the RTG4 Development Kit board and other end of the cable to the USB port of the host PC. Switch ON the power supply switch, SW6. Revision 3 11 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2.4.1 Programming the Demo Design The following steps describe how to program the demo design: 1. 2. 3. 4. 5. 6. 7. Download the demo design from: http://soc.microsemi.com/download/rsc/?f=rt4g_dg0622_liberov11p7_df Launch the FlashPro software. Click New Project. In the New Project window, enter the project name. Click Browse and navigate to the location where the project needs to be saved. Select Single device as the Programming mode. Click OK to save the project. Figure 3 • FlashPro - New Project Revision 3 12 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 8. 9. Click Configure Device. Click Browse and navigate to the location where the PCIE_EP_DMA.stp file is located, and select the file. The default location is: <download_folder>\rt4g_dg0622_liberov11p6_df\ProgrammingFile\ Figure 4 • FlashPro Project Configuration 10. Click PROGRAM to start programming the device. Wait until the Programmer Status is changed to RUN PASSED (highlighted in Figure 5). Figure 5 • FlashPro- Programmer Status Revision 3 13 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2.4.2 Connecting RTG4 Development Kit to Host PC PCIe Slot The following steps describe how to connect the RTG4 Development Kit board to the host PC: 1. 2. After successful programming, shut down the host PC. Connect the J230 - PCIe Edge connector of the RTG4 Development Kit to host PC's PCIe slot through the PCI Edge Card Ribbon Cable. Note: Ensure that the host PC is switched OFF while inserting the PCIe Edge Connector. Else, the PCIe device may not be detected properly. The host PC may wake-up after inserting the PCIe Edge connector, as the RTG4 devices do not support cold sparing. Figure 6 shows the board setup for the host PC in which the RTG4 Development Kit is connected to the host PC PCIe slot. Figure 6 • RTG4 Development Kit Setup Revision 3 14 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 3. Switch ON the host PC and check the Device Manager of the Host PC for PCIe Device. Figure 7 shows the example Device Manager window. If the device is not detected, power cycle the RTG4 Development Kit and click scan for hardware changes (highlighted in Figure 7) in the Device Manager window. Figure 7 • Device Manager - PCIe Device Detection Note: If the device is still not detected, check if the BIOS version in the host PC is latest, and if PCI is enabled in the host PC BIOS. 2.4.3 Drivers Installation The PCIe demo uses a driver framework provided by Jungo WinDriverPro. To install the PCIe drivers on the host PC, use the following steps: 1. Extract the PCIe_Demo.rar to C:\ drive. The PCIe_Demo.rar is located at: <Download Folder>\rt4g_dg0622_liberov11p6_df\Drivers_64bitOS\PCIe_Demo.rar 2. Run the batch file Jungo_KP_install.bat located at C:\PCIe_Demo\DriverInstall\ Note: Installing these drivers require administration rights. Revision 3 15 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 3. To run the batch file C:\PCIe_Demo\DriverInstall\Jungo_KP_install.bat, open command prompt and select Run as administrator, as shown in Figure 8. Figure 8 • Command Prompt Revision 3 16 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 4. Navigate to C:\ Drive and execute Jungo_KP_install.bat. in command prompt and press Enter. A Windows Security dialog box is displayed and click Install, as shown in Figure 9. Figure 9 • Jungo Driver Installation 5. Click Install this driver software anyway, as shown in Figure 10. Figure 10 • Install this Driver Software Anyway Window Revision 3 17 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA Completed successfully message is displayed, as shown in the Figure 11. Figure 11 • Completed Successfully Message Revision 3 18 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2.4.4 Installing PCIe_Demo Application GUI The PCIe_Demo application is a simple GUI that runs on the host PC to communicate with the RTG4 PCIe endpoint device. It provides PCIe link status, driver information and demo controls. The PCIe_Demo application invokes the PCIe driver installed on the host PC and provides commands to the driver according to the selection made. The following steps describe how to install the PCIe_Demo application: 1. Go to <Download Folder>\rt4g_dg0622_liberov11p6_df\GUI, extract PCIe_Demo_GUI_Installer.rar, and double-click setup.exe. Do not change the default options and click Next. Figure 12 • Installing PCIe_Demo Application Revision 3 19 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2. Click Next to start the installation. Figure 13 • PCIe_Demo Application Installation Revision 3 20 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 3. Click Finish to complete the installation. Figure 14 shows that the installation has been successfully completed. Figure 14 • Successful Installation of PCIe_Demo Application 4. 5. 6. Shut down the host PC. Power cycle the RTG4 Development Kit. Restart the host PC. Revision 3 21 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2.5 Running the Design The following steps describe about how to run the demo design: 1. Check the host PC Device Manager for the drivers. If the device is not detected, power cycle the RTG4 Development Kit and click scan for hardware changes (highlighted in Figure 15) in Device Manager window. Figure 15 shows an example Device Manager window. Figure 15 • Device Manager - PCIe Device Detection Note: If a warning appears on the DEVICE or WinDriver in the Device Manager, uninstall them and start from Step 1 of driver installation. Revision 3 22 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2. Invoke the PCIe_Demo application from All Programs > PCIe Demo > PCIe Demo GUI. Figure 16 shows the PCIe_Demo launch window. Figure 16 • PCIe_Demo Application 3. Click Connect (highlighted in Figure 16). The application detects and displays the connected Kit, demo design, and PCIe link. Revision 3 23 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA Figure 17 shows the example messages after the connection is established. Figure 17 • PCIe Device Information Revision 3 24 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 4. Click Demo Controls to display the LEDs options and DIP switch positions, as shown in Figure 18. Figure 18 • Demo Controls 5. 6. 7. 8. 9. Click LED buttons to switch ON or OFF the LEDs on the board. Click Start LED ON/OFF Walk.The LEDs on the board blink. Click Stop LED ON/OFF Walk.The LEDs stop blinking. Change the DIP switch positions on the board and observe the same being reflected in Switch Module. Click Enable Interrupt Session to enable the PCIe interrupt. Revision 3 25 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 10. Press the Push button, SW1 on the RTG4 Development Kit board. Observe the interrupt count on the Interrupt Counter field in PCIe_Demo application, as shown in Figure 19. Figure 19 • PCIe Interrupt 11. Click Clear/Disable Interrupts to clear and disable the PCIe interrupts. Revision 3 26 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 12. Click Config Space to view the details about the PCIe configuration space. Figure 20 shows the PCIe configuration space. Figure 20 • PCIe Configuration Space Revision 3 27 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 13. Click PCIe R/W to execute read and writes to a 32-bit scratchpad register using BAR1 space. Figure 21 shows the PCIe R/W panel. Figure 21 • Read and Writes to Scratchpad Register 14. Click Fabric DMA to perform the DMA operations. Three types of DMA transactions are possible: • • • Between host PC memory and LSRAM Between host PC memory and DDR3 memory Between LSRAM and DDR3 memory Revision 3 28 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA For each operation, Transfer Type can be selected as Read, Write, or Read/Write, as shown in Figure 22. It has Loop Count field to execute the DMA operation in a loop. Figure 22 • DMA Operations Revision 3 29 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 15. Select the type of DMA transfer as Host PC Memory - - > LSRAM and Transfer Type as Read to execute the DMA transactions from Host PC to LSRAM. Click Start Transfer. Figure 23 shows the Fabric DMA panel. Figure 23 • DMA Transactions between Host PC Memory and LSRAM Revision 3 30 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA After completion of data transfer, the throughput is displayed, as shown in Figure 24. Figure 24 • DMA between Host PC Memory and LSRAM Revision 3 31 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 16. Enter 10 as Loop Count and click Loop Transfer to perform 10 sequential DMA transactions. After completion of data transfer, the PCIE_DEMO application displays the throughputs, as shown in Figure 25. The average throughput is also logged. The log file is stored in the host PC at C:\PCIe_Demo\DriverInstall. Figure 25 • DMA between Host PC Memory and LSRAM - Loop Transfer Revision 3 32 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 17. Select the type of DMA transfer as Host PC Memory < - - LSRAM and Transfer Type as Write to execute the DMA transactions from LSRAM to host PC. 18. Click Start Transfer to perform a single DMA transaction. After completion of data transfer the throughput is displayed, as shown in Figure 26. Figure 26 • DMA between Host PC Memory and LSRAM Revision 3 33 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 19. Enter 10 as the Loop Count and click Loop Transfer to perform 10 repeated DMA transactions. After completion of data transfer, the throughput is displayed, as shown in Figure 27. Figure 27 • DMA between Host PC Memory and LSRAM - Loop Transfer Revision 3 34 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 20. Select Transfer Type as Read/Write to perform simultaneous read and writes. Click Start Transfer to perform a single DMA transaction. After completion of data transfer, the throughput is displayed, as shown in Figure 28. Figure 28 • DMA between Host PC Memory and LSRAM Revision 3 35 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 21. Enter 10 as the Loop Count and click Loop Transfer to perform 10 sequential DMA transactions. After completion of data transfer, the throughput is displayed, as shown in Figure 29. Figure 29 • DMA between Host PC Memory and LSRAM Revision 3 36 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 22. Select the type of DMA transfer as Host PC Memory <--> DDR and Transfer Type as Read/Write to perform simultaneous read and writes. Click Loop Transfer to perform 10 repeated DMA transactions.The Transfer Type can be selected as Read or Write also. After completion of data transfer, the throughput is displayed, as shown in Figure 30. Figure 30 • DMA between Host PC Memory and DDR Revision 3 37 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 23. Select the type of DMA transfer as LSRAM to DDR and Transfer Type as Read/Write to perform simultaneous read and writes. Click Loop Transfer to perform 10 repeated DMA transactions. After completion of data transfer, the throughput is displayed, as shown in Figure 31. The Transfer Type can be selected as Read or Write. Figure 31 • DMA between LSRAM and DDR 24. Click Exit to quit the demo. Revision 3 38 RTG4 FPGA PCIe Data Plane Demo using Two Channel Fabric DMA 2.6 Summary This demo shows how to implement a PCIe Data Plane Design using AXI based fabric DMA controller. The Throughput for data transfers is depends on the Host PC system configuration and the type of PCIe slots used. Table 3 shows the throughput values observed on the HP Workstation Z220 PCIe slot 4. Table 3 • Throughput Summary Throughput in Mbyte/sec X1 Lane Gen1 DMA Transfer Type Host PC to LSRAM DDR to LSRAM Host PC to DDR Read Single xfer 180 Loop xfer (50) 177 Write 237 236 R/W 180/237 180/236 Read 577 571 Write 585 582 R/W 575/585 570/580 Read 178 178 Write 232 232 R/W 177/232 177/231 Revision 3 39 Appendix: Known Issues 3 Appendix: Known Issues The following steps describe about known issues: 1. The PCIe root ports can enable or disable the link by configuring the link control register of the PCIe endpoint. If the PCIe root ports disable the link, the RTG4 PCIe endpoint LTSSM may be held in link disable or polling compliance states. This issue will be fixed in a future RTG4 silicon version. The demo design includes a workaround, as shown in Figure 32. The LTSSM_DISABLE_DETECT logic monitors the state of the LTSSM. If it does not change from LTSSM_DISABLE (6'b010000) state for a time period greater than 1 ms, the logic issues a corereset pulse and resets the core. The LTSSM_POLLING_COMPLIANCE_DETECT logic also monitors the state of the LTSSM. If it does not change from LTSSM_POLLING_COMPLIANCE (6'b000011) state for a time period greater than 1 ms, the logic issues a core-reset pulse to reset the core. Figure 32 • Workaround for Link Enable/Disable 2. The PCIe reset (fundamental reset or in-band reset) causes the endpoint device state machines, hardware logic, port states, and configuration registers (except for the sticky registers) to initialize the default conditions. During a host initiated PCIe reset process, the SERDES PCIe endpoint reset must be generated in a proper sequence, and the endpoint device must be reinitialized correctly. This will be handled automatically in a future Libero release. If the PCIe endpoint is not reset properly, corrupt data may be passed through the PCIe link. The demo design implements proper endpoint reset, as shown in Figure 33 on page 41. It detects the hot reset, and resets the SERDES core and AXI interface using the SERDES soft reset register through the CoreABC IP module. The logic performs the following operations: a. The HOTRESET_DETECT logic detects the hot reset from the root port by monitoring the LTSSM[5] signal from SERDES block and generates HOTRESET. b. The GPIO_IN[0] of the CoreGPIO module is connected to the HOTRESET signal.The GPIO_IN[1] is connected to the PCIE_L2P2_ACTIVE signal from the SERDES block. c. The CoreGPIO generates an interrupt to the CoreABC IP module on the positive edge of the HOTRESET signal or the negative edge of the PCIE_L2P2_ACTIVE signal. Revision 3 40 Appendix: Known Issues d. The CoreGPIO interrupt is connected to IO_IN[0] of the CoreABC IP module. The CoreABC monitors IO_IN[0]. If it is high, it resets the SERDES core and AXI interface using the SERDES soft reset register. Figure 33 • Hot Reset Detection Block 3. PCIe X4 designs enumerate as x1 designs on RTG4 ES device. In the demo design, PCIe is configured for x1 link width. It will be fixed in a future RTG4 silicon version. Revision 3 41 Appendix: Register Details 4 Appendix: Register Details Table 4 shows the registers used to interface with the Fabric DMA controller. These registers are in BAR1 address space. Table 4 • Register Details Register Name Register Address Description PC_BASE_ADDR 0x8028 Host PC memory base address provided by the driver. DMA_DIR 0x8008 DMA direction: Direction Register Value 1. PCIe DDR memory 2. DDR PCIe memory 0x11AA0001 0x11AA0002 3. LSRAM DDR memory 0x11AA0003 4. DDR LSRAM memory 0x11AA0004 5. PCIe LSRAM memory 6. LSRAM PCIe memory 0x11AA0005 0x11AA0006 To reset the DMA, the register value is 0x11AA0007. Notes: 1. Before initiating DMA transactions, reset the DMA with the register value, 0X11AA0007. 2. The DMA transactions 1 and 2, 3 and 4, or 5 and 6 can be performed simultaneously by writing the corresponding values one after other. DMA_CH0_STATUS 0x8100 DMA Channel-0 status: • DMA_CH0_STATUS[31] 1: DMA operation completed 0: DMA operation not completed • DMA_CH0_STATUS[15:0] CLK count DMA_CH1_STATUS 0x8108 DMA Channel-1 status: • DMA_CH1_STATUS[31] 1: DMA operation completed 0: DMA operation not completed • DMA_CH1_STATUS[15:0] CLK count RW_REG 0x0 Scratchpad register for PCIe R/W. LED_CTRL 0xA0 LEDs control register. SWITCH_STATUS 0x90 DIP switch status. Note: For the DDR memory, the source memory address is fixed as 0x0100_0000 and the destination memory address is fixed as 0x0000_0000. Revision 3 42 Appendix: Silk Screen 5 Appendix: Silk Screen Figure 34 shows the top-view of the RTG4 Development Kit silk screen. Figure 34 • Top View - RTG4 Development Kit Silk Screen J1 J2 SERDES TEST TRACE-5/8/5 MILS LAYER-L14 LENGTH-5460 MILS J3 J5 J4 J6 SERDES TEST TRACE-3.5/8/3.5 MILS LAYER-L12 LENGTH-7206 MILS J9 12V/5A 2.5V 1.8V 1.5V 1.2V B1 Revision 3 J17 SWT C19 D3 R24 R30 C23 R25 R21 GND TP15 C26 J25 GA1 J24 U4 R6 TP84 VDDPLL1 A40 GND TMS TDO TDI J23 R34 R35 C30 TRST_L TCK U12 GND TP29 FTDI PROG MODE RMT J32 D8 R69 C71 SEL C73 R76 J34 U17 R50 JTAG PROG MODE D4 R48 R49 R54 C61 U23 C70 U18 R88 C91 C81 U28 R79 R82 R85 R86 C80 C79 C83 C85 C88 C92 TP57 R93 0P75V_REG_FDDR0 3P3V_LDO 2P5V 1P2V_SERDES_IO R119 R120 R121 0P75V_REG_FDDR0 0P75V_REG_FDDR1 DS13 DS14 DS15 DS16 DS17 DS18 R115 R116 R117 R118 DS12 VDD_REG 1P5V_REG R111 R112 R113 R114 DS8 TP79 VCCIO_HPC1_VADJ VCCIO_HPC2_VADJ 1P8V 1P0V_PHY TP65 TP68 DS9 DS10 DS11 J57 REFCLK_N GND J50 SERDES5_TX0_P GND J49 R102 R104 SERDES5_RX0_P 1P2V_REG R74 R78 D9 A1 C95 TP66 TP63 TP72 TP77 C111 TP81 TP82 R123 GND TP80 GND TP67 R108 R99 R106 R97 R109 R100 R98 R103 R107 R105 TP71 TP56 TP61 GND GND TP60 C100 C102 R94 REFCLK_P J48 TP64 TP58 C98 J27 C35 R37 C45 TP30 1P2V_SERDES_IO C68 TP50 U27 GND R92 J58 SERDES5_RX0_N J59 SERDES5_TX0_N C87 C89 C93 GND C101 C104 C105 C106 C109 GND TP54 Y4 125MHz J54 SERDES_VREF2 J53 SERDES_VREF1 C77 C78 C82 C86 GND U29 R83 TP46 GND C76 J33 VCCIO_HPC1_VADJ A1 U6 U9 R60 1P2V_SERDES_IO A1 GND R75 GND TP51 U22 A1 TP45 TP42 TP52 D10 CON1 C62 U19 C57 C58 C56 U20 C60 C69 A1 U24 S0_PRSNT U32 C107 C108 J55 R110 R122 D5 C54 TP35 TP36 AF7 AE7 0P75V_REG_FDDR1 3P3V R101 U10 A1 U15 C53 C52 GND C64 C55 R58 R59 D11 R87 R90 R91 C99 C97 TP69 2P5V C40 C47 C49 3P3V_LDO 2P5V C36 U16 U13 U11 C44 C33 C42 3.3V 2.5V TP18 C29 1.8V 1.5V 1.2V GA0 J22 FP4 HEADER FTDI-JTAG FTDI-SPI SLAVE C34 R42 C46 C50 3 OFF R13 J19 L1 C15 R18 C11 VPP TP19 Y2 50MHz 6 RMTC12C8 U8 9 A1 C24 VCCIO_HPC1_VIO _B_M2C_FMC C32 TP27 AE35 TP28 A1 A1 3P3V_LDO R184 2 19 1 J26 TRACE ETM HEADER 1 J20 AF35 A1 10 R19 20 TP83 R11 R36 C27 TP53 1P5V_REG 19 R15 R7 D2 R33 A1 R137 B32 U33 D1 20 A J18 1 RVI HEADER 2 B C74 TP59 R138 R139 R135 L2 U7 R14 C13 C17 A1 C59 R55 R61 C65 TP34 1P0V_PHY TP37 R89 TP76 F33 GND C110 R95 R23 R27 R29 R32 R31 C25 C28 C31 C103 BD2 U30 C38 C75 R84 R73 1P8V U31 I2C0_SDA CR2 R96 5V0_FT DS7 R43 R45 R46 R47 R51 U26 R345 R344 C94 C96 J51 J52 5 J47 PO_LED0 T34 PO_LED3 R56R57 R62 R63 R64 Dd7 J35 Dd6 J36 Dd4 J37 Dd2 J38 J46 C90 1 100MHz Y1 RT4G_DEVELOPMENT_KIT REV A R22 DVP-102-000418-001 R26 R28 SW6 ON 1 R70 R9 W33 U35 VCCIO_HPC2_VADJ R36 U14 J31 Y3 25MHZ 12V_PWR_EN J41 J42 J43 PWREN# Dd5 CR1 GND U3 TP7 TP5 VCCIO_HPC2_VADJ 5P0V 2 MDC C72 R77 Dd3 C37 J39 U25 J44 C38 J45 J40 GND X1 R80 C84 R81 U21 J21 C41 R65 R66 1 R67 R68 D7 C63 C18 T33 A1 C66 C67 PHY TRSTN TMS TCK R71 R72 TDI TP43 TDO GND TP49 GND VCCIO_HPC2_VIO _B_M2C_FMC DS6 LED8 LED7 LED6 LED5 LED4 LED3 TC24 R38 R39 R41 R52 HSDACP R53 J11 A1 B1 J12 HPC2-PARTIALLY POPULATED FMC A40 C10 V30 C39 C43 C48 R40 C51 R44 HSDACN D6 J10 SW7 DEVRST C6 W34 MDIO C37 A1 J29 DS4 DS5 J28 TC4 TC5 TC1 TC6 TC2 TC7 TC8 TC3 TC9 R17 J30 DS1 L R136 R12 R16 C5 C9 SW5 ON-H LED1 LED2 AA33 VDD_REG Y31 A1 A1 A A W31 TP16 C14 R20 W30 VDD CURRENT SENSE B B1 B V33 SW4 AB32 SW3 AB30 B1 V34 A1 A A A1 U34 W36 B B1 L ON-H B1 B PO_LED2 SW2 AB31 SW1 AA30 CONFIG1 R10 C7 U5 J15 W35 DS2 RESET LED9 3P3V J13 R2 R3 R4 R5 GA1 GA0 J16 TP14 3P3V TP12 1.2V 1.0V R8 1 DS3 R1 GND TP1 12P0V TP4 TP9 TP10 TP11 TP13 J14 3P3V K1 TCK GND TMS TRST_L TDO TP2 TDI GND TP3 HPC1-FULLY POPULATED FMC K40 U2 TP8 GND U1 5P0V J8 J7 TP78 J56 GND 3P3V A1 K1 43 Revision History 6 Revision History The following table shows important changes made in this document for each revision. Revision Changes Revision 3 (April 2016) Updated the document for Libero v11.7 software release (SAR 78192). Revision 2 (October 2015) Updated the document for Libero v11.6 software release (SAR 71422). Revision 1 (June 2015) Initial release Revision 3 44 Product Support 7 Product Support Microsemi SoC Products Group backs its products with various support services, including Customer Service, Customer Technical Support Center, a website, electronic mail, and worldwide sales offices. This appendix contains information about contacting Microsemi SoC Products Group and using these support services. 7.1 Customer Service Contact Customer Service for non-technical product support, such as product pricing, product upgrades, update information, order status, and authorization. From North America, call 800.262.1060 From the rest of the world, call 650.318.4460 Fax, from anywhere in the world, 408.643.6913 7.2 Customer Technical Support Center Microsemi SoC Products Group staffs its Customer Technical Support Center with highly skilled engineers who can help answer your hardware, software, and design questions about Microsemi SoC Products. The Customer Technical Support Center spends a great deal of time creating application notes, answers to common design cycle questions, documentation of known issues, and various FAQs. So, before you contact us, please visit our online resources. It is very likely we have already answered your questions. 7.3 Technical Support For Microsemi SoC Products Support, visit http://www.microsemi.com/products/fpga-soc/design-support/fpga-soc-support. 7.4 Website You can browse a variety of technical and non-technical information on the Microsemi SoC Products Group home page, at http://www.microsemi.com/products/fpga-soc/fpga-and-soc. 7.5 Contacting the Customer Technical Support Center Highly skilled engineers staff the Technical Support Center. The Technical Support Center can be contacted by email or through the Microsemi SoC Products Group website. 7.5.1 Email You can communicate your technical questions to our email address and receive answers back by email, fax, or phone. Also, if you have design problems, you can email your design files to receive assistance. We constantly monitor the email account throughout the day. When sending your request to us, please be sure to include your full name, company name, and your contact information for efficient processing of your request. The technical support email address is [email protected]. 7.5.2 My Cases Microsemi SoC Products Group customers may submit and track technical cases online by going to My Cases. Revision 3 45 Product Support 7.5.3 Outside the U.S. Customers needing assistance outside the US time zones can either contact technical support via email ([email protected]) or contact a local sales office. Visit About Us for sales office listings and corporate contacts. 7.6 ITAR Technical Support For technical support on RH and RT FPGAs that are regulated by International Traffic in Arms Regulations (ITAR), contact us via [email protected]. Alternatively, within My Cases, select Yes in the ITAR drop-down list. For a complete list of ITAR-regulated Microsemi FPGAs, visit the ITAR web page. Revision 3 46 Microsemi Corporation (Nasdaq: MSCC) offers a comprehensive portfolio of semiconductor and system solutions for communications, defense & security, aerospace 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; Powerover-Ethernet ICs and midspans; as well as custom design capabilities and services. Microsemi is headquartered in Aliso Viejo, Calif, and has approximately 4,800 employees globally. Learn more at www.microsemi.com. Microsemi Corporate 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 E-mail: [email protected] © 2016 Microsemi Corporation. All rights reserved. Microsemi and the Microsemi logo are 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. 50200622-3/4.16