sinara-hw / sinara

Sayma AMC/RTM issue tracker
Other
42 stars 7 forks source link

Kasli v1.0 tests & errata #349

Closed marmeladapk closed 6 years ago

marmeladapk commented 6 years ago

To be changed for rev1.1

jordens commented 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:

jordens commented 6 years ago
jordens commented 6 years ago
hartytp commented 6 years ago

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.

gkasprow commented 6 years ago

@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 :)

gkasprow commented 6 years ago

@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.

hartytp commented 6 years ago

@jordens re the clock buffer: this is still a high value feature for us.

hartytp commented 6 years ago

But, if you're really set on removing it then a possible compromise would be:

jordens commented 6 years ago

@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:

hartytp commented 6 years ago

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.

hartytp commented 6 years ago

But, having said all that, I would be okay with moving the mux + fanout to the BP adapter.

marmeladapk commented 6 years ago

@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.

marmeladapk commented 6 years ago

@jordens And routing is very dense but near and under FPGA (eems routing was very tricky) not near clock circuits.

jordens commented 6 years ago

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.

hartytp commented 6 years ago

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.

hartytp commented 6 years ago

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

jordens commented 6 years ago

@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).

hartytp commented 6 years ago

@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).

jordens commented 6 years ago

@hartytp @marmeladapk Ok. Thanks. Then let me summarize:

(all the errata added to the top post)

jordens commented 6 years ago

@marmeladapk Why does R57 need to be 300R?

UG470:

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.

marmeladapk commented 6 years ago

@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.

hartytp commented 6 years ago

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!

marmeladapk commented 6 years ago

@jordens Is there any reason other than visual that you brought back arc issue?

jordens commented 6 years ago

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.

jordens commented 6 years ago

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).

gkasprow commented 6 years ago

@jordens existing resistor caused JTAG error that DONE pin did not go high. And once I changed it to 300R the problem was solved.

jordens commented 6 years ago

That's weird.

gkasprow commented 6 years ago

I had same issue with Spartan chips so didn't think too much about any other fix :)

marmeladapk commented 6 years ago

@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?

jordens commented 6 years ago

@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).

marmeladapk commented 6 years ago

@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.

jordens commented 6 years ago

@marmeladapk

  • (v1.1/rj) Connect backplane clock CLK_EXT_P/N to CKOUT2+- of IC2
marmeladapk commented 6 years ago

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.

marmeladapk commented 6 years ago

Remove the R98 path of CLK_OUT

I also removed R97 - no point in keeping it now.

jordens commented 6 years ago

Ack. Thanks!

hartytp commented 6 years ago

@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.

hartytp commented 6 years ago

@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

marmeladapk commented 6 years ago

@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.

hartytp commented 6 years ago

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.

hartytp commented 6 years ago

Anyway, all changes look good to me.

gkasprow commented 6 years ago

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.

hartytp commented 6 years ago

@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.

gkasprow commented 6 years ago

Such heatsink I sent requires quite a lot of clearance around FPGA. If it does not fit, let's use glued one.

hartytp commented 6 years ago

@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.

hartytp commented 6 years ago

Also, if we're ever going to do it then let's tackle #317 while we're at it (should be pretty quick!).

marmeladapk commented 6 years ago

I also removed R131 and R133.

hartytp commented 6 years ago

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!

hartytp commented 6 years ago

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)

hartytp commented 6 years ago

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...

hartytp commented 6 years ago

Other comments on that:

What do you think?