Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shuttler DAC #253

Closed
hartytp opened this issue Aug 16, 2017 · 342 comments
Closed

Shuttler DAC #253

hartytp opened this issue Aug 16, 2017 · 342 comments

Comments

@hartytp
Copy link
Collaborator

hartytp commented Aug 16, 2017

I've started sketching out requirements for a fast DAC to be used for ion shuttling/splitting. It's on the Wiki.

All comments welcome...

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@dhslichter
Copy link
Member

@gkasprow is that 32 channels, EACH at 10 MS/sec? I think that probably serial control is going to be challenging to meet the kind of update rates we want.

The DAC used on the PDQ boards is the Analog Devices AD9726, It has 0.5 LSB typical DNL, 10 ppm/C gain and offset drift, and takes parallel LVDS data at up to 400 MSPS. Noise is at the Johnson noise limit for -6 dBFS output, runs up about 5 dB at 0dBFS. Dissipation is about 0.6 W/channel (!!!) In the PDQ, it is run at 50 or 100 MSPS. AFAICT most of the other DACs available with sufficient speed to drive > MHz signals have at least 2 LSB typical DNL, and 100 ppm/C gain coefficients, both of which are problematic. The downside of the AD9726 is that it is a "not recommended for new designs" product, i.e. they are phasing out the lifecycle of the chip.

The LTC1668 is a potential alternative part, with specs somewhat worse than the AD9726 but better than a lot of the competition. The noise is a factor of a few above the Johnson noise limit (50 pA/rtHz, or 5 nV/rtHz into 100 ohms), but it goes to 50 MSPS and the power dissipation is much lower (180 mW/channel).

Another chip worth looking at is the LTC-2000-16. This is more expensive, about $90/channel, and has export restrictions which could be problematic, although I think Poland is OK (China/Hong Kong is definitely not OK). Power dissipation at 100 MSPS would be ~300 mW, DNL is 0.5 LSB, gain drift is 5 ppm/C. It's in a BGA package, which is a pain.

@jordens
Copy link
Member

jordens commented Aug 16, 2017

If we start with selecting the DAC, then we can match N channels to an FPGA which should probably be on the same board as the DACs for wiring and throughput reasons. The interface between that board and the next upstream device (Kasli or Metlino) is likely to be higher level (DRTIO) and not EEM for throughput and simplicity reasons. And then we arrive at AMCs as the form factor.

@dhslichter
Copy link
Member

I agree with @jordens here in general, although if price point is highly sensitive on this one we could basically implement "Kasli PDQ" -- effectively N DACs (AD9726 perhaps) linked to a medium-sized Artix on an EEM. If much of the PDQ gateware could be ported over, including the SPI communications over EEM, this would be a simple board to implement that would also be inexpensive, and require only the inexpensive chassis rather than the more pricey uTCA. The price you pay is obviously that you would have less bandwidth to update the output waveform of the DACs, feedback becomes slower, etc.

NIST would be very interested in an EEM-form-factor PDQ replacement card with similar spec/properties (although with much deeper memory, and possibly higher sample rates).

@jordens
Copy link
Member

jordens commented Aug 16, 2017

@dhslichter ACK. It is just that restricting the link to SPI (or anything we can run over EEM) would likely lead to the same split-brain effect we see with PDQ (or any other non-DRTIO device with significant data): data here, control there and data needs to be uploaded ahead of time, synchronized, maintained and can not be swapped or parametrized easily.

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 16, 2017

@dhslichter Thanks for the DAC recommendations.

PDQ, it is run at 50 or 100 MSPS

Do we really need this much bandwidth? IIRC, if we go for 10MSPS, we get more choices of DAC (and a less crazy power budget!).

I agree with @jordens here in general, although if price point is highly sensitive on this one we could basically implement "Kasli PDQ" -- effectively N DACs (AD9726 perhaps) linked to a medium-sized Artix on an EEM.

