Apollo Carrier board and installation guide. 1.1 General Description Apollo Carrier board is a Carrier board design for Terasic Apollo S10 SoM board. Apollo Carrier board and Apollo S10 SoM board communication via FMC and FMC+ connectors. Apollo Carrier board provides 12V DC power for Apollo S10 via SAMTEC 2x6 connector.
1.2 Key Features The following hardware is implemented on the Apollo Carrier board: Carrier board for Apollo S10 SoM Power input: 12V DC via PCIe 2x4 power connector Provides 12V DC to S10 via SAMTEC 2x6 power connector ...
2.1 Board Overview Figure 2-1 is the top view of the Apollo Carrier Board. It depicts the layout of the board and indicates the location of the connectors and key components. Users can refer to this figure for relative location of the connectors and key components.
Figure 2-2 Position of 12V DC Input and Power Switch After Apollo S10 and Apollo Carrier Board are assembled, please: Always make Apollo S10 SoM power switch on. Do not use the 2x4 PCIe power connector on Apollo S10.
Page 8
GPIO ports is shown in Table 2-3 Table 2-4 shows all the pin assignments of the GPIO connector. The pin-out of JP1 is shown in Figure 2-4 Connection between 2x20 GPIO and Apollo S10 SoM Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 9
Figure 2-5 Location of the JP2 Table 2-2 Header setting for I/O standard of the JP2 JP2 Setting FMC I/O Standard 3.3V(Default Setting) 2.5V Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 10
1.8V Figure 2-6 Pin 1 of the GPIO header Figure 2-7 Pin-out of 2x20 GPIO Header JP1 Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Si5340A_I2C_SCL 1.8V PIN_AU34 clock generator I2C data bus of the 1.8V Si5340A_I2C_SDA PIN_AU33 clock generator Enable output of the 1.8V SI5340A_OE_n PIN_BG38 clock generator SI5340A_RST_n Reset of the clock 1.8V PIN_BG37 Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
DIFFERENTIAL I/O QSFP28A_RX_p[1] Receiver data of channel 1 HSSI PIN_AH4 DIFFERENTIAL I/O QSFP28A_RX_p[2] Receiver data of channel 2 HSSI PIN_AF4 DIFFERENTIAL I/O QSFP28A_RX_p[3] Receiver data of channel 3 HSSI PIN_AG4 DIFFERENTIAL I/O Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 14
DIFFERENTIAL I/O QSFP28B_TX_p[1] Transmitter data of channel 1 HSSI PIN_G47 DIFFERENTIAL I/O QSFP28B_TX_p[2] Transmitter data of channel 2 HSSI PIN_E47 DIFFERENTIAL I/O QSFP28B_TX_p[3] Transmitter data of channel 3 HSSI PIN_C47 DIFFERENTIAL I/O Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
2.7 USB Downstream Port The Thunderbolt 3 controller on the Apollo carrier board not only allows the FPGA and Host PC to establish PCIe interface connections through a Thunderbolt 3 cable, but also provides another expansion port for a USB downstream port (See Figure 2-11).
Page 17
Figure 2-12 Connection setup for USB downstream port (Carrier board) to USB Blaster II Port (Module board) Figure 2-13 JTAG connection via USB downstream port Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Figure 3-1, is used for board stacking. Four JSOM standoff are required to assemble Apollo S10 SoM and Apollo Carrier Board. Each JSOM standoff is consistent with four components. The Apollo S10 kit includes four JSOM standoff as shown in Table 3-1.
1.5mm Hex Key 5.0mm Hex Socket 3.2 Assembly Below are the procedures to assemble the Apollo S10 SoM and Apollo Carrier Board or user can “How to assemble Apollo S10 with carrier refer to the video board” to assemble the board.
Page 20
Figure 3-2 Assemble M2.5 Screws and JSOM-B on Apollo S10 Figure 3-3 Assemble JSOM-T to JSOM-B Figure 3-4 Place Apollo Carrier Board over four JSOM-T Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Figure 3-5 Push Apollo Carrier Board onto JSOM-T Figure 3-6 Assemble Hex Nut to JSOM-T 3.3 Disassembly Here are the procedures to disassemble with Apollo S10 SoM and Apollo Carrier Board or users can refer to the video “How to disassemble Apollo S10 with carrier board”...
Page 22
Figure 3-7 Disassemble Hex Nut Figure 3-8 Disassemble JSOM-T to JSOM-B Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 23
Figure 3-9 Unscrew JSOM-B Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Chapter 4 Setup Thunderbolt 3 hunderbolt 3 is unique communication path between the Host PC and Apollo Carrier board. As shown in Figure 4-1, while the Apollo S10 SoM is connected to the carrier board to form the Apollo Developer Kit. With a Thunderbolt 3 cable, Host PC can communicate with the FPGA on the developer kit via PCIe protocol (PCIe design is required in the FPGA).
An Apollo Developer Kit (Apollo S10 SoM + Apollo Carrier board) A Thunderbolt 3 Cable as shown in Figure 4-2 Figure 4-2 Thunderbolt 3 Cable 4.2 Thunderbolt 3 Test on Windows OS Below shows the procedure when the Apollo Developer Kit is first time to plug into the Thunderbolt 3 port of the Host PC.
Page 26
3_connection_win10 4-5. Select “Always Connected” A Thunderbolt Dialog window will appear as shown in Figure and click OK button. Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
User first needs to program the PCIe design to the FPGA, then re-establish the Thunderbolt 3 connection to the Host that allow the Host to detect the PCIe device in the FPGA. Below we introduce the use of a Terasic PCIe demo to demonstrate the detection of a PCIe device on the Host.
Page 28
PCI device does not appear in the Device Manager, please re-plug the Thunderbolt cable again then check again. Next, to install the PCIe driver for FPGA design, please refer to the section 5.3 for detailed. Figure 4-6 PCI Device in the Device Manager Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
FPGA System and PC System. The FPGA System is developed based on Stratix 10 Hard IP for PCI Express with Avalon-MM DMA. The application software on the PC side is developed by Terasic based on Altera’s PCIe kernel mode driver. Figure 5-1 Infrastructure of PCI Express System Apollo Carrier Board www.terasic.com...
The PCIe library module TERASIC_PCIE_AVMM.dll provides DMA and direct I/O access allowing user application program to communicate with FPGA. Users can develop their applications based on this DLL. The altera_pcie_win_driver.sys kernel driver is provided by Intel. Apollo Carrier Board www.terasic.com User Manual...
Page 31
Device Manager to launch the Device Manager dialog. There will be a PCI Device item in the dialog, as shown in Figure 5-3. Move the mouse cursor to the PCI Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 32
6. In the How do you want to search for the driver software dialog, click Browse my computer for driver software item, as shown in Figure 5-4. Figure 5-4 Dialog of Browse my computer for the driver software Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 33
Figure 5-6 Click Install in the dialog of Windows Security 9. When the driver is installed successfully, the successfully dialog will appear, as shown in Figure 5-7. Click the Close button Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 34
10. Once the driver is successfully installed, users can see the Altera PCI API Driver under the device manager window, as shown in Figure 5-8 Figure 5-8 Altera PCI API Driver in Device Manager Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Specify the desired device ID. A zero value means to ignore the device ID. wCardIndex: Specify the matched card index, a zero based index, based on the matched vendor ID and Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 36
Parameters: hPCIE: A PCIe handle return by PCIE_Open function. PcieBar: Specify the target BAR. PcieAddress: Specify the target address in FPGA. pdwData: A buffer to retrieve the 32-bit data. Return Value: Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 37
Read an 8-bit data from the FPGA board. Prototype: bool PCIE_Read8( PCIE_HANDLE hPCIE, PCIE_BAR PcieBar, PCIE_ADDRESS PcieAddress, uint8_t *pByte); Parameters: hPCIE: A PCIe handle return by PCIE_Open function. PcieBar: Specify the target BAR. PcieAddress: Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 38
PCIE_DmaRead Function: Read data from the memory-mapped memory of FPGA board in DMA. Maximal read size is (4GB-1) bytes. Prototype: bool PCIE_DmaRead( PCIE_HANDLE hPCIE, PCIE_LOCAL_ADDRESS LocalAddress, void *pBuffer, uint32_t dwBufSize Parameters: Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 39
Return true if write data is successful; otherwise false is returned. PCIE_ConfigRead32 Function: Read PCIe Configuration Table. Read a 32-bit data by given a byte offset. Prototype: bool PCIE_ConfigRead32 ( Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
5. Pull the Thunderbolt 3 cable off form the Host, then pull the cable in again for redetect the PCIe device 6. Make sure that Windows has detected the FPGA Board by checking the Windows Device Manager as shown in Figure 5-9 Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 41
9. Type 2 followed by the ENTER key to select the Link Info item. The PCIe link information will be shown as in Figure 5-11. Gen3 link speed and x3 link width are expected. Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 42
11. Type 4 followed by the ENTER key to select the DMA DDR4A Bank Memory Test item. The DMA write and read test result will be reported as shown in Figure 5-13 Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 43
12. Type 5 followed by the ENTER key to select the DMA DDR4B bank Memory Test item. The DMA write and read test result will be reported as shown in Figure 5-14 Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 44
13. Type 99 followed by the ENTER key to exit this test program. Development Tools Quartus Prime 19.1 Pro Edition Visual C++ 2012 Demonstration Source Code Location Quartus Project: Demonstrations\PCIE_DDR4 Visual C++ Project: Demonstrations\PCIe_SW_KIT\Windows\PCIe_DDR4 Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 45
Implement dynamically load for TERAISC_PCIE_AVMM.DLL PCIE.h TERASIC_PCIE_AVMM.h SDK library file, defines constant and data structure The main program PCIE_DDR4.cpp includes the header file "PCIE.h" and defines the controller address according to the FPGA design. Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 46
PCIE_Read32 API, as shown below: he memory-mapped memory read and write test is implemented by PCIE_DmaWrite and PCIE_DmaRead API, as shown below: Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 47
The PCIe link information is implemented by PCIE_ConfigRead32 API, as shown below: Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
To enable an external loopback of the transceiver channels, QSFP28 loopback fixtures, as shown in Figure 6-1, are required. The fixture is available at: https://multilaneinc.com/product/ml4002-28/ Figure 6-1 QSFP28 Loopback fixtures Figure 6-2 shows the FPGA board with four QSFP28 loopback fixtures installed. Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
This example executes the external loopback test through one of the QSFP28 ports on the FPGA main board. A QSFP28 loopback fixture is required to perform this demonstration. Figure 6-3 shows the block diagram of this demonstration. Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 50
The run_test is used to enable transceiver serial loopback for internal loopback. Make sure your Host PC has installed the Quartus 19.4 Pro edition. Insert a QSFP28 loopback fixture into the QSFP28-A port on the Apollo carrier board, as shown in Figure 6-2.
Page 51
“test.bat” to program the FPGA and run the Tcl file (See Figure 6-4). The Tcl file will open the Quartus tool “System Console” automatically(See Figure 6-5). Figure 6-4 Execute demo batch file Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 52
Figure 6-5 Launch the System Console for Ethernet 40G Demo If you have a QSFP28 loopback fixture installed, type “loop_off” to turns off internal serial loopback. Otherwise, type “loop_on” to turn on internal serial loopback(See Figure 6-6). Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 53
Figure 6-6 Enter command for test Type “start_pkt_gen” to starts the packet generator. Type “chkmac_stats” to display the values in the MAC statics counters, as shown in Figure 6-7. Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Page 54
Figure 6-7 Ethernet 40G loopback test report for RX and TX Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
First publication 2020.04 V1.1 Add chapter 5 &6 2020.05 V1.2 Add assemble and disassemble board video in chapter 3 2020.06 V1.3 Fix some description error 2020.09 V1.4 Fix some description error Apollo Carrier Board www.terasic.com User Manual September 22, 2020...
Need help?
Do you have a question about the Apollo Carrier Board and is the answer not in the manual?
Questions and answers