Re: [ARTIQ] ARTIQ Digest, Vol 50, Issue 9

2018-08-09 Thread Slichter, Daniel H. (Fed) via ARTIQ
> What "bells and whistles" do you mean? Do you mean things like fancy 
> modulation/demodulation schemes for PDH locks etc? Let's have a bells and 
> whistles list and see what we can agree to cull.

Agreed, I think a list of the current "bells and whistles" would help a lot in 
terms of thinking what to trim.  My two cents is that shifts in increments of 
f_rtio/4 would definitely be fine enough for DUC.  I have spelled out in 
previous emails why I think there is a very compelling physics case for us to 
be able to run at 800 MSPS/1 GSPS (8x f_rtio at 100 MHz or 125 MHz RTIO freq, 
respectively), so I am willing to sacrifice a lot of other "features" in order 
to achieve this higher sample rate.  However, among the features is one thing 
that I think is very important for us (but all can be debated at this stage), 
namely having the envelope for the upconverted sine waves update at the full 1 
GSPS update rate.  This is relevant for both the Oxford fast laser gate and the 
magtrap, where we want to be able to do pulse shaping on rise/fall times in the 
~5-15 ns range.  

I would also point out that if for some reason this SAWG gateware does not meet 
people's needs down the line, one can pay to have a different version developed 
which chooses a different set of tradeoffs.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ Digest, Vol 50, Issue 2

2018-07-17 Thread Slichter, Daniel H. (Fed) via ARTIQ
> You just need to get away from specifying sample rates and
> details of the DSP chain and start specifying the actual use cases.

My apologies; I thought I had sent an email to the entire list but it turns out 
it just went to Sebastien.  I reproduce the email I sent Sebastien last Friday 
below (with a couple of minor clarifications), which gives our use cases and 
the motivation for wanting to run at 1 GSPS as well as 600 MSPS.  

===

> What sample rate(s) would you like to see and why?

The primary application here would be the driving of AOMs centered at 220 MHz 
(which could be done at 600 MSPS in theory) or 330 MHz (much harder to avoid 
Nyquist images at 600 MSPS).  We would most likely want 1 GSPS, with an RTIO 
clock of 125 MHz, which also aids compatibility with our other hardware and its 
RTIO clock frequencies (although some of our setups run with 100 MHz RTIO 
clock, and thus we'd aim for 8x multiplexing still but which would yield 800 
MSPS -- still suitable for the 220 MHz and 330 MHz AOMs though).  For a 1 GSPS 
data rate, the DAC clock could be run at 1 GSPS, or with the 2x interpolation 
enabled at 2 GSPS.  We also have AOMs at ~600 MHz that we would like to drive.  
For this application, we would take the second Nyquist image running at 1 GSPS 
with no DAC interpolation, probably in mix mode and define our band with 
filters afterwards (200 MHz would then separate first and second Nyquist images 
so easy to filter).  For obvious reasons 600 MSPS would be a very poor data 
rate choice for this application.

The second application for this would be microwave hyperfine transitions 
accessed using single-sideband mixing with the Sayma outputs as the I and Q 
inputs to an external mixer.  Having 1 GSPS data rates would give us sufficient 
bandwidth to span the hyperfine manifold of 25Mg+ qubits at intermediate field 
(212 G); running at 600 GSPS (for example) would not allow this, as spanning 
all relevant hyperfine transitions for shelving requires ~700 MHz of bandwidth 
(350 MHz on each side of a carrier would work).  For this application, we would 
likely want to use 2x DAC interpolation to improve spectral purity and clean up 
undesired Nyquist images.  

Because of the way the internals of the DAC work, using the NCO in the DAC to 
shift signals to higher Nyquist bands forces the outputs to be paired as I/Q 
channels, so for direct synthesis of microwaves for 9Be+ or 25Mg+ qubits, one 
would have to discard half the output channels.  For this task we would 
probably perform updates of the internal NCO to shift frequencies coarsely, but 
data rates of 1 GSPS would allow 2x digital upconversion plus internal NCO 
shifting to higher Nyquist zones, at the cost of half the output channels, to 
enable direct output using mix-mode of signals up to 2 GHz, placing undesired 
images out of harm's way for 9Be+ at low field.  At intermediate field (119 G), 
relevant 9Be+ transitions are between 1 GHz and 1.4 GHz, so using 800 MSPS with 
2x digital upconversion and mix-mode would probably work better.   Using 600 
MSPS data rates with 4x upconversion would enable signals out to 2.4 GHz, which 
would be more suitable for 25Mg+ direct generation at 212 G (~1.3 GHz to ~2.1 
GHz).  


> With high sample rates, there are two ways to ease the FPGA resource burden:
> * use the DAC interpolation modes (2X, 4X, 8X) if the goal is simply 
> to improve spectral purity.

I think we definitely would like to see these implemented to improve spectral 
purity.  Implementation of the Nyquist band shifting with the DAC onboard NCO 
would be good but can happen later as long as 1 GSPS data rates are supported.  

> * drastically reduce the SAWG digital upconverter resolution to a few 
> frequencies (use the other NCOs to for fine tuning).

Referencing the Github comment that Tom referred to in his email: 
https://github.com/sinara-hw/sinara/issues/515#issuecomment-371481089

"Even up-conversion to n*k/m*f_RTIO (k=8=f_sample/f_RTIO here) with m=16 and n 
\in {0,...,m-1} could turn out to be as simple as m=8."

This kind of selection of available DUC frequencies on SAWG would be more than 
enough from my perspective.  For finer compensation you could just put the 
frequency shift in the sine waves generated at baseband, as pointed out by Tom. 
 

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ Digest, Vol 50, Issue 2

2018-07-13 Thread Slichter, Daniel H. (Fed) via ARTIQ
> On Wednesday, July 11, 2018 04:59 AM, Thomas Harty via ARTIQ wrote:
> > My view is that we shouldn't give up the flexibility of being able to
> > fine-tune the DUC frequency unless there is a good reason to do so.
> > For example: if the complexity/compile times of the current code make
> > development/maintenance problematic(*), or if the current code is
> > going to have issues achieving the full 1GSPS data rate. It would be
> > good to hear a bit more from SB/RJ on the advantages of moving to a
> > simpler DUC parametrization.
> 
> Right now we are producing 4 DAC samples per cycle (150MHz RTIO, 600MHz
> DAC). Moving to 1GSPS will need 8 samples per cycle (125MHz RTIO), i.e.
> requiring twice the FPGA resources plus adding interconnection paths between
> the parallel units. This can only exacerbate issues of compilation time, 
> routing
> congestion, and timing closure. The last two can probably be addressed but
> there is no free lunch - it'll take significant work. And the compilation time
> would always remain problematic.
> 
> Having the fixed DUC frequencies would simplify the sample generation logic
> and reduce the problems.

I think we will really need the 8x interleaving at the RTIO clock rate, because 
1 GSPS is pretty critical (600 MSPS is marginal or a non-starter for most of 
our use cases).  This to me seems much more important than maintaining some 
kind of more arbitrary flexibility for DUC.  I am a little unclear on others' 
use cases regarding DUC on the FPGA itself, but it seems to me that simply 
being able to shift the output by integer multiples of fs/8 (or fs/16, perhaps) 
should be more than satisfactory.  It would appear to me that any tuning with 
finer frequency resolution can/should be done with the baseband signals coming 
out of the 8 interleaved generation blocks.  Sebastien, are you saying that 
even this level of DUC presents substantial challenge?  

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] Sayma input frequency

2018-06-18 Thread Slichter, Daniel H. (Fed) via ARTIQ
It is certainly possible to get nice low-phase-noise sources at 150 MHz instead 
of 100 MHz, but these would need to be special ordered.  How much of a 
challenge is using 100 MHz?  Does the HMC830 not allow us leeway here?  

One temporary solution would be to use an HMC830 (or equivalent) eval board to 
generate 150 MHz from another reference frequency and feed that to the Sayma 
input connector.  However, over the longer term I think it would be good to 
have Sayma able to operate from a more standard reference frequency such as 100 
MHz.  

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Sébastien
> Bourdeauducq via ARTIQ
> Sent: Monday, June 18, 2018 7:29 AM
> To: artiq@lists.m-labs.hk
> Cc: Ken Brown ; Jungsang Kim
> 
> Subject: [ARTIQ] Sayma input frequency
> 
> Hi,
> 
> any objections to supporting only the RTIO clock frequency (currently
> 150MHz) at the Sayma input, instead of 100MHz?
> Are you using non-programmable 100MHz references?
> 
> Sébastien
> ___
> ARTIQ mailing list
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fssl.serverr
> aum.org%2Flists%2Flistinfo%2Fartiq&data=02%7C01%7Cdaniel.slichter%40nist.
> gov%7C05f9ee8fb8ec4fc6878308d5d51f7c2f%7C2ab5d82fd8fa4797a93e054655
> c61dec%7C1%7C0%7C636649253558496201&sdata=tfd6NTpKq73oYUwH3t7J9
> w%2FUOnfF0IhOAa8ksKkYzB8%3D&reserved=0
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] scans and generators on core device?

2017-10-19 Thread Slichter, Daniel H. (Fed) via ARTIQ
> Judging from the absence of replies to this email, we will not support
> generators on the core device nor MultiScanManager.

My main question with this is about time efficiency -- if you were to go to the 
effort to support this on the core device, will it end up taking a lot longer 
(i.e. processor slack) than the current way of just passing a list to the 
kernel which it can step through to scan something?  I'd say this feature would 
enable kernel code to be written a little more "Pythonically", but if that 
comes at a serious performance cost that's not what we want to do.  My personal 
feeling for our experiments is that code executing on the core device should be 
limited to fairly low-level stuff, and so lists etc are fine, especially if the 
computation of list values on the fly with generators is computationally 
slow/inefficient on the core device.  Similarly with the MultiScanManager, just 
having the scan unrolled and flattened to 1D at compile time is currently 
suitable for our purposes.  It may make sense to revisit these topics more in 
the future, as needs/applications change.

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] Example Ion Trap Code

2017-08-28 Thread Slichter, Daniel H. (Fed) via ARTIQ
> What about publishing Raghu's code? It seemed pretty clean from the quick
> look I had at it during NACTI.

For use as a general tutorial, the magtrap code that Raghu/NIST has written is 
too complex and contains too many behaviors/design features that are specific 
to our particular experiment.  It would require substantial work to retool it 
for use as a proper introduction for people who are new to ARTIQ, and this sort 
of work has lower priority than our scientific projects at the current time.  
This tutorial needs to stand on its own, without requiring the authors of the 
tutorial to be available to answer questions; if we just post existing code, 
there will be a million different questions about minor/irrelevant details (we 
have had this experience a great deal already when people have looked at our 
code), making it a huge time sink for us and not very useful to new users.   

The reason we suggested a collaboration with a new group starting up with ARTIQ 
is that they are best equipped to provide an accurate representation of the 
sorts of questions/confusions/pitfalls that typical new users might have, and 
so they will be able to comment their code and/or structure the tutorial to 
address these most efficiently.  We are willing to collaborate with such a 
group to provide some general guidance on how we have solved relevant problems, 
and offer advice on efficient code structure, which would provide a benefit for 
the group getting started with ARTIQ, and then for other new users as the 
tutorial takes shape.  

I suggest that any tutorial(s)/example code be hosted in a separate repository 
from ARTIQ itself.

> I could also publish some code or even a detailed tutorial to scan an unknown
> RGA (the quadrupole mass spectrometer thing) using programmable power
> supplies, RF generator, and ionpak as low-current ammeter (see:
> https://twitter.com/M_Labs_Ltd/status/889435735429754881). It won't get
> much more basic than that, a core device isn't even involved - but it shows
> what the master, controllers, and dashboard are about.

This would definitely be helpful to have as part of a tutorial, since many 
groups will want to know how to incorporate various sorts of existing hardware 
(especially USB/GPIB/serial-controlled hardware) into an ARTIQ setup.  However, 
I think it's also crucial to have core device code in the tutorial.

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ Digest, Vol 37, Issue 6

2017-06-29 Thread Slichter, Daniel H. (Fed) via ARTIQ
I second Tom's thoughts here -- I would go for the largest Artix-7 we can 
reasonably accommodate, just for flexibility.  Going with the -2 speed grade 
sounds like it makes a lot of sense.


Best,

Daniel


From: ARTIQ  on behalf of Thomas Harty via ARTIQ 

Sent: Thursday, June 29, 2017 4:16:32 AM
To: artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] ARTIQ Digest, Vol 37, Issue 6

Sébastien,

Given the relatively low cost of the Artix-7 FPGAs, my preference is generally 
to go as big and as fast as reasonably possible. I don't want to find that, for 
example, we can't fit a hard FPU/fancy servo on Kasli because we saved $50 on 
the FPGA. Also, since gateware development is usually much more expensive than 
hardware, I'd rather go for dumb/inefficient gateware on big FPGAs than have to 
optimise the gateware to fit on a smaller FPGA.

The fact that going for a 75T/100T gives us access to 12EEMs/Kasli (4 on the 
BP) rather than 10EEMs/Kasli (only 2 on the BP) for the 50T is an added benefit.

Having said all that, if you think the 50T in the -2 speed grade won't be a 
limitation then I'm happy to go along with your recommendation...

T


From: ARTIQ [artiq-boun...@lists.m-labs.hk] on behalf of 
artiq-requ...@lists.m-labs.hk [artiq-requ...@lists.m-labs.hk]
Sent: 29 June 2017 11:00
To: artiq@lists.m-labs.hk
Subject: ARTIQ Digest, Vol 37, Issue 6

Send ARTIQ mailing list submissions to
artiq@lists.m-labs.hk

To subscribe or unsubscribe via the World Wide Web, visit
https://ssl.serverraum.org/lists/listinfo/artiq
or, via email, send a message with subject or body 'help' to
artiq-requ...@lists.m-labs.hk

You can reach the person managing the list at
artiq-ow...@lists.m-labs.hk

When replying, please edit your Subject line so it is more specific
than "Re: Contents of ARTIQ digest..."


Today's Topics:

   1. Kasli FPGA selection (Sébastien Bourdeauducq)


--

Message: 1
Date: Thu, 29 Jun 2017 12:23:04 +0800
From: Sébastien Bourdeauducq 
To: Thomas Harty 
Cc: "artiq@lists.m-labs.hk" , Grzegorz
Kasprowicz 
Subject: [ARTIQ] Kasli FPGA selection
Message-ID: <25ce5ee0-1bbb-3b7c-851d-3e1bc9e29...@m-labs.hk>
Content-Type: text/plain; charset=utf-8; format=flowed

On Wednesday, June 28, 2017 04:52 PM, Thomas Harty wrote:
> Have we settled on the 50T as the FPGA for the first version of Kasli,
> and what speed grade?

I would advocate for the 50T in -2 speed grade for two main reasons:
a) I don't think we need that much FPGA resources for the 100T to be needed.
b) -2 speed grade transceivers go to 6.25Gbps whereas -1 speed grade
ones go to 3.75Gbps. In addition to a significant increase in bandwidth,
the -2 transceivers can use the same configuration on the Metlino/Sayma
side which is used for the backplane (5Gbps). Otherwise we would have to
generate another set of Ultrascale transceiver settings (and shave a
yak) and potentially deal with weird RTIO frequency ratios in a hybrid
MTCA/Eurocard Sinara system.

Sébastien


--

Subject: Digest Footer

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq

--

End of ARTIQ Digest, Vol 37, Issue 6

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] [RFC] remove RTIOCollision

2017-03-20 Thread Slichter, Daniel H. (Fed) via ARTIQ
> Why not do blind submission and do the replacement at the satellite side
> plus asynchronous error reporting like RTIOBusy?

As long as the satellite is able to handle things appropriately for the type of 
channel it is, I am OK with this.  If it's a TTL you should do replace (as is 
currently used and is convenient for zero-length pulses etc.), if it's not you 
throw an RTIOBusy error which is reported asynchronously.  

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ users meeting

2016-12-19 Thread Slichter, Daniel H. (Fed) via ARTIQ
We had some brief discussions on this subject at the NIST group meeting today, 
with responses inline below:

> * Venue? some ideas: NIST, JQI, DESY, Oxford, CERN, Warsaw University of
> Technology, Chinese University of Hong Kong.

We strongly prefer a location inside the US (much easier to arrange travel and 
bring a larger group).  It seems that JQI would be a good potential location 
because:
- relatively easy to get to DC area from Europe, Colorado, east coast -- close 
to "center of mass" for likely attendees (sorry Sebastien!)
- likely we would want to invite funding agencies to observe/participate, so 
holding meeting in the DC area makes their participation more likely
- ARL and JQI are two major funding/development drivers at present so it is a 
natural location

> * It would be convenient to have it before or after an existing physics
> conference (e.g. APS DAMOP 2017 is June 5-9 in Sacramento, CA)

This might increase attendance (although is relatively immaterial for 
Creotech/WUT + M-Labs), but I think people tend to be pretty wiped out after a 
major conference so I don't think it's necessarily a big plus.  One 
possibility, especially if we are interested in involving funding agents, would 
be to hold it immediately before/after an IARPA LogiQ Technical Exchange 
meeting, for example.  This would probably gather more of the relevant players 
than DAMOP as well.  It would also make travel to/from the conference more 
cost-effective for ARTIQ users which are LogiQ performers/support teams (e.g. 
NIST, JQI, Duke, Georgia Tech, etc).  

> * What would you like to see at such a conference?

I can identify several areas in which such a conference could be useful, which 
I list roughly in order of priority:
- discussing and refining plans for future ARTIQ development -- along the lines 
of the discussions at the quarterly site visits during the past NIST contracts
- tutorials/workshops (ideally also webcast/recorded) -- to help give 
structural and practical information and introduction to main features of 
ARTIQ, including new features such as DRTIO
- securing additional funding -- demonstrating to funding agents that the ARTIQ 
user community is broad-based and that ARTIQ enables important work could 
unlock additional funding for developing next-generation capabilities
- building user community -- bringing new users onboard, creating links and 
collaborations between groups, finding areas of interest for joint funding of 
specific developments, etc.
- sharing results -- reports on experiments/techniques performed with ARTIQ 
(especially if ARTIQ is an enabling technology)

> * Would you present something?

Depending on the structure and goals of the conference, the NIST group would 
likely be interested in presenting as appropriate.  

> * Would you attend a conference if it were on your continent? Another
> continent?

NIST in-person attendance would probably be very continent-dependent, with a 
strong preference for North America.  The cost and red tape for international 
travel would make it prohibitive to bring a sizeable NIST contingent to a 
non-US location.  

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] test

2016-12-01 Thread Slichter, Daniel H. (Fed) via ARTIQ
This is a test sent from a NIST email address.

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Sébastien
> Bourdeauducq via ARTIQ
> Sent: Wednesday, November 30, 2016 10:24 PM
> To: artiq@lists.m-labs.hk
> Subject: [ARTIQ] test
> 
> Testing new Mailman options that hopefully will stop triggerring the
> NIST/Microsoft email spoofing detector. Can someome from NIST reply to
> this message and confirm that they don't get "This sender failed our fraud
> detection checks" messages anymore?
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] [RFC] remove output event replacement feature

2016-11-23 Thread Slichter, Daniel H. (Fed)
> > As Daniel mentioned, for Ramsey experiments when you're scanning the
> > delay, when the delay is 0 you'd have two back to back pi/2 pulses.
> > How would that need to be coded differently? Explicitly,
> >
> > ttl.pulse(t_pi/2)
> > delay(t)
> > ttl.pulse(t_pi/2)
> >
> > and we scan t from 0 onwards.
> 
> ttl.on()
> delay(t_pi/2)
> ttl.pulse_off(t)
> delay(t_pi/2)
> ttl.off()
> 
> would be a natural extension of the API.

If we're going to talk about "unaesthetic" code, I'd say this version is much 
worse than the three-line original code.  From a logical standpoint, a Ramsey 
sequence consists of two rotations with a variable delay between them.  While 
this 5-line code manages to create the desired sequence, it loses the logical 
flow that one has from reading code like the 3-line version -- much harder to 
tell from inspection that this is a Ramsey sequence.

Is there another way to maintain or wrap the two back-to-back pulses so that 
you can accomplish your goals for DRTIO/DMA while not hurting the lexical 
clarity of the code on the physics level?

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] [RFC] remove output event replacement feature

2016-11-23 Thread Slichter, Daniel H. (Fed)
We definitely use zero-length pulses as a regular part of our experiments.  The 
most prominent example is scanning a pulse duration time (e.g. for Rabi 
flopping, or delay between Ramsey pulses), where the first item in the list of 
pulse durations to scan is a zero duration pulse (i.e. no Rabi flopping, or no 
delay between Ramsey pulses).  The proposed modification would break all of 
these experiments, and require the experiment code to have internal 
conditional/branching to check for zero-duration pulses everywhere that we're 
scanning pulse times and have a different branch to deal with these instances.  

The behavior of automatically collapsing zero-duration pulses simplifies the 
experimental code substantially.  One potentially acceptable compromise might 
be to delegate the task of finding and eliminating zero-duration pulses to the 
compiler.  This could then address the situation above (where zero-duration 
pulses are known at compile time), but would leave people to fend for 
themselves if pulse durations are calculated at runtime (or are otherwise 
unknowable at compile time).  Peter should probably comment on the feasibility 
of such a scheme, and in any event I am not sure that everyone would be 
satisfied with that.

What is the DRTIO/DMA requirement that makes this functionality problematic?  
Can you explain the rationale a bit?  

Best,
Daniel

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Robert
> Jördens
> Sent: Wednesday, November 23, 2016 10:20 AM
> To: artiq@lists.m-labs.hk
> Subject: [ARTIQ] [RFC] remove output event replacement feature
> 
> Hello ARTIQ users,
> 
> in preparation for DRTIO and DMA we are considering dropping a small
> feature that -- while being potentially "convenient" to the user -- leads to
> overhead and is unergonomic/unaesthetic.
> 
> Currently, we support submitting multiple output events scheduled for the
> same timestamp under certain conditions. That means you can turn a TTL
> channel on() and off() in the same cycle. The prior on() is be replaced by the
> off(). This happens transparently in gateware. It allows e.g. zero-length
> pulses or back-to-back pulses to behave properly. They would otherwise
> result in RTIOCollision exceptions.
> 
> We are uncertain to what extent this feature is actually know and
> used/relied upon in practice.
> 
> Any comments on removing this feature and making it *always* an
> RTIOCollision exception when two events are scheduled for the same
> timestamp on the same channel?
> 
> --
> Robert Jördens.
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] shared SPI clock

2016-10-28 Thread Slichter, Daniel H. (Fed)
Are there no chip select lines on these DDS chips?  If there are, use them.  If 
there are not, use a mux/demux chip instead of trying to hack up something 
atrocious in the gateware.

From: Jonathan Mizrahi [mailto:jmizr...@umd.edu]
Sent: Friday, October 28, 2016 9:30 AM
To: Slichter, Daniel H. (Fed) 
Cc: Sébastien Bourdeauducq ; artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] shared SPI clock

Yes, I know how SPI and chip select lines work. The fact remains that I have 
sitting in front of me a board with two chips on it, which have separate data 
lines and a common clock line. This was done because the board designer wanted 
to preserve the ability to write to both chips at the same time. He used a 
common clock line because he wanted to save a pin, and the SPI clock is on all 
the time and has the same frequency so why not. My point was that I was willing 
to give up the ability to do simultaneous writes if it meant that I could 
easily control both channels via ARTIQ. I could, I suppose, just short the two 
data lines and use SPI "correctly." I would prefer, though, a software 
solution, as I really don't want to modify my hardware.

Jonathan Mizrahi
Research Scientist
Joint Quantum Institute
University of Maryland
301-314-1903

On Fri, Oct 28, 2016 at 11:10 AM, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
I have a two channel DDS board in which the DDSs have separate signal lines but 
a common clock line. I am OK with only talking to one of them at a time. What 
is the easiest way to implement the mux/demux you suggest? When I declare the 
SPI bus I need the mosi/miso subsignals to not be specific pins, but rather be 
determined by a mux internal to the FPGA. How do I do that?

This is the purpose of the chip select line(s).  Most chips that have SPI 
communications have a chip select line (sometimes named something different) 
that controls whether they listen to or ignore data on the MOSI, and whether 
they write to MISO.  The ARTIQ SPI system allows you specify any number of chip 
select lines along with an SPI bus at bitstream compile time.  You can also 
just use regular RTIO channels to do chip select manually if you prefer.  So 
your SPI bus on ARTIQ has one clock, one MISO, one MOSI, and multiple chip 
select lines.  You route the same CLK/MOSI/MISO to all of your DDS chips, and 
then each chip gets its own chip select line.

If the chips don’t have actual chip select lines on them, you can use an analog 
switch or mux/demux chip.  There are essentially infinite options for how to do 
this; check out 
http://www.ti.com/lsds/ti/analog/switches-multiplexers/overview.page for 
example to see a bunch of options.


___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] Fwd: shared SPI clock

2016-10-28 Thread Slichter, Daniel H. (Fed)
> > OK, thanks for confirming.
> > I have a two channel DDS board in which the DDSs have separate signal
> > lines but a common clock line. I am OK with only talking to one of them at a
> time.
> > What is the easiest way to implement the mux/demux you suggest? When
> I
> > declare the SPI bus I need the mosi/miso subsignals to not be specific
> > pins, but rather be determined by a mux internal to the FPGA. How do I do
> that?
> 
> A few things:
> * This is a bad idea. SPI is not designed to work like that. You either share
> clk/miso/mosi and address by cs_n or you have separate busses.
> * You can have clk driven by only one SPI channel and run dummy commands
> on that channel (without asserting cs_n) whenever you want to do
> something on the other channels.
> * You can mux clk using cs_n. To learn how to do that you'll need to learn
> migen/misoc. It would look something like self.comb +=
> clk.eq(Mux(spi0.cs_n, spi1.clk, spi0.clk)) but it depends on a bunch of other
> things as well and there is absolutely no safety net or access control.

100% agree.  See my email as well; mux/demux should be done external to the 
FPGA, not internally.
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] shared SPI clock

2016-10-28 Thread Slichter, Daniel H. (Fed)
I have a two channel DDS board in which the DDSs have separate signal lines but 
a common clock line. I am OK with only talking to one of them at a time. What 
is the easiest way to implement the mux/demux you suggest? When I declare the 
SPI bus I need the mosi/miso subsignals to not be specific pins, but rather be 
determined by a mux internal to the FPGA. How do I do that?

This is the purpose of the chip select line(s).  Most chips that have SPI 
communications have a chip select line (sometimes named something different) 
that controls whether they listen to or ignore data on the MOSI, and whether 
they write to MISO.  The ARTIQ SPI system allows you specify any number of chip 
select lines along with an SPI bus at bitstream compile time.  You can also 
just use regular RTIO channels to do chip select manually if you prefer.  So 
your SPI bus on ARTIQ has one clock, one MISO, one MOSI, and multiple chip 
select lines.  You route the same CLK/MOSI/MISO to all of your DDS chips, and 
then each chip gets its own chip select line.

If the chips don’t have actual chip select lines on them, you can use an analog 
switch or mux/demux chip.  There are essentially infinite options for how to do 
this; check out 
http://www.ti.com/lsds/ti/analog/switches-multiplexers/overview.page for 
example to see a bunch of options.

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] Sinara clocking

2016-10-06 Thread Slichter, Daniel H. (Fed)
A few questions/comments inline below:

> The crate distributes a 100MHz clock on a RTM RF backplane. This clock is
> typically externally supplied from a high quality source, but it is desirable 
> to
> include a 100MHz oscillator on the clock module for turnkey/standalone
> operation (with limited timing performance).

Is the distributed clock on the RTM RF backplane a sine wave or a differential 
square wave?  If the latter (better phase noise performance), will there be a 
chip (e.g. LTC6957) on the RTM RF backplane to perform sine-to-LVDS or 
sine-to-LVPECL conversion?  It seems that it would be easiest to distribute 100 
MHz to the crate(s) as a relatively high power sine wave over coax, but better 
for phase noise performance if the distributed clock on the RTM RF backplane 
has the fastest possible edges (thus differential square wave).  LVPECL would 
be better for this than LVDS.  


> RTIO clock frequency flexibility
> 
> 
> The FPGA's built-in transceiver PLLs are not very flexible, so if easy 
> changing
> of the RTIO clock frequency is desired, we should consider replacing the XOs
> with PLL synthesizer chips.

Given the constraints that the DAC and ADC clocks be related in an integer way 
to the RTIO clock (for the purposes of the CORDIC/interpolator system, for 
example), some tuning range for the RTIO clock is necessary if we are planning 
to have tunability for the DAC/ADC clocks generated by the RTM clock 
daughterboards.
 

Best,
Daniel

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ implementation

2016-10-05 Thread Slichter, Daniel H. (Fed)
For the Pipistrello and QC1 gateware (from the logs Sebastien sent):

Device utilization summary:
---

Selected Device : 6slx45csg324-3


Slice Logic Utilization:
 Number of Slice Registers:   12049  out of  5457622%
 Number of Slice LUTs:16853  out of  2728861%
Number used as Logic: 15670  out of  2728857%
Number used as Memory: 1183  out of   640818%
   Number used as RAM: 1178
   Number used as SRL:5

Slice Logic Distribution:
 Number of LUT Flip Flop pairs used:  23803
   Number with an unused Flip Flop:   11754  out of  2380349%
   Number with an unused LUT:  6950  out of  2380329%
   Number of fully used LUT-FF pairs:  5099  out of  2380321%
   Number of unique control sets:   270

IO Utilization:
 Number of IOs: 113
 Number of bonded IOBs: 107  out of21849%

Specific Feature Utilization:
 Number of Block RAM/FIFO:   83  out of11671%
Number using Block RAM only: 83
 Number of BUFG/BUFGCTRLs:5  out of 1631%
 Number of DSP48A1s:  6  out of 5810%
 Number of PLL_ADVs:  2  out of  450%



Or with some more detail:

==
Design Summary:
Number of errors:  0
Number of warnings:2
Slice Logic Utilization:
  Number of Slice Registers:12,047 out of  54,576   22%
Number used as Flip Flops:  12,043
Number used as Latches:  0
Number used as Latch-thrus:  0
Number used as AND/OR logics:4
  Number of Slice LUTs: 14,611 out of  27,288   53%
Number used as logic:   12,806 out of  27,288   46%
  Number using O6 output only:   9,057
  Number using O5 output only: 472
  Number using O5 and O6:3,277
  Number used as ROM:0
Number used as Memory: 611 out of   6,4089%
  Number used as Dual Port RAM:606
Number using O6 output only:26
Number using O5 output only: 8
Number using O5 and O6:572
  Number used as Single Port RAM:0
  Number used as Shift Register: 5
Number using O6 output only: 5
Number using O5 output only: 0
Number using O5 and O6:  0
Number used exclusively as route-thrus:  1,194
  Number with same-slice register load:  1,148
  Number with same-slice carry load:46
  Number with other load:0

Slice Logic Distribution:
  Number of occupied Slices: 5,180 out of   6,822   75%
  Number of MUXCYs used: 4,380 out of  13,644   32%
  Number of LUT Flip Flop pairs used:   17,555
Number with an unused Flip Flop: 7,205 out of  17,555   41%
Number with an unused LUT:   2,944 out of  17,555   16%
Number of fully used LUT-FF pairs:   7,406 out of  17,555   42%
Number of unique control sets: 281
Number of slice register sites lost
  to control set restrictions: 606 out of  54,5761%

  A LUT Flip Flop pair for this architecture represents one LUT paired with
  one Flip Flop within a slice.  A control set is a unique combination of
  clock, reset, set, and enable signals for a registered element.
  The Slice Logic Distribution report is not meaningful if the design is
  over-mapped for a non-slice resource or if Placement fails.

IO Utilization:
  Number of bonded IOBs:   113 out of 218   51%
Number of LOCed IOBs:  113 out of 113  100%
IOB Flip Flops:  6

Specific Feature Utilization:
  Number of RAMB16BWERs:51 out of 116   43%
  Number of RAMB8BWERs: 63 out of 232   27%
  Number of BUFIO2/BUFIO2_2CLKs: 1 out of  323%
Number used as BUFIO2s:  1
Number used as BUFIO2_2CLKs: 0
  Number of BUFIO2FB/BUFIO2FB_2CLKs: 0 out of  320%
  Number of BUFG/BUFGMUXs:   5 out of  16   31%
Number used as BUFGs:4
Number used as BUFGMUX:  1
  Number of DCM/DCM_CLKGENs: 1 out of   8   12%
Number used as DCMs: 0
Number used as DCM_CLKGENs:  1
  Number of ILOGIC2/ISERDES2s:  18 out of 3764%
Number used as ILOGIC2s: 0
Number used as ISERDES2s:   18
  Number of IODELAY2/IODRP2/IODRP2_MCBs: 0 out of 

Re: [ARTIQ] 3.3 V I/O on kc705