If you're serious about going to 200+ channels, then I really think AMCs are the only way to go. Not just because of the wiring complexity/space required for large numbers of Kasli/EEMs, but also because you need a chassis with really good thermal management (otherwise, thermal drifts will be a killer due to the amount of power dissipation on these boards). At that point, you need something like a proper uTCA rack.

For a cheaper approach, you an always buy a single unit AMC chassis and run the AMC over DRTIO fibre.

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 16, 2017

Did we discuss that in such application 12bits is sufficient?

12 bit would not be sufficient for us.

Then we could make very low cost EEM with such 32 DACs with constant update rate of 10MS/s. And MTCA with high performance DACs.

Given the reasons discussed above, I don't think we'd use the EEM DAC board.

@gkasprow Will the EEM + Kasli alternative really be cheaper than the AMC? My guess is that in the end, the AMC solution will be cheaper and more convenient.

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 16, 2017

Big questions for me about this design:

  • What analog bandwidth/sample rate do we really need? Let's try not to over specify this.
  • Are we happy separating the AFE from the DAC board? Downside is power dissipation/space taken up near the trap. Upside is that we won't run into issues (self-heating etc) due to trying to drive 10V into 200pF of cabling capacitance at 1MHz.
  • What pass-band and stop-band frequencies do we need for the AFE, and what stop-band noise do we need? This determines the order of the filter on the AFE (and hence the power consumption).

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 16, 2017

Exactly.

@jordens
Copy link
Member

jordens commented Aug 16, 2017

Hey @camacazio could you explain to us why you went for 50 MHz with PDQ? Would 10 MHz work as well?

@jordens
Copy link
Member

jordens commented Aug 16, 2017

  • I really like the detached frontend. It also helps people that have just +-1V voltages or +-50V.
  • IMHO 10 MHz would be fine as well but probably actual users should determine the minimum from their physics and filter electronics.

@dhslichter
Copy link
Member

I would argue we want to be able to synthesize signals with bandwidths up to typical secular frequencies, if we are looking to do fast (diabatic) transport. I would say that 10 MSPS is the very low end of what one would want,

I'm fine with AMC in the end but I think we should try to pack as many DACs in as possible in this case.

@dhslichter
Copy link
Member

dhslichter commented Aug 16, 2017

Detachable AFE is definitely a good thing, and will allow people to customize a great deal. I would keep it inside the chassis. I think given that customizability, we want the underlying DAC board not to be underpowered sample-rate-wise, especially if we are going to be in an expensive chassis.

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 16, 2017

I'm fine with AMC in the end but I think we should try to pack as many DACs in as possible in this case.

I'm happy shooting for 64 channels per AMC.

The only downside of packing the channels in is that the silicon cost is quite high, so users who only want, say, 10 channels are wasting a lot of money on unused DACs.

IMHO 10 MHz would be fine as well but probably actual users should determine the minimum from their physics and filter electronics.

Agreed, we shouldn't go below this. And, if we can find a good DAC that's much faster, and doesn't have much worse noise/etc then it'd be great to go faster. But, let's take this as a lower limit on the BW for now.

Detachable AFE is definitely a good thing, and will allow people to customize a great deal.

Let's copy Zotino and supply +-12V + GND on the HD68 cable. That way, the front-end can be powered via the SCSI cable assuming it doesn't need too much current.

@dtcallcock
Copy link
Member

Would 10 MHz work as well?

If the DAC update rate might be resonant with any ion secular frequencies you have to think a lot harder about filtering and/or frequency planning. In Be+ and Mg+ surface traps you are often right around 10MHz so I think at least 20MSPS would be preferable so that this isn't an issue.

Also to echo Daniel's comment, there is interest in pushing transport further into the diabatic regime at NIST. We'd have to have to ask the experts (eg. Didi) to see what their aspirations are.

drive 10V

The Sandia HOA 2.0 can take +/- 20V so I think this would need to be an option. I guess AFE spec is a somewhat separate discussion though.

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 16, 2017

