Closed marmeladapk closed 6 years ago
@gkasprow Doing I2C through the switch only also gets rid of IC10{ABC}. I'd rather like to use these FPGA pins for:
I am pretty sure the effects on routability, SI and cleanliness will be there. If the 7x MMCX array and the ADCLK948 are gone, that's a significant amount of space on all layers.
Well, it's not a deal breaker for me, but I'd still prefer not to remove these unless @gkasprow and @marmeladapk really think it will help (they are the ones best placed to make that call). I would have no objection to cutting down to 4-5MMCX connectors if that helped (although, we discussed this before and, IIRC, @gkasprow and @marmeladapk said there was no point removing them since the cost is negligible and removing them doesn't really help with the design).
And I have changed my mind on the second power connector that is pointing towards the backplane. That can go (removed entirely). If someone wants to power internally, then just use the backplane connector, that EMI filter, and a connector on the backplane. In turn please populate the backplane connector.
Great! I completely agree. Let's just make the BP adapter with a power jack on it.
@jordens true, I met some SFP modules that used these pines in other way, but they were custom CERN designs that also used both RD and TD as outputs :)
@jordens @marmeladapk On two kasli boards we noticed failed I2C switch. This may be due to ESD. The I2C are open drain with no protection diode. So we should add TVS to each EEM connector I2C lines.
@jordens re the clock buffer: this is still a high value feature for us.
But, if you're really set on removing it then a possible compromise would be:
@hartytp I am OK with exposing the clock at a few places (the backplane, an Kasli MMCX and the panel SMA). But I have the following observations with the 8x clock fanout:
The 7 or 8 coax and MMCX connectors make assembly more tricky and lead to a worsening of the cooling situation.
I would be totally happy with reducing that to 4.
You have to decide what's important for you. You say that the 125 MHz are "rare", but then you still want the option to not use them but feed the backplane with something else. This weakens both arguments.
IIRC, you were the one who wanted that. I'd be fine with loosing the external input and only supporting backplane clocks from the Si chip. Just pointing out that we loose the muxing capacity if we remove the fanout. But, ...
Have the 2x8 fanout/mux on the backplane. You get the same mux options as before. And 8 outputs is sufficient to drive even setups with 8 Urukul/Mirny. That's unlikely to be standard.
That's true. I hadn't considered that. The only downside of this is that there is no convenient way of feeding this mux via the front panel.
Otherwise, what purpose does Clocker serve since you would be getting 7 MMCX from Kasli?
That was more targeting ultra-low noise cases. I'd prefer not to have to use if for simple fanout unless really necessary.
But, having said all that, I would be okay with moving the mux + fanout to the BP adapter.
@jordens Removing clock fanout won't help with anything (unless we notice SI issues and pinpoint them to lines being too close or smth else). Right now routing is a solved problem and removing for example W1 or MMCXs won't change anything because I won't reroute lines in proximity (there's no need to).
(I will reroute lines that are too close to SFP TX and RX lines.)
Sure there is evidence for SI issues. As Pawel and Greg stated, the routing is extremely dense and that lead to SI issues in the EEM connectors.
Haven't seen any TBH. Greg neither. And the point about removing reference plane cut is more of a precaution as I didn't observe any differences between signal on lines moving over the cut and on lines from eem0-8.
@jordens And routing is very dense but near and under FPGA (eems routing was very tricky) not near clock circuits.
Making room to cool Kasli properly is high priority to me. A block of 8 EEM connectors, 8 ribbon cables, 8 MMCX connectors and 8 coax cables is an almost perfect wall. The opposition to adding 4 HP of space to Kasli is the wrong place to save space IMHO. Having racks filled in the front and in the back (like AMC/RTM) would be easier if HPs are at a premium and a the backside operation is apparently a small inconvenience. The EEM crates are really not deep right now. You can stuff boards from both sides in about 50 cm of crate depth. You can put Samplers on one side and Urukul on the other (at the same side as the RFPA which is much deeper). But please allow 8 HP for Kasli.
There is also the mux isolation issue. With the 75 dB spurs on Urukul with the capacitors placed to route the other input and the switch switched to the SMA, I'd expect something similar on the Kasli mux just by proximity. And it won't be easily curable there.
8 coax cables is an almost perfect wall.
Can reduce this to 4. But, even 8 coax cables aren't really an airflow problem compared to the ribbon cables.
There is also the mux isolation issue. With the 75 dB spurs on Urukul with the capacitors placed to route the other input and the switch switched to the SMA, I'd expect something similar on the Kasli mux just by proximity. And it won't be easily curable there.
I have no issue with scrapping the mux and only keeping the fanout.
Anyway, so long as we have a mux on Kasli or the BP adapter, I'm less fussed about where it is. So, will leave final call to @jordens and @marmeladapk. No more comments from me on this
@marmeladapk Ack. Thanks for the input. IMO any future layout changes would still be made easier if the 8x fanout and 7 MMCX were gone. @hartytp What about the following: We scrap the idea of having the SMA connector output the RTIO clock and use that for input exclusively. Then we add four MMCX on the four remaining outputs of the 4x fanout (IC1, two positive and two negative). The fact that there is a 180deg phase shift on two of them is not a problem IMHO. You can now go with a nice short pigtail from Kasli to its 8HP front panel if you want a RTIO clock output there. You can also go with 4 MMCX connectors to 4 Urukul/Mirny boards. You'd still have the additional differential output to the backplane (CLKOUT2 from IC2).
@jordens that would be fine for me. I don't anticipate using the SMA clock output, since I imagine doing all clock distribution inside the rack. In the rare case that it's done one can add a pigtail/clocker (I don't mind doing that in this case since I don't think it will be very common, so it's okay if we don't make it quite as convenient).
@hartytp @marmeladapk Ok. Thanks. Then let me summarize:
(all the errata added to the top post)
@marmeladapk Why does R57 need to be 300R?
DONE has an internal pull-up resistor of approximately 10 kΩ. There is no setup/hold requirement for the DONE register. These changes, along with the DonePipe register software default, eliminate the need for the DriveDONE driver-option. External 330Ω resistor circuits are not required but can be used as they have been in previous generations.
@jordens @hartytp Please tell me if you consider v1.1 to be a final version or do you expect v1.2?
IMO any future layout changes would still be made easier if the 8x fanout and 7 MMCX were gone.
That part of the board was not dense and I had no trouble routing it. Removing anything is more work than DNPing it, unless you anticipate significant rework of clock recovery circuit schematics. So please consider if removing IC3 is still needed not on a premise that the board is dense, but on something else. If cost and power savings are worth it or if we're worried about cables obstructing cooling then we can DNP parts and move CLK_EXT to Q3 of IC1.
mux isolation issue. With the 75 dB spurs on Urukul
What caused it? If we can measure similar effect on Kasli and it's not easily fixable then it defeats the purpose of fanout.
Add an LDO for the power supply of IC1 and IC2
We could supply IC1-3 with TPS79601 at 3,05 V from 3,3 V.
Alternatively, if we get rid of IC3 what do you think about supplying IC1 and IC2 with 2,5V from LT3045EDD? Both chips can be powered with 2,5 V.
Connect backplane clock CLK_EXT_P/N to CKOUT2+- of IC2
Do you want it to stay as LVPECL or change lines to LVDS?
Why does R57 need to be 300R?
IDK, but with 2k2 Xilinx platform cable didn't recognise that the FPGA is programmed.
Please tell me if you consider v1.1 to be a final version or do you expect v1.2?
I currently don't have any more changes to suggest (although, I haven't played with these boards much yet).
That part of the board was not dense and I had no trouble routing it. Removing anything is more work than DNPing it, unless you anticipate significant rework of clock recovery circuit schematics. So please consider if removing IC3 is still needed not on a premise that the board is dense, but on something else. If cost and power savings are worth it or if we're worried about cables obstructing cooling then we can DNP parts and move CLK_EXT to Q3 of IC1.
I'm not fussed either way.
Do you want it to stay as LVPECL or change lines to LVDS?
IIRC, @gkasprow thought that LVPECL is better for driving cables etc than LVDS. I'd prefer to stick with it unless we need to change.
We could supply IC1-3 with TPS79601 at 3,05 V from 3,3 V. Alternatively, if we get rid of IC3 what do you think about supplying IC1 and IC2 with 2,5V from LT3045EDD? Both chips can be powered with 2,5 V.
LGTM. Those regs are nice low noise regulators which should do the job. Anything alone those lines that meets the supply requirements of the chips is fine by me!
@jordens Is there any reason other than visual that you brought back arc issue?
I hope that this will be the final revision of the v1.x series.
I am fine with DNPing instead of removing if it achieves the same. Let me mark the changes that I definitely want to see in v1.1 (marked as (v1.1/rj)).
@marmeladapk Yes visual. I don't think the electrons care. But it looks amateurish, conveys a false sense of what is needed and important and seems to indicate that there is some hidden magic going. It's not a bug that prevents something from working but it is not good and something that I would like to see changed.
And if routing that clock network was as trouble-free as you say (which I find surprising), then re-routing it is even easier! (That comment on the visual aspect of the layout does not refer to your skills which I admire. I hope that's clear).
@jordens existing resistor caused JTAG error that DONE pin did not go high. And once I changed it to 300R the problem was solved.
That's weird.
I had same issue with Spartan chips so didn't think too much about any other fix :)
@jordens @hartytp So what's the consensus? Should I remove IC3 or should I just DNP J5-J7 and move CLK_EXT to Q3 of IC1?
And is there anyone else that should weigh in?
@marmeladapk I thought that was clear. Sorry if it wasn't. You can interpret the "Removes" from the items in the top post as "DNP" if you prefer. That's fine with me.
But just "DNP J5-J7" won't help. If we are doing any of this, I'd like the items marked v1.1/rj ticked off. That's more than DNPing a few components. It will involve re-routing some signals (e.g. driving J1-J4 from IC1 instead of IC3).
@jordens If we drive J1-J4 from IC1 then and we DNP IC3 then we won't drive CLK_EXT with anything. I don't think that's intentional.
@marmeladapk
- (v1.1/rj) Connect backplane clock CLK_EXT_P/N to CKOUT2+- of IC2
Ok, after some amount of discussion @jordens convinced me that shaving off 1 W and preventing possible isolation issues is worth deleting IC3.
We plan to add this heatsink to BoM.
Remove the R98 path of CLK_OUT
I also removed R97 - no point in keeping it now.
Ack. Thanks!
@jordens @hartytp So what's the consensus? Should I remove IC3 or should I just DNP J5-J7 and move CLK_EXT to Q3 of IC1?
I'd vote for completely removing it rather than DNPing it. If you make the other changes that @jordens is suggesting then this component no longer makes any sense.
Plus IIRC by removing it, you can simplify things by powering the other clock components from 2V5.
@marmeladapk Will the heat sink be glued down? How robust is that? Would it be better to use one that mounts robustly onto the PCB like on Sayma?
Edit: I've found that self-adhesive tape isn't always strong enough for long-term use in a lab environment
@hartytp
Plus IIRC by removing it, you can simplify things by powering the other clock components from 2V5.
It doesn't really matter if they will be powered from 3 V or from 2,5 V.
Would it be better to use one that mounts robustly onto the PCB like on Sayma?
Perhaps yes (@gkasprow ?) if we find one, but right now it would require significant rerouting near FPGA and I won't be able to finish it this week.
Perhaps yes (@gkasprow ?) if we find one, but right now it would require significant rerouting near FPGA and I won't be able to finish it this week.
Okay, do whatever you think is best.
But, just my two cents, I'd be a bit nervous about using one of those. There is so much cabling here that could knock a glued on heatsink off. I don't want to be in a situation where pulling a cable somewhere in the rack results in the heatsink falling off and then the FPGA breaks! So, I'd ideally like the board either to not rely on a heatsink or to have one that's sufficiently robust for the application.
Anyway, all changes look good to me.
Glued heatsink is robust. I tried to remove one from Sayma and did not manage. There are heatsinks that are attached to the FPGA edge so don't need mounting holes. I used them for bigger ARTIX chips.
@gkasprow if you're happy with it then it's fine by me. I've probably used too much cheap self-adhesive tape and not enough of decent glue :)
Use whatever approach you think will work best.
Such heatsink I sent requires quite a lot of clearance around FPGA. If it does not fit, let's use glued one.
@marmeladapk it's probably adding an inductor/ferrite between the SMPS and the new clock buffer LDO to make sure we kill high-frequency noise on that power rail.
Also, if we're ever going to do it then let's tackle #317 while we're at it (should be pretty quick!).
I also removed R131 and R133.
One final comment (but not fussed if you don't want to make the change at this point):
My thinking here is that floating is generally what one wants for this. IIRC our only reason for not floating it originally was not wanting to have to fuss around with insulating washers. Since we're actually fitting an insulating washer in Kasli at the moment I can't see any reason not to float this input. Just requires changing one component value, so nice and easy to implement!
FWIW, it probably would have been better to have floated the MMCX clock connectors on Kasli as well. If you can be bothered then let's do that.
However, if this is in any way hard to do (or if you just don't have time) then I don't mind you not bothering with it (it's not critical since these are generally only used for distribution over short distances within the rack, so ground loops shouldn't be too bad and, if this is a problem, one can use clocker)
FWIW, one other thing we haven't looked at with Kasli is the robustness of the clock input. In particular, what happens when a clock is applied while the board is not powered (which always happens sooner or later!).
Quick calculation:
Anyway, this is probably fine but if we observe any damage then we could consider adding protection to the clock inputs (also applies to Urukul).
As discussed elsewhere, this is hard to do with diodes or protection resistors without degrading the performance of the clock chips, so adding one of the ADCLK buffers before the Si chip might be the easiest way of making the inputs more robust if there does turn out to be a problem...
Other comments on that:
What do you think?
To be changed for rev1.1