2016-09-19 Thread Slichter, Daniel H. (Fed)
To expand, the VADJ rail supplies the output stages for the KC705 I/O banks 
connected to the FMC connectors, so if you want to drive things using LVCMOS or 
LVTTL 3.3V logic, you will have to program the VADJ rail to supply the 
necessary voltage.  It’s very straightforward; instructions are on the ARTIQ 
manual site below.

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Robert
> Jördens
> Sent: Monday, September 19, 2016 4:57 PM
> To: Jonathan Mizrahi 
> Cc: artiq@lists.m-labs.hk
> Subject: Re: [ARTIQ] 3.3 V I/O on kc705
> 
> On Mon, Sep 19, 2016 at 9:36 PM, Jonathan Mizrahi 
> wrote:
> > see LVTTL IOStandards, which means they're already operating at 3.3 V.
> > This is why I'm confused about what I need to do to work at 3.3 V off
> > the FMC connector.
> 
> https://m-labs.hk/artiq/manual-release-2/core_device.html#vadj
> 
> --
> Robert Jördens.
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] DSP gateware

2016-08-05 Thread Slichter, Daniel H. (Fed)
Hi Robert,

This is very nice work, thanks for the detailed write-up.  It seems that this 
gateware design would cover just about any use case for high-bandwidth two-tone 
designs.  To Dave L's question, there are already interpolation filters with 
sharp cutoffs in the AD9154 to eliminate Nyquist images if desired; I have done 
some measurements on the AD9154 hardware and they work quite well, up to what 
the datasheet says (~85 dB image rejection in the stopband, which would take us 
effectively to the noise floor of the outputs generated by the gateware Robert 
demonstrates).  TI gives the filter coefficients for their FIR filters in the 
datasheets; you might be able to email Analog Devices and ask them for the 
filter coefficients for the AD9154, and this would allow you to evaluate the 
phase and amplitude response vs your needs.

It does highlight the need for the DAC clock to be programmable over a wide 
range, from ~800 MHz up to 2.4 GHz (this is most important for Greg and Tom to 
be thinking about).  If we are feeding the DAC with samples at the max rate of 
1.096 GHz, for any signal above ~500 MHz (depending on what spur performance 
you demand) you can't use the interpolation modes unless you are willing to 
sacrifice half your channels and use the IQ modulator for digital upconversion. 
 However, operating the DAC in "mix mode" with no interpolation at 1.096 GHz 
DAC clock (and 1.096 GHz data clock) would allow the generation of tones of 
reasonable amplitude between ~600 MHz and ~1.5 GHz, provided one uses analog 
filters on the output of the DACs to eliminate the undesired Nyquist images.  
For signals higher than ~1.5 GHz (basically for hyperfine qubit microwave drive 
for species other than 9Be+), we can either use analog frequency multipliers 
after the reconstruction filters, or sacrifice half of the output channels.  
Using only half of the output channels, we can use the internal IQ modulation 
for coarse frequency shifting (allowing for output signals up to ~3.5 GHz) or 
use them to generate IQ pairs for an analog IQ modulator on the DAC analog 
daughtercard.  

Best,
Daniel

> -Original Message-
> From: Robert Jördens [mailto:r...@m-labs.hk]
> Sent: Sunday, July 31, 2016 5:32 AM
> To: artiq@lists.m-labs.hk; Jonathan Mizrahi ; Sébastien
> Bourdeauducq ; Joe Britton ;
> Slichter, Daniel H. (Fed) ; Leibrandt, David R. 
> (Fed)
> ; Allcock, David T. (IntlAssoc)
> ; Ken Brown 
> Subject: Re: DSP gateware
> 
> Hello,
> 
> to fuel the discussion and planning of the smart arbitrary waveform
> generator requirements for the different applications, I did another
> extended design study for the proposed ARTIQ/Sayma DSP gateware and
> signal flow, looking at actual signal quality, resource usage and possible
> parametrizations.
> 
> This time, take the following parametrization of a channel's output o:
> 
> z = (a1*exp(i*(f1*t+p1)) + a2*exp(i*(f2*t+p2))) * exp(i*(f0*t+p0)) o = u +
> b*Re(z) + c*Im(z_buddy)
> 
> * u and a are 16 bit cubic spline inteprolators
> * p are 16 bit constant (non-) interpolators
> * f are 48 bit linear interpolators
> * z_buddy refers to the (complex, IQ) z data coming from each channel's
> "buddy" channel, ignore it for now
> * b, c are switches (with values 0 or 1) that allow a bunch of different
> configurations, ignore them for now
> * all spline interpolators (u, a, f, p) sample at 200 MHz
> * the f1/p1 and f2/p2 oscillators sample at 200 MHz and their data is fed to
> the f0/p0 oscillator without interpolation
> * the f0/p0 oscillator samples at 8*200 MHz = 1.6 GHz
> * data width is at least 16 bit everywhere
> 
> This setup can -- for example -- generate a two-tone signal at 162 MHz and
> 238 MHz by setting f0=157 MHz, f1=5 MHz, f2=81 MHz. The attached plot has
> the data and the spectrum from a bit-accurate simulation of the full FPGA
> gateware. Units are "natural" (sample rate=1, full
> scale=1): the relevant tones are close to 0.1 and 0.15 sample rate.
> Output amplitude is below clipping.
> 
> This is a bit-accurate representation of the data that would be sent to the
> DAC. Actual analog output would only differ by the DAC's interpolation and
> it's analog output transfer function and DAC noise.
> Don't be confused by the way the samples look: this is only due to the un-
> interpolated data from the f1/f2 oscillators. Same goes for the Nyquist
> images all around. A very rough and conservative estimate for wideband SNR
> is > 85 dB not counting the images. There are a lot of things that can be
> tweaked still, this demo is not supposed to be show the optimum.
> 
> * 200 MHz is a bit under maximum achievable speed for this logic on a
> -2 speed grade kintex 7.
> * 1.6 GHz * 4 channels is more than we can push to a DA

Re: [ARTIQ] proposed DAC gateware

2016-07-28 Thread Slichter, Daniel H. (Fed)
Two comments and a clarification:

- DAC is AD9154, not AD9145
- at the bottom of page 2, it specifies f_max = 300 MHz, but I assume this is 
not correct?  What I think should be happening is a 48-bit phase accumulator 
with frequency tuning word specified by f (which is a linear interpolator, 
allowing for frequency chirps) and the constant offset p, the value of which is 
then run into CORDIC (or equivalent) to calculate sine or cosine.  Is this 
right?
- a clarification: is it correct that u, a, and f are constant between updates 
at f_DAC/16?  i.e., they maintain their values for 16 time points, then their 
values update to the next calculated value from the interpolator?  In other 
words, the interpolators generate new values for u, a, f only every 16 time 
points?  

Best,
Daniel

> -Original Message-
> From: j arl [mailto:joe.britton@gmail.com]
> Sent: Thursday, July 28, 2016 3:14 PM
> To: artiq@lists.m-labs.hk; Sébastien Bourdeauducq
> ; Robert Jördens ;
> Slichter, Daniel H. (Fed) ; jase...@gmail.com;
> camaca...@gmail.com
> Subject: proposed DAC gateware
> 
> Dear prospective Sayma users, please comment on the attached gateware
> and ARTIQ-integration specification. It is intended to be stand-alone and
> make minimal reference to the microTCA hardware. The aim is to provide
> isolation of the gateware development from broader Sayma/Metlino
> system. Detailed specification of the other components are forthcoming.
> 
> Many thanks to long conversations with Robert Jordens and Sebastien
> Bourdeauducq (m-labs), Jonathan Mizrahi (JQI) and Daniel Slichter (NIST
> Boulder). Huge props to developers of the NIST PDQ system Ryan Bowler (U.
> Washington) and Jason Heidecker. And to Robert Jordens
> (m-labs.hk) who developed its successor PDQ2.
> 
> -Joe
> 
> ---
> Joe Britton
> Sensors and Electron Devices
> Army Research Lab
> 2800 Powder Mill Rd
> Adelphi, MD 20783
> 301-394-3130
> joseph.w.britton5@mail.mil
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] clock recovery on Metlino and Kasli

2016-06-30 Thread Slichter, Daniel H. (Fed)
> Since we are not going to use White Rabbit, I propose removing them. 

Do we have an alternate time/synchronization protocol planned for DRTIO?  Does 
it make sense to leave WR components as a fallback for risk mitigation, in case 
we change our minds subsequently?  

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] uTCA backplane driver choices

2016-06-24 Thread Slichter, Daniel H. (Fed)
> On Thursday, June 23, 2016 11:09 PM, Slichter, Daniel H. (Fed) wrote:
> > One question raised by David Allcock is whether the Sayma cards can be
> > run standalone (e.g. in a smaller crate on table with no Metlino).
> > It would definitely be useful for the Sayma cards to have the
> > necessary connectivity (e.g. SFP cage) to allow for this option.
> 
> That's a sensible option too; the advantages compared to SPI are higher
> bandwidth, possibility of synchronization over the fiber, and galvanic
> isolation.
> 
> [Joe: Note that those SFPs are connected to FPGA transceivers directly and
> do not involve a Ethernet PHY chip on the Sayma PCB]

Ethernet per se is not a requirement -- just being able to interface with the 
card when it is not in a rack (over fiber from a core device is OK), and to 
have the possibility for synchronization over fiber (so the Sayma card can 
output pulses at the correct time) would be sufficient.
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] uTCA backplane driver choices

2016-06-23 Thread Slichter, Daniel H. (Fed)
One question raised by David Allcock is whether the Sayma cards can be run 
standalone (e.g. in a smaller crate on table with no Metlino).  It would 
definitely be useful for the Sayma cards to have the necessary connectivity 
(e.g. SFP cage) to allow for this option.  I understand that the connectivity 
would necessarily be slower than if you are plugged in to a backplane, but 
running it standalone as a DRTIO peripheral would be a very compelling use case 
for us.  

For example, the Magtrap experiment would probably want to have 1-2 cards down 
on the table directly, as close to the trap as possible (for best stability).  
A single Sayma card could replace the full DDS+PDQ+IQ modulator setup we have 
built, at a greatly reduced footprint.  

Best,
Daniel

> -Original Message-
> From: Sébastien Bourdeauducq [mailto:s...@m-labs.hk]
> Sent: Wednesday, June 22, 2016 10:28 PM
> To: j arl ; artiq@lists.m-labs.hk; Greg Kasprowicz
> ; Slichter, Daniel H. (Fed) 
> Subject: Re: [ARTIQ] uTCA backplane driver choices
> 
> On Wednesday, June 22, 2016 04:47 AM, j arl wrote:
> > Use standard RGMII to SERDES chip for Port 0 and Port 1 which works
> > with open source Ethernet MAC. For example Micrel KSZ9021.
> 
> Ethernet is not required on the Sayma cards. It would add a relatively small
> amount of cruft, except that you now need additional backplane traces and a
> hub, which are all useless and redundant.
> 
> If one does need Ethernet networking on the AMC cards (but I can't see
> why), we have a plan to dedicate some bandwidth to non-realtime traffic on
> the DRTIO links (for e.g. the monitoring/injection features), and Ethernet
> could be piped through that.
> 
> Otherwise, the trajectory of the hardware generally looks great!
> 
> Sébastien
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] uTCA backplane driver choices

2016-06-21 Thread Slichter, Daniel H. (Fed)
I tend to go with Greg here; I think the edges on LVDS are just not as sharp as 
you would like for clock distribution, and for the GTX transceiver you will 
want whatever is most compatible (I don't have experience here).  CML or LVPECL 
would be the way to go for the others.  

> -Original Message-
> From: j arl [mailto:joe.britton@gmail.com]
> Sent: Tuesday, June 21, 2016 2:48 PM
> To: artiq@lists.m-labs.hk; Greg Kasprowicz ; Slichter,
> Daniel H. (Fed) 
> Subject: uTCA backplane driver choices
> 
> What differential logic is best for for the uTCA backplane? This impacts the
> Ports that connect the MCH to AMC boards. The relevant uTCA Ports are the
> following.
> 
> Port 0 and Port 1 for Gbit Ethernet
> Port 4 for 10.3125 Gb/s GTX transceiver
> Ports 5-7 for general purpose I/O
> TCLKA, TCLKB and TCLKC for 125 MHz, 5 MHz and 100 MHz clocks
> 
> Options seem to be LVPECL, HCSL, CML, and LVDS. The following EETimes
> discusses the choices.
> 
> http://www.eetimes.com/document.asp?doc_id=1225744
> 
> Use standard RGMII to SERDES chip for Port 0 and Port 1 which works with
> open source Ethernet MAC. For example Micrel KSZ9021.
> 
> HCSL or CML are the only options for >> 1 Gb/s transceivers. GTX supports up
> to 10.3125 Gb/s. Greg K. recommends HCSL.
> 
> For clocks < 1 GHz Greg K. recommends using LVPECL. It is widely used for
> this application as it is lower jitter (sharper edges) than other logic 
> families.
> 
> For Ports 5-7 connect directly to FPGA pins.
> 
> -Joe
> 
> ---
> Joe Britton
> Sensors and Electron Devices
> Army Research Lab
> 2800 Powder Mill Rd
> Adelphi, MD 20783
> 301-394-3130
> joseph.w.britton5@mail.mil
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] Question about AD9XXX

2016-06-21 Thread Slichter, Daniel H. (Fed)
Hi Ken,

The architecture for the AD9858 and AD9914 currently in ARTIQ is for 
programming DDS chips over a wide parallel bus, but the AD9959 is only 
programmable over a serial link (albeit a parallelizable one).  I think the 
fastest solution for you would be to just use an instance of the existing ARTIQ 
SPI core and write a driver based on that.  This will allow you to program the 
DDS with an SPI clock frequency up to half the frequency of your RTIO clock 
(62.5 Mbps for a 125 MHz RTIO clock).  You can use ARTIQ TTLInOut() lines to 
control the profile pins, send IO_UPDATE signals, etc.  

There is an SPI driver for the AD5360 DAC chip located in 
artiq/coredevice/ad5360.py, which is a good template.  The SPI core is in 
artiq/coredevice/spi.py, and the docstrings are very detailed and the code is 
straightforward.  I also suggest reading the docstrings in 
artiq/gateware/spi.py .  

If you look in artiq/gateware/nist_qc2.py or artiq/gateware/nist_clock.py, as 
well as artiq/gateware/targets/kc705.py , you can see how to instantiate an spi 
core in the Migen code such that it gets built in to your gateware.

I am currently writing an SPI driver for the AD9914 DDS, which can be used to 
program an AD9914 eval board over SPI.  Once it is complete I will post it on 
Github as well, since this may help others get going using DDS chips with 
ARTIQ.  

Best,
Daniel

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Ken Brown
> Sent: Tuesday, June 21, 2016 9:34 AM
> To: artiq@lists.m-labs.hk
> Subject: [ARTIQ] Question about AD9XXX
> 
> As a test, I would like to build gateware to support one channel of an AD9959.
> 
> I am using the pippistrello board and I see where to change the connections
> from an AD9858 to an AD9959. I see also where to change the number of
> pads, define the connection, etc.
> 
> What I have not found is where the address control is. For example, if I send
> a phase word versus a frequency word, I need to put these in different
> addresses.
> I am currently overlooking the command that sets this address.
> 
> Any pointers in the right direction would be appreciated.
> 
> Thanks,
> Ken
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] connecting to KC705

2016-05-27 Thread Slichter, Daniel H. (Fed)
Hi Jonathan,

Depending on which gateware you are using (nist_qc1, nist_qc2, nist_clock), the 
pins are in the corresponding file in the folder:

https://github.com/m-labs/artiq/tree/master/artiq/gateware

They are either labeled explicitly, or in the case of qc2, are listed in order 
in the list ttl_pins[].  All of these give you the FMC signal names.  If those 
names are not available silkscreened on your breakout, you can relate them to 
the pin numbers on the FMC connector by looking in the appendix of the KC705 
datasheet.

Best,
Daniel

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Jonathan
> Mizrahi
> Sent: Friday, May 27, 2016 2:53 PM
> To: Robert Jördens 
> Cc: artiq@lists.m-labs.hk
> Subject: Re: [ARTIQ] connecting to KC705
> 
> Robert,
> 
> Thanks for the recommendations, I solved the problem. It turned out that
> the problem was that I needed to have SW13 set to 1. It had been set to
> 00101. In that configuration, I could not connect to the board over ethernet
> or serial. As a side point, I had it set to 00101 based on this information 
> from
> Xilinx: http://www.xilinx.com/support/answers/50079.html, after originally
> being unable to connect to the board over JTAG at all.
> 
> I would like to be able to connect pins of the KC705 to a scope so that I can
> write and test programs. I have an FMC debug card from Xilinx (HW-FMC-
> XM105-G), but I need to know how to map a TTL from the device database to
> a physical FPGA pin. How do I do that (and how do I see the current
> mapping)? I see the RTIO channel mappings in the manual, but that doesn't
> tell me what the physical pin is.
> 
> Thanks,
> Jonathan
> 
> From: Robert Jördens [r...@m-labs.hk]
> Sent: Wednesday, May 25, 2016 4:48 PM
> To: Jonathan Mizrahi
> Cc: artiq@lists.m-labs.hk
> Subject: Re: [ARTIQ] connecting to KC705
> 
> Hey Jonathan,
> 
> On Wed, May 25, 2016 at 10:34 PM, Jonathan Mizrahi 
> wrote:
> > I get "socket.timeout: timed out" (together with a long traceback). What
> am I doing wrong?
> 
> A couple things you can check:
> 
> Are you supplying _that_ device_db.pyon to artiq_run?
> Does it blink its LED three times after booting?
> Does it respond to pings (at that IP address)?
> If you connect the serial console (next to the jtag-over-usb
> connector) and look at it during boot (using flterm, minicom, miniterm.py,
> hyperterm... settings are 115200 baud, 8 bits, no parity,
> 1 stop bit) what does it say?
> 
> --
> Robert Jördens.
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-04-12 Thread Slichter, Daniel H. (Fed)
Hi Tom,
Responses inline below!  Agreed that we are pretty much on the same page 
regarding our end goals, and I am flexible in how they are achieved (backplane 
clocks would be great!) as long as we aren't sacrificing performance in a 
substantial way.
Cheers,
Daniel

It looks like we agree that backplane clock distribution is the best way to go, 
so long as we can overcome the phase noise/drift concerns that we've discussed 
-- which isn't a given. We've probably taken this discussion about as far as we 
can without having test data to see how well we can get the backplane clock to 
work practice. We (Oxford) are happy to have a go at getting this data and, as 
I mentioned, are currently designing hardware to that end.  Once we've got 
designs ready for the test hardware, we'll post them here along with a rough 
description of the tests we plan to perform.

Great, I look forward to the results of your measurements.

If you have a couple of test boards up and running, would it be easy to take 
some data on the propagation delay stability of these DACs at the same time? 
This would be a really useful reference point for thinking about how stable the 
clock distribution network needs to be -- there isn't much point worrying about 
the temp. co. of clock buffers/PLLs if they are small compared with the DAC...

I have one test board right now, but can measure the channel-to-channel noise 
within a single card pretty easily.  If we get another board we can compare two 
chips to each other as well.  I'll share the data once I have it, lots of items 
on the plate though so it may not be instant.


Out of curiosity, what is the plan for thermal management (e.g. the DACs put 
out a fair amount of heat)? Is this something you've thought about much yet?

The plan here is forced air cooling at crate level, which is part of the uTCA 
crate design.

We are only trying to send a relatively small volume of data, and have the 
option of using a multi GBPS link. This gives us a lot of options in terms of 
spreading the noise power out/minimising the power at our reference frequency. 
If we do this properly, the numbers actually don't look so bad and I think we 
may be able to get the cross-talk noise below the DAC's noise floor. We'll have 
a proper think about this once we've got our test hardware designed...

It's not clear to me that we will only be sending a relatively small volume of 
data.  We may want to send waveform data to and from DACs, or potentially 
stream raw or minimally processed ADC data out to the MCH.  I think it is a 
mistake to rely on the notion that we will only be sending small amounts of 
data.  Likewise, with Greg's proposed solution of silencing the high speed 
digital transmissions during experiments, I think we may need to pipeline 
things such that data is being fed in and/or out of the cards while an 
experiment is running.  Any design which doesn't allow for this seems like a 
bad idea to me.


I'm not so sure about that... It's been my experience that if one wants a 
source that can be programmed to go from 100kHz to 20GHz and -130dBm to +20dBm 
with crazy resolution and accuracy then the Agilent synth is the way to go. 
However, for a fixed-frequency, stable oscillator they're actually not that 
great. e.g. it's not that hard to outperform an Agilent synth at a few GHz with 
a cheap PLL phase noise wise. When it comes to phase stability, bigger is 
generally worse. I suspect that a small, if needs be ovenized, PLL is actually 
a pretty good solution. But, maybe I'll take that back when our test boards 
arrive.

Sounds like waiting for the test boards to "recalibrate our BS detectors" is 
the thing to do here :)


___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-04-11 Thread Slichter, Daniel H. (Fed)
> On Saturday, 9 April 2016 6:10:36 PM HKT Grzegorz Kasprowicz wrote:
> > Why do you think that CPUs have negative value? You don't have to use
> > them at all.
> 
> I already explained that the MPSoC has to be dealt with and cannot be
> completely ignored. If we have two SDRAM systems, maybe we can to a
> reasonable extent, but then it does complicate the board.

On the DSP/"Sayma" boards, a hard SoC could have use for reducing the time it 
takes to perform feedback calculations (e.g. shifts of output signal frequency 
based on ADC readings).  

My comment in the previous email about "users" wanting this also pertains to 
the idea that people not using ARTIQ might want to buy these boards and use 
them for their own purposes.  For many of them, having a hard SoC on board may 
make it faster/easier for them to get the boards doing what they want.  Again, 
it's not totally necessary to have this but would enable more applications and 
a broader group of potentially interested customers.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-04-08 Thread Slichter, Daniel H. (Fed)
I also think that, however "disgusting" the Zynq is, there are a number of 
people who might want the additional processing power available in a hard 
processor.  Greg also points out a number of advantages in terms of management 
of bitstreams in a large-scale experimental setting.  

On our previous phone conversations with Sebastien, Joe, and Dave Leibrandt, it 
seemed that using the hard processor on the Zynq would be necessary to be able 
to talk to a connected SDRAM chip, so there is a little more to it than just 
treating it as a regular Kintex in terms of connections.  However, Sebastien 
seemed to think that it would not be that difficult to implement things on a 
Zynq.  Sebastien, has this opinion changed?  Is the "disgusting" part of Zynq a 
philosophical objection, or an objection based on the amount of additional work 
required to implement gateware?  Many potential users might prefer having a 
Zynq.  

We also discussed the advantages of having 24 gigabit transceivers, instead of 
16, in that then we are not reduced to hacks to have gigabit connectivity (e.g. 
GbE, potentially PCIe, etc) while keeping the possibility of using 8 DAC 
outputs at their full bandwidth.  If this is not a priority, the AD9154 can be 
run at a reduced instantaneous bandwidth (e.g. higher interpolation rate) or 
reduced channel count, both of which would be satisfactory for some 
applications, with only 4 lanes connected.  Thus one could connect one FMC with 
8 lanes and the other with 4 lanes (4 lanes is all that is needed for 4 
channels of ADC at max data rates), and have 4 left over.  I proposed this idea 
back some months ago when we were doing initial discussions.

Best,
Daniel

> -Original Message-
> From: Grzegorz Kasprowicz [mailto:gkasp...@elka.pw.edu.pl]
> Sent: Friday, April 08, 2016 6:00 AM
> To: 'Sébastien Bourdeauducq' 
> Cc: 'Grzegorz Kasprowicz' ; Slichter, Daniel H. (Fed)
> ; artiq@lists.m-labs.hk
> Subject: RE: [ARTIQ] FW: initial specification of the project
> 
> Well, I compared highest speed grades (-3) in large packages :) XC7K325T-
> 3FFG900E  costs more than ZU11 in similar speed grade.
> Personally, I like this disgusting ZynQ stuff. I didn't have any special 
> troubles
> to make it running. And it gives very handy feature of FPGA upgrade over
> Ethernet :) In this way you can keep all FPGA bit streams on single nfs server
> and load them at the startup.
> THE CPU and FPGA are independent, so you can boot CPU without the
> bitstream, connect to nfs, grab the bitteam and load it. So you can treat it 
> as
> CPU which simply loads the FPGA and from programmable logic you treat it
> as ordinary Kintex device.
> And you get bunch of IOs for free which can be controlled over Ethernet.
> In case of complex system it is very desirable because you keep all the
> settings in single location and to upgrade it don't have to walk with
> programmer from board to board.
> We have a system which consists of 22 FPGAs in single box and all FPGA files
> are kept on single USB drive. The system is installed in UK and upgraded once
> a month and it is real pleasure to work in such manner.
> Another system is CMS muon trigger which consists of thousands of FPGAs
> and they all are loaded at the startup. It's much easier to keep control on
> bitstream versions of individual chips.
> The only alternative update channel in MTCA is either JTAG or I2C.
> With I2C you need about 30hours to programm the config FLASH. In case of
> JTAG, not every MTCA crate has JSM.
> Greg
> 
> 
> -Original Message-----
> From: Sébastien Bourdeauducq [mailto:s...@m-labs.hk]
> Sent: Friday, April 08, 2016 12:13 PM
> To: Grzegorz Kasprowicz 
> Cc: 'Grzegorz Kasprowicz' ; 'Slichter, Daniel H. (Fed)'
> ; artiq@lists.m-labs.hk
> Subject: Re: [ARTIQ] FW: initial specification of the project
> 
> On Friday, 8 April 2016 11:53:25 AM HKT Grzegorz Kasprowicz wrote:
> > Btw,
> > ZU11 FPGA costs more or less the same as 7K325 and offers almost twice
> > more logic resources. The price of ZU11 is $1,376.00 at 100pcs.
> > Since we will buy such quantity for our CBM project (Fair facility in
> > GSI), we can use that step pricing in this case as well.
> 
> Even on Digikey in single quantities, 7K325T starts at $898.75 (and the
> cheapest one in FF which seems to be recommended for the full transceiver
> bandwidth is $1122.50) and we don't have to deal with any of this disgusting
> Zynq stuff.
> 
> Sébastien
> 

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-04-01 Thread Slichter, Daniel H. (Fed)
These are good thoughts, Tom, thanks for sending this detailed message.  I 
imagine Greg will have some insights and measurements as well from Creotech's 
experience in building the RF distribution backplane for the RTMs.  A few 
comments inline below:


Take the 2.4GHz DAC clock as an example. A decent (relatively small and 
inexpensive) choice of VCO for the PLL might be a UMX-630-D16-G 
(http://www.rfmd.com/store/products/all-products/oscillators/ultra-low-noise-cro-vcos/umx-630-d16-g-1.html).
 To get an idea of the lock bandwidth required, we can compare the phase noise 
of this VCO with a typical high-quality lab 10MHz source, such as a SRS FS725 
Rubidium Standard (http://www.thinksrs.com/products/FS725.htm) scaled from 
10MHz to 2.4GHz by adding 20*log10(240)=48dB. By 10kHz offset frequency, the 
typical VCO noise is -108dBc/Hz, compared with a (scaled) noise for the FS725 
of ~-105dBc/Hz. Beyond that, the VCO is significantly better*.

For good phase noise performance, one is better off distributing a higher 
frequency clock.  For example, use an external 1 GHz crystal or oscillator 
disciplined to a 10 MHz atomic reference with low loop bandwidth.  The phase 
noise at 1 GHz at 10 kHz offset for these sorts of things can be -160 dBc/Hz 
(e.g. Wenzel GMXO-PLD), which is substantially better than the scaled 
(multiplied) phase noise from an FS725 rubidium standard (-115 dBc/Hz @ 1 GHz, 
10 kHz offset).  Now you are way below the phase noise from the VCO, which 
would be -116 dBc/Hz scaled at 1 GHz.  And the VCO you quote is a particularly 
fancy one because it is disciplined to an onboard CRO already, so one is not 
likely to find a substantially better VCO.

How much will this level of phase noise affect things?  If we go with -96 
dBc/Hz at 10 GHz (scaled), assuming a VCO, we can compare with Fig 2 in 
http://arxiv.org/abs/1602.04551.  This would put us about a third of the way 
from the "lab-grade" at -75 dbc/Hz to the "precision" at -130 dBc/Hz.  This 
frequency offset corresponds to ~100 us operation times, so the phase noise 
would give an infidelity of about 10^-4 per gate there.  Taking the 100 kHz 
offset, we have -118 dBc/Hz at 10 GHz with VCO, which is about 2/3 of the way 
from "lab grade" to "precision" and would limit gate fidelity to a few times 
10^-6 per gate at ~10 us gate times.  This is obviously a very coarse way of 
ballparking things, because one has to look at the entire spectrum, especially 
the integrated power in the white noise floor, but it gives a rough figure of 
merit.

Given this admittedly very coarse analysis, I would prefer to at least have the 
option to pipe in a nice low-noise external clock directly, although it seems a 
backplane clock (especially if one distributes a higher frequency on the 
backplane) could work for many applications.


Presumably, your concern is some combination of:

a) We won't be able to build a PLL on the AMC/FMC board which has good enough 
phase noise @2.4GHz, regardless of the quality of the 10MHz reference we feed it

This is one concern, but it appears the chip you suggest could get us decent 
phase noise for many applications.

b) The PLL won't do a good enough job of removing noise on the reference clock 
far outside the loop bandwidth (say, outside the range 9MHz - 11MHz if one 
wants to be pessimistic)

If you have a really good onboard oscillator that you are only disciplining 
with the backplane reference, this is not so much of an issue.  But this then 
requires substantially more engineering.

c) Even with a narrow-bandwidth (~1kHz) PLL with carefully chosen loop filter, 
and taking care over what other signals we send down the backplane, there will 
be too much pickup on the clock line close to 10MHz that can't be filtered off

This is potentially an issue.

d) Something else I'm missing?

If each board in a crate has its own PLL, you will have more phase drift 
between the outputs of separate cards than if you distribute the DAC clock 
directly to all boards from a single source.  Obviously the direct clock 
distribution doesn't scale to many crates, but you would at least know that an 
entire crate's worth of DACs are fully synchronized, as opposed to just one AMC 
card's worth.

If you have any measurements relevant to this, I'd be interested to see them. 
We're currently building hardware, one purpose of which will be to test how 
well we can generate a low phase noise 1GHz DDS clock from a 10MHz signal 
distributed down a uTCA backplane.

Creotech probably have some measurements of this from when they built their RF 
backplane for the RTMs; I don't have any data of my own.  Glad you are doing 
some testing of your own.  I would see if you can't distribute the 1 GHz clock 
directly and use the PLL for cleanup only?

* Of course, actually achieving this noise level will require some work in 
terms of simulation/testing the PLL design, and may need a multi-loop PLL to 
prevent the high divider ratio from causing problems

[ARTIQ] NIST IT security requirement - reimplement ARTIQ in C/C++

2016-04-01 Thread Slichter, Daniel H. (Fed)
Hi,

NIST IT security has just pushed a new policy that any and all software 
developed by outside contractors must be in C or C++ only.  Apparently they are 
going to run some sort of scanning software on the source to look for malicious 
code and this will only work on code written in C or C++.  All other 
programming languages are banned.  So we will need to reimplement the entirety 
of ARTIQ in C or C++.

Sorry for the hassle!
Daniel

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] DSP gateware

2016-03-31 Thread Slichter, Daniel H. (Fed)
> And a 16 ns pulse would be just about 20 samples. Why would you want to
> describe that using ~4 spline knots each being maybe 16 times 16 bits in data.
> If you need the full bandwidth, the idea of compression using splines is not
> very helpful. In that case you would need to design in a little "real" AWG
> player that plays snippets from a wide BRAM.

Sure, that is a better solution for these kinds of things.  I am just saying 
that unless we have some suitable feature like this, no superconducting people 
will be interested in the system.  So we should design things in such a way 
that this is a possibility, to maximize the target audience.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] TTL + slow DACs

2016-03-31 Thread Slichter, Daniel H. (Fed)
> Since this is another piece of hardware and the processing constraints as well
> as the electrical constraints are so different, it seems prudent to account 
> for
> these differences. Consider doing proper galvanic isolation with a fiber:
> ground potential differences easily
> -- and even in well controlled labs -- exceed the common mode tolerances of
> lvds if the devices are a few tens of meters apart.
> 
> This is why we would like to consider a very low barrier, non-rack form factor
> that is connected by fiber plus a simple power supply and provides a good
> number of analog voltages and a good number of ttls.
> That obsoletes the LVDS breakout board which also doesn't help with the
> galvanic isolation for the high density low speed DAC that we would like to
> bundle with that box.

OK, fiber is superior for galvanic isolation, but at the end of the day this 
would be a solution with just a few TTL lines per board, and you would then 
sprinkle these around the lab, correct?  And clock/timing transfer can be done 
over the fiber in a suitable way?
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] DSP gateware

2016-03-31 Thread Slichter, Daniel H. (Fed)
> to allow for FPGA selection and to rush the funding I have done a design
> study and implemented a basic DSP output channel for the ARTIQ DSP
> hardware. A 1.25 GS/s, 16 bit, "smart" channel pair would do
> 
> o0 = u0 + i0 * a0 * cos(f0 * t + p0) + q1 * a1 * sin(f1 * t + p1)
> o1 = u1 + q0 * a0 * sin(f0 * t + p0) + i1 * a1 * cos(f1 * t + p1)
> 
> * u and a are 16 bit cubic spline inteprolators
> * p are 16 bit constant (non-) interpolators
> * f are 48 bit linear interpolators
> * i and q are switches (0 or 1) that allow many different configurations,
> among them single tone independent, two-tone, single tone iq, and two-
> tone iq all with independent dc offsets
> * the inteprolators interpolate at 1/8 output rate, the DUCs output at full 
> rate
> (effectively).
> * all designed for 16 bit spline knot duration resolution and scalable spline
> interpolation clock

This looks like a good general purpose method for defining signals, which 
accommodates most possible use cases in a clean and concise way.  A few 
potential comments:
- For sc qubit applications, it would be necessary to update the u and a 
interpolators at the full output rate (~1.25 GSPS), since pulses are often only 
10-20 ns long and require nontrivial shaping over those periods of time 
(sometimes 2 envelope oscillations up and down, see e.g. 
http://arxiv.org/pdf/1405.0450v2.pdf on "wah-wah" pulses, which are commonly 
used).  In general, having u and a only updated at 1/8 clock rate will give 
rise to spurs at 1/4 of the Nyquist frequency and harmonics, which is 
undesirable for any application.  Perhaps I am misunderstanding what you mean 
by the interpolators running at 1/8 output date.  


> This uses about 28 kLUT, 14% of a xc7k325t. The timing, parsing, serial link,
> rtlink, drtio, jdes phy, gearbox, monitoring, digital servo, adc logic will
> probably add another 10-20 kLUT per channel pair but this is the dominant
> chunk.
> 
> This looks good for the xc7a200t or a xc7k325t as the building block and 4
> channels (two smart channel pairs).

Will changing the update rate for the spline interpolators make things much 
larger?  I assume they would have to be physically parallelized.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-31 Thread Slichter, Daniel H. (Fed)

Re DAC clock: presumably, the plan is to distribute a 10MHz (or 100MHz, or 
whatever) clock with really low close-in phase noise to each MCH, and then from 
each MCH to the AMCs via the backplane. Why not send this from the AMC to the 
FMC boards via the FMC connectors? Then, have the FMC board generate the DAC 
clock using an integer-N PLL. If done properly, an int-N PLL at a couple of GHz 
is cheap, has a small footprint and will give as good phase noise/phase 
stability as using an external synth plus coax. The loop filter bandwidth can 
be low enough to take out any cross-talk from the FMC/backplane. Plus, this way 
the DAC clock has a well-defined phase relationship to the main system clock 
(the 10MHz or whatever), which may come in handy for keeping everything 
synchronised...
Basically, it is not possible to generate a sufficiently high performance DAC 
clock for many applications from something that comes over the backplane, due 
to crosstalk/signal integrity issues.  Joe Britton has some data on clock noise 
over uTCA backplanes, I believe.  The idea would be to have a clock selection 
crossbar switch on the FMC card, which allows the user either to use an 
external clock brought in on an SMA connector, or to use a clock generated by a 
PLL on the AMC card referenced to a backplane clock (and there will be 
backplane clocks for digital timing purposes).  This way people who really care 
about phase noise can have it as good as they want, while people who don't care 
as much can dispense with the extra wiring and clutter involved in feeding 
external clocks to each FMC module.  The issue is just that for the most 
demanding signal generation, using backplane clocks and an on-chip PLL is 
considerably worse than a dedicated clock that would come in on the front panel 
from a dedicated low-noise clock source.
Mike Biercuk, his student, and Will Oliver have made a nice writeup looking at 
the importance of low phase noise master clocks for gate fidelity, that 
describes a number of the important issues:
http://arxiv.org/abs/1602.04551
Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] TTL + slow DACs

2016-03-31 Thread Slichter, Daniel H. (Fed)
> We'll probably want a few dozen TTLs, broken out on SMA, so the FMC panel
> is not an option there.
> 
> We can remove PCIe indeed, but keeping the WR oscillators is probably a
> good idea as they can be used for clock synchronization with the master.

For the purpose of a TTL card, I would recommend that the TTL be broken out to 
LVDS over cat5/cat6 using RJ45 connectors, as is currently done in the ARTIQ 
hardware.  It would be possible to send 64 TTL lines out of a single AMC card 
of 6 HP width in this manner, much more than you could ever do with SMA, and 
with vastly cheaper cabling and excellent signal integrity for long cabling 
runs (tested to work fine with 30 m cable, for example).  We have existing 
breakout boards that convert between 4 TTL signals on SMA and 4 LVDS signals on 
Ethernet cables.  

This card would not have an FMC mezzanine, but would rather just break things 
out directly from the FPGA.  I would recommend using a similar architecture on 
the AMC board to our existing TTL riser card that interfaces between TTL at the 
FPGA and LVDS.  I know we could directly drive LVDS to/from the FPGA, but then 
we don't have any isolation between the FPGA user IO and the end user 
application, which makes me nervous that users could more easily fry the FPGA.  

One could use a very inexpensive FPGA for this particular task, although it 
might be nice to have a hard processor if it is driving so many TTL lines.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
One further question: is there a plan to make a “TTL” card or a multichannel 
“slow” DAC card (e.g. for trap voltages), using a Centronics or d-sub type 
connector?  These could both be more readily accomplished with their own FMC 
modules if we go with this architecture.

From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com]
Sent: Wednesday, March 30, 2016 3:36 PM
To: Slichter, Daniel H. (Fed) 
Cc: Robert Jördens ; Grzegorz Kasprowicz 
; Leibrandt, David R. (Fed) 
; Sébastien Bourdeauducq ; 
artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] FW: initial specification of the project

Here is example of CERN carrier with analogue voltages:
http://www.ohwr.org/projects/fmc-pci-carrier/wiki
"+5V, -2V, -5V2 and -12V optionally wired on HPC pins"
look here
https://edms.cern.ch/ui/file/1098639/1/EDA-02118-V1-1_sch.pdf
page 3

On 30 March 2016 at 23:17, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
We definitely need +/- 15V for the low frequency (e.g. trap electrode) 
amplifiers.  Many low noise amplifiers and RF components run off +5V or +/- 5V 
and have substantial current draws, so if you pull everything from +/- 15V 
rails you are tripling your power dissipation and you end up with very hot 
regulators.  The DACs and ADCs will be dissipating a fair amount of power 
already so we want to try to keep the power budget under control.  Other than 
that, I don’t see major reasons why one couldn’t run fewer analog rails.  I 
think we are better off with DC/DC converters on the AMC card making a number 
of rails, which then have some filtering/regulation on the AMC card and then a 
final stage of LDO regulation on the FMC daughtercard itself, as close to the 
amplifiers etc as possible.

Using the alternating grounds a la CERN seems like a suitable solution to me 
for sending in these additional analog rails.

From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com<mailto:kaspr...@gmail.com>]
Sent: Wednesday, March 30, 2016 3:13 PM
To: Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>>
Cc: Robert Jördens mailto:r...@m-labs.hk>>; Grzegorz Kasprowicz 
mailto:gkasp...@elka.pw.edu.pl>>; Leibrandt, David R. 
(Fed) mailto:david.leibra...@nist.gov>>; Sébastien 
Bourdeauducq mailto:s...@m-labs.hk>>; 
artiq@lists.m-labs.hk<mailto:artiq@lists.m-labs.hk>
Subject: Re: [ARTIQ] FW: initial specification of the project

Well, CERN does it in their FMC carriers. They use HPC routed like LPC and then 
some of grounds are used as symmetrical analog supplies. In this way if you 
plug wrong board, it will short the supply but no damage will occur.
I assume that low nosie DC/DC converters + LDOs will be installed on the AMC 
board.
Do we need all these voltages, especially +/-5 and +/- 15? Won't single +/- 8 
or +/- 15V be sufficient?
Greg

On 30 March 2016 at 23:08, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:

Actually HPC with LPC IO assignment and 8 x GTP links is popular configuration
So you have 34 LVDS pairs and 8 GTP links.

If this works for you then I don’t have major objections.  The other issue to 
consider is power rails, since for the analog circuitry we will probably want 
+/- 5V, +/- 15V as well as +3.3V, +1.8V, +12V.  Can we put these through on the 
FMC without breaking back compatibility?  For example, one rail on each of the 
4 VADJ pins?  I am sure this would not be VITA 57 compliant….and we don’t want 
switching converters on the FMC daughtercard for space and noise reasons both.


___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
Looks like one could get a pretty good start on things by just copying the 
designs used by marki microwave:

http://www.markimicrowave.com/assets/packages/CTG.pdf
http://www.markimicrowave.com/assets/appnotes/an-ct-pcb.pdf

On another note, I would recommend the MM1-0320HSM mixer as a good option for 
the upconversion board if we decide not to go with an IQ modulator (there the 
ADL5375 would be best but I haven’t tested it to 12 GHz).

http://www.markimicrowave.com/MM1-0320HSM-MMIC-Double-Balanced-Mixer-P782.aspx


From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com]
Sent: Wednesday, March 30, 2016 3:09 PM
To: Slichter, Daniel H. (Fed) 
Cc: Grzegorz Kasprowicz ; Leibrandt, David R. (Fed) 
; Sébastien Bourdeauducq ; 
artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] FW: initial specification of the project

Well, it depends on trace width matching. We can simulate and characterize it 
even at much higher frequencies.
If we place them really close to the DAC and match widths, remove grounds under 
pads, we can match it not worse than SMA connectors.
We can even do even more crazy thing - try to make them mountable.
The only signals that would need to be transmitted is DAC output / ADC input.
We can use low profile board to board connectors for rest of the signals - I 
know ones that have 1mm stacking hight. For RF we could use PCB mounted UFL 
connectors.
This is just crazy idea that need to be verified.

On 30 March 2016 at 23:02, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
This is an interesting potential solution although I am not sure how the signal 
integrity is at ~3 GHz, for example.

From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com<mailto:kaspr...@gmail.com>]
Sent: Wednesday, March 30, 2016 2:44 PM
To: Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>>
Cc: Grzegorz Kasprowicz 
mailto:gkasp...@elka.pw.edu.pl>>; Leibrandt, David R. 
(Fed) mailto:david.leibra...@nist.gov>>; Sébastien 
Bourdeauducq mailto:s...@m-labs.hk>>; 
artiq@lists.m-labs.hk<mailto:artiq@lists.m-labs.hk>
Subject: Re: [ARTIQ] FW: initial specification of the project

Such assembly technique is called:
castellated PCB module
https://www.google.pl/search?q=castellated+RF+modules&biw=1920&bih=917&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjRvuqko-nLAhWnnXIKHe_IARsQ_AUIBygB<https://www.google.pl/search?q=castellated+PCB+down+converter+modules&biw=1920&bih=917&source=lnms&tbm=isch&sa=X&ved=0ahUKEwj19L7younLAhUKvXIKHQVBCg8Q_AUIBigB#tbm=isch&q=castellated+RF+modules>

On 30 March 2016 at 22:40, Grzegorz Kasprowicz 
mailto:kaspr...@gmail.com>> wrote:
One more thing - we can fit 5 SMA connectors on FMC panel, in case of 6 ones, 
we won't be able to screw them.
But we can install MMCX ones for clocks and fit in total of 7 RF connectors,
Look here
http://www.ohwr.org/attachments/3390/fmc_top.jpg
Greg

On 30 March 2016 at 22:38, Grzegorz Kasprowicz 
mailto:kaspr...@gmail.com>> wrote:
Well, we can do another crazy thing - solder small module with RF stuff on the 
FMC board, under same shield.
In this way we keep 3 simple FMCs with expensive ADCs/DACs and define the 
functionality by soldering (automatic or manual) of just RF modules. WE can 
even design such modules to hold the front-end connectors of leave them on the 
FMC.
Such approach has also some attractive feature - we can make them using small 
pieces of Rogers material which is hell expensive and it's hard to make small 
vias and thin traces needed for JESD signals.
these modules could look like that
http://www.emcfastpass.com/wp-content/uploads/2014/09/rf_module_holes.gif
You can mount them by pick and place or manually.
IT is also possible to manually disassemble them.
This is a form factor of popular RF modules, i.e. wifi, GPS and LTE modems.
http://www.emcfastpass.com/rf-modules/
And is simply works
Greg


On 30 March 2016 at 22:25, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
> Maybe we should come back to the roots:) What if we use standard FMCs
> (LPC) with DAC/ADC channels and RF stuff _on_ them.
> JESD204B and some pins would go to the FPGA while DAC and RF clock would
> be fed externally.
> In this way we leave general purpose AMC board and define its functionality
> by FMC boards If we make 3 flavours of FMCs: ADC+ADC,
> ADC+DAC,DAC+DAC, we would cover several use cases:
> Quad ADC, quad DAC, 1xADC 3xDAC, 3xADC 1xDAC.
> FMCs with only DAC and RF stuff on it can be simple, 4 layer boards with
> external sield.
> Look at this shield (my project)
> http://www.ohwr.org/projects/fmc-adc-130m-16b-4cha/wiki
> In this way we could use existing AFCK for quick tests

We have been working with the notion that should be many possible front ends 
for each of the DACs or ADCs, depending on what the particular application is, 
and so we want to separate the analog daughte

Re: [ARTIQ] Fwd: FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
> Impressive. Yep. Looks doable then. For us it would probably be either just
> filtering and amplification on four channels, or upconversion (on two iq
> channels then i would think).

Agreed, seems doable.  Filtering plus amplification should fit in a suitable 
footprint pretty easily.  Two channels of IQ upconversion would also probably 
be good, but most likely the upconverting mixer would need to have larger RF 
bandwidth than is typically available in surface mount IQ modules (which 
typically go to ~ 6 GHz spec'ed max, might be rough making it out to 12 GHz for 
Yb).  Since we have full IQ control in the digital regime, we could do 
everything we want with just a regular mixer as long as filters are put in 
place to get rid of the second sideband on the output (these could be placed 
off-card as well, for example).  The bandwidth of the DACs is sufficiently high 
that this method for removing the second sideband is viable, as long as 
appropriate filters are placed in the IF signal path.  Just another potential 
way of generating things.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
We could also use a fuzz button interposer, which would do the same kind of 
task (low stacking height connection w/ high frequency compatibility), but I 
think once we start heading too far down this road the cost and complexity of 
making a robust solution starts to outweigh the cost of just making more types 
of boards.  We should consider carefully before we make too fancy a solution.  
The notion of the SMP connectors is that they are robust, high performance, 
suited for the task, and cheap.

It does seem that microwave-frequency castellated solutions are used by serious 
industry folks:

https://www.markimicrowave.com/Assets/appnotes/Marki_Surface_mount_Guide_V1.pdf


From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com]
Sent: Wednesday, March 30, 2016 3:09 PM
To: Slichter, Daniel H. (Fed) 
Cc: Grzegorz Kasprowicz ; Leibrandt, David R. (Fed) 
; Sébastien Bourdeauducq ; 
artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] FW: initial specification of the project

Well, it depends on trace width matching. We can simulate and characterize it 
even at much higher frequencies.
If we place them really close to the DAC and match widths, remove grounds under 
pads, we can match it not worse than SMA connectors.
We can even do even more crazy thing - try to make them mountable.
The only signals that would need to be transmitted is DAC output / ADC input.
We can use low profile board to board connectors for rest of the signals - I 
know ones that have 1mm stacking hight. For RF we could use PCB mounted UFL 
connectors.
This is just crazy idea that need to be verified.

On 30 March 2016 at 23:02, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
This is an interesting potential solution although I am not sure how the signal 
integrity is at ~3 GHz, for example.

From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com<mailto:kaspr...@gmail.com>]
Sent: Wednesday, March 30, 2016 2:44 PM
To: Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>>
Cc: Grzegorz Kasprowicz 
mailto:gkasp...@elka.pw.edu.pl>>; Leibrandt, David R. 
(Fed) mailto:david.leibra...@nist.gov>>; Sébastien 
Bourdeauducq mailto:s...@m-labs.hk>>; 
artiq@lists.m-labs.hk<mailto:artiq@lists.m-labs.hk>
Subject: Re: [ARTIQ] FW: initial specification of the project

Such assembly technique is called:
castellated PCB module
https://www.google.pl/search?q=castellated+RF+modules&biw=1920&bih=917&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjRvuqko-nLAhWnnXIKHe_IARsQ_AUIBygB<https://www.google.pl/search?q=castellated+PCB+down+converter+modules&biw=1920&bih=917&source=lnms&tbm=isch&sa=X&ved=0ahUKEwj19L7younLAhUKvXIKHQVBCg8Q_AUIBigB#tbm=isch&q=castellated+RF+modules>

On 30 March 2016 at 22:40, Grzegorz Kasprowicz 
mailto:kaspr...@gmail.com>> wrote:
One more thing - we can fit 5 SMA connectors on FMC panel, in case of 6 ones, 
we won't be able to screw them.
But we can install MMCX ones for clocks and fit in total of 7 RF connectors,
Look here
http://www.ohwr.org/attachments/3390/fmc_top.jpg
Greg

On 30 March 2016 at 22:38, Grzegorz Kasprowicz 
mailto:kaspr...@gmail.com>> wrote:
Well, we can do another crazy thing - solder small module with RF stuff on the 
FMC board, under same shield.
In this way we keep 3 simple FMCs with expensive ADCs/DACs and define the 
functionality by soldering (automatic or manual) of just RF modules. WE can 
even design such modules to hold the front-end connectors of leave them on the 
FMC.
Such approach has also some attractive feature - we can make them using small 
pieces of Rogers material which is hell expensive and it's hard to make small 
vias and thin traces needed for JESD signals.
these modules could look like that
http://www.emcfastpass.com/wp-content/uploads/2014/09/rf_module_holes.gif
You can mount them by pick and place or manually.
IT is also possible to manually disassemble them.
This is a form factor of popular RF modules, i.e. wifi, GPS and LTE modems.
http://www.emcfastpass.com/rf-modules/
And is simply works
Greg


On 30 March 2016 at 22:25, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
> Maybe we should come back to the roots:) What if we use standard FMCs
> (LPC) with DAC/ADC channels and RF stuff _on_ them.
> JESD204B and some pins would go to the FPGA while DAC and RF clock would
> be fed externally.
> In this way we leave general purpose AMC board and define its functionality
> by FMC boards If we make 3 flavours of FMCs: ADC+ADC,
> ADC+DAC,DAC+DAC, we would cover several use cases:
> Quad ADC, quad DAC, 1xADC 3xDAC, 3xADC 1xDAC.
> FMCs with only DAC and RF stuff on it can be simple, 4 layer boards with
> external sield.
> Look at this shield (my project)
> http://www.ohwr.org/projects/fmc-adc-130m-16b-4cha/wiki
> In this way we could use existing AFCK for quick tests

We have been working with the notion that shoul

Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
We definitely need +/- 15V for the low frequency (e.g. trap electrode) 
amplifiers.  Many low noise amplifiers and RF components run off +5V or +/- 5V 
and have substantial current draws, so if you pull everything from +/- 15V 
rails you are tripling your power dissipation and you end up with very hot 
regulators.  The DACs and ADCs will be dissipating a fair amount of power 
already so we want to try to keep the power budget under control.  Other than 
that, I don’t see major reasons why one couldn’t run fewer analog rails.  I 
think we are better off with DC/DC converters on the AMC card making a number 
of rails, which then have some filtering/regulation on the AMC card and then a 
final stage of LDO regulation on the FMC daughtercard itself, as close to the 
amplifiers etc as possible.

Using the alternating grounds a la CERN seems like a suitable solution to me 
for sending in these additional analog rails.

From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com]
Sent: Wednesday, March 30, 2016 3:13 PM
To: Slichter, Daniel H. (Fed) 
Cc: Robert Jördens ; Grzegorz Kasprowicz 
; Leibrandt, David R. (Fed) 
; Sébastien Bourdeauducq ; 
artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] FW: initial specification of the project

Well, CERN does it in their FMC carriers. They use HPC routed like LPC and then 
some of grounds are used as symmetrical analog supplies. In this way if you 
plug wrong board, it will short the supply but no damage will occur.
I assume that low nosie DC/DC converters + LDOs will be installed on the AMC 
board.
Do we need all these voltages, especially +/-5 and +/- 15? Won't single +/- 8 
or +/- 15V be sufficient?
Greg

On 30 March 2016 at 23:08, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:

Actually HPC with LPC IO assignment and 8 x GTP links is popular configuration
So you have 34 LVDS pairs and 8 GTP links.

If this works for you then I don’t have major objections.  The other issue to 
consider is power rails, since for the analog circuitry we will probably want 
+/- 5V, +/- 15V as well as +3.3V, +1.8V, +12V.  Can we put these through on the 
FMC without breaking back compatibility?  For example, one rail on each of the 
4 VADJ pins?  I am sure this would not be VITA 57 compliant….and we don’t want 
switching converters on the FMC daughtercard for space and noise reasons both.

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
So now we are moving towards complying with the AMC FMC physical standard.  Is 
this something we want to do?  There are pluses (able to use existing AMC FMC 
cards) and minuses (squeezing things in more tightly than we otherwise might 
have to).

From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com]
Sent: Wednesday, March 30, 2016 2:41 PM
To: Slichter, Daniel H. (Fed) 
Cc: Grzegorz Kasprowicz ; Leibrandt, David R. (Fed) 
; Sébastien Bourdeauducq ; 
artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] FW: initial specification of the project

One more thing - we can fit 5 SMA connectors on FMC panel, in case of 6 ones, 
we won't be able to screw them.
But we can install MMCX ones for clocks and fit in total of 7 RF connectors,
Look here
http://www.ohwr.org/attachments/3390/fmc_top.jpg
Greg

On 30 March 2016 at 22:38, Grzegorz Kasprowicz 
mailto:kaspr...@gmail.com>> wrote:
Well, we can do another crazy thing - solder small module with RF stuff on the 
FMC board, under same shield.
In this way we keep 3 simple FMCs with expensive ADCs/DACs and define the 
functionality by soldering (automatic or manual) of just RF modules. WE can 
even design such modules to hold the front-end connectors of leave them on the 
FMC.
Such approach has also some attractive feature - we can make them using small 
pieces of Rogers material which is hell expensive and it's hard to make small 
vias and thin traces needed for JESD signals.
these modules could look like that
http://www.emcfastpass.com/wp-content/uploads/2014/09/rf_module_holes.gif
You can mount them by pick and place or manually.
IT is also possible to manually disassemble them.
This is a form factor of popular RF modules, i.e. wifi, GPS and LTE modems.
http://www.emcfastpass.com/rf-modules/
And is simply works
Greg


On 30 March 2016 at 22:25, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
> Maybe we should come back to the roots:) What if we use standard FMCs
> (LPC) with DAC/ADC channels and RF stuff _on_ them.
> JESD204B and some pins would go to the FPGA while DAC and RF clock would
> be fed externally.
> In this way we leave general purpose AMC board and define its functionality
> by FMC boards If we make 3 flavours of FMCs: ADC+ADC,
> ADC+DAC,DAC+DAC, we would cover several use cases:
> Quad ADC, quad DAC, 1xADC 3xDAC, 3xADC 1xDAC.
> FMCs with only DAC and RF stuff on it can be simple, 4 layer boards with
> external sield.
> Look at this shield (my project)
> http://www.ohwr.org/projects/fmc-adc-130m-16b-4cha/wiki
> In this way we could use existing AFCK for quick tests

We have been working with the notion that should be many possible front ends 
for each of the DACs or ADCs, depending on what the particular application is, 
and so we want to separate the analog daughtercards from whatever board has the 
DACs and ADCs on it.  This way, you can reconfigure the hardware for 
high-frequency or low-frequency applications, for example, by changing 
daughtercards and not having to build entire new AMC cards.  The modularity 
principle lets one have a single design for the AMC card (aka DSP card) that 
can be used for many different applications, by shifting the analog signal 
processing circuitry onto a separate card.

Now, as you suggest we could just change the level at which we make this break 
from the AMC card, shift the DACs and ADCs onto the daughter card as well, and 
use FMC to communicate with the whole thing.  This makes it a bit more 
expensive/difficult to reconfigure the analog front end, but the DAC and ADC 
costs are not so high that it is impossible to do.  I had envisioned the notion 
of making the daughtercards simple enough that end users could redesign/respin 
easily to accommodate their own applications, or we could ship unstuffed or 
partially stuffed boards that they could complete with the particular filters 
etc they desire.

However, I agree that there are compelling arguments for using the architecture 
you propose.  We would need to pick just a few board styles (I suggest quad 
DAC, 2 DAC/2 ADC, and quad ADC), and for each of these board styles we would 
need to make several different variants with different analog front ends (3 
types for DAC - low frequency, baseband RF, upconverted RF - and 2 types for 
ADC - baseband RF and downconverted RF, both likely including switchable gain). 
 So now we are looking at making 3 types of quad DAC boards, 2 types of ADC 
board, and probably 3 types of DAC/ADC board (upconvert DAC/downconvert ADC, 
baseband RF DAC/baseband RF ADC, and low frequency DAC/baseband RF ADC).  So 
now there are 8 different daughterboard designs.  If we restrict ourselves to 
just quad DAC or quad ADC on a given daughtercard, then there are 5 designs, 
same as in the current proposal for analog-only daughtercards.  I would still 
want to have boards be partially stuffed (or stuffed in different 
configurations on demand) to allow users to choos

Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)

Actually HPC with LPC IO assignment and 8 x GTP links is popular configuration
So you have 34 LVDS pairs and 8 GTP links.

If this works for you then I don’t have major objections.  The other issue to 
consider is power rails, since for the analog circuitry we will probably want 
+/- 5V, +/- 15V as well as +3.3V, +1.8V, +12V.  Can we put these through on the 
FMC without breaking back compatibility?  For example, one rail on each of the 
4 VADJ pins?  I am sure this would not be VITA 57 compliant….and we don’t want 
switching converters on the FMC daughtercard for space and noise reasons both.
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
This is an interesting potential solution although I am not sure how the signal 
integrity is at ~3 GHz, for example.

From: Grzegorz Kasprowicz [mailto:kaspr...@gmail.com]
Sent: Wednesday, March 30, 2016 2:44 PM
To: Slichter, Daniel H. (Fed) 
Cc: Grzegorz Kasprowicz ; Leibrandt, David R. (Fed) 
; Sébastien Bourdeauducq ; 
artiq@lists.m-labs.hk
Subject: Re: [ARTIQ] FW: initial specification of the project

Such assembly technique is called:
castellated PCB module
https://www.google.pl/search?q=castellated+RF+modules&biw=1920&bih=917&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjRvuqko-nLAhWnnXIKHe_IARsQ_AUIBygB<https://www.google.pl/search?q=castellated+PCB+down+converter+modules&biw=1920&bih=917&source=lnms&tbm=isch&sa=X&ved=0ahUKEwj19L7younLAhUKvXIKHQVBCg8Q_AUIBigB#tbm=isch&q=castellated+RF+modules>

On 30 March 2016 at 22:40, Grzegorz Kasprowicz 
mailto:kaspr...@gmail.com>> wrote:
One more thing - we can fit 5 SMA connectors on FMC panel, in case of 6 ones, 
we won't be able to screw them.
But we can install MMCX ones for clocks and fit in total of 7 RF connectors,
Look here
http://www.ohwr.org/attachments/3390/fmc_top.jpg
Greg

On 30 March 2016 at 22:38, Grzegorz Kasprowicz 
mailto:kaspr...@gmail.com>> wrote:
Well, we can do another crazy thing - solder small module with RF stuff on the 
FMC board, under same shield.
In this way we keep 3 simple FMCs with expensive ADCs/DACs and define the 
functionality by soldering (automatic or manual) of just RF modules. WE can 
even design such modules to hold the front-end connectors of leave them on the 
FMC.
Such approach has also some attractive feature - we can make them using small 
pieces of Rogers material which is hell expensive and it's hard to make small 
vias and thin traces needed for JESD signals.
these modules could look like that
http://www.emcfastpass.com/wp-content/uploads/2014/09/rf_module_holes.gif
You can mount them by pick and place or manually.
IT is also possible to manually disassemble them.
This is a form factor of popular RF modules, i.e. wifi, GPS and LTE modems.
http://www.emcfastpass.com/rf-modules/
And is simply works
Greg


On 30 March 2016 at 22:25, Slichter, Daniel H. (Fed) 
mailto:daniel.slich...@nist.gov>> wrote:
> Maybe we should come back to the roots:) What if we use standard FMCs
> (LPC) with DAC/ADC channels and RF stuff _on_ them.
> JESD204B and some pins would go to the FPGA while DAC and RF clock would
> be fed externally.
> In this way we leave general purpose AMC board and define its functionality
> by FMC boards If we make 3 flavours of FMCs: ADC+ADC,
> ADC+DAC,DAC+DAC, we would cover several use cases:
> Quad ADC, quad DAC, 1xADC 3xDAC, 3xADC 1xDAC.
> FMCs with only DAC and RF stuff on it can be simple, 4 layer boards with
> external sield.
> Look at this shield (my project)
> http://www.ohwr.org/projects/fmc-adc-130m-16b-4cha/wiki
> In this way we could use existing AFCK for quick tests

We have been working with the notion that should be many possible front ends 
for each of the DACs or ADCs, depending on what the particular application is, 
and so we want to separate the analog daughtercards from whatever board has the 
DACs and ADCs on it.  This way, you can reconfigure the hardware for 
high-frequency or low-frequency applications, for example, by changing 
daughtercards and not having to build entire new AMC cards.  The modularity 
principle lets one have a single design for the AMC card (aka DSP card) that 
can be used for many different applications, by shifting the analog signal 
processing circuitry onto a separate card.

Now, as you suggest we could just change the level at which we make this break 
from the AMC card, shift the DACs and ADCs onto the daughter card as well, and 
use FMC to communicate with the whole thing.  This makes it a bit more 
expensive/difficult to reconfigure the analog front end, but the DAC and ADC 
costs are not so high that it is impossible to do.  I had envisioned the notion 
of making the daughtercards simple enough that end users could redesign/respin 
easily to accommodate their own applications, or we could ship unstuffed or 
partially stuffed boards that they could complete with the particular filters 
etc they desire.

However, I agree that there are compelling arguments for using the architecture 
you propose.  We would need to pick just a few board styles (I suggest quad 
DAC, 2 DAC/2 ADC, and quad ADC), and for each of these board styles we would 
need to make several different variants with different analog front ends (3 
types for DAC - low frequency, baseband RF, upconverted RF - and 2 types for 
ADC - baseband RF and downconverted RF, both likely including switchable gain). 
 So now we are looking at making 3 types of quad DAC boards, 2 types of ADC 
board, and probably 3 types of DAC/ADC board (upconvert DAC/downconvert ADC, 
baseband RF DAC/b

Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
> On Wed, Mar 30, 2016 at 10:25 PM, Slichter, Daniel H. (Fed)
>  wrote:
> > Now, as you suggest we could just change the level at which we make this
> break from the AMC card, shift the DACs and ADCs onto the daughter card as
> well, and use FMC to communicate with the whole thing.  This makes it a bit
> more expensive/difficult to reconfigure the analog front end, but the DAC
> and ADC costs are not so high that it is impossible to do.  I had envisioned 
> the
> notion of making the daughtercards simple enough that end users could
> redesign/respin easily to accommodate their own applications, or we could
> ship unstuffed or partially stuffed boards that they could complete with the
> particular filters etc they desire.
> 
> It makes letting unused mezzanines collect dust on the shelf more
> expensive.

The point is you buy X number of daughtercards for Y AMC cards, where X>Y 
(perhaps X=2*Y or X=3*Y), and the daughtercards either do or don't have ADC/DAC 
on them.  If they do, it costs you more than if the ADC/DAC were on the AMC 
modules.  

> > However, I agree that there are compelling arguments for using the
> architecture you propose.  We would need to pick just a few board styles (I
> suggest quad DAC, 2 DAC/2 ADC, and quad ADC), and for each of these board
> styles we would need to make several different variants with different
> analog front ends (3 types for DAC - low frequency, baseband RF,
> upconverted RF - and 2 types for ADC - baseband RF and downconverted RF,
> both likely including switchable gain).  So now we are looking at making 3
> types of quad DAC boards, 2 types of ADC board, and probably 3 types of
> DAC/ADC board (upconvert DAC/downconvert ADC, baseband RF
> DAC/baseband RF ADC, and low frequency DAC/baseband RF ADC).  So now
> there are 8 different daughterboard designs.  If we restrict ourselves to just
> quad DAC or quad ADC on a given daughtercard, then there are 5 designs,
> same as in the current proposal for analog-only daughtercards.  I would still
> want to have boards be partially stuffed (or stuffed in different
> configurations on demand) to allow users to choose the frequencies of
> interest for analog filters etc.
> >
> > If we proceed this way, we will need an external clock SMA for each FMC
> module, because we don't want the high-quality external clock going down
> one FMC connector, across the AMC, and up the other FMC connector for
> signal integrity/crosstalk reasons.
> 
> For a digital clock with fast edges 60 dB of crosstalk is _much_ less of a
> problem.

No!  The clock coming in will be a sine wave from a low phase noise oscillator 
somewhere.  The DACs and ADCs will threshold this clock to determine their 
sample times.  Any amount of crosstalk will distort the clock signal (adding or 
subtracting to the voltage at a given time), thus skewing the time at which the 
threshold is reached and thus inducing jitter into the sampling times.  This 
would also hold true even if you have an LVPECL clock signal, because at 
frequencies like 2.4 GHz the rise and fall times (~100-200 ps) are similar to 
that of a sine wave.  Unlike for digital data signals, any amount of crosstalk 
will degrade the jitter and/or edge time performance for a clock signal.  

> > Are we thinking we would try to implement the actual VITA 57 standard on
> these connectors?  Or just use them as convenient high-speed-capable
> connectors?  I agree with the second idea, but I don't like the first one.
> 
> What from the VITA 57 pin assignmend do you not like?

If you comply with VITA 57, we will need to use an HPC connector to get enough 
gigabit transceivers into the connector, and we will have to populate all the 
other digital lines.  We could use an HPC connector with the VITA 57 LPC 
connections, plus adding on the gigabit transceivers in the locations where 
they would go for an HPC connector, and thus have an LPC compliant connector 
with "extra features" for the needed gigabit transceivers.  I am just trying to 
reduce unnecessary complexity in routing the AMC board to the FMC connectors, 
since HPC is much more of a pain than LPC in this regard.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
> Maybe we should come back to the roots:) What if we use standard FMCs
> (LPC) with DAC/ADC channels and RF stuff _on_ them.
> JESD204B and some pins would go to the FPGA while DAC and RF clock would
> be fed externally.
> In this way we leave general purpose AMC board and define its functionality
> by FMC boards If we make 3 flavours of FMCs: ADC+ADC,
> ADC+DAC,DAC+DAC, we would cover several use cases:
> Quad ADC, quad DAC, 1xADC 3xDAC, 3xADC 1xDAC.
> FMCs with only DAC and RF stuff on it can be simple, 4 layer boards with
> external sield.
> Look at this shield (my project)
> http://www.ohwr.org/projects/fmc-adc-130m-16b-4cha/wiki
> In this way we could use existing AFCK for quick tests

We have been working with the notion that should be many possible front ends 
for each of the DACs or ADCs, depending on what the particular application is, 
and so we want to separate the analog daughtercards from whatever board has the 
DACs and ADCs on it.  This way, you can reconfigure the hardware for 
high-frequency or low-frequency applications, for example, by changing 
daughtercards and not having to build entire new AMC cards.  The modularity 
principle lets one have a single design for the AMC card (aka DSP card) that 
can be used for many different applications, by shifting the analog signal 
processing circuitry onto a separate card.  

Now, as you suggest we could just change the level at which we make this break 
from the AMC card, shift the DACs and ADCs onto the daughter card as well, and 
use FMC to communicate with the whole thing.  This makes it a bit more 
expensive/difficult to reconfigure the analog front end, but the DAC and ADC 
costs are not so high that it is impossible to do.  I had envisioned the notion 
of making the daughtercards simple enough that end users could redesign/respin 
easily to accommodate their own applications, or we could ship unstuffed or 
partially stuffed boards that they could complete with the particular filters 
etc they desire.  

However, I agree that there are compelling arguments for using the architecture 
you propose.  We would need to pick just a few board styles (I suggest quad 
DAC, 2 DAC/2 ADC, and quad ADC), and for each of these board styles we would 
need to make several different variants with different analog front ends (3 
types for DAC - low frequency, baseband RF, upconverted RF - and 2 types for 
ADC - baseband RF and downconverted RF, both likely including switchable gain). 
 So now we are looking at making 3 types of quad DAC boards, 2 types of ADC 
board, and probably 3 types of DAC/ADC board (upconvert DAC/downconvert ADC, 
baseband RF DAC/baseband RF ADC, and low frequency DAC/baseband RF ADC).  So 
now there are 8 different daughterboard designs.  If we restrict ourselves to 
just quad DAC or quad ADC on a given daughtercard, then there are 5 designs, 
same as in the current proposal for analog-only daughtercards.  I would still 
want to have boards be partially stuffed (or stuffed in different 
configurations on demand) to allow users to choose the frequencies of interest 
for analog filters etc.

If we proceed this way, we will need an external clock SMA for each FMC module, 
because we don't want the high-quality external clock going down one FMC 
connector, across the AMC, and up the other FMC connector for signal 
integrity/crosstalk reasons.  

Are we thinking we would try to implement the actual VITA 57 standard on these 
connectors?  Or just use them as convenient high-speed-capable connectors?  I 
agree with the second idea, but I don't like the first one.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
> > What are you thinking for number of daughter cards?  I suppose that
> > more would give us more flexibility, but less would be more economical
> > in terms of cost and layout area.  Perhaps two daughter cards would be
> reasonable:
> > one for all of the inputs and one for all of the outputs?
> 
> Just one, the space on the AMC is rather limited.

We should be able to do two side by side.  I think it would be nice to be able 
to select the input daughtercard separately from the output daughtercard.  This 
would require having two sets of pin headers for sending power and digital 
signals, but I think the input daughtercards would likely have much less in 
terms of digital control signal requirements; there would be two basic designs, 
one for baseband digitization and one for downconversion before digitization.  
Both designs would just have analog components, no digital 
attenuators/switches/etc would be necessary or desired.  

This would especially hold true if we go to a 4 DAC / 2 ADC design, but a 4/4 
design should work fine too.
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-30 Thread Slichter, Daniel H. (Fed)
> I like this plan.  I think 4 + 4 channels will also make the front panel 
> connector
> density more reasonable.  What are you thinking for number of daughter
> cards?  I suppose that more would give us more flexibility, but less would be
> more economical in terms of cost and layout area.  Perhaps two daughter
> cards would be reasonable: one for all of the inputs and one for all of the
> outputs?

Agreed that ~ 8 front panel SMA connections, plus one clock SMA connection, is 
about what one can tolerate in a reasonable way in terms of physical footprint. 
 If we split this as 4 DAC + 4 ADC, it makes a nice symmetry although my 
suspicion is that most applications would prefer something more asymmetric with 
a few more DAC channels than ADC channels (6 DAC/2 ADC or 6 DAC/4 ADC, for 
example). One could go a simple as 4 DAC/2 ADC and make the space requirements 
even simpler to fulfill on the cards.  All of these modifications will increase 
the price per channel, even though we may be able to save on FPGA costs.  For 
example, if we do 4 DAC/2 ADC on a card with 1x AD9154 and 1x ADC16DX370 (our 
currently planned parts), we only need 10 GTX transceivers on the FPGA.  With 4 
DAC/4 ADC, this would be 12 GTX transceivers.  With these numbers we could look 
at the ZU5EV Zynq Ultrascale, instead of the ZU9EG, which we had been 
discussing.

To Greg's question on the RTM, we have had a number of extensive internal 
discussions about pros and cons of RTM and it seems that we don't want to 
pursue this avenue for a number of carefully considered reasons.  Let's just 
take it as a given that we will need to put everything on the AMC card or its 
analog daughtercards.  As stated, the DAC and ADC chips themselves will be on 
the AMC card, not the analog daughtercards.  

I am in favor of separate analog daughtercards for the inputs and the outputs, 
this seems sensible.  


> On Tuesday, 29 March 2016 11:55:19 PM HKT Grzegorz Kasprowicz wrote:
> > - they can be used immediately with existing OSHW carriers like AFC/AFCK.
> 
> AFCK may be overkill. We are still working on evaluating the FPGA resource
> requirements.
> 
> > - it could be hard to fit FPGA, supply, DACs and several RF modules,
> > all on single dual width AMC, especially when shielding is required.
> > RTM relaxes these constraints
> > - on AMC+RTM you can place 8 ADC channels + 8 DAC channels + 8 RF
> > modules. In case of single AMC board it would be hard to achieve such
> > channels density.
> 
> How about this:
> * we reduce the number of channels per AMC to 4 DACs + 4 ADCs
> * we can therefore use a smaller FPGA. Communication lanes to the master
> board are relatively cheap if we put them on IOSERDES.
> * the power density and cooling requirements are also reduced.
> * for the RF daughter cards, we use a custom form factor that can use at least
> 2/3 of the AMC front panel
> * connectors between the DSP card and the RF daughter card are 2mm
> header and 8x SMP
> * the rest of the AMC front panel used for (optional, runtime selectable)
> clock input and some TTLs.


___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-29 Thread Slichter, Daniel H. (Fed)
> FMC has mounting height of 8 or 10mm.
> Other heights are also possible in case of SEARAY series, but one must order
> large number of them Greg

FMC per VITA 57.1 standard is 8.5 mm stacking height or 10 mm stacking height 
(see section 3.4).  You can get the SEARAY connectors (of which FMC compliant 
connectors are a subset) in a variety of other stacking heights too.  

At the end of the day, I really think that something simple and straightforward 
like pin headers is going to work well and will save us a lot of hassle in 
finding specialized connectors/worrying about longevity/connector 
availability/etc.


> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Slichter,
> Daniel H. (Fed)
> Sent: Tuesday, March 29, 2016 10:39 PM
> To: Robert Jördens 
> Cc: Grzegorz Kasprowicz ; artiq@lists.m-labs.hk
> Subject: Re: [ARTIQ] FW: initial specification of the project
> 
> Let me make clear that I don't have any specific opposition to FMC for the
> power/digital signals.  The only reason for considering other types of
> connectors would be either if the desired stackup height is not doable (this 
> is
> unlikely -- one .224" bullet e.g. corning A1A1-0001-02, plus two male
> connetors with .051" reference plane distance, e.g. Molex 74315-3312, gives
> a total SMP height of 8.28 mm, which works perfectly with the standard FMC
> stackup height of 8.5 mm board to board), or if there is not enough real
> estate on the board to meet the physical footprint requirements (FMC is
> larger than the QSE connectors I sent along, for example).
> 
> > -Original Message-
> > From: Robert Jördens [mailto:r...@m-labs.hk]
> > Sent: Tuesday, March 29, 2016 11:08 AM
> > To: Slichter, Daniel H. (Fed) 
> > Cc: Sébastien Bourdeauducq ; Grzegorz Kasprowicz
> > ; artiq@lists.m-labs.hk
> > Subject: Re: [ARTIQ] FW: initial specification of the project
> >
> > On Tue, Mar 29, 2016 at 5:16 PM, Slichter, Daniel H. (Fed)
> >  wrote:
> > > Yes, FMC could work but it's overkill in terms of pin count; one
> > > might be
> > able to find a smaller footprint connector with fewer pins, which
> > would be advantageous.  Frankly something as dumb and cheap as 2 mm
> > pin headers would do the job.
> >
> > Yes. A pin header would be dumb if there are better suggestions.
> > LPC FMC with 64 single ended signals is definitely not overkill if 40
> > signals is the estimated need. The grounding is unlikely to hurt.
> > There are certainly many other offers. But if there is such a strong
> > opposition to FMC, I would look for something where we can at least
> > expect a long term availability that is similar to the FMC usage lifespan.
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-29 Thread Slichter, Daniel H. (Fed)
> There are FMC-type connectors with much smaller number of pins (SEARAY
> series) Greg

Sure.  I think Robert wants to use the particular ones that are in the VITA FMC 
standard, for longevity purposes.  I happen think that pin headers are the 
cockroaches of board-to-board connectors; they will still be around after the 
nuclear holocaust wipes everything else out.

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Robert
> Jördens
> Sent: Tuesday, March 29, 2016 1:01 PM
> To: Sébastien Bourdeauducq 
> Cc: Grzegorz Kasprowicz ; artiq@lists.m-labs.hk;
> Slichter, Daniel H. (Fed) 
> Subject: Re: [ARTIQ] FW: initial specification of the project
> 
> On Tue, Mar 29, 2016 at 11:56 AM, Sébastien Bourdeauducq 
> wrote:
> > On Monday, 28 March 2016 6:30:52 PM HKT Slichter, Daniel H. (Fed) wrote:
> >> Thus for the two examples above, using digital connectors with a 9 mm
> >> or 11 mm total stackup height would give 250 um axial misalignment
> >> (.010"), which is a typical tolerance one would want to use anyway with
> SMP.
> >>
> >> More information is available in this application note:
> >>
> https://www.corning.com/media/worldwide/coc/documents/applications/
> mi
> >> crowave
> >> ApplicationNotes.pdf
> >
> > OK. Then mixing SMP with something else is fine IMO.
> 
> The other connector can well be FMC. We need at least ~40 signals other
> than the analog ones going to the cards. A bunch of different power supplies,
> SPI control lines, identification buses, switching, attenuation settings etc.
> Also since reliably reflowing SMP connectors manually to three hair widths is
> rather tricky, manual assembly is of the table now anyway. And FMC give us
> at least a form factor that has been tested very well. No need to reinvent the
> mezzanine here.
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-29 Thread Slichter, Daniel H. (Fed)
Let me make clear that I don't have any specific opposition to FMC for the 
power/digital signals.  The only reason for considering other types of 
connectors would be either if the desired stackup height is not doable (this is 
unlikely -- one .224" bullet e.g. corning A1A1-0001-02, plus two male connetors 
with .051" reference plane distance, e.g. Molex 74315-3312, gives a total SMP 
height of 8.28 mm, which works perfectly with the standard FMC stackup height 
of 8.5 mm board to board), or if there is not enough real estate on the board 
to meet the physical footprint requirements (FMC is larger than the QSE 
connectors I sent along, for example).  

> -Original Message-
> From: Robert Jördens [mailto:r...@m-labs.hk]
> Sent: Tuesday, March 29, 2016 11:08 AM
> To: Slichter, Daniel H. (Fed) 
> Cc: Sébastien Bourdeauducq ; Grzegorz Kasprowicz
> ; artiq@lists.m-labs.hk
> Subject: Re: [ARTIQ] FW: initial specification of the project
> 
> On Tue, Mar 29, 2016 at 5:16 PM, Slichter, Daniel H. (Fed)
>  wrote:
> > Yes, FMC could work but it's overkill in terms of pin count; one might be
> able to find a smaller footprint connector with fewer pins, which would be
> advantageous.  Frankly something as dumb and cheap as 2 mm pin headers
> would do the job.
> 
> Yes. A pin header would be dumb if there are better suggestions.
> LPC FMC with 64 single ended signals is definitely not overkill if 40 signals 
> is
> the estimated need. The grounding is unlikely to hurt.
> There are certainly many other offers. But if there is such a strong 
> opposition
> to FMC, I would look for something where we can at least expect a long term
> availability that is similar to the FMC usage lifespan.
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-29 Thread Slichter, Daniel H. (Fed)
How about something like this for board-to-board connector for power/digital?  
Allows 11 mm stackup, can do 40 pins in relatively small footprint, 
well-engineered mezzanine connector:

https://www.samtec.com/products/qse

There are of course many more options than just this, but just to show the 
alternatives to FMC.


___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-29 Thread Slichter, Daniel H. (Fed)
> > OK. Then mixing SMP with something else is fine IMO.

>

> The other connector can well be FMC. We need at least ~40 signals other

> than the analog ones going to the cards. A bunch of different power supplies,

> SPI control lines, identification buses, switching, attenuation settings etc.

> Also since reliably reflowing SMP connectors manually to three hair widths is

> rather tricky, manual assembly is of the table now anyway. And FMC give us

> at least a form factor that has been tested very well. No need to reinvent the

> mezzanine here.



Yes, FMC could work but it's overkill in terms of pin count; one might be able 
to find a smaller footprint connector with fewer pins, which would be 
advantageous.  Frankly something as dumb and cheap as 2 mm pin headers would do 
the job.



Manual assembly was never really one of the major concerns with these 
daughtercards, as many of the desired components are leadless or QFN packages 
with center ground pads, which are tricky for manual assembly anyway, 
especially if one cares about microwave performance.  However, many SMP 
connectors have a through hole design (see below for an example from Corning 
Gilbert, or from Molex at http://www.molex.com/pdm_docs/sd/734153320_sd.pdf ), 
so it's entirely possible to achieve the kind of lateral alignment tolerances 
required with manual assembly.  Cost-wise, the molex part quoted is less than 
$3 apiece on digikey at qty 750 (and $5 at qty 1), so it’s not like these 
connectors will be a major cost driver on the cards either.



[cid:image001.png@01D1899A.9C6CA5F0]
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-29 Thread Slichter, Daniel H. (Fed)
> If 65 dB between neighboring channels is the requirement, then
> comprehensive board level shielding appears to be required.

Yes, this will be necessary.  See my previous emails.
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-28 Thread Slichter, Daniel H. (Fed)
> Is there a digital/power board-to-board connector that is known to be
> compatible with SMP? Connectors of different types are often not meant to
> be used together and their heights can be significantly different - certainly 
> by
> more than 2.54mm.

One can purchase bullets of varying lengths to give the desired full stackup 
depth for SMP connectors. Bullet lengths of .243", .254", .286", .395", .517" 
are standard, for example, and custom bullet lengths are available.  The mating 
board connectors add further length to these bullets, typically .051" or .090" 
each.  Just to give two examples, two .051" connectors plus a .243" bullet is 
8.75 mm, and two .091" connectors plus a .243 bullet is 10.75 mm.  You 
typically run the SMP connectors with the bullets not inserted fully flush - 
this is called "axial misalignment".  The measured specification on this at 
frequencies below ~3.5 GHz (where we are concerned) is such that we should be 
able to tolerate .025" or even a bit more of axial misalignment and still have 
this not limit the overall signal performance.  Thus for the two examples 
above, using digital connectors with a 9 mm or 11 mm total stackup height would 
give 250 um axial misalignment (.010"), which is a typical tolerance one would 
want to use anyway with SMP.   

More information is available in this application note:
https://www.corning.com/media/worldwide/coc/documents/applications/microwaveApplicationNotes.pdf

There are many multipin connector types available suitable for power or digital 
signal transmission (remember, these digital signals will not be extremely high 
speed, definitely <100 MHz and probably <20 MHz given typical hardware they 
would be addressing) with stackups of 9 mm or 11 mm.

For comparison with FMC, the spec value on RF leakage for SMP is -80 dB to 3 
GHz (this should be measured to verify as well).  I will work on a test board 
that compares FMC with SMP using otherwise identical traces on the two PC 
boards.  
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-28 Thread Slichter, Daniel H. (Fed)
The beauty of SMP connectors is that they are explicitly designed for 
board-to-board applications with substantial tolerance for misalignment.  Each 
board has a male SMP connector, with a female-female "bullet" in between.  
These connectors, with the bullet in between, can tolerate substantial axial 
and radial misalignment (in excess of .010" - basically considerably larger 
than the fabrication tolerances of typical PCBs and PCB assembly) without 
degrading RF performance.  Then one would have one multipin connector for power 
and digital signals that fixes the board-to-board alignment, and the SMP 
connectors can absorb the slack as necessary based on fabrication/assembly 
tolerances for their placement.  

I agree that if we can get suitable performance out of an FMC or other 
single-connector solution, that would be better from a physical simplicity 
standpoint.  We need to test this.  I may try putting together a board to do so 
in the near term.  

> -Original Message-
> From: Sébastien Bourdeauducq [mailto:s...@m-labs.hk]
> Sent: Saturday, March 26, 2016 10:19 AM
> To: Slichter, Daniel H. (Fed) 
> Cc: Grzegorz Kasprowicz ; artiq@lists.m-labs.hk
> Subject: Re: [ARTIQ] FW: initial specification of the project
> 
> On Saturday, 26 March 2016 4:06:17 PM HKT Slichter, Daniel H. (Fed) wrote:
> > The cost savings from using FMC, which might amount to $50 per AMC,
> > are not worth if the crosstalk will make the cards not useful for 
> > researchers.
> 
> It's not only about cost of the connector - the RF daughter cards will often
> need some digital signals (e.g. SPI) for control. FMC provides plenty of pins
> for that. Mixing two different types of board-to-board connectors will cause
> mechanical problems and I think we should not do that. If two types of
> connectors are needed, one of them should use cables.
> 
> Sébastien

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] FW: initial specification of the project

2016-03-26 Thread Slichter, Daniel H. (Fed)
> > * we want to avoid RTMs and instead put the DAC/ADCs on the AMC card
> > and have analog plug-ins using the FMC form factor (see my document).
> > **Are you sure you would get noise performance from such setup that
> > satisfies you?
> 
> Unless the FMC connector is particularly bad with analog signals, I think it
> should not be worse than the current hardware.

I want to repeat what Sebastien has said, that we want the signals to come out 
the front, and to avoid the use of RTMs as the standard output.  There may be 
some special use cases (e.g. many channels of slow ADC) that *might* work with 
the RTM architecture, but for the DSP AMC cards we want all the DACs on the AMC 
card and their outputs routed immediately to the small RF/analog daughter cards.

I want to stress again that the levels of channel crosstalk relevant to quantum 
information/optical clock experiments are vastly more stringent than for 
typical signals propagating through large "high-speed" connectors.  I think it 
will be necessary to use minimal length unshielded traces and have multi-cavity 
shielding on the daughtercards to ensure low crosstalk.  The use of a connector 
like an FMC, even with grounding wires between differential pairs, is 
inevitably going to be worse than using dedicated board-to-board RF connectors 
like SMP/GPO or their smaller cousins GPPO/G3PO.  These connectors are 
explicitly designed for these types of applications, and allow for board 
misalignments etc.  The cost savings from using FMC, which might amount to $50 
per AMC, are not worth if the crosstalk will make the cards not useful for 
researchers.  

For reference, Samtec offers an intermediate solution called Isorate, which is 
designed to have higher isolation than typical high speed connectors while 
being cheaper than SMP.  They spec 80 dB isolation at 1.3 GHz and 70 dB at 7.6 
GHz, so probably we are talking between 90 and 75 dB isolation in our frequency 
range of interest for RF/microwave signals.  

Best,
Daniel
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] analog extension cards

2016-03-26 Thread Slichter, Daniel H. (Fed)
To clarify nomenclature, we have been referring to these as "RF daughter cards" 
previously.  These cards could potentially contain components such as RF 
amplifiers, operational/instrumentation amplifiers, filters, 
mixers/modulators/demodulators, splitters/combiners/hybrids, baluns, digital or 
analog attenuators, RF switches, frequency multipliers.  

There are three types of basic card designs that I think should be available 
from the beginning:

1. "Low frequency" - Signal bandwidth of a few MHz, swinging between +/- 10 V 
or so, suitable for ion trap transport waveforms or various DC or quasi-DC bias 
signals in general applications.  This would involve op amps/instrumentation 
amps running off +/- 15V supplies in a similar configuration to the current PDQ 
output stages.  Footprints for discrete component filters both before and after 
the amplifiers should be included.

2. "RF" - For synthesis of tones from a few MHz out to ~3.3 GHz, suitable for 
AOM drive or Be+/Mg+/Ca+/NV center microwave transitions.  This would involve a 
set of filters (common footprint, stuff boards with different cutoff parts to 
define band of interest -- these can be left open for users, or we can choose 
one or two basic frequency sets and they can run their own custom assembly 
order from the fab/layout docs if they want something different) followed by an 
RF amplifier stage (ERA-4SM is a good broadband low-phase-noise selection), a 
digital step attenuator, and a fast high-isolation RF switch.

3. "Upconverting" - For synthesis of tones beyond ~3.3 GHz, suitable for Yb+ or 
superconducting qubit microwave transitions.  The board would have an input 
connector for an externally generated microwave carrier, split and sent to the 
LO ports of a set of mixers/modulators.  We should decide if these needs to be 
IQ mixers or if regular mixers are sufficient.  There will be filters (again, 
common footprint for a choice of frequencies) between the DAC outputs and mixer 
IF ports.  Each mixer RF port will be followed by an amplifier, a digital step 
attenuator, and a fast high-isolation RF switch.

Again, I stress strongly that I am *not* satisfied using FMC connectors for 
these cards until someone has tested and verified properties like crosstalk.  
This issue has the potential the render the entire hardware project useless 
(e.g. if crosstalk levels are too high), and therefore we need to be very 
careful about design here.  

For the "RF" and "upconverting" boards, it will most likely be important to 
have board-level shielding cavities to reduce crosstalk between channels on the 
daughtercards.  It is possible to have these custom designed and produced 
inexpensively at scale (~$15-$20/board).  

Best,
Daniel

> -Original Message-
> From: ARTIQ [mailto:artiq-boun...@lists.m-labs.hk] On Behalf Of Sébastien
> Bourdeauducq
> Sent: Saturday, March 26, 2016 2:57 AM
> To: artiq@lists.m-labs.hk
> Subject: [ARTIQ] analog extension cards
> 
> Hi,
> 
> any ideas of what analog extensions in FMC form factor for the DSP card
> should be available first? Mixers I guess, but what are the specs? Amplifiers?
> 
> Sébastien
> 
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] [RFC] timeline behavior of coredevice API kernels

2016-03-04 Thread Slichter, Daniel H. (Fed)
> > I think SPI writes should occur in the "past" and SPI reads should occur in
> the "future".  This is based on the notion that the time you care about (and
> the one which is simplest to think about) really has to do with whether or not
> the slave device is "ready" in the appropriate sense.  For writes, the slave 
> is
> "ready" once it has received the information you wanted to write to it, i.e.
> the end of the write.  For reads, the slave must be "ready" at the start of 
> the
> read transaction.
> 
> This doesn't really work. An SPI transaction can be mixed reading and writing.
> And for many devices they need to be mixed transactions. Also most devices
> need to be ready when you start _writing_ the address you want to _read_
> from. "Device readiness" is not a good point in time for generic SPI
> transactions. Bus idle is.

I don't buy this.  I think the SPI implementation should be as device-agnostic 
as possible, with all device-based specifics built in at a higher, device 
driver level.  For SPI, device "readiness" is only an indication of whether 
bits are ready to be clocked out (for reads), or whether bits have completed 
being clocked in (for writes).  If you want to talk about a device being 
"ready" in the sense of "I have completed conversion of an analog signal to 
digital", or "I have updated my DAC outputs", these things are for device 
drivers to determine, not the lowest-level SPI implementation.  

> Having spi.write() be zero delay is not how you can conveniently use it. If 
> you
> ever do more than two transactions (writes to different
> registers) back to back, you need to figure out the delay required and apply
> it. That is why spi.write() should apply the delay itself and additionally 
> offer a
> way to determine the delay so it can be used to build zero-delay methods. 

If you split SPI into atomic units of write only and read only (understanding 
that this is slightly different from your current proposal), and you allow a 
programmable delay for the "now" time on the end of write or start of read (as 
you suggest here), this is a totally generic way of implementing SPI without 
needing to combing reading and writing in a single transaction.  Then the 
definitions of "now" as being at the end of a write or the beginning of a read 
(including delays before last/first clock edge respectively) plus the optional 
delay allows one to build up multiple transactions back to back in a clean way 
as you suggest.  

> > The performance of a FUD or LDAC should be separate from the SPI
> transaction itself.  Some transactions do not want/need a FUD-like signal --
> for example each atomic SPI call writes up to 32 bits in the current scheme.
> For programming a DDS, for example, one may wish to have several SPI calls
> (to write amplitude, FTW, POW) without issuing a FUD until all writes are
> completed, or one might wish to update registers on several DDS chips
> sharing one SPI bus and then perform a simultaneous FUD on all at once.
> Also, different devices will have different allowed latencies between the
> completion of an SPI transaction and updating internal registers with FUD or
> LDAC, and this should be handled either manually by the user, or preferably
> by their writing higher-level methods specific to the individual hardware
> ("device drivers").  SPI doesn't know about FUD or LDAC, nor should it.  This
> simplifies the SPI and puts the complications of individual devices onto
> higher-level code, which is desirable.
>
> Are suggesting something different from what I said about the distinction
> between spi.write() and spi_dac.set()?

My point was that spi.write() should not have any knowledge of FUD or LDAC; it 
wasn't clear to me that you were saying this explicitly in your email, but if 
you were, then I agree.  If you have a driver for an spi_dac or spi_dds, then 
it is the responsibility of the respective set() methods to figure out the 
appropriate times for FUD/LDAC.  For example, LDAC updates the DAC outputs 
immediately upon going low (as long as BUSY is not low) for the AD5370, but for 
an AD9914, the time that matters is when the SYNC_CLK of the DDS has a rising 
edge when FUD is high.  So you have different drivers for these two types of 
hardware.  For spi_dds.set(), the "now" can be at the deassertion of FUD.  

The core device will know the rising edge of SYNC_CLK because we plan to use a 
loopback TTL line in the same TTL breakout as feeding back SYNC_CLK from the 
SPI DDS chip into another TTL input, so one can establish a phase relationship 
between a TTL pulse at the location of the SPI DDS generated synchronously with 
the RTIO clock and the DDS SYNC_CLK (which is at the same frequency).  This 
will allow us to do a deterministic FUD on the SPI DDS chips by choosing the 
phase (fine timestamp) of the FUD pulse with respect to the RTIO clock 
appropriately.  Thus the deassertion of FUD can have a deterministic 
relationship with the time at which the DD

Re: [ARTIQ] [RFC] timeline behavior of coredevice API kernels

2016-03-03 Thread Slichter, Daniel H. (Fed)
 
> For kernels that are dominantly referring to a single point in the timeline
> (ttl.on(), and also both spi_dac.set(), and dds.set() even though they both
> involve a long sequence of actions), their potential "preparatory" and
> "cleanup" actions should be scheduled such that the "effect" is located at the
> current point on the timeline. And they should apply net zero net delay on
> the timeline. That means that DDS and SPI DAC do all bus writing in the past
> before asserting FUD and LDAC in the present. But the deassertion of FUD
> and LDAC happens in the future. An spi_adc.get() would sample at `now` but
> would do the readout in the future.

I think SPI writes should occur in the "past" and SPI reads should occur in the 
"future".  This is based on the notion that the time you care about (and the 
one which is simplest to think about) really has to do with whether or not the 
slave device is "ready" in the appropriate sense.  For writes, the slave is 
"ready" once it has received the information you wanted to write to it, i.e. 
the end of the write.  For reads, the slave must be "ready" at the start of the 
read transaction.  

I would then argue that the SPI functionality should be such that an SPI write 
transaction is completed, by which I mean that the SPI clock at the output of 
the master has returned to its default level exactly at "now".  For an SPI read 
transaction, the SPI clock should depart from its default level exactly at 
"now".  It may be acceptable if one simply guarantees that for writes, the SPI 
clock has returned to default level at some time before "now", and for reads 
that the SPI clock will depart from its default level sometime after "now", as 
long as the time duration between either of these actions and "now" is 
explicitly bounded and is "small" in the sense of not being comparable to the 
duration of a full atomic SPI transaction as implemented.  

The performance of a FUD or LDAC should be separate from the SPI transaction 
itself.  Some transactions do not want/need a FUD-like signal -- for example 
each atomic SPI call writes up to 32 bits in the current scheme.  For 
programming a DDS, for example, one may wish to have several SPI calls (to 
write amplitude, FTW, POW) without issuing a FUD until all writes are 
completed, or one might wish to update registers on several DDS chips sharing 
one SPI bus and then perform a simultaneous FUD on all at once.  Also, 
different devices will have different allowed latencies between the completion 
of an SPI transaction and updating internal registers with FUD or LDAC, and 
this should be handled either manually by the user, or preferably by their 
writing higher-level methods specific to the individual hardware ("device 
drivers").  SPI doesn't know about FUD or LDAC, nor should it.  This simplifies 
the SPI and puts the complications of individual devices onto higher-level 
code, which is desirable.  

For some devices, a read transaction necessarily involves a prior write 
transaction announcing what is desired to be read (e.g. DDS register readback). 
 In this instance, the functionality should be split into two SPI calls, one 
for a write (issuing the command), and one for a read (reading back the 
result), allowing for a delay to be inserted (manually or at a "device driver" 
level) between these two transactions as required by the particular device.  
This delay will then give the exact time required between the last edge of the 
"write" clock and the first edge of the "read" clock, which is generally what 
is specified on datasheets.  

> Kernels that dominantly refer to a time interval (ttl.pulse(),
> ramsey_pulse_sequence()) or those where a unique point in time can not be
> assigned (spi.write(): some devices use the last bit clocked in, others the
> deassertion of cs_n) 

One solution here might be to add an input parameter to spi.write() and 
spi.read() which indicates whether or not the chip select should be left 
asserted at the end of the transaction or not.  If so, the point in time for 
read and write methods is the last clock edge as described above; if not, then 
the deassertion time is used.  Another wrinkle here is that different chips 
have different requirements on the delay between assertion of cs/first clock 
edge and last clock edge/deassertion of cs, so probably these methods should 
also include delays relative to first/last clock edges for 
assertion/deassertion of cs, respectively.  This would allow for situations 
like the AD9914, where cs must remain asserted after writing a read instruction 
through the end of the subsequent readback, being handled with two separate 
calls to write() and read(), with a delay in between, as outlined above.  

> should schedule their actions between now (at kernel
> entry) and when they are done (kernel return). They should apply the
> appropriate delay to the timeline to ensure the same kernel can immediately
> be called again with an equivalent result. And