[Gb-ccb] proposed CCB system design

Martin Shepherd mcs at astro.caltech.edu
Fri Feb 13 21:30:31 EST 2004


On Thu, 12 Feb 2004, Brian Mason wrote:
> all- I've posted Randy McCullough's proposed spartan-3 LC based system
>...

Tim and I have talked about this, and the following are some points
that we think need to be discussed at the telecon.

1. A biggest question at this point is how complicated the USB
   interface of the Spartan-3 development board is going to be to
   program within the FPGA, and whether the board comes with a library
   of VHDL code for simplifying this. If it doesn't, then my worry is
   that I will have to spend a lot of time wading through the USB
   standard, and write a complicated protocol-handling layer to create
   the simple FIFO-like interface that I actually want. I have sent an
   enquiry to the vendor, asking for more information, but we may not
   know much more about this until the board arrives, in a few weeks
   time.

2. Another problem is the question of how to synchronize what the 4
   FPGAs are doing at the 100ns level. Although, in principle, they
   will all be doing exactly the same thing, and should thus be in
   sync, the fact is that the lack of USB broadcast capability means
   that commands will have to be sent one at a time to each of the
   different FPGAs, so they will receive commands at different times.
   It is clearly very important that all of the FPGAs write samples
   into the same phase-switch bins, and that they all know precisely
   when the phase-switches and cal-diode control-lines are toggled.

   I don't think that this is an insurmountable problem, but it will
   complicate the FPGA programming. My preference would be mitigate
   this by adding a daisy-chain of a few control-lines between the 4
   FPGAs, such that one FPGA could act as a master, generating timing
   control signals to be used by all of the FPGAs.

3. The need for the computer to have to deal with 4 USB interfaces,
   instead of one, will complicate the device driver programming.

   Unless the daisy-chain of control-lines that I mentioned above in
   2, were adopted, and proved sufficient to configure all parameters
   in all of the FPGAs, then each command would have to be sent 4
   times, sequentially. This would increase the time pressure on
   things like cal-diode control commands, which originally were
   envisaged as being potentially sent before every new integration
   (ie. every 1ms). Sending 4 of these commands every millisecond
   could be problematic, and would probably require anticipating
   future integrations and batching many of these commands together
   into larger, less frequent packets. Given that the polling interval
   of the USB interface is 1ms, I would probably already have to do
   this, but with packets 4 times smaller than in the new scheme.

   Sending data back would also be less efficient, since a single
   block transfer in the original design, would be broken into 4
   separate sequential transfers.

4. With 4 boards instead of one, these is the issue of needing
   per-board diagnostics, and making these available to the manager.

5. The less efficient use of the USB interface would probably mandate
   the use of USB 2.0, instead of the USB 1.0 interface that I had
   planned on. Since the single-board-computer (SBC) that I selected,
   only has a USB 1 interface, this will mean that another SBC will
   have to be found.  I haven't looked recently, but in the past,
   low-power SBCs with USB-2 interfaces were hard to find. I am
   guessing that one needs a faster, more power-hungry CPU to handle
   the faster USB-2 interface.

6. The power-supply requirements will have to be changed to account
   for the splitting of the one FPGA board into 4, and the need for a
   new computer.

7. There are going to be a lot of connectors, cables and shielded
   boxes in the CCB, which translates to more things that can go
   wrong. Packaging will obviously also be more involved.

8. In Randy's diagram, the USB cable from each FPGA is shown wrapped
   around a ferrite ring. According to the USB consortium, regarding
   USB "signal quality design mistakes":

     "Most problems are the result of EMI "control" components like
      ferrite beads mounted on the signal lines. Often, these manage to
      destroy the integrity of the signal as well as make emissions
      worse."

   The above quote comes from the following URL:

    http://www.usb.org/developers/usbfaq/#sig4

   I can't see why this choke is needed, given that USB 2.0 cables are
   doubly shielded, and the cable is going from one noisy digital
   environment, to another.

9. I am similarly puzzled as to why, in addition to the shielded box
   around the analog PCB, there is also another shield box enclosing
   the combination of this box, and the Spartan-3 development
   board. On the inside of this box, is a noisy FPGA board, and on the
   outside is a noisy computer, while the analog board is safely
   isolated via its own shielded box.

   Removing this seemingly unneeded shielded box would make it easier
   to add the control-line daisy-chain that I mentioned in point 2,
   and obviously simplify the packaging.

10. I can't think of a use for the RS232 interface of the FPGAs, so I
    suggest that we don't bother providing a cable, or connectors for
    this.

11. There will probably need to be a cable connecting one of the FPGAs
    to the parallel port of the computer. This would be used for
    generating 1PPS interrupts, and depending on how I implement
    things, the end-of-integration interrupts. It would also provide
    the interrupt acknowledgement register.

Martin



More information about the gb-ccb mailing list