We can also make just 32channel fmc boards and plug them into std amc carrier i.e. AFC(K) OH design which has HPC FMC.

That could be a nice solution if you can fit that many DACs on an FMC, as well as the required regulators and FPGAs (probably not enough IO on an FMC to run these DACs directly from the connector)! Assuming you can get 2 FMCs on an AMC, you could then have up to 64 channels per AMC.


Another thought: we should make sure that this board has front-panel clock, and trigger input SMAs. That would extend the range of uses (e.g. for non-ARTIQ users)

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 16, 2017

Also to echo Daniel's comment, there is interest in pushing transport further into the diabatic regime at NIST. We'd have to have to ask the experts (eg. Didi) to see what their aspirations are.

Good idea!

The Sandia HOA 2.0 can take +/- 20V so I think this would need to be an option. I guess AFE spec is a somewhat separate discussion though.

Okay, let's see if we can get the AFE to +-20V.

I did such 16 channel OH boards nased on dac1401d125

Were there FPGAs on the mezzanine? How did you do the IO for the DACs?

@gkasprow
Copy link
Member

gkasprow commented Aug 16, 2017 via email

@sbourdeauducq
Copy link
Member

This shouldn't be called "fast DAC", it's slower than Sayma. Maybe "medium speed DAC" or something along those lines.

@jordens
Copy link
Member

jordens commented Aug 17, 2017

If we put that on FMCs (and 16 channels per FMC with two FMCs per AMC would already be nice IMHO) then we can also do an EEM with a (little) FPGA being an FMC carrier, i.e. have the choice of having the FMC on AMC or on EEM.

And let's just use a code name instead of "something DAC".

@hartytp
Copy link
Collaborator Author

hartytp commented Aug 17, 2017

@jordens Agreed: if we can get this on an FMC, that's great. As you say, if anyone really wants to use it with Kasli, we can then make an adapter board. This could also be a generic (passive) FMC to many IDC board. One option would be to give this female header, so that it can mate directly with Kasli, mounting via spacers and the mount holes.


Having said that, maybe the best approach is to put the discussion about form-factor on hold for now.

Let's first figure out how much bandwidth people need, and what order of filter the AFE needs. Once we've done that and chosen DACs/OpAmps, we'll be in a better position to figure out whether it can fit on an FMC/etc.

@gkasprow
Copy link
Member

gkasprow commented Aug 17, 2017 via email

@hartytp
Copy link
Collaborator Author

hartytp commented May 9, 2018

I agree that passive stability is the best way to go, but it's not clear to me how we would win more with an RTM design that you and @gkasprow keep pushing -- you would still need the ultrascale FPGA on the RTM card and it would dissipate a similar amount of power, you have similar board area...is cooling just so much better on RTM? I didn't have that impression.

@dhslichter right, cooling is about the same on AMCs + RTMs. Generally the idea of RTMs is to have more space to spread things out to allow better cooling, and to remove things like SFPs that block airflow.

As @gkasprow said, I wouldn't suggest designing an RTM with an ultrascale FPGA. If we go down the RTM route, we would just have 1-2 cheap Artix-7 FPGAs to act as deserialisers. The power consumption for that is way lower (although still not negligible).

@hartytp
Copy link
Collaborator Author

hartytp commented May 9, 2018

@dhslichter Taking a step back, let's make sure that we have a specification in mind for what we're aiming to achieve here. For Zotino, our target was 10ppm pk-pk. i.e. 30Hz on a 3MHz axial mode. Much more than that and it gets to be a pain for high-fidelity gates (drifts are likely to be slow, so one can do complex gate sequences, but I'd rather have higher performance HW and simpler gate sequences if at all possible). Are you happy with that specification, or do you want to make a different suggestion?

So long as we agree on a specification, and produce HW that meets it, I'm not fussed about the AMC/RTM thing -- I'm only suggesting it as, i think, the easiest way of meeting our specification, but I'll be happy with anything that works and isn't too hacked.

If we put the I2C hardware for reading temperatures on the board, we can decide if we want to use it later. It is very simple to implement and route, inexpensive, and gives us the ability to do something with temperature data if we want, or ignore it if we don't.

I definitely agree that we should hook the temperature sensors up. If nothing else, they're a very useful diagnostic to have access to.

My point is just that if DAC temperature compensation/lookup tables are going to be essential to meeting our drift specification, then I'd like to see a coherent plan for how that will work (implemented in HW? Done via kernels? What BW? What noise will this induce on the DAC's output for DC levels?).

