Ein weiteres Merkmal, in dem sich die Altera-Chips voneinander unterscheiden, ist die Anzahl und die Geschwindigkeit der seriellen Transceiver. Diese sind wichtig u.a. für Basisstationen und Netzwerk-Systeme und sind als Hard Macro wesentlich schneller, als wenn man einen I/O-Controller aber auch einfache Erweiterungen für PCIe in die LUTs synthetisieren würde.
Lediglich das Cyclone-V-SE-SoC am unteren Ende der Leistungsskala hat keine Transceiver, die SX-Derivate sechs oder neun jeweils 3,125 Gbit/s schnelle Transceiver und die ST-SoCs jeweils neun Transceiver mit 6,144 Gbit/s. Alle Chips haben zwei Gigabit-Ethernet-Controller. Während man die Transceiver für SGMII (Serial Gigabit Media Independent Interface) nutzen kann, werden für GMII (Gigabit Media Independent Interface) oder RGMII (Reduced Gigabit Media Independent Interface) externe PHY-Chips benötigt.
Es gibt aber noch weitere I/O-Controller als Hard Macro. Alle bis auf das kleinste Cyclone-V-Derivat besitzen zwei PCI Express (PCIe, einer für 1×, 2× oder 4× und einer nur für 4×). Zusätzlich besitzen alle Chips USB-2.0-Controller und diverse langsamere I/O-Schnittstellen für Flash-Speicher (NOR und NAND), CAN, UARTs, I2C, SPI, SD und GPIO.
Damit diese langsamen Komponenten nicht den schnellen Bus blockieren, nutzen sie einen 32 bit-Amba-APB-Bus. Mit Ausnahme des kleinsten Cyclone-V-SoC, das weder PCI noch schnelle serielle Transceiver beinhaltet, sind die Chips somit gut für alle I/O-Aufgaben gerüstet.
Vereint, aber unabhängig
Das Booten der Altera-Chips ist sehr flexibel. CPU und FPGA-Subsystem können sich in fast allen Fällen wie separate Chips verhalten. Man kann sie wie einen ARM-Prozessor oder ein FPGA hochfahren. Eine CPU startet zuerst und lädt Code aus dem Boot-ROM, der einen weiteren Boot-Lader im DRAM initialisiert. Man kann dabei entweder Software über den QSPI-Flash-Controller, die SD-Karten-Schnittstelle oder den NAND-Flash-Controller nachladen. Man kann aber auch zuerst die FPGA-Logik booten, indem man deren LUT-Konfiguration lädt und dann die CPUs über eine benutzerdefinierte I/O-Schnittstelle bootet. Um die Logik zu programmieren, hat das FPGA-Subsystem einen Konfigurations-Manager, der Dateien aus dem Flash-Speicher oder über den SPI-Bus lädt. Dieser kann auch etwaige weitere FPGAs im System konfigurieren. Die CPUs können jederzeit die Logikzellen neu programmieren, indem sie weitere Konfigurationsdateien über jede ihrer I/O-Schnittstellen nachladen.
CPUs und FPGA-Logik verhalten sich lediglich dann nicht als separate Chips, wenn es um das Herunterfahren der CPUs geht: Das FPGA-Subsystem kann die CPUs nicht herunterfahren und quasi als Standalone-FPGA weiterarbeiten. Das Ganze macht aber natürlich auch keinen Sinn, da ein vergleichbares FPGA billiger ist und weniger Leistung aufnimmt als ein SoC dieser Art.
Jedes Subsystem hat seine eigene Schnittstelle zum externen Speicher. Die Busbreiten sind zu 8, 16 oder 32 bit konfigurierbar und die Taktfrequenzen reichen von 400 MHz für Low-Power-DDR-Speicher bis hin zu DDR3. Die höchstmöglichen Übertragungsraten pro Controller betragen für die Cyclone-V-Derivate 3,2 GB/s.
Um den CPU-Speicherbus zu entlasten, hat das FPGA-Subsystem zusätzlich für manche Hochleistungs-Applikationen seinen eigenen Speichercontroller. Als Alternative könnte man theoretisch auch einen Soft-IP-Controller in die Logikzellen synthetisieren, der dann allerdings entsprechend langsamer arbeiten würde. Der Speichercontroller besitzt sechs Steuerungs-Ports, wodurch sechs Master definiert werden können. Dazu gibt es vier 64 bit-Leseports und vier 64 bit-Schreibports, die sogar noch benutzerseitig konfiguriert werden können. So kann man zwei oder gar vier Ports zu zwei 128 bit- oder einem 256 bit-Port kombinieren.
Um Energie zu sparen, kann die CPU die FPGA-Logik, wenn sie gerade nicht gebraucht wird, komplett herunterfahren und wie jeder andere Cortex-A9-Prozessor arbeiten. Die üblichen Energiesparmaßnahmen wie Clock Gating oder das dynamische Skalieren der Taktfrequenz in Abhängigkeit von der Arbeitslast sind ebenfalls implementiert. Im Worst Case benötigen CPUs und FPGA-Logik je nach Unterfamilie zusammen 2 bis 5 W.