Jump to content

zygot

Members
  • Posts

    2,859
  • Joined

  • Last visited

Recent Profile Visitors

13,833 profile views

zygot's Achievements

Single Status Update

See all updates by zygot

  1. D@n

    Would you rather this as a venue for discussion?  Are you interested in further discussion?

    Dan

    1. Show previous comments  1 more
    2. D@n

      D@n

      Yes, you were right, my post was getting off topic.  Hence my thoughts for another venue ...

      So my idea is not driven by some top down requirement, but rather from the bottom up: ManyFPGA boards interface with a computer via USB and a microcontroller of some type.  I've seen many, many designs now of this type.  At a minimum, the USB interface provides access to the JTAG port of the FPGA in order to configure it.  I've seen other designs where the USB interface also provides access to a serial port, and even one that offers access to a parallel port (CMod-S6).  In all of these designs, however, I have yet to see the USB interface used to its maximum potential--both in terms of speed communicating between the FPGA and the host, as well as in the richness (and openness) of how such communication is done.

      My thought was to use a stronger microcontroller, and see how fast the USB interface could be made to be. 

      At a minimum, the interface must support a JTAG for loading configurations to the FPGA, through the microcontroller, from the host.  Even this, though, might be made faster by placing the JTAG smarts in the microcontroller, and only sending a compressed file over the USB.

      At a next level, the interface could/should support a serial port to the FPGA, and perhaps even a second one to the microcontroller.  The faster this interface can be made to work, the better.

      Beyond that, the FPGA should be able to communicate with the PIC in a rich manner: A SPI port for example, or even a parallel master port, or perhaps just GPIO between the two.  Each of these could also be USB endpoints ...  Indeed, a SPI port could be used to control a mass storage device (such as an SD card, or something pretending to look like an SD card), so the interaction need not be limited to serial port protocols.  Indeed, a mass storage protocol might make sense when trying to read/write flash or RAM memory on the FPGA from the host.

      Again, though, what am I trying to do?  I'm tryinng to ask the bottom up question, if you have a PC connected to a USB connected to a microcontroller, connected to an FPGA--just how far can you push that interface, and build generic features, for a ... more fully featured board.

      That's my thoughts.

      What do you think?

      Dan

       

    3. zygot

      zygot

      Dan,

      My experience is with FTDI and Cypress USB 3.0 solutions, though I did spend some time testing and re-writing HDL interfaces for the older CY6813A Adept interfaces. It's been my experience that trying to stuff a lot of general purpose options into an endpoint controller is pointless. After all you can do anything you want in the FPGA. If you're trying to connect USB to some other hardware with limited interface options then that's another topic. Better to have a simple fast endpoint controller; and what that means is highly dependent on what it is that you want to do. An issue with the CY6813A Adept is that there is a big penalty in switching from asynchronous mode for small data transfers, such as passing control/status register data, and synchronous mode for large data transfers. At this point you're looking more at PC host software/driver and limitation in the USB protocol than anything that endpoint hardware can address. FTDI has made a business creating simple solutions for USB connectivity without the need for (much) external logic. With simplicity comes limitations. If you want to create an optimal ( which could be throughput or latency centric ) endpoint interface then Cypress is the way to go ( I can't speak to PIC, ATMEL, or other vendor USB endpoint solutions as I don't have much experience with them ) The Cypress FX2 and FX3 design and tools allow for much better customization of their endpoints for A PARTICULAR purpose than any other any other vendor's product that I've looked into. I don't particularly like working with the  Cypress tools but haven't yet found anything to replace it. 

    4. zygot

      zygot

      Hey Dan,

      No thoughts on my last contribution to this thread? bill

    5. Show next comments  3 more
×
×
  • Create New...