@sbourdeauducq
Copy link
Member

Generally the idea of RTMs is to have more space to spread things out to allow better cooling,

The same result is achievable, with less pain, by reducing the number of channels per card.

and to remove things like SFPs that block airflow.

As I said earlier, SFPs are not essential.

@dhslichter
Copy link
Member

@hartytp I have eval boards for the relevant parts (LTC2000-16 and ADA4927), and will do performance testing on the AFE output circuits. Timescale is probably not going to be immediate, but hopefully in the next ~month. Will want to get draft design in place before we go too far.

Regarding drift spec, something like 10 ppm pk-pk seems reasonable to me as well, on slow timescales (such that things like Walsh sequences can give immunity). I am not sure how one would likely implement the DAC temperature compensation, but my guess is that the most likely thing would be that we just use the sensors open-loop as a debugging tool, and we use the ion(s) as the servo on the digital waveforms that are output from the DAC.

@sbourdeauducq your point about the number of channels per card is well taken. However, the use case for these DACs generally involves traps with ~100 electrodes, with near/medium term plans to go to 200+ electrodes, so we need to achieve some reasonable channel density with the hardware in racks. Going to 8 channels per card, for example, would limit us to <100 channels in a full 19" uTCA crate, which is less than ideal. If we can run 16 channels, or even up to 20 channels, on a single card with reasonable thermal performance, that would be much preferable. However, we want to allow some safety margin on the thermal performance for sure.

I think we can reduce the gain on the output amplifier stages, and reduce the supply voltages as a result, to win something on the power dissipation there -- should go down to 125-250 mW per channel, depending on output. This would put the DAC + AFE power budget for a 16-channel board at about 10 W per board worst case (all max-scale output voltages), including the LDO dissipation for the AFE.

@dhslichter
Copy link
Member

As I said earlier, SFPs are not essential.

I think we're on board with this -- for this application, the thermal and real estate penalty from SFP outweighs its benefits, and as long as we have risk-mitigating solutions to enable SFP communications in the absence of Metlino (SFP_RTM or SATA-SFP adapters), I am satisfied.

@hartytp
Copy link
Collaborator Author

hartytp commented May 9, 2018

Cool, I think we're converging on something.

Regarding drift spec, something like 10 ppm pk-pk seems reasonable to me as well, on slow timescales (such that things like Walsh sequences can give immunity).

Ideally, I'd like to achieve this stability over a period of hours. Longer than that, and we can servo to the ion as you said.

I am not sure how one would likely implement the DAC temperature compensation, but my guess is that the most likely thing would be that we just use the sensors open-loop as a debugging tool

👍

@sbourdeauducq your point about the number of channels per card is well taken. However, the use case for these DACs generally involves traps with ~100 electrodes, with near/medium term plans to go to 200+ electrodes, so we need to achieve some reasonable channel density with the hardware in racks. Going to 8 channels per card, for example, would limit us to <100 channels in a full 19" uTCA crate, which is less than ideal. If we can run 16 channels, or even up to 20 channels, on a single card with reasonable thermal performance, that would be much preferable. However, we want to allow some safety margin on the thermal performance for sure.

👍

@dhslichter
Copy link
Member

A simple thing that could be done would be to use an averaged DAC temperature in the crate, collected on slow timescales, to servo the crate fan speed. This would get rid of the sorts of common-mode fluctuations due to input air temperature fluctuations from the lab (for example), which is sort of a lowest-order effect. We could further contemplate putting local heaters under the DACs (or on a common heat sink, if we use a shared heat sink) for trimming within a ~few K range, although after our experience with Zotino I am wary of this.

