Author Archives: zian

Terasic Cyclone 5 GX Starter Kit

Terasic Cyclone5 GX Board

Terasic Cyclone5 GX Block Diagram

Terasic Cyclone 5 GX Starter Kit development board

The C5GX is an FPGA board based on the Altera Cyclone 5 without SoC

Main Features :

  • FPGA Device

    Cyclone V GX 5CGXFC5C6F27C7N Device
    77K Programmable Logic Elements
    4884 Kbits embedded memory
    Six Fractional PLLs
    Two Hard Memory Controllers
    Six 3.125G Transceivers

  • Configuration and Debug

    Quad Serial Configuration device – EPCQ256 on FPGA
    On-Board USB Blaster (Normal Type-B USB connector)
    JTAG and AS mode configuration supported

  • Memory Device

    4Gb LPDDR2 x32 bits data bus
    4Mb SRAM x16 bits data bus

  • Communication

    UART to USB
    Expansion I/O
    HSMC x 1, including 4-lanes 3.125G transceiver
    2×20 GPIO Header
    Arduino header, including analog pins
    SMA x 4 (DNI), one-lane 3.125G transceiver

  • Display

    HDMI TX, compatible with DVI v1.0 and HDCP v1.4

  • Audio

    24-bit CODEC, Line-in, line-out, and microphone-in jacks
    Switches, Buttons, LED, and 7-Segments

  • Others

    18 LEDs
    10 Slide Switches
    4 Debounced Push Buttons
    1 CPU reset Push Buttons
    Four 7-Segments

  • Micro SD Card Socket

    Provides SPI and 4-bit SD mode for SD Card access

  • Power

    12V DC input

Terasic Cyclone5 GX Board Top

Terasic Cyclone5 GX Board Bottom

Terasic Cyclone5 GX FTDI USB3

Terasic Cyclone5 GX Power Tree

First impressions :
No CD => can be downloaded from terasIC upon a free registration : informations on data-sheets of the components used, as well as a full schematic of the dev board.
Slower than the DE0Nano as for the speed spec (not a 6 series but a 7 series) Then again it’s for a Cyclone 5 not a Cyclone 4 so it might be still faster, not sure.
No step by step examples, unlike the DE0-Nano.
Pretty beefy power supply 12V 2Amps so not for low power applications. Also I didn’t take the power supply apart (since it’s pretty much glued) so I’m not sure about how safe it is.
Be careful about shared GPIO pins between the GPIO the Arduino header and two of the 7 segment displays.
About the 7 segment displays, there is no wiring for the 8th segment (the dot) but it also seems they left the dots totally unconnected (not even a through hole connector for them as they did for other components).
Unpopulated SMA transceivers (to cut cost probably) but you can get a daughter board (for as much if no more of the cost of the dev kit) for some serious AD/DA converters via the HSMC connector.

