Please find below our comments regarding the PU schematics.
Thank you for your comments. Please find in blue, our answers.
1. Clocks
From the schematics, it is not clear who provides the main clock
to the Input FPGAs. Is it the motherboard (FEB_Clk) or is it
the Output FPGA (OI_Clk)? The latter is a bit strange and could
render bi-directional synchronous communication between the Input
FPGA and the Output FPGAs a bit tricky to implement, if needed.
The FEB_clk is used to format the input data.
The OI_clk is only used for the InFPGA configuration from the OutFPGA.
My impression is that you did this to be able to provide either FPGA
with 40 MHz OR 80 MHz clock, if needed. But we would definitely
prefer a solution with a global TTC_CLOCK fanout with equal timing
for all devices.
- Why not use a 2305 PLL to fan-out the TTC_CLOCK to all FPGAs,
and you may also keep PU_CLOCK going to the Output FPGA only.
- Or, why not use a 2308 clock PLL to fan out the TTC_CLOCK and
its double. A version of this chip has 4 outputs at the incoming
clock, and 4 more outputs at double the frequency. One pair of
(TTC_CLOCK and 2*TTC_CLOCK) would go to each of the three ALTERAs
(we can use dedicated clock inputs, of which the 20k has 4,
and the 1k has two).
When I wrote the code to configure the InFPGA from the OutFPGA, the OI_clk phase was an issue, but I managed to make it work on the demo board. But I agree, it is better, if the TTC_clock is distributed with equal timing to each FPGA.
ð The TTC_clock will be distributed to each of the 3 FPGA through a 2305 PLL.
ð Moreover, to implement a bi-directional serial communication between the InFPGA and the OutFPGA, 3 lines are kept between the OutFPGA and each of the InFPGA (data, read enable and write enable)
2. Clocks
According to the latest DSP errata SPRZ011G, issued end of September,
BECLKIN must still be provided during the DSP reset (Advisory 1.03.1).
You should therefore provide BECLKIN to both DSPs, unless you wish
to wait until TI fixes the problem.
- You may use two of the remaining outputs of U701 to provide
the local oscillator clock to BECLKIN.
=> We have chosen this solution.
- Or, you could use the remaining outputs of the 2305 mentioned at
<1.> to provide TTC_CLOCK as BECLKIN for both DSPs.
- Or, you could use the remaining outputs of the 2308 mentioned at
<1.> to provide TTC_CLOCK as BECLKIN for one DSP, and 2*TTC_CLOCK to
the other DSP.
3. I would like to propose a change in the DSP to FIFO interface.
The reason for the change is to allow the FIFO flag offsets to be
programmed by the DSP. The ability to program the FIFO flag offsets
could alleviate some of the not-so-nice features of the 6414 EDMA.
The summary of changes is:
- Connect the DSP /BSWE (instead of /BCE0) to the FIFO /WEN;
- Connect the DSP /BCE0 (or any /BCEx) to the FIFO /LD,
and disconnect the FIFO /LD from the FIFO_HI net;
- Connect the DSP /BARE to the FIFO /MRS,
and disconnect the FIFO /MRS from the Output FPGA (FIFOx_Rstn)
and from its pull-down;
- Connect the FIFO /PRS to the Output FPGA (FIFOx_Rstn) and you
may leave the pull-down on FIFOx_Rstn if you wish;
- Connect the FIFO /PAF to one of the DSP's general-purpose pins GPIO.
The rest of the flags may go to the Output FPGA (especially
important are /EF and /PAE);
- The DSP data lines to the FIFO may not be swapped: D0 should
remain D0 and so on through D15.
More details can be found in a four-page note at:
http://www.nevis.columbia.edu/~simion/rod_work/dsp_fifo.pdf
This note also mentions briefly the possibility of using the FIFO
D16 and D17 (and Q16 and Q17), as well as connecting the remaining DSP
/BCEn to the Output FPGA. This may be useful to keep the Output FPGA
informed about what's going on with the output data.
=> This point is in study. However, our first impression is that it is a bit superfluous.
4. Should we allow the Output FPGA to control the FIFOs /OE?
With Daniel, we don’t think it is necessary.
5. Since the DSP BECLKOUT2 now runs directly to the FIFO, having CLKOUT4
or CLKOUT6 available to the Output FPGA is a good way to verify
that the DSP is in a happy state, up and running (PLL locked at the
right frequency) after power-up. The happy state of the DSP can
be verified through the VME interface. These signals may later on be
configured as general-purpose pins.
Please connect CLKOUT4 or CLKOUT6 to the Output FPGA - either to
general I/O pins, or to dedicated fast inputs (in the last case we
give up the possibility of using them as DSP inputs later on).
If PCB routing is not an issue, then I would privilege CLKOUT6.
=> I am not sure it is necessary, however as we have free pins, both CLKOUT6 will be connected to the OutFPGA.
6. There is no general-purpose line from the Output FPGA to the DSP
which could be used as a CPU (not EDMA) interrupt source!
See Table 14-4 on page 14-5 of the Peripherals Manual SPRU190D,
or see the last paragraph on page 17-3 of SPRU190D.
We would propose to connect the DSP GPINT0 to the Output FPGA.
(TOUTx could be used for Input FPGA LED blinking instead,
see also item <9> below.)
Originally, there was an interrupt for each half feb in the InFPGA.
ð Both ext_int7 was removed from the InFPGA and connected to the OutFPGA.
7. For the McBSP2 connection to the Output FPGA:
Please connect both CLKX2 (ClkX1<2> and ClkX2<2>, DSP outputs)
to dedicated fast inputs instead of general-purpose Altera I/O pins.
=> OK
8. We would propose to have pull-ups or pull-downs on all DSP
configuration lines, BEA14 thru BEA20. Even better, why not connect
BEA14 thru BEA17, via 1k resistors, to the Output FPGA? There would
be 4 resistors for BEA14 thru BEA17 for each DSP, but the Altera side
can be common for both DSPs.
This may be useful if faster versions of this DSP will become
available, but we may need to readjust the EMIF clock rate to
keep our interfaces functional.
For the same reason, we would propose to have an optional pull-up
also on CLKMODE0, in addition to the pull-up on CLKMODE1.
=> To save pins, the first idea was adopted and a pull up resistor was added to CLKMODE0 and BEA14.
9. Please connect the DSP TINP0, TINP1, TOUT0, TOUT1 to the Input FPGA.
For example, TINPx would be used to count the transitions on the
G-link LINKRDY or ERROR flags. The total count will be available to
the DSP at any time. TOUTx could be used to issue a timeout,
if needed.
These pins can also behave as general-purpose unidirectional signals.
=> these 4 signals have been connected to the InFPGA, in case we want to use them.
10. The DSP data sheet states that the EMU2 thru EMU11 pins are "reserved
for future use, leave unconnected". (EMU10 used to be EMUCLK0 and
EMU11 used to be called EMUCLK1.) However it seems that you connect
EMU0 thru EMU9 between the two DSPs. Of these signals, only EMU0
and EMU1 are really used. What is the reason for connecting EMU2
thru EMU9?
=> This is a mistake. EMU2 to emu9 must not be connected.
11. You did a very small change on the way EMU<0> and EMU<1> may be
pulled down. They used to have individual jumpers, and now
there is a unique jumper and when the jumper is absent, then the
EMU<0> and EMU<1> are tied together via a 2k equivalent resistor.
Are you sure this is OK, given that the EMU pins can be outputs?
=> a Jumper will be foreseen for each emu 0 and emu 1 pins ( 2 jumpers in total).
12. The DSP signals GP9 and GP10 are going straight to the connector
and to the outside world. This sort of contradicts our unwritten
rule that the DSP should be electrically "isolated" from the MB
as much as possible (this is also related to the power-up issues).
However we are not convinced this is a real problem.
Also, this forces to generate the BUSY signal by software only.
What if we need to raise the busy signal much faster, for example
when an error is detected by the Input FPGA? Perhaps it would
be better that the DSP BUSY goes through the Input FPGA, where
it could be OR-ed with some lower-level condition.
ð For the moment, we have changed nothing, as we do not think it is necessary.
ð Can be rediscussed if free pins.
Power supply
------------
P1. [Comment regarding the missing GND/HSINK connection for U803 removed,
after checking the netlist.]
You should still verify the power dissipation for this component
since it runs at 1.5V dropout.
What do you mean ?
P2. In the new DSP data sheets (latest is SPRS146E), the DSP pins
R5 and F3 are regular 3.3V power supply pins. They were indeed
labeled "Reserved, must be pulled up with 10k" in older versions.
[The fact that they are now power supply pins has been confirmed
explicitely by TI tech support.]
OK
P3. DSP Core Power Suppy:
In the new DSP data sheets, there is a typical value listed
for the core supply current. It is 750 mA measured with "average
activity (50% high/50% low power)". Our power supply (switcher)
has been calculated/dimensioned for only 2 A of core supply current.
To be conservative, we would have to assume a max. of 3-4 A for
both DSPs. The main component (the TPS54610) is fine, but the
2.7 uH ELL6SH inductor, for example, is only rated for 2.4 A!
I have re-calculated the power supply components using the 4 A
specification. You can find two output examples at:
http://www.nevis.columbia.edu/~simion/rod_work/swift_4A_eff.pdf
http://www.nevis.columbia.edu/~simion/rod_work/swift_4A_siz.pdf
The requirement to have an input voltage ripple smaller than 40 mV
makes it necessary to have _two_ 100 uF caps on the 3.3V input
(for some reason this does not show up properly in the schematics,
but see the "Bill of Materials").
There is a tradeoff between the inductor size and the desired
efficiency. In the first case, the inductor turns out to be
relatively large. You could run the "Swift designer"
program from TI by yourself, to see if there is a better solution.
But I believe that the current DSP power supply (copied from the
6414 Demo) is not adequate to power two DSPs.
In study.
P4. There are fewer bypass caps (on each rail) per one DSP than in the
previous design?
We think we have enough caps.
The area is very busy.
We use now 0603 resistor instead of 0402, as preferred by our cabler.
P5. In the previous design (I mean the 6414 demo) the oscillator providing
the (50 MHz) CLKIN was powered directly from the 3.3V, not from
the switched 3.3VDB. This was done following an advice from TI,
that in order to prevent the DSP from drawing a lot of current
at power-up (possibly preventing the successful power-up), the DSP
should be provided with a running clock at and during power-on.
The argument, then, was that the /RESET signal is needed to
maintain most of the I/O pins in their high impedance state, but this
/RESET is synchronized internally to the DSP clock. So in order to
have the internal reset reflect the state of the /RESET pin, the clock
must be running. I do not know if this is still valid.
We would suggest you power the crystal oscillator and its fan-out
buffer from the direct 3.3V instead of the switched 3.3VDB.
OK
JTAG
----
J1. The TDI output (gate 1 of U704) is always enabled. What is the
purpose of the 1k pull-up on TDI ?
J2. The TMS output (gate 2 of U704) is always enabled. What is the
purpose of the 1k pull-up on TMS ?
J3. Gates 1 and 2 of U703 (PU_TDI, PU_TMS) may be enabled or disabled
depending on the presence of the "JTAG" jumper. Do you rely on the
JTAG cable being plugged into HP701 in order to maintain valid levels
on PU_TDI and PU_TMS, if the "JTAG" jumper is absent ? Yes
J4. If this is the case (i.e. a JTAG cable must be plugged into HP701
if the "JTAG" jumper is absent) then what is the purpose of the 1k
pull-up on PU_TCK ?
J5. Our impression is that you intended to have 1k pull-ups on
PU_TDI, PU_TMS and PU_TCK. right
J6. Do you rely on the motherboard to provide the proper logic
level on TRSTn when the "JTAG" jumper is present, and do you rely
on the presence of the JTAG cable into HP701 to provide the
proper level on TRSTn when the "JTAG" jumper is absent ? yes
The JTAG chain on the PU can be driven either from the PU (connector JP701) or from the mother board. In case the MB drives the chain, the JTAG jumper must be present. We agree it is a bit dangerous, but this should be temporary, in order to test the DSP emulator. (this can be done only from the PU). On the final board, the connector JP701 should not be populated, and the JTAG chain always driven from the MB.
J7. In the previous design, the bus buffer 74LVTH125 was powered from
the switched 3.3VDB instead of the direct 3.3V. This was to make
sure that the DSP inputs driven by this buffer were in fact not
driven during the initial power-up.