@dhslichter
Copy link
Member

Realistically the dissipation from the cards is going to be dependent on the output voltages due to the AFE amplifiers, so there is going to be a certain level of unavoidable thermal gradient both within and between cards. When we do a thermal simulation it would be good to see how much of a DAC temperature difference is seen when the AFE amplifier dissipation varies.

@hartytp
Copy link
Collaborator Author

hartytp commented May 9, 2018

A simple thing that could be done would be to use an averaged DAC temperature in the crate, collected on slow timescales, to servo the crate fan speed.

IIRC, when we were discussing Sayma a while back @gkasprow posted some nice data of servoing the fan speed to control an individual AMC to about 0.1C. Not sure what software would have to be written to make this work with Shuttler.

We could further contemplate putting local heaters under the DACs (or on a common heat sink, if we use a shared heat sink) for trimming within a ~few K range, although after our experience with Zotino I am wary of this.

Yeah, i'd like to avoid this kind of thing if we possibly can.

My guess (but, needs simulation) is that with good design, this is probably not necessary, since 10W is not that high a heat load for am AMC, and the bulk of that is static (i.e. does not depend on DAC voltage).

Realistically the dissipation from the cards is going to be dependent on the output voltages due to the AFE amplifiers, so there is going to be a certain level of unavoidable thermal gradient both within and between cards. When we do a thermal simulation it would be good to see how much of a DAC temperature difference is seen when the AFE amplifier dissipation varies.

Yes. Let's make sure that the air hits the DACs first, then the AFE amplifiers, then the FPGA. That way, we minimise the effect that the amplifiers have on the DAC temperatures.

If it's a problem, we can also set the output common-mode voltage so that the power consumption is independent of the differential output voltage.

@sbourdeauducq
Copy link
Member

@sbourdeauducq your point about the number of channels per card is well taken. However, the use case for these DACs generally involves traps with ~100 electrodes, with near/medium term plans to go to 200+ electrodes, so we need to achieve some reasonable channel density with the hardware in racks

But RTMs achieve (if anything) marginally higher densities than more AMCs, for a lot of pain.

@dhslichter
Copy link
Member

dhslichter commented May 10, 2018

Yes. Let's make sure that the air hits the DACs first, then the AFE amplifiers, then the FPGA. That way, we minimise the effect that the amplifiers have on the DAC temperatures.

👍

My guess (but, needs simulation) is that with good design, this is probably not necessary, since 10W is not that high a heat load for am AMC, and the bulk of that is static (i.e. does not depend on DAC voltage).

I have revised my AFE thoughts so that we are running with a gain of 3 and +/- 2.5V supplies for the amps, to give +/- 1.5Vdiff swings at the outputs. If you go lower on the gain, you start to degrade the SNR too much. However, with this, one has a dissipation of 100 mW per channel from the quiescent current, which goes up to 150 mW at full scale in either direction. So with 16 channels that would be a variation of 800 mW dissipation worst case for the entire board depending on output voltages. Thus all assumes a 200 ohm load. If we go to driving a 100 ohm load (for example, driving a load-terminated 100-ohm differential pair on a SCSI cable or some such, need to check the nonlinearity of the amplifier with these small loads), dissipation goes to 190 mW at full scale.

@gkasprow
Copy link
Member

gkasprow commented May 10, 2018