Component review :

  • HDMI
    They use an Analog Devices HDMI Transmitter ADV7513 controlled via a serial I2C bus.
    HDMI is awesome but they don’t offer direct HDL code samples, it does required a Qsys package with IP modules that require licensing, There are some dependencies on the NIOS soft-core but the actual Verilog that implements that dependency is encrypted so you can’t detach it from the license. That method handles the HDMI_TX_INT that triggers the initialization, hot plug/unplug and other situations, so it’s pretty critical for a full stand alone application.
    It could be that they don’t have a good handle on how to implement the HDMI_INT in Verilog or VHDL, so they pass the interrupt to the NIOS soft core to handle it. But you can do your own interrupt handler by following the Analog Devices documents included on the CD under the data-sheets, (downloadable as explained before). Or they don’t want to give away the NIOS interface, or decided people will purchase the license instead of reading the data-sheet to support the hardware, not sure but I tend to go to the later, even if their IP code only deals with the video and not with the audio or 3D configurations.
    No audio HDMI. Even if the HDMI transmitter supports it (it also supports 3D and HDCP among other things) The reason for no audio support is that the HDMI transmitter audio pins are not physically connected to the FPGA.
    But if you want to use that capability, terasIC actually did us a solid and provided through hole test points that are labelled as test pins on the top of the board, but they have the actual signal names on the bottom silk.
    Note the bottom image next to the Arduino power header. On the top image you can see those as TP3-TP11, TP3 being ground and 4-11 the HDMI audio signals/clocks.
    The through holes are all lined up with standard spacing, so you can solder a header and connect them to some GPIO pins and then you can write your own HDL to drive it (no IP from them for the sound as far as I can tell). The programming for the HDMI audio supports: I2S, SPDIF or HBR.
    You might be able to put a header that doesn’t need to be solder, not sure if the holes will accept prototyping headers and not sure if such beast exists. Something like this for the launchpad that is breakable so you can get rid off the two extra pins and use those for the extra Arduino header analog inputs. (Funny, the bottom picture has the extra two analogs populated, the top view has them not populated)
    0.100″ (2.54 mm) Straight Female Header: 1×10-Pin
  • GPIO
    It has a 40pin connector with 36 GPIO pins plus 2 grounds, a 3.3V pin and a 5.0V pin. GPIO_0 & GPIO_2 can also be used as dedicated clock inputs. GPIO_16 & GPIO_18 can also be used as PLL Clock outputs (shared with Arduino header IO_13 & IO_15).
    GPIO_3 through GPIO_18 are shared with the Arduino header IO_0 through IO_15.
    HEX2 and HEX3 (the 7 segment displays) share pins with GPIO_22 through GPIO_35 but it has dip switches in the bottom of the board to disconnect the wires from the two 7 segment displays (one segment at a time).
    Funny that the dip switches are count 8 each so one switch per block is not connected (maybe they intended to have the dot after all at one point).
    Not sure about this approach, I know it gives you more flexibility but you gotta be very careful if you plan on attaching an Arduino shield. You better make sure the dip switches are off and also you gotta make sure you clear the board configuration so that the sample configuration or your last pof file doesn’t put signals that were intended for the 7 segment display. They do have an executable to delete you configuration file so it won’t drive anything upon boot while transitioning from talking to the Hex upper two digits, or the Arduino data header, or the GPIO. But I can see this being a problem if you don’t pay attention.
    Arduino Header
    There are two jumpers to change the configuration of the header, it comes with a 12V power pin (I don’t think the Galilleo has it and not sure on the standard Arduino. it comes with an extra 2 analog inputs but there is no header for those two. So it has 6 with the header and I believe the Arduino Uno R3 has 8, but you will have to add the two pin header yourself.
    They use an LTC2308 ADC 500ksps, 8-channel, 12-bit.
  • LEDs
    Well, you get 10 red and 8 green.
  • Buttons
    De-bounced and 4 count, nothing to write home about other than they are regular size, not those tiny ones the DE0 Nano has.
  • Switches
    Not to confuse these with the dip switches. The board has 10 slide switches (nice and big, not those tiny ones the DE0 Nano has)
  • On/Off Button.
    Brilliant, no more plugging and unplugging your board. I know they have this before but not on boards at this price, and it’s a nice big red button!
  • Audio Codec
    It comes with Mic-In, Line-In and Line-Out. Didn’t play with this yet but they use an Analog Devices SSM2603 24-bit audio controlled via I2C. Sample rates variable from 8 kHz to 96 kHz.
  • HSMC
    High Speed Mezzanine Card, the connector is very expensive but terasIC has a bunch of HSMC daughter boards that you can put in there, including some impressive DAC/ADC boards with two 14 bit ADC channels up to 150MSPS and two 14 bit DAC that can hit up to 250MSPS and extra audio interface line-in, line-out, headphone & mic. (thinking signal generator don’t know) but at almost $400 I might stick with something cheaper for now.
    $200 gives you two 14-bit ADC at 65 MSPS and two 14-bit DAC at 125 MSPS.
    But they have other things available like LCD displays, HDMI receivers, Also for $140 you can get a 4 high speed transceiver board.
    For example if you want more GPIOs then grab the GPIO-HSTC card for $55 to get 3x 40x connectors (36 GPIO + power/ground)
    The socket has 4 transceivers channels on top of the two unpopulated ones on-board.
    It also has tons of LVDS RX/TX, 4 differential clocks input and outputs. An I2C bus.
    For high speed stuff this would be very useful maybe even drive LCDs directly.
    They have also a jumper to enable 12V to be available on the HSMC connector.
  • LPDDR2 memory
    They use some Micron MT42L128M32D1LF-25 WT:A mobile memory chip 4Gb but, have not played with it and how to address it, you have to deal with banks and the configuration is 16 Meg x 32bits x 8 banks.
    I think it’s the same memory as what’s on the Raspberry Pi.
  • SRAM
    4Mb (512KB) worth of it, they use an ISSI IS61WV25616 chip with 8 to 10 ns access time. Haven’t done much with that yet. Data width is 16 bits, 18 bit address space.
  • RS-232 Serial Port to USB interface
    Have not used it yet but if your computer doesn’t have RS-232 and you want to control the board after being programmed by this with speeds up to 3Mbps. They use an FT232R chip to do the job. Data-sheet of course comes with the downloadable CD.
  • Micro SD Card
    Supports x4 data lines micro SD cards, also I have not played with this part yet.
  • EPCQ
    (Quad Serial Configuration) devices, it comes with the EPCQ256, this is good to know because if you want to create pof files you must specify this in Quartus II. otherwise you can’t program your board directly with your code. I’m not sure if the template generated by the system builder utility does that for you as well, it might do it.
    Program in AS mode so it sticks as opposed of JTAG for programming until you power cycle the board. Meaning without the EPCQ256 setting under assigments/device…/Device and Pin Options…/Configuration/Configuration Scheme set to Active Serial x4 and set the Configuration device to EPCQ256, it won’t generate the pof file needed to flash your board.
  • RUN/PROG Switch
    This allows you to download the code in AS mode via the EPCQ instead of temporarily via the JTAG interface.
  • USB Blaster
    To program your board it has it built in so you don’t need to purchase the programmer separately.
  • CPU Reset
    Oh, yeah, I almost forgot, it as a tiny micro switch labelled CPU reset that you can use it as a reset if you configure your board to use it.
  • Misc
    The I/O pins can be configured like other Altera FPGAS Giving you a lot of flexibility.
    Not sure if it’s 5V I2C tolerant but if it’s not, there are ways to solve that. I did post a link to a Philips service note a while back that adafruit is maintaining.
    Edit link: Bi-directional level shifter for I²C-bus and other systems.

Conclusion :
Only 77K logic elements is enough to experiment and learn.

FTDI Morph-IC-II

FTDI Morph IC II

FTDI Morph IC II block diagram

FTDI Morph-IC-II FPGA development board

The Morph-IC-II is an FPGA board based on the Altera Cyclone 2

Main Features :

  • 105mm x 40mm board size
  • FT2232HQ Dual, Hi-Speed USB UART/FIFO IC used for USB communications
  • Altera Cyclone 2 – EP2C5F256C8N FPGA capable of synthesizing large scale integrated circuits
  • Ultra fast FPGA configuration/reconfiguration over USB (under 0.1 sec)
  • 4,608 Embedded FPGA Logic Elements (about 80,000 Gates typically)
  • 26 Embedded Logic RAM Elements (119Kbits)
  • FPGA-PC USB Data Transfer at up to 40MByte/sec
  • Onboard 93LC56B configuration EEPROM
  • MOSFET switched 5V and 3.3V power outputs for powering external logic
  • Onboard 12MHz crystal and essential support components for FT2232HQ
  • 80 dedicated external I/O pins
  • Onboard 50MHz oscillator as FPGA primary clock – also available for external use
  • JTAG interface for testing the I/Os and registers of the FPGA
  • 1 dedicated external clock input
  • Powered from USB bus or external PSU
  • Standard 0.1 inch pitch format connector pins, ideal for rapid prototyping or small-medium size production runs
  • FTDI’s VCP and D2XX USB Windows and Linux USB drivers (provided) eliminate the need for driver development in most cases
  • FPGA loader interface DLL (for Windows only not including CE) supplied including interface examples in VB, VC++ and Delphi
  • Stand-alone FPGA loader programs provided for Windows and Linux
  • VHDL programming examples (I/O over USB) provided
  • Delphi application software examples including source code provided
  • Free Altera Quartus II Software Starter Suite development software available from the Altera Website
  • Backward compatible with the existing MorphIC-I
  • Supports 1.5/1.8/2.5/3.3-V LVTTL/LVCMOS signals, IOBANK1-3 restricted to 3.3V
FTDI Morph-IC-II dimensions :
FTDI Morph IC II dimensions
Morph-IC-II is a compact and powerful FPGA module which is capable of implementing LSI (Large Scale Integration) designs or entry level VLSI (Very Large Scale Integration) designs.

Designs can be synthesised through utilising up to 4,608 Logic Elements of Morph-IC-II‟s on board FPGA.

The Morph-IC-II platform combines an Altera Cyclone®-II FPGA with high-performance USB 2.0 capabilities that facilitate Hi-speed communications with ultra-fast, sub-100ms FPGA programming/reprogramming.

This makes Morph-IC-II ideal for applications which require users to reconfigure hardware functionality “on-the-fly” by downloading new software over USB : “morphing” the hardware.

Communication between the FPGA and the PC is done through a USB 2.0 connection to the FTDI FT2232H USB 2.0 Hi-Speed (480Mbit/s) USB bridge. Morph-IC-II is an easy to use module which allows users to program and interact with the FPGA using a free software package produced by Altera called Quartus II.

RedPitaya V1.1 Board

RedPitaya Top

RedPitaya Bottom

RedPitaya Block Diagram

RedPitaya Board V1.1 Board

Red Pitaya is an open-source-software measurement and control tool that consists of easy-to-use visual programming software and free of charge, ready-to-use open-source, web-based test and measurement instruments.
With a single click, the board can transform into a web-based oscilloscope, spectrum analyzer, signal generator, LCR meter, Bode analyzer, or one of many other applications.
Red Pitaya can be controlled by using Matlab, LabView, Python & Scilab.

RedPitaya Ressources

Main Features :

  • Dimensions: 107 mm x 60 mm x 21 mm
  • Ethernet 1Gbit/s (PHY Intel-Lantiq PEF7071V V1.5 10/100/1000Mbps)
  • USB 2.0 (Microchip-SMSC USB3320C)
    • OTG (On-The-Go, can work without host)
    • WiFi USB dongles is possible : tested with Edimax EW­7811Un
  • 2x SMA RF inputs
    • Bandwidth : 50 MHz (3 dB)
    • Input impedance : 1 MΩ // 10 pF
    • Sample rate : 125 Msps
    • ADC resolution 14 bits
    • Full scale voltage : +/-1V or +/-20V
    • Absolute maximum input voltage rating : 30V (1500V ESD)
  • 2x SMA RF outputs
    • Bandwidth : 50 MHz (3 dB)
    • Sample rate : 125 Msps
    • DAC resolution : 14 bits
    • Load impedance : 50 Ω
    • Output slew rate limit : 200 V/us
  • Serial connectivity (Daisy Chain)
    • Connector type : 2x SATA type connector
    • Two differential pairs per connector enabling up to 500 Mbps
  • FPGA: Xilinx Zynq 7010 SoC
    • 17,600 LUTs
    • 28k Logic Cells
    • 80 DSP slices
    • Dual ARM® Cortex™­A9
  • Memory: 4 Gb DDR3 SDRAM (512 MB)
  • SD card
    • Card type: micro SD
    • Supported standard: SD/SDIO 2.0/MMC3.31
    • File System: FAT32
    • Maximum card size: 32 GB
  • 5V 2A micro USB Power supply
RedPitaya Extension Connectors
2x Extensions Connectors 26 pins HE10 (E1 & E2) :

  • 4x Auxiliary analog input channels
    • Connector : dedicated pins on IDC connector E2 (pins 13,14,15,16)
    • Nominal sampling rate : 100 ksps
    • ADC resolution 12 bits
    • Input voltage range : 0 to +3.5 V
  • 4x Auxiliary analog output channels
    • Output type : Low pass filtered PWM
    • PWM time resolution : 4ns (1/250 MHz)
    • Output voltage range : 0 to +1.8V
  • 16x GPIO
    • Voltage level : 3.3V
    • Direction : configurable
    • 16 single ended or 8 differential digital I/Os with 3,3V logic levels
  • I²C, UART, SPI
RedPitaya Case
RedPitaya Plastic Case

RedPitaya Kit
RedPitaya Kit

RedPitaya Oscilloscope
RedPitaya Oscilloscope on iPad

RedPitaya System
RedPitaya System

RedPitaya Visual Programming
RedPitaya Visual Programming

RedPitaya’s Visual Programming is equivalent of Lego, and is similar to “MIT Scratch” programming, that means that RedPitaya is more for fun than for professional applications.
RedPitaya Extension Module Top
RedPitaya Extension Module Top

RedPitaya Extension Module Bottom
RedPitaya Extension Module Bottom

RedPitaya Extension Modules
RedPitaya Extension Modules

RedPitaya’s extension module board (~25 euros) is able to measure for example temperature, vibration or movement with special mini-modules connected on it. This mezzanine board facilitates the quick connection of different sensors and actuators to the Red Pitaya. All the “Grove modules” of “Seeed Studio” are available to connect it.

Linera FMU3-S651 Board

Linera FMU3 S651 Top

Linera FMU3-S651 – USB3 development board

The Linera FMU3-S651 is a USB 3.0 integration module based on the Spartan 6, able to get a performance over 340 MiB/s

Main Features :

  • 65mm x 50mm board size
  • USB 3.0 Connectivity, including software drivers and APIs
  • Cypress EZ-USB FX3 – 100 MHz 32b data bus to a USB 3.0 port
  • Xilinx Spartan6 LX45 application FPGA (Available also with LX150)
  • 1Gbit DDR3 SDRAM (Optional 2 or 4 Gbit)
  • MicroSD card slot, accessible from FPGA
  • Very easy to integrate: Single 5V supply
  • Programmable via USB 3.0 port, JTAG or the on-board flash
  • Two Samtec RAZOR BEAM™ LSHM pitch 0.5mm high speed board-to-board connectors to mount on a host-board
  • 148 user I/O signals. 71 differential pairs
  • 8 User LEDs on-board
  • Pin-compatible with FM-S651 series
  • On-board, programmable clock generator with 3 output clocks, with available SSC
  • Breakout board available
Linera FMU3 S651 Block diagram
USB3 CONNECTIVITY
FMU3 series FPGA modules are equipped with a USB3.0 port.
The on-board FPGA can communicate with a host PC through the USB 3.0 port with unprecedented speed (~340MB/sec sustained transfers)

EASY INTEGRATION
FMU3 series FPGA modules can be mounted on a carrier board using 2 high-speed connectors.
There are 148 IO pins available to the end-user.
The board is supplied with drivers and API for easy USB 3.0 communication with a PC.

FLEXIBILITY
The on-board FPGA on FMU3 series modules can be programmed via the USB port, via JTAG or via the on-board Flash. There is a Micro-SD card slot accessible via the FPGA and 1Gbit DDR3 SDRAM.

Linera FMU3-S651 Daughter Board example :
Linera FMU3 S651 Daughter Board1
Linera FMU3-S651 Daughter PCB example :
Linera FMU3 S651 Daughter Board2

Cesys EFM02 USB3 Board

Cesys efm02 top

EFM02 – USB3 development board

Spartan-6 FPGA module, DDR2 SDRAM, Flash and superspeed USB 3.0 interface

Main Features :

  • SUPERSPEED USB 3.0
  • 2Gbit DDR2
  • Up to 191 user IO
  • Xilinx Spartan-6LX® FPGA
    versions available:
    XC6SLX45-3FGG484I
    XC6SLX100-3FGG484I
    XC6SLX150-3FGG484I
  • 64Mbit dual SPI flash
  • USB3 controller : CYPRESS™ FX3
  • EFM02-45-3I (XC6SLX45-3FGG484I) Price : 420$
Block diagram is the following :
Cesys efm02 Block diagram
Cesys efm02
Cesys efm02 bot
All Features

  • USB3.0 SuperSpeed interface through versatile CypressTM EZ-FX3 controller
  • USB bus-powered, no external power supply necessary
  • Optional self-powered mode available
  • 32bit Slave FIFO interface
  • Two FX3 GPIO on expansion connector
  • XilinxTM Spartan-6 FPGA (LX45, LX100 or LX150)
  • Up to 191 single-ended (95 differential) IOs on high-quality high-speed SamtecTM
    connectors (QSE-060-01), including several GCLK inputs
  • 157 single-ended (78 differential) IOs identical throughout EFM-02B line-up
  • Independent power supply option for FPGA bank 0 and/or bank 1
  • 2Gbit DDR2 memory
  • 64Mbit dual SPI configuration/data memory
  • High stability 100MHz +/-25ppm onboard clock oscillator
  • Mounting position for optional user clock oscillator (industry standard 5mm*7mm)
  • 1Mbit (512kbit1) I²C EEPROM for FX3 configuration data
  • I²C interface available on expansion connector to increase available FX3 configuration memory for standalone applications
  • FPGA configuration from SPI memory, JTAG or USB
  • One user, two status leds
  • JTAG for FPGA and FX3 controller available on expansion connectors
  • Small sized PCB only measures 52,6mm x 82,6mm
Breakout board :
Cesys efm02 breakout board
Features :

  • HSMC to HE10 connectors
  • PCB has two layers, not for high-speed applications
  • Price : 75$

OpalKelly USB3 Altera Board

OpalKelly ZEM4310

Zem4310 – USB3 development board

The ZEM4310 is a USB 3.0 integration module based on the Altera Cyclone IV FPGA (55kLE), able to get a performance over 340 MiB/s

Main Features :

  • SUPERSPEED USB 3.0
  • 128 MiB DDR2
  • BOOTABLE SERIAL FLASH (2x 16 MiB)
  • SWITCHING POWER SUPPLIES
Block diagram is the following :
OpalKelly ZEM4310 Block diagram
All Features :

  • Altera Cyclone IV FPGA (EP4CE55F23C8N)
  • 2x 32-MiB serial flash (Numonyx N25Q128A)
  • 128-MiByte DDR2 (Micron MT47H64M16HR)
  • Small form-factor, smaller than a credit card at 80mm x 60mm x 15.98mm (3.15″ x 2.36″ x 0.63″)
  • High-speed USB 3.0 interface (Cypress FX3) for configuration and data transfer
  • Measured performance over 340 MiB/s
  • Self-powered by external DC source
  • 50 MHz clock oscillator
  • Two LEDs
  • Two HSMC-compatible 180-pin 0.5mm Samtec board-to-board connectors (QSH-090)
  • Over 160 user I/O and 4 GCLK pins on expansion connectors
  • Full FrontPanel virtual control panel support
  • Complete Application Programmer’s Interface (API) in C, C++, C#, Ruby, Python, and Java
OpalKelly ZEM4310 Bottom
HSMC Bottom connectors :

  • Two HSMC-compatible 180-pin 0.5mm Samtec board-to-board connectors (QSH-090)
  • Over 160 user I/O and 4 GCLK pins on expansion connectors
OpalKelly ZEM4310 Slide