Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

PC controlling 8 Cyclone Transciever FPGA boards via USB

I need to do one of the following.

1. Have multiple Eclipse sessions controlling multiple Cyclone Transciever Starter Kits / NIOSII cards.

2. Have multiple NIOS command line sessions controlling up to 8 Cyclone Tranciever Starter Kits / NIOSII cards for .elf load and nios_terminal sessions

I am not sure how to address each USB connection explicitly or it it is possible on a single PC ?

Can anyone point to a solution here.

My backup plan is to use a single Eclipse session for debug, commit the .elf -> FLASH on each Cyclone board and call the IOCTL to allow stdio to timeout with no

terminal so as not to be blocking program execution.

Thanks In Advance.

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yes, its possible to get this working.

    Assuming you are communicating with the boards via multiple USB-Blasters, then the trick is to make sure each USB-Blaster has a unique serial number. That way your OS will detect the same USB-Blaster each time.

    Under Linux you could map each USB-Blaster to a uniquely named device using a udev rule. Under Windows ... I think the same device shows up with the same name each time ... so long as you plug it into the same USB port + Hub port.

    You can use FTDI's FT_PROG programmer to program a unique serial number into USB-Blaster devices. USB-Blaster II devices are based on a Cypress EZ-USB FX2 device, and I have not tried re-programming the serial number on one of them.

    What kit do you have exactly? (Post a link to the kit on the Altera web site).

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The command line programs (nios2-download, nios2-terminal) accept a "--cable" parameter you can use to indicate what USB Blaster to control. And similar functionality is available through the Eclipse dialog box I believe.

    After you've locked down how your PC will enumerate the USB Blasters per Dave's suggestions above, writing a shell script to boot and open the terminal for each board ought to be straight forward. I've personally only ever had (3) boards at once, but I don't see where (8) will be a problem.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Dave and Ted,

    These are great answers.

    Here is the URL to the starter kit:

    http://www.altera.com/products/devkits/altera/kit-cyclone-iv-starter.html

    We use that kit since our emulator is constrained to PCIe Gen1 and the testing I am running with requires some source of Inbound and Outbound traffic + NIOSII execution unit .

    So I have two configurations one a system with multiple slots (RC ) and the other is a PLX switch that expands to multiple slots. In each configuration, I will have multiple PCIe cards ( Cyclone, Arria and Stratix ) and I would like to control all the card via a USB hub and PC .... the minimum would be the .elf load for each USB_blaster behind the USB hub.

    I will investigate using your suggestions,

    Thanks, Bob.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi Bob,

    --- Quote Start ---

    Here is the URL to the starter kit:

    http://www.altera.com/products/devkits/altera/kit-cyclone-iv-starter.html

    --- Quote End ---

    Ok, I have a couple of these kits. They use a USB-Blaster circuit.

    I just plugged one of them in and took a look at the device using FT_PROG. It looks like I reprogrammed the serial number as "C4GXSK01" (so the other board I have will be "C4GXSK02" or perhaps 00). I'd recommend just programming yours with similar serial numbers.

    Cheers,

    Dave