FPGA based PCIe-to-VME bridge
Since the VME bus is no longer natively supported by current processors, it is essential to implement bridging technologies that take over these functions for this form factor standard. MEN Mikro Elektronik developed a PCIe-to-VME bridge based on FPGA logic as an alternative to discrete components and can be utilized under the General Purpose License 3.
The VME bus is one of the oldest and most important form factor standards for slot-based modular systems. Its specification was first presented in 1981 and is maintained as a standard by VITA. The 400 MHz MVME101 boards from Emerson/Motorola, which were the first system controllers for the VME bus at that time, are still available today. However, the performance requirements for new applications have increased significantly over the years. Current system designs are usually equipped with Intel Core processor based single board computers (SBCs). The latest applications even require Intel Xeon D processors to deliver the highest embedded processor performance.
Application fields for such VME SBCs can be found in research facilities like CERN, the industrial automation and measurement industry, rail transport, aviation, and defense technology. Particularly in the latter three sectors, long-term availability is often of highest priority – and we are not talking about years, but we are talking several decades. This is why the VME standard still enjoys high demand today even though there have been successor standards for many years.
Market researchers such as IHS are still forecasting more than $200 million in sales for VME bus-based SBCs in 2020 (Figure 1), which corresponds to a turnover of more than a quarter of a million boards, assuming an average price of around $750 per board. But what do you do when manufacturers discontinue discrete components such as the TSI148, which for example was still used in Intel Core Duo and Core 2 Duo based SBCs? It is necessary to find new solutions for the upcoming SBC designs. There are basically three options:
- Stock-pile enough TSI148 chips through a Last Time Buy
- Use the successor Tundra Universe II
- Employ FPGA technology to make bridging functions reusable forever
MEN Mikro Elektronik developed an FPGA-based bridge available under General Purpose License (Figure 2). All VHDL sources can be obtained under the GPL2-or-later license and the Linux driver package under the GPL2-or-later license in the PCIe-VME-bridge project page of the Open Hardware Repository. Open sourcing the PCIe-to-VME bridge is a big step for all VME users around the world. First of all, engineers no longer depend on a particular vendor. Even if the FPGA chip that is currently used becomes obsolete, having access to complete VHDL sources enables them to port the PCIe-to-VME bridge to another FPGA. Thanks to the fact that the design is open source, any company can now not only buy an up-to-date product with that bridge but also build any other VME SBC using the same VME bridging. Using the same VME bridge on SBCs means also the same Linux kernel and user space VME API for all companies. In the future, this should allow all engineers to collaborate more efficiently in the VME world and will give them more freedom to share and re-use Linux kernel drivers for the VME slave boards that engineers custom-design themselves.
The new FPGA logic
The new PCIe-to-VME bridge translates the read and write operations in the PCIe address space to read and write transactions on the VME bus. It acts as a PCIe endpoint on one side and VME bus master on the other. The bridge can generate VME single cycles and block transfers. The following access types are currently supported:
- VME single cycles: A16, A24, A32 with any of the D8, D16, D32 data widths
- VME block transfers (BLT): A24D16, A24D32, A32D32 plus the A24D64 and A32D64 multiplexed block transfer (MBLT)
The VME block transfers are executed by a built-in direct memory access (DMA) engine, where the blocks of data are transferred between the system memory and the VME bus, bypassing the CPU. Additionally, it is also possible to use DMA with single cycles, which is especially useful for connected boards that don’t support BLT. In general, this is a faster and more efficient way of exchanging multiple data words, as the CPU is free to continue its normal operation until the DMA engine is done with a programmed task. The bridge also supports some features added in the VME64x extensions. It is able to use the geographical addressing pins and generate a special type of A24 access to read and write the CR/CSR configuration space of VME slaves installed in the same crate. However, while none of the fast transfer modes (2eVME, 2eSST) are currently in place, they are due to be implemented as the performance demands increase.
Work on this topic is already advised. Moreover, the VME bus module can even act as both VME master and VME slave. This enables not only its use in VME SBCs that run as masters, but also to leverage them on I/O and other peripheral boards connected as slaves. Although for the VME SBC application, its configuration focuses only on the VME master functionality. Currently, the whole bridging design occupies only about 30 percent of the Intel Cyclone’s FPGA area. This means that there is plenty of space to implement additional new features like the above mentioned 2eVME, 2eSST transfers.
Guaranteed long-term availability
By releasing the specification along with the deployment of the first boards with the new FPGA-based PCIe-to-VME64x bridge, MEN Mikro Elektronik has reached an important milestone for the future long-term availability of VME-based designs. Next to its VME CPU board competence, MEN was also able to demonstrate its high FPGA expertise for standardized embedded computer technology during the project. (Figures) The company makes this know-how available to interested OEM customers for own projects.
For instance, to make standard protocols proprietary and thereby protect own IP, or to be able to protect investments in discontinued technologies, as happened in the case of the PCIe-to-VME bridge. MEN also provides off-the-shelf FPGA solutions such as PCIe-to-PCI or even PCIe-to-ISA bridges. In addition, the company offers FPGA-based bridges to external interfaces and buses such as Anybus as well as complete controllers for UART, CAN bus or SPI-based touch panels. This application scenario lets OEM customers create variants extremely cost-efficiently. For instance, a single CPU board design can be used for completely different applications. Even when batch sizes are small, it is possible to service significantly more application such as system solutions with different fieldbuses or industrial Ethernet variants. OEMs can use a single hardware platform in all variants, which significantly simplifies service, documentation, and certification.
The first board with the new bridge
The first board with the new FPGA-based bridge to the VME bus is the A25 from MEN Mikro Elektronik that has been used at CERN. It is equipped with Intel’s Xeon D-1500 server CPU and besides the new FPGA, combines high cost efficiency with a rich feature set. Moreover, the A25 supports system size reduction, reliable long-term operation without forced air cooling, and manifold computing functions with just one computer board. With two USB ports, three Gigabit Ethernet ports and two RS232 COMs at the front, the board offers the basics of a multi-purpose industrial computer. Being equipped with DDR4 SDRAM with ECC and Flash, the need for flexible mass storage extensions is covered by slots for microSD and mSATA. In addition, the A25 can be equipped with one XMC/PMC mezzanine card and one PCI Express Mini Card, providing additional front I/Os (XMC/PMC) for functions such as graphics, mass storage, or further Ethernet. The PMC slot supports modules up to 64-bit/133-MHz PCI-X, while the XMC slot is controlled by one PCI Express x8 link. The modular extension with I/O mezzanines on a single board computer allows to configure tailored systems from open standard components, reducing integration time and cost. The A25 supports operation in a 40 °C to +60 °C temperature range. The rugged board also withstands shock and vibration as all components on the board are soldered, which is a prerequisite for reliable operation and a longer product life-time.