It seems we are converging to sth that has chance to work. Initial specification may look like below

  • AMC only design
  • same FPGA as in Sayma
  • SFP or QSFP mounted on top of the board, in case of troubles we will remove it.
  • at least 4 SATA connectors or one SAS connector routed to GTH. We can then extend it to the RTM or AMC panel using SATA-SFP adapters. We can even install 3.3V power supply connector on the AMC board to supply the adapters, when needed.
  • DACs mounted on bottom. At least 18 channels, 24 should fit as well.
  • DDR3 SDRAM
  • AFE mounted just above the DACs. From SI point of view it may make sense to mount them below DACs but the power dissipation varies a lot from channel to channel and may influence DACs.
    We will use SSTL signalling which causes some DC signal flow below DACs and AFE and may cause ground bouncing if suddenly all signals get zeroes or ones. We can mount AFE on other side of board than DAC to mitigate this. We can also place shielding CAN over DACs to keep their temperature more uniform.
  • no AFE modules. Signal range limited to whatever value +/-5V supply can handle. Maybe +5V could be fine but this involves non-zero common mode. I don't know if this is an issue.
  • SCSI-type connector
  • same Ethernet PHY as on Sayma. It seems to work correctly now.
  • same MMC as on Sayma but without Ethernet switch
  • no SCANSTA switch we don't have any other JTAG devices
  • same UART/JTAG as on Sayma
  • same supply as on Sayma
  • HMC830 + LVPECL/LVDS clock fanout. HMC7043 has not enough channels
  • GTH assignment: 4x SATA, 4x AMC (fat pipe1), 4x QSFP, 4x AMC (p2p), 4 unused, maybe SAS connector close to the RTM which can be easily fanout to 4x SATA/SFP/QSFP on RTM panel.
  • each bank in Kintex US has 52 pins. So we can run 16 DACs with 3 output source synchronous clock lines
    Main clock is routed from the clock distribution IC to the other FPGA bank clock input.
    Edit: it has 52 pins. So the single ended clock can enter the bank as well.
  • XCKU040 has 10 banks (8 HP banks and 2 HR banks). Let's assume we use 5 HP + 1HR banks for 18 DACs, 1 HR bank for config, MLVDS, Ethernet, control and 3 HP banks for 64 bit DDR3. We can also use 21DACs and 32bit DDR3.
  • I'm not sure if it's better to use HP banks for DAC or SDRAM. With HP we can run SDRAM faster but it may be necessary to use them for DACs due to advanced outputs with ODELAY.
  • we can connect two DACs channels together with second channel inverted. At least we spare 16 resistors which otherwise would consume some space. We can also use it for AOM.

@sbourdeauducq
Copy link
Member

With HP we can run SDRAM faster but it may be necessary to use them for DACs due to advanced outputs with ODELAY.

We need ODELAY for SDRAM.

@sbourdeauducq
Copy link
Member

sbourdeauducq commented May 11, 2018

same Ethernet PHY as on Sayma. It seems to work correctly now.

Does it, or are there still packet losses depending on the media converter model and the phase of the moon?

@gkasprow
Copy link
Member

gkasprow commented May 11, 2018

@sbourdeauducq how do you make SDRAM running on Kasli which has only HR banks?
It seems that the Ethernet issues are not caused by the PHY itself. There are at least 3 other factors that mess up. I described them in other thread.
And the most important is correct connection of the TRST pin on the PHY which solved the stability issue. Now I can change the clock phase by more than 90degrees on all my boards and don't see any errors.
I'm still working on making it more reliable and discover other facts. But they are seem to be not related with PHY directly.

@sbourdeauducq
Copy link
Member

@sbourdeauducq how do you make SDRAM running on Kasli which has only HR banks?

There's only one chip, so we shift the clock instead.

@gkasprow
Copy link
Member

gkasprow commented May 11, 2018

I used 4 chips (8 bit) on AFC board, with Artix. How the Xilinx core manages to make it working? It works at 200MHz (400Mbit)/s without issues.

@dhslichter
Copy link
Member

dhslichter commented May 11, 2018

no AFE modules. Signal range limited to whatever value +/-5V supply can handle. Maybe +5V could be fine but this involves non-zero common mode. I don't know if this is an issue.

I think we can go lower than +/- 5V on the supply if needed for power budget, but I think it's important to do bipolar supplies, we won't be able to achieve the desired performance with single-supply AFE amps.

