FPGA terasIC Cyclone V GX Starter Kit (C5G) Review - Page 1
Forum section: electronics / general

author: miguelvp
author_rank: Super Contributor
timestamp: March 10, 2014, 03:04:31 am
content: This is a full review of the terasIC (just typing it as their logo shows) Cyclone V GX Starter Kit (C5G as they refer to it on their documentation).I will add on the thread and update the OP as I look into more details later on and based on feedback. Maybe I'll add more pictures too, but with the layout images it should be enough.I ordered this board through mouser to avoid shipping cost from Taiwan and I got this just last month on Feb 19th. I took a week of vacation last week so it took me a while to do a full review of the board.Don't confuse this board with the older Cyclone V GX dev kit for video processing (C5GFP-DVI) going for $1,300The one I'm reviewing is the newer (and less capable but more economical and very capable still) board going for $179Top View:Bottom View:Specs (copied from the vendor)QuoteFirst impressionsGreat packaging with everything other than no CD, this can be downloaded from terasIC upon a free registration. Their CD has a wealth of information on data-sheets of the components used, as well as a full schematic of the dev board.The CD comes with a cool utility that generates a template and a Verilog sample, no VHDL but you can do that yourself. It assigns all the pins and configuration for your board and you can include and exclude different parts of the board with a nice GUI.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.REVIEW BY COMPONENTHDMIThey 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: 1x10-PinGPIOIt 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 HeaderThere 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.LEDsWell, you get 10 red and 8 green.ButtonsDe-bounced and 4 count, nothing to write home about other than they are regular size, not those tiny ones the DE0 Nano has.SwitchesNot 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 CodecIt 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.HSMCHigh 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.You can look for more HSMC boards that they support here:http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=65For 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.Edit: They have also a jumper to enable 12V to be available on the HSMC connector.LPDDR2 memoryThey 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.SRAM4Mb (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 interfaceHave 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 CardSupports 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 SwitchThis allows you to download the code in AS mode via the EPCQ instead of temporarily via the JTAG interface.USB BlasterTo program your board it has it built in so you don't need to purchase the programmer separately.CPU ResetOh, 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.MiscThe 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.ConclusionAt $179 this dev board is a steal!Only 77K logic elements but I think that's enough to experiment and learn.I might step up to their SOC integrated boards later to use what I've learned about FPGAs to make custom Arm coprocessors for whatever tasks I envision, computer vision, logic analyzer, anything really, your own codec for example.Hope this review helps people get into FPGAs, I can think of worse ways you could waste your time on.CommentsWell, that's it for now, not a lot of detail but not to scarce either so I can add more content later as I get more experienced with this board by replying to the thread and updating the OP.I only started with FPGAs back in December last year as well as with electronics. But I think I picked up enough on the last three months to be able to review this cool and cheap dev board.Don't know what I'm going to do with it yet, but I'm learning a lot trying to figure that out.More Info at:terasIC Cyclone V GX Starter Kit (C5G)

author: marshallh
author_rank: Unknown
timestamp: March 10, 2014, 03:41:51 pm
content: Remember the GX series costs you a premium for its transceivers. It's ALL about the transceivers. You will get more LEs if you go for the E series

author: Dongulus
author_rank: Regular Contributor
timestamp: March 10, 2014, 05:24:37 pm
content: Thanks for the review. What do you plan on making with your board?I've recently been interested in messing with a dev board for a SoC as well. I had initially been looking at the Zybo from Digilent which has a Xilinx Zynq-7000 SoC, but a quick at the DE1-SoC from terasIC seems like it has more value for the price than the Zybo. I typically lean toward Xilinx more than I do Altera because I have used Xilinx products and tools almost exclusively at school and work, but I really should probably get proficient at learning Altera's FPGA fabric architecture and design tools.

author: free_electron
author_rank: Super Contributor
timestamp: March 10, 2014, 06:01:18 pm
content: arduino header...what has the world come to...i am retiring. there is no more hope.

author: marshallh
author_rank: Unknown
timestamp: March 10, 2014, 06:25:44 pm
content: There are always a lot of people blabbing about wanting to get into FPGAs or make things, but I don't see many things happening.Get cracking people! Cut your Netflix subscription and spend time actually learning something

author: miguelvp
author_rank: Super Contributor
timestamp: March 10, 2014, 06:29:07 pm
content: Quote from: Dongulus on March 10, 2014, 05:24:37 pmFor now I'm planning to add support for all the modules this board has that apply to PACEDev.net -ProgrammableArcadeCircuitEmulation. It's mainly done in VHDL but I did successfully imported Verilog modules into it. I'm hopping these tasks will help me learn better because there are specific tasks without distractions or just playing around.Then maybe start experimenting with some high speed protocols using the transceivers like PCIe and 1Gb Ethernet.Also I'm inclined to experiment with making some crude test equipment, like a arbitrary signal generator, spectrum analyzer and logic analyzer.Quote from: Dongulus on March 10, 2014, 05:24:37 pmI like the Altera's training courses, haven't tried to do anything with Xilinx even if my scope usage of 3 spartan 6 is what triggered my curiosity on these devices to begin with.I always wanted to do my own chip architecture too, but that will come later once i'm more proficient.

author: miguelvp
author_rank: Super Contributor
timestamp: March 10, 2014, 06:39:45 pm
content: Quote from: marshallh on March 10, 2014, 06:25:44 pmThese are my netflix:https://www.khanacademy.org/For brushing up on my calculus, differential equations and derivatives.https://www.edx.org/course-listFor EE courseshttp://www.altera.com/education/training/curriculum/fpga/trn-fpga.htmlFor my dev boards.Way more entertaining than watching TV series.This is my current course I started 3 weeks ago at edx:Discrete Time Signals and SystemsIt went through preliminary stuff and the actual courses start today.

author: NYEngineer
author_rank: Contributor
timestamp: February 01, 2022, 04:39:48 am
content: Hi folks,I recently obtained one of these to use the SMA (unpopulated) transceivers. Looking through the connectors on Mouser (I'm in the USA), there are just so dang many candidates. Does anyone know what I need?For example,here is onethat looks like it would fit, but it's not the usual brass color for an SMA connector.Here's anotherthat is brass, but looks to have much shorter connections.A third herelooks just like the first.Once obtained, I presume I would just stick it through the top of the board and solder the bottom five connections (the center plus four outer ones).Thanks in advance!