Having a reliable and high-performance router is a necessary factor to run a high traffic network where different devices need to transfer and receive data as fast as possible. An Ethernet router with a powerful processor with sufficient local memory diminish data hiccups, massage loading and buffering time, and produces faster response time. Older generation of routers often included MIPS processor with less amount of memory to meet the network demands. However, because of the huge amount of data that people now generate combined with the emergence of various protocols such as Wi-Fi, Ethernet, USB, SFP, QSFP, etc., high-performance re-programmable routers have become critical. FPGAs are both high-performance and re-programmable. Therefore, implementing them into the routers is becoming popular. For example, having an FPGA as the main processor enables the user to customize the hardware by adding encryption and compression modules to secure and compress the network data which are desired for Security Cameras.
Aldec offers a networking solution based on the Xilinx® Zynq™ FPGA. In this solution, an Ethernet router is designed using TySOM-2A-7Z030 embedded development board and FMC-NET daughter card produced by Aldec which are shown in the figure 1 and 2.
|Figure 1: TySOM-2A-7Z030||Figure 2: FMC-NET|
The TySOM-2A-7Z030 embedded development board provides two Ethernet RJ-45 connectors, four USB 2.0 and one Wi-Fi/Bluetooth channel. The FMC-NET daughter card also provides four Ethernet, one Wi-Fi/Bluetooth channel, one QSFP+ connector and four SATA connectors. Therefore, the designed router has six Ethernet connectors with WAN and LAN functionality, two Wi-Fi/Bluetooth channels, one QSFP+, four USB and SATA connectors. The Ethernet connectors can be used for connecting laptops and PCs to the network. The USB ports can be used to connect external devices such as Hard Drives and printers to the network. The QSFP+ connectors can be used for high speed data transaction such as transferring data between the server and the network. The SATA connector can be used for adding Hard Drives and Solid-State Drives to the network.
Zynq device includes both FPGA (Programmable Logic) and ARM processor (Processing System). In the PS side of the Zynq, OpenWrt Linux distribution is run on the ARM processor which controls all the devices. OpenWrt provides a fully writable filesystem with package management, instead of trying to create a single, static firmware. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developers, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability of full customization, to use the device in ways never envisioned. For more information about OpenWrt, go to OpenWrt webpage.
In the PL side of the Zynq, the Ethernet MAC modules and AXI 1G/2.5G are used. Also, 10Gb Ethernet subsystem cores for QSFP+ are implemented. The FMC-NET daughter card is connected to the PL side which expands the peripherals. The figure 3 shows the PL/PS connectivity inside the Zynq device.
Figure 3: PS and PL connectivity inside the Zynq device
To dig more into the functionality of the design, consider that the router is going to transmit network packages through the Ethernet interface. Here would be the steps that should be taken to transmit and receive the packages:
OpenWrt → CPU → AXI → MAC → RGMII → PHY → Ethernet Port → Transmitted network packet
OpenWrt ← CPU ← AXI ← MAC ← RGMII ← PHY ← Ethernet Port ← Received network packet