XCKU040 has 10 banks (8 HP banks and 2 HR banks). Let's assume we use 5 HP + 1HR banks for 18 DACs, 1 HR bank for config, MLVDS, Ethernet, control and 3 HP banks for 64 bit DDR3. We can also use 21DACs and 32bit DDR3.

I prefer a wider SDRAM because I think it gives us more flexibility. I would suggest that we might implement two SDRAMs as in Sayma (except both 32 bit if this is all we can fit pin-wise), so that we can have separate memory buses for the processor and for the waveform generation.

I'm not sure if it's better to use HP banks for DAC or SDRAM. With HP we can run SDRAM faster but it may be necessary to use them for DACs due to advanced outputs with ODELAY.

The LTC2000 has an internal clock synchronizer circuit and control registers that allow one to adjust the phase of the data clock with respect to the sample clock. Thus as long as the data and DCLKI lines are well length-matched for any given DAC, we should be OK and able to synchronize the DAC outputs. Since our target data rate is 150 MSPS max, the constraints on the length matching are not extremely stringent.

@sbourdeauducq do you think that the Ultrascale issues with BUFGCE_DIV, IOSERDES, and IODELAY would raise major issues for this design? Data out is DDR at 1/2 the RTIO clock frequency.

@sbourdeauducq
Copy link
Member

sbourdeauducq commented May 12, 2018

@gkasprow I'm not sure how it's done on A7, but on some devices the Xilinx MIG uses undocumented FPGA features. The technique with ODELAY or clock shifting is simple and solves the problem for the boards we have (KC705, Kasli), so I have not looked deep into the Xilinx core. If required, the undocumented features are certainly possible to reverse-engineer though, especially as things like 'SecureIP' are not secure at all. I think you could even run at much higher rates than 400Mbps.
@dhslichter Should be fine, but I strongly recommend prototyping with a FMC card and Sayma first.

@gkasprow
Copy link
Member

@dhslichter do you have such devkit? @sbourdeauducq what exactly do you want to test with it? The FPGA code ADI delivers?

@sbourdeauducq
Copy link
Member

I don't have this devkit. But we should prototype the ARTIQ support using it.

@gkasprow
Copy link
Member

Artiq support is big think, the most important is to make sure that it will work without much pain being driven using SSTL IO instead of LVDS. Another aspect to test is clock. I believe we can test it using devkit with some HW modification. Negative LVDS line can be connected to VTT by FPGA IO pin with internal Thevenin termination enabled.
I can test it but I need to borrow the devkit for a few days.

@dhslichter
Copy link
Member

@sbourdeauducq @gkasprow I have the devkit for the LTC2000-16 (qty 1). It's an FMC card, could be tested out on a KCU105 pretty readily it seems. The eval suite from Analog Devices is designed for the KC705, so easy to test basic functionalities that way.

We should be able to buy an additional devkit and loan it to WUT as needed for testing. Last time I looked there were export controls on the LTC2000, so we need to check if additional paperwork would be required to have one go to Hong Kong -- Poland and Germany are both OK IIRC.

@sbourdeauducq
Copy link
Member

I'd avoid another Ultrascale board until Sayma insane behavior that might be attributable to it is sorted out.
m-labs/artiq#998 (comment)
m-labs/artiq#1043
m-labs/artiq#1026

@hartytp
Copy link
Collaborator Author

hartytp commented Jun 3, 2018

@sbourdeauducq agreed. IIUC the idea here is to reuse as much of Sayma as we can, rather than designing a new board from scratch and beginning the bug finding process all over again. So, it doesn't make any sense to begin this (or Metlino for that matter) until we are happy that Sayma works reliably with ARTIQ.

@dhslichter
Copy link
Member

My goal is as @hartytp has stated, which is to make sure we have learned all the lessons we need to learn from Sayma AMC before embarking on a new board, and to be able to reuse parts of Sayma AMC to the extent possible. Based on funding considerations as well, Shuttler is a board that we would plan to develop in earnest starting in 6-12 months, not right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests