Products > Test Equipment

A High-Performance Open Source Oscilloscope: development log & future ideas

<< < (62/71) > >>

nctnico:
HDMI is also a good option indeed. Lot's of connector choices nowadays to bring high speed interfaces to the outside.

tom66:
Just got this working.


~130kwaves/sec using the original, buggy GL renderer - that managed to persistently lock up the Pi's GPU driver.  Now, I know we're not necessarily competing on waveform rate here but this has barely been optimised and already outpaces ArmWave by 6x, which should come as no great surprise.  It's doing dot join too (can't necessarily see that from the rendered output as it's a sine wave, but it is joining each point with a vector, which used to kill performance of the older renderer.) 

Caveats:  Internally generated waveform,  not connected to Zynq yet.  Seems to only make use of about half of the GPU's compute units, and is probably inefficiently designed.  Does seem to struggle with longer waveform lengths (>4k points),  need to investigate why.  No zerocopy for now, so every waveform buffer is copied into GPU space on each frame,  but this should be fairly trivial to figure out. 

Currently I render to an offscreen 1536x256 buffer and then scale that up to meet the window size using linear interpolation.  This seems to hide some quantisation artefacts but might be undesirable.  However, comparing e.g. Rigol DS1000Z  and Keysight 2000X,  they both seem to do some kind of linear interpolation in the vertical axis, so I think this is quite normal.  I can use a nearest-neighbour scaler, but it looks awfully ugly.

Next week's challenge, I think, will be to play with some DSP.  But for now,  it's time to sleep. 

Pitrsek:

--- Quote from: nctnico on January 03, 2021, 01:22:55 am ---
--- Quote from: tom66 on January 02, 2021, 11:28:35 pm ---
PS.  Not worried about differential routing.  The DDR3 memory on the prototype was the hardest part.  CSI-2 bus was comparably easy.  CAD tools, it's all CircuitMaker/Altium.  Am considering whether I should move to KiCad though to keep tools open.

--- End quote ---
I'd stick to Altium for now. The costs for producing a prototype are so high that it is unlikely many people will be changing the layout and if they do they might want a completely different form factor and start from scratch.

--- End quote ---
I can produce a lengthy list of why KiCad sucks, but for open source project it makes great difference if the tool is open or not. Not just for collaborators, but also for learning and fooling around - just to download the project and play with it. So although I'm no way KiCad evangelist, I have to suggest to switch to KiCad, as de facto standard open source tool. I'd suggest switch to HorizonEDA - this i use for my hobby projects, so far I like it very much. It supports length matching, but I haven't used it for high speed routing, so I can't attest as to how usable it is in this department.  In some aspects it is much more polished tool than KiCad, although it does not have the breadth of KiCad.

Depending on how things turns out in my life, i might have some spare time on my hands in upcoming months. I can do layout, power integrity/power supply design, analog stuff, reviews... PM me if you'd be interested.

tom66:
Would certainly be interested in that kind of thing Pitrsek.  I think KiCAD is probably the most developed of the FOSS toolchains.  The problem is DDR3 routing,  differential pairs length matching etc,  is a lot harder without proper EDA tool.   You need to be able to length match in groups,  highlight group colours separately,  confidently DRC check,  and dynamic push/shove routing is really nice too.   I used to use gEDA for open source stuff,  the schematic editor is fine,   but the PCB tool is not modern enough to keep up with many high speed designs and that's problematic, although I last used it in 2015, maybe it has moved on since. 

Apologies for not updating,  just been very busy here and continue to be busy.  I hope to have some proper time to give this project a look soon, the Jetson Nano is sitting on my desk waiting for me.

Pitrsek:
Length tuning, differential pairs, skew in differential pairs, push and shove, net classes - it's all there. There are quite a few boards with DDR3 already done with Kicad
https://kicad.org/made-with-kicad/categories/Single-board-Computer/ One is actually with Zynq.

The rules are probably the biggest difference so far, as usually the target length is defined manually. I would not call it on par with the pro tools, but it seems definitely usable.
HorizonEDA router is the one from kicad.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod