Guild icon
wafer.space Community
ℹ️ - Information / general
Welcome to wafer.space - documentation at wafer.space github - buy at buy.wafer.space - archives at discord.wafer.space
Between 2026-06-30 11:59 p.m. and 2026-08-01 12:00 a.m.
Avatar
Avatar
tnt
Need a moderator .. @Leo Moser (mole99) / @Tim 'mithro' Ansell / @Andrew Wingate ?
Tim 'mithro' Ansell 2026-07-01 3:14 a.m.
Was that spam or something else?
👍 2
Avatar
It was spam
7:27 a.m.
❤️ 2
😍 2
Chips4Makers aka Staf Verhaegen started a thread. 2026-07-01 8:10 a.m.
Avatar
quick sanity check before I submit - Should I set the ID to something that's unlikely to clash?
10:15 a.m.
or is that set wafer.space side when the precheck is run?
Avatar
Leo Moser (mole99) 2026-07-01 10:24 a.m.
The precheck does not check it against the other IDs, but the platform should prevent you from choosing an existing ID. The precheck will update the ID macros in your design with your chosen ID.
Avatar
ah, cool.
11:27 a.m.
thank you
👌 1
Avatar
always_ff_rohan 2026-07-01 11:59 a.m.
@Tim 'mithro' Ansell When is the next shuttle run scheduled?
Avatar
I suspect a few weeks after this run has been delivered so people can examine a design and submit an updated version
2:21 p.m.
so about 2 weeks after Early Q4 2026 Bare dies and packaged parts shipped to customers
Avatar
Well at some point runs should be overlapping.
Avatar
Okay, the color NTSC signal generator is coming along really well. It looks like I will be able to generate all the colors, just really badly.
7:14 p.m.
If this works, it’ll make for an interesting single-IO video output option
7:15 p.m.
I’m also going to attempt PAL again, but expect that one to catastrophically break again
7:15 p.m.
I’m not good at making demos, so I’ll continue to just display test patterns
7:15 p.m.
Avatar
Avatar
Tholin
I’m not good at making demos, so I’ll continue to just display test patterns
just adapt one of the demo's that looks good and has a friendly license to your modulator's digital interface?
Avatar
Not really a thing since a RGB to YIQ converter would be too many gates, I think
Avatar
just check it runs at less or equal resolution vs. your modulator's needs, and black box it as necessary
Avatar
Avatar
Tholin
Not really a thing since a RGB to YIQ converter would be too many gates, I think
ehhhh
9:24 p.m.
Avatar
Oops, took me until now to get a repo going https://github.com/AvalonSemiconductors/ws-submission-2026
Multi-project die. Contribute to AvalonSemiconductors/ws-submission-2026 development by creating an account on GitHub.
11:56 p.m.
The functional components are actually done, leaving me with a comfortable two weeks to get the art ready. There is a block of free space on the die reserved for it.
Avatar
@Tim 'mithro' Ansell This is the project I wish to use to officially test my SCL, as well as my multi-project setup using my SCL. I’m also using the level-shifting IO pads, but for having a 5V IO voltage and 3.3V core voltage, which should be interesting. Also has layouts generated by my custom flow tool, analog layouts meant for 3.3V operation and, of course, a bunch of CPUs. Hoping to get a lot of mileage out of this one when it comes to testing things.
💜 2
Avatar
Avatar
carlfk
Click to see attachment 🖼️
Nice setup
Avatar
I fixed the antenna violations so.... I’m actually done way ahead of deadline for once. This is highly unusual!
💯 2
3:39 p.m.
I’m just waiting for the art now
3:39 p.m.
I guess I’ll just sit here and wait for two weeks, then go get waffles?
Avatar
Leo Moser (mole99) 2026-07-02 4:02 p.m.
In case you're bored, a mux4 would be a great addition to your SCL 😉
Avatar
Avatar
Tholin
I’m not good at making demos, so I’ll continue to just display test patterns
is that in a repo? Ste ps1 guy loves color bars, loves analog and vga. might want to see what you are doing.
7:36 p.m.
oh look, a repo appeared!
Avatar
Avatar
Leo Moser (mole99)
In case you're bored, a mux4 would be a great addition to your SCL 😉
We will see. I am burnt out right now.
Avatar
Avatar
Tholin
I guess I’ll just sit here and wait for two weeks, then go get waffles?
In your position I'd think scripting together a flow of minting a lot of .nodeset's to cover all multistable/regenerative-feedback node voltages,
  • through probably the LVS tooling
  • and some minor singled-out-cell pseudo-DC-op-point sims where you'd start the transient with the regular DC op point initialization as always, then throw whatever waveforms against the inputs that are needed to bring the internal state into the target state, then just stop imposing a maximum step size and let the time integrator run for like an entire simulated minute or so, to then harvest the final state's node voltages from it (for the correct PVT corner! If it's too different one would risk the nonlinear solver potentially skipping across the forbidden band and deciding the flip-flop is actually better off in the opposite state; I do think in principle this could be solved by using the advanced continuation functionality:
the attached user guide's "Figure 8-3" "manual replication of MOSFET contonuation", amended with a 3rd conparam entry that happens after the mosfet:gainscale and mosfet:nltermscale entries, which will be essentially the output conductance of the current-type B-source which hard-forces the stateful digital logic cell's internal node voltage to the reference DC static voltage of the desired internal state of that particular cell, and is ramped from a very high conductance (strong but still sufficciently numerically behaved especially when it comes to transitioning out of the forced state; I'd probably just start with 1 siemens for any vaguely normal CMOS SCL internal nodes) down to literally 0 (which will have it be open-circuit at transient sim runtime). The parameter names legal to put into conparam are the same ones that are also legal to .STEP (the docs for how to casually do .STEP are far far easier to approach/read/understand than the fancy continuation stuffs). .options loca stepper=1 predictor=1 stepcontrol=1 could be semi-necessary to (properly/reliably) handle the effects of combinatorial loops through the (non-transparent at the time of the continuation solving!) flip-flops; if the continuation DC OP point solve ahead of the transient sim itself takes too long it'd be worth testing whether it's sufficciently robust with the tangent predictor 0 and thus the downgrade from the arc-length continuation stepper=1 to stepper=0. Though I guess maybe it has to do continuation over the output resistance and push that out to near-infinity in the continuation solve process (default is like 100 exa); the specified parameter constant value applicable outside of the special circumstances in which the LOCA does continuation on it, will need to be a sentinel (I'd suggest exact 0 or "anything negative"), as it shall be as non-interacting and as sparsified-away by the linear solver and all as possible (it's not a problem because the discintinuity doesn't happen while a non-linear solver tries to solve the system of equations and could have called the behavioral function with node voltages/branch currents far from anythign physical, because that's just discintinuos in a parameter, and that parameter doesn't change during any transient time integration...). Overall the idea I'm proposing is to use gate-level digital sim (post-techmapping (and any retiming and other such intrusive changes to the logic) verilog-sim basically 😄 ) to fast-forward to an interesting moment, snapshot all stateful state, map that against pre-computed DC op points of the cell library, use the LVS matching provisions to match that state to post-PEX SPICE node identifiers, emit a spice file to-be-.include'd full of those continuation-capable cell's-internal-node-forcing B-sources (test if things are faster when forcing combinatorial nets as well, or if the additional effort expended negates the faster convergence; .nodeset is likely cheaper for those though it's just not reliable), and start the .tran sim.
8:16 p.m.
(I can help later next week on the matter if you want; I'm just not at all deep enough int the digital simulation and LVS tooling side to handle that side of this simulation-type-marriage.)
Avatar
Goal IMO would be to (1) test some particularly questionable timing paths that came up in static timing analysis, (2) check if interaction between digital and analog aspects behaves sufficiently well/nicely to not be concerned about mixed-signal features being DOA due to oversights in the analog/digital interface specs, and (3) sanity check that at least normal interaction with any of the non-SCL parts of the chip (any of those) shows no signs of anythign shorting out or being close enough to shorting out to be nearly-equivalent. (I'm still mildy traumatized by how you (not-)handled the excessive current draw/heating of the Run1 die's DAC's buffers.) (The glitching of the video signal you've blamed on the lack of latching of the digital feed to the DACs is actually something I'd file under the above mentioned reason number 2, as it's one thing to accept the glitching if one is aware of it, but a whole nother thing to not have expected it/thought about it being possibly an issue.) (I'm not sure but depending on what you spit out of the NTSC modulator, like in theory there is place for the audio carrier, parts of the functionality are contingent on non-terrible artifacts/interference behavior, as e.g. audio will eventually hurt or at least give headaches if it's bad enough with some artifacts at least.)
Avatar
Avatar
namibj
In your position I'd think scripting together a flow of minting a lot of .nodeset's to cover all multistable/regenerative-feedback node voltages,
  • through probably the LVS tooling
  • and some minor singled-out-cell pseudo-DC-op-point sims where you'd start the transient with the regular DC op point initialization as always, then throw whatever waveforms against the inputs that are needed to bring the internal state into the target state, then just stop imposing a maximum step size and let the time integrator run for like an entire simulated minute or so, to then harvest the final state's node voltages from it (for the correct PVT corner! If it's too different one would risk the nonlinear solver potentially skipping across the forbidden band and deciding the flip-flop is actually better off in the opposite state; I do think in principle this could be solved by using the advanced continuation functionality:
the attached user guide's "Figure 8-3" "manual replication of MOSFET contonuation", amended with a 3rd conparam entry that happens after the mosfet:gainscale and mosfet:nltermscale entries, which will be essentially the output conductance of the current-type B-source which hard-forces the stateful digital logic cell's internal node voltage to the reference DC static voltage of the desired internal state of that particular cell, and is ramped from a very high conductance (strong but still sufficciently numerically behaved especially when it comes to transitioning out of the forced state; I'd probably just start with 1 siemens for any vaguely normal CMOS SCL internal nodes) down to literally 0 (which will have it be open-circuit at transient sim runtime). The parameter names legal to put into conparam are the same ones that are also legal to .STEP (the docs for how to casually do .STEP are far far easier to approach/read/understand than the fancy continuation stuffs). .options loca stepper=1 predictor=1 stepcontrol=1 could be semi-necessary to (properly/reliably) handle the effects of combinatorial loops through the (non-transparent at the time of the continuation solving!) flip-flops; if the continuation DC OP point solve ahead of the transient sim itself takes too long it'd be worth testing whether it's sufficciently robust with the tangent predictor 0 and thus the downgrade from the arc-length continuation stepper=1 to stepper=0. Though I guess maybe it has to do continuation over the output resistance and push that out to near-infinity in the continuation solve process (default is like 100 exa); the specified parameter constant value applicable outside of the special circumstances in which the LOCA does continuation on it, will need to be a sentinel (I'd suggest exact 0 or "anything negative"), as it shall be as non-interacting and as sparsified-away by the linear solver and all as possible (it's not a problem because the discintinuity doesn't happen while a non-linear solver tries to solve the system of equations and could have called the behavioral function with node voltages/branch currents far from anythign physical, because that's just discintinuos in a parameter, and that parameter doesn't change during any transient time integration...). Overall the idea I'm proposing is to use gate-level digital sim (post-techmapping (and any retiming and other such intrusive changes to the logic) verilog-sim basically 😄 ) to fast-forward to an interesting moment, snapshot all stateful state, map that against pre-computed DC op points of the cell library, use the LVS matching provisions to match that state to post-PEX SPICE node identifiers, emit a spice file to-be-.include'd full of those continuation-capable cell's-internal-node-forcing B-sources (test if things are faster when forcing combinatorial nets as well, or if the additional effort expended negates the faster convergence; .nodeset is likely cheaper for those though it's just not reliable), and start the .tran sim.
forgot to attach the file
7:56 p.m.
7:56 p.m.
7:57 p.m.
I apologize for being this late to realize
7:58 p.m.
(that the state of the tooling outside magic is beyond questionable, as it's arguably unacceptable.... it's HORRIBLE do target with klayout unles sone sticks to digital SCL only, and even there tholin knows all too well how not-tuned the tooling is to deal with this process..... antenna violations!)
Avatar
....I guess the teapeout deadline there has now since really taken hold/cemented itself as final
Avatar
I actually have a single unused pad on my die. How unusual.
Avatar
Avatar
namibj
@Thomas Pluck 2.1 do you guys have a functioning nix shell flake with a KLayout where your nice PCells work ?
Thomas Pluck 2.1 2026-07-04 12:57 p.m.
Probably needs to a PR to nix-eda, we don't support this.
Avatar
Thomas Pluck 2.1 2026-07-04 1:24 p.m.
Taking a closer look, you only seem to 3 major semver versions behind - so that might be a start
1:49 p.m.
Not gonna do too many runs. I have to do manual edits to the GDSII file each time.
7:26 p.m.
it can be near the edge - short and only sacrifices a few working die
7:30 p.m.
for imaging attempts.
7:31 p.m.
also: if someone can use some of their unused area for some large blobs so that we have an easy target to slice into
7:32 p.m.
regardless of how we cut the die
Avatar
Avatar
carlfk
also: if someone can use some of their unused area for some large blobs so that we have an easy target to slice into
Andrew Wingate 2026-07-04 7:35 p.m.
There are plenty of unusable die near the edges. still whole size, but creep into the exclusion zone
Avatar
Avatar
Andrew Wingate
There are plenty of unusable die near the edges. still whole size, but creep into the exclusion zone
do you have a image of the cut pattern?
7:38 p.m.
I've seen it. can't find it.
7:39 p.m.
either run - or even a fictional run
Avatar
Andrew Wingate 2026-07-04 7:40 p.m.
next run
7:41 p.m.
...maybe
Avatar
fine for me to scribble conctpt art :p
8:25 p.m.
assuming we can get one bonus cut on only one wafer, then one or more of those can add some ... shapes? that the cut will slice
8:28 p.m.
given the timeline, don't need to wait for cut confirmation - just shove the shapes into existing design and maybe something will happen
Avatar
Avatar
carlfk
Click to see attachment 🖼️
Andrew Wingate 2026-07-04 8:31 p.m.
what are you hoping to get from this? you just would get a bunch more half height dies?
Avatar
image it in Peter's SEM (edited)
8:32 p.m.
er.
Avatar
Andrew Wingate 2026-07-04 8:33 p.m.
why not just let me give you some of the scrap ones?
Avatar
this cut will destroy whatever. but I'm assming it will be a nice clean cut. not sure how else to get an edge view
8:33 p.m.
how do we cut?
Avatar
Andrew Wingate 2026-07-04 8:34 p.m.
Ah, I see. you're looking for a cross section of active silicon, not just in the kerf
Avatar
Andrew Wingate 2026-07-04 8:35 p.m.
there are a number of test features that GF puts in the middle of the reticles (the blank spaces) I can just give you that. That's also active
8:35 p.m.
and those are arbitrarily cut as they don't follow our patterns
Avatar
but we don't know what should be there, so we can't verify design vs reality right?
8:37 p.m.
Peter is skeptical we can measure - gonna go play today and see what happens
💜 1
💯 1
Avatar
Andrew Wingate 2026-07-04 8:38 p.m.
I doubt even the edge from a cut that you are suggesting is clean enough to do what you hope it will. At that scale it probably looks like garbage.
Avatar
Avatar
carlfk
Peter is skeptical we can measure - gonna go play today and see what happens
Andrew Wingate 2026-07-04 8:38 p.m.
Looking forward to the results. Make sure Peter puts them somewhere on the internet so people can see them.
Avatar
thats not a thing Peter does :p
😩 1
8:39 p.m.
Ill take a picture of the sceeen with my phone
🤦 1
Avatar
Avatar
Andrew Wingate
I doubt even the edge from a cut that you are suggesting is clean enough to do what you hope it will. At that scale it probably looks like garbage.
yeah there's no way it'll be clean enough for imaging, will definitely need more grinding/lapping to get past the damaged kerf zone. So you'd still need to do some detective work to figure out what part of the circuit you're looking at
💜 1
Avatar
I should probably stop trying to solve a problem I don't have yet
Avatar
here's a die I cross-sectioned and lapped up to like 2000 grit iirc (something around there). Not particularly careful or good lapping, and the results are notably rough because of it. Silicon bottom, embedding epoxy top. You can see where the silicon tore out and fractured, big furrows from improper lapping through the stages, etc. Straight from a saw it'll be a nightmare mess of torn up chunks, no real chance of seeing anything interesting imo
👍 1
9:13 p.m.
(stealth dicing might do better since it's a clean'ish break instead of saw? dunno)
Avatar
I have a flawed something - the only cut I have examined was bare wafer, no layers
11:18 p.m.
under optical - the cut serface was mirror shiney perfect
5:29 a.m.
so just now I figured out the layers don't go to the edge of the die
5:31 a.m.
Avatar
ima break a w.s die into pieces. any suggestions on how?
Avatar
pinch with channel lock until it breaks into 5+ pieces.
6:30 a.m.
6:30 a.m.
that's a w.s die.
6:34 a.m.
Avatar
@Andrew Wingate is the purchase slots still available to submit clean GDS for 14 July 2026? (edited)
Avatar
Welp, lvs hard, lvs very not optional though 🙁
Avatar
Avatar
Ravi Nataraju
@Andrew Wingate is the purchase slots still available to submit clean GDS for 14 July 2026? (edited)
Tim 'mithro' Ansell 2026-07-05 1:20 p.m.
No, the purchase deadline was 30 June 2026 @ 11:59 PM AoE
👍 1
Avatar
Avatar
carlfk
I have a flawed something - the only cut I have examined was bare wafer, no layers
Tim 'mithro' Ansell 2026-07-05 1:22 p.m.
Package molding Generally epoxy / silica Paddle / Lead Frame Generally copper Silicon die Region with transistors and metal layers Silver conductive epoxy 5x objective ~4 images 10x objective ~8 images
Avatar
Tim 'mithro' Ansell 2026-07-05 1:25 p.m.
Basically, the "structures" are in the very top part of the silicon - like maybe the top <5% or something.
Avatar
Avatar
Tim 'mithro' Ansell
Basically, the "structures" are in the very top part of the silicon - like maybe the top <5% or something.
Tim 'mithro' Ansell 2026-07-05 1:26 p.m.
1:29 p.m.
@carlfk - The Silicon Prawn Discord is probably a good source of advice / hints / etc
Avatar
Avatar
tnt
Click to see attachment 🖼️
If I can help somehow to enable functional extraction for bent-poly-on-comp, including preparing test structures necessary to verify and adjust calibration coefficients from e-test efforts, I'd like to try getting at least something functional into Run2. @Tim Edwards I'd assume the current extraction routines don't put any notable care into dealing with bent-poly-on-comp if they even support that without errors at all?
Avatar
@namibj : Extraction of bent poly might differ slightly from the modeled dimensions, but I put "reasonable" methods into magic for dealing with bends in gates because I have several friends/colleagues who do space-qualified chips and need that extraction for annular FETs. It will calculated the centerline through bends, ignore connecting tabs out to the edge, and if necessary, match differing lengths of segments to obtain a correct effective width.
Avatar
Avatar
Tim Edwards
@namibj : Extraction of bent poly might differ slightly from the modeled dimensions, but I put "reasonable" methods into magic for dealing with bends in gates because I have several friends/colleagues who do space-qualified chips and need that extraction for annular FETs. It will calculated the centerline through bends, ignore connecting tabs out to the edge, and if necessary, match differing lengths of segments to obtain a correct effective width.
Great; if there's anything in particular I could do so we may calibrate that extraction ahead of Run3, that'd be awesome. IIUC, annular fets could maximize the gm/Cd at least at small enough diameters, compared to the classic multi-finger structures (almost) all the open PDK PCells produce for the generic CMOS transistors?
5:24 p.m.
But even then, the image I replied to should already beat the classic finger structure in drain/source junction capacitance, I'd think.
Avatar
@namibj : I am starting a project to make a radiation-tolerant standard cell library using annular FETs for space applications, hoping that (per recent comments on the spASICs page) there will be another opportunity to launch a properly radiation-tolerant microprocessor into space. For now, I am targeting GF180MCU because it's the cheapest option, but I am not going to be ready to have anything on Run 2. I expect to have something ready by Run 3.
💯 1
💜 1
5:29 p.m.
(I am also working on automating insertion of triple-voting registers into LibreLane, and if time permits, I will work on ECC for the SRAM.)
Avatar
Avatar
Tim Edwards
@namibj : I am starting a project to make a radiation-tolerant standard cell library using annular FETs for space applications, hoping that (per recent comments on the spASICs page) there will be another opportunity to launch a properly radiation-tolerant microprocessor into space. For now, I am targeting GF180MCU because it's the cheapest option, but I am not going to be ready to have anything on Run 2. I expect to have something ready by Run 3.
Yeah I wasn't expecting something that big, just some smaller structures that could be used with a combination of extractor and model-parameter tuning, think MOSBIUS-like stuff that could be configured in different ways to exercise the transistors in many ways to gather much more broad calibration data.
Avatar
If you put down some test devices on Run 2 it would be very helpful.
Avatar
Avatar
Tim Edwards
If you put down some test devices on Run 2 it would be very helpful.
Yeah that's kind of my plan I just don't know particularly how they should look, nor what @Tim 'mithro' Ansell has in mind for how they'd need to be interfaced to get e-tested. I'll be busy catching back up with life for the next 2~4 days though, so feel free to think a bit more slowly about what'd seem like a decent idea there. (I'd also love to get shorter-channel native nmos covered if practical, as per previous discussion there are no SPICE models for the 3v3 oxide ones, and the ones for 6v0 oxide stop at fairly long channels under arguments of "but they'd be leaky when off", which to my understanding should be more a question of how far the gate is pulled below threshold than whether their channel dares to go below 1.8μm length.)
Avatar
(I do still wish to understand why the high sheet poly reistors would reasonably need a minimum 1um width; given that they are solely defined by Poly2 drawing in a Resistor zone for width and the spacing of Pplus zones for the contacts at the ends for length; also salicide block needs to overlap the length and current density is limited, but those basically all apply on sky130 as well other than that the minimum width is about half on that.)
Avatar
Could be entirely because the modelling below 1um width is not precise enough.
Avatar
Avatar
tnt
Could be entirely because the modelling below 1um width is not precise enough.
You mean they would "need" their spice models to have an extra bin or two for narrower resistors?
Avatar
I didn't check the spice models at all to see how they are made. But the DRC rules from the gf180 are definitely not all "MR" as-in they are not all hard limits of what they can make. But with wafer.space it makes no difference, they must all be obeyed.
Avatar
Yeah, tbf the only real issues I have there are indeed the hard limit on min width of high sheet poly resistors HRES.2 = 1um and min channel length of native nmos NAT.4 = 1.8um especially (that's for thin oxide) but somewhat also NAT.5 = 1.8 um (for thick oxide), as they just state "(For smaller L Ioff will be higher than Spec)". Besides of course the implied impossibility of a die being designed to support both flip-chip and wire-bond packaging.
Avatar
Avatar
Tim 'mithro' Ansell
@carlfk - The Silicon Prawn Discord is probably a good source of advice / hints / etc
putting chip chips in the sem and looking at them is fairly easy and fun....
7:17 p.m.
but if there is a goal, like measure pad thickness, I need to know what it is
7:18 p.m.
another thing I leaned: it looks like all of the layers stop before the edge. (makes sense)
7:19 p.m.
what would happen if one die had one edge of layers that would get cut into so I have a well defined thing to look at?
Avatar
Avatar
carlfk
what would happen if one die had one edge of layers that would get cut into so I have a well defined thing to look at?
there's a risk for cracks to propagate with that; the bigger problem is likely to argue why that should pass DRC.
Avatar
Avatar
namibj
there's a risk for cracks to propagate with that; the bigger problem is likely to argue why that should pass DRC.
ok, sounds reason enough. im curious: cracks in what? the layers I am guessing?
Avatar
cracks from the snapping-apart-the-silicon-wafer-along-mostly-the-dicing-cut-guiding-of-crack-propagation propagating inwards to the guard ring.
Avatar
I don't understand
Avatar
vertical cracks (the crack's plane's normal being aligned with the dicing line) propagating inwards guided by the layer interface caused by the structures you want existing.
7:40 p.m.
(I don't think that risk is big; but the DRCs we're subjected to are really strict.)
Avatar
the cutting edge "grabbing" the "soft" layers and putting unexpected force where it shouldn't be?
Avatar
more like, the crack in the silicon catching on it and spreading sideways along the structures.
7:46 p.m.
the silicon isn't sawed through; it's scratched and then snapped
Avatar
ah. that. thanks.
7:48 p.m.
@Andrew Wingate I wonder how our samples from Seyrecurse? were diced
Avatar
Avatar
namibj
the silicon isn't sawed through; it's scratched and then snapped
this means my idea of an extra cut though some dies isn't going to help me get a clean edge to image?
Avatar
Andrew Wingate 2026-07-05 7:49 p.m.
same way. I think you may just be thinking that because it looks shiny, it's flat. To a certain extent it is, but under electron microscope it's like the Himalayas
this 1
Avatar
the edge of the silicon looked flat. the layers were a mess, like cement and rebar in a demolished building
Avatar
that said, it shouldn't be too hard to grind/lap down from starting with sufficcient margin, and using suitable shapes visible from top for alignment.
Avatar
it looks like more effort than I want to put into it just for the fun of it - this is why I want a well defined goal with some value
Avatar
(not easy, but getting down to like 50nm roughness isn't that unusual for mildly fancy optical lapping)
Avatar
if you want to send samples, I'm happy to image them.
7:54 p.m.
we should have an #image channel here that I can just dump the "this looke neet" and "here is 5 shots of the same thing"
Avatar
IMO what might be more interesting is looking at some finer cornering/zig-zag/patterned structures on the lower layers (m1/m2 but especially also poly2 and the STI edges at comp) by lapping the BEOL gradually down
Avatar
I live stream of the monitor isn't out of the question. it has even been floated to let people remotely be on speaker phone directing the SEM operator (me)
💜 1
💯 1
Avatar
Avatar
Tim Edwards
@namibj : I am starting a project to make a radiation-tolerant standard cell library using annular FETs for space applications, hoping that (per recent comments on the spASICs page) there will be another opportunity to launch a properly radiation-tolerant microprocessor into space. For now, I am targeting GF180MCU because it's the cheapest option, but I am not going to be ready to have anything on Run 2. I expect to have something ready by Run 3.
this is a very cool project! Excited to see/read more when you get into it
Avatar
Avatar
Ravi Nataraju
@Andrew Wingate is the purchase slots still available to submit clean GDS for 14 July 2026? (edited)
Looks like @Tim 'mithro' Ansell already gave you an answer. Fear not! We're hoping to accelerate our cadence and hope to have Run #3 with a GDS in date sometime in Dec 2026 So you can plan for that in the very near future!
👍 2
🎉 1
Avatar
Avatar
Nino_Y
Hi everyone, has anyone ever used cadence's tool instead of librelane flow?
Tim 'mithro' Ansell 2026-07-06 1:11 a.m.
I believe @peterkinget's team might have tried it. However, wafer.space provides no type of support for this and your design must be clean by the wafer.space platform check, not whatever cadence claims.
Avatar
Avatar
carlfk
Click to see attachment 🖼️
Tim 'mithro' Ansell 2026-07-06 1:16 a.m.
@Andrew Wingate / @Lauri - I wonder if @carlfk could take some images of bad bonds to give us more information about what is going on when they fail?
Avatar
Avatar
namibj
Yeah that's kind of my plan I just don't know particularly how they should look, nor what @Tim 'mithro' Ansell has in mind for how they'd need to be interfaced to get e-tested. I'll be busy catching back up with life for the next 2~4 days though, so feel free to think a bit more slowly about what'd seem like a decent idea there. (I'd also love to get shorter-channel native nmos covered if practical, as per previous discussion there are no SPICE models for the 3v3 oxide ones, and the ones for 6v0 oxide stop at fairly long channels under arguments of "but they'd be leaky when off", which to my understanding should be more a question of how far the gate is pulled below threshold than whether their channel dares to go below 1.8μm length.)
Tim 'mithro' Ansell 2026-07-06 1:19 a.m.
https://bit.ly/test-open-pdk has the spec for pads which where used on SKY130 by @Mehdi and NIST for the data in https://github.com/google/skywater-pdk-sky130-raw-data and would probably be good to follow.
Test structure generation and measurement For improving open source PDKs bit.ly/test-open-pdk Owner: Tim ‘mithro’ Ansell <me@mith.ro> Contributors: XXX Last Updated: 2023 Q1 Goal The goal of this document is to provide a central point for the (automated) development of test structures and...
Raw data collected about the SKY130 process technology. - google/skywater-pdk-sky130-raw-data
Avatar
Avatar
Tim 'mithro' Ansell
@Andrew Wingate / @Lauri - I wonder if @carlfk could take some images of bad bonds to give us more information about what is going on when they fail?
Andrew Wingate 2026-07-06 1:19 a.m.
I don't think I have any dies that have been tested, but I'd be happy to facilitate.
Avatar
Avatar
carlfk
putting chip chips in the sem and looking at them is fairly easy and fun....
Tim 'mithro' Ansell 2026-07-06 1:20 a.m.
One of the things we wanted to look at/confirm was the top metal thickness -- I believe we are unsure if we ended up with the 11 thousand or 9 thousand angstrom thickness for that layer.
Avatar
Notably I'm thinking of using structures with more than 3 pads (+substrate) involved, or at least more than 1 transistor involved, as AFAIK we do have access to model fitting tools through Sandia's Ron.
Avatar
Avatar
carlfk
it looks like more effort than I want to put into it just for the fun of it - this is why I want a well defined goal with some value
Tim 'mithro' Ansell 2026-07-06 1:23 a.m.
For the cross sections we did of the cypress parts with @digshadow, I think the "lapping" was done by hand with a very fine sandpaper and that turned out pretty great. https://x.com/johndmcmaster/status/1715863105782378529?s=20
Skywater SKY130FD integrated circuit cross section. You can see the layers that make up a chip including the metal wiring and transistors!
😍 1
Avatar
Avatar
Andrew Wingate
I don't think I have any dies that have been tested, but I'd be happy to facilitate.
Tim 'mithro' Ansell 2026-07-06 1:23 a.m.
Maybe coordinate with Lauri? I guess we would need to figure out how to ship the die which have not been expoxied or something?
Avatar
Andrew Wingate 2026-07-06 1:24 a.m.
ooh.. no epoxy? Think that's necessary?
Avatar
It'd be important to know if we could drop to the finer pitch of layers regardless of the secondary implants for some test devices at least; think 0.28 L thick oxide structures and just-sub-1.8L nvt NMOS. And narrower-than-1.0 high sheet poly. I'm well aware none of those currently have SPICE models; but it's infeasible to get those SPICE model bin parameters without rather proprietary information and 3D TCAD, or by doing test structures and running model fitting on those.
1:30 a.m.
If that's something we'd have to prepare and submit with a replacement on hand that didn't exceed the open PDK in any way, that'd of course be fine.
Avatar
The epoxy isn't strictly necessary but you're going to have a much better time with it. I would recommend it if you can
Avatar
Oh I had cursed ideas for octagonal symmetry of a device with one drain, one source, 17 gate contacts (or 25 for symmetry, likely), and arguably 25 distinct channels in the BSIM extraction. A big part of it's usability would be contingent on the fab managing to manufacture "decent" matching across the (rotational) symmetry, which probably starts off mildly restrictive from the 5nm coordinate grid interacting poorly with that pesky sqrt(2) aspect, considering "mere" 300nm channel lengths. Also I'm actually not too sure it's appropriate to run that with the 25th channel doing anything beyond power gating, sadly.
11:17 a.m.
(I'm fairly confident though that structure would result in substantially lower parasitic drain side capacitance and lower excess field poly capacitance of the gate contact pads.)
Avatar
Avatar
Tim 'mithro' Ansell
https://bit.ly/test-open-pdk has the spec for pads which where used on SKY130 by @Mehdi and NIST for the data in https://github.com/google/skywater-pdk-sky130-raw-data and would probably be good to follow.
Ahhh ok I'll go through the links in there later; do you have any guidance on whether to expect getting finer structures (than what are almost certainly electrically motivated DRC clauses) allowed for extending the SPICE models down towards manufacturing minimums; in particular (unless someone tells me the FETs would be useless from short channel effects at that point): 1. thick oxide gates shaped like their thin oxide brethens (I'd assume they'd have substantial DIBL together short-channel-typical reduction in general threshold voltage), 2. native threshold voltage NMOS with lengths between normal threshold voltage minimums (0.28~0.6~0.7) and the current NAT.4/NAT.5 minimum 1.8, 3. Un-salicided poly resistors narrower than the (I can only presume matching/process-control related) existing coded minimum widths: PRES.1 (0.8), LRES.1 (0.8), HRES.2 (1.0), 4. Y.PL.2 mentions 0.13 drawn channel length on thin oxide; I assume the short channel effects (possibly HCI) are generally considered too severe for other usage, but it's vendor lock to Yield Microelectronics Corporation is similarly restrictive to open source EEPROM on gf18mcuD as the proprietary-core-only tiny transistors on sky130 are to dense open source SRAM. Like I wish I understood better what's keeping us from being allowed marking layers to not have to bother their engineers about structures that land between electrically recommended sizing and what the lithography can manufacture without risking damage to equipment or the rest of the wafer. Could it be that some of this is from "Google-sponsored-runs" open PDK philosophy where the DRC co-writer (Google) had incentive to keep designers from submitting chips that don't work?
Avatar
Avatar
carlfk
I live stream of the monitor isn't out of the question. it has even been floated to let people remotely be on speaker phone directing the SEM operator (me)
Could you perhaps help us quantify how "necessary" the full guard ring structure turns out to be? I'd think we'd be able to fit some questionable guard structures along some edge that goes to the overflow zone of the reticle (the reticle seems to not be evenly divided by the slot grid along the AFAIK vertical direction of the slot size), in particular the currently forced exposure of the guard ring top metal which is very close to the wire bond pad ring's exposed top metal and not doing that would seem to allow for some cheap flip-chip options that rely on a reasonable minimum spacing between exposed top metal to not require high-end lithography to contact only one pad each.
Avatar
Avatar
namibj
Could you perhaps help us quantify how "necessary" the full guard ring structure turns out to be? I'd think we'd be able to fit some questionable guard structures along some edge that goes to the overflow zone of the reticle (the reticle seems to not be evenly divided by the slot grid along the AFAIK vertical direction of the slot size), in particular the currently forced exposure of the guard ring top metal which is very close to the wire bond pad ring's exposed top metal and not doing that would seem to allow for some cheap flip-chip options that rely on a reasonable minimum spacing between exposed top metal to not require high-end lithography to contact only one pad each.
help how? I have access to a friend's SEM, don't know much about ic design
Avatar
Avatar
carlfk
help how? I have access to a friend's SEM, don't know much about ic design
By helping us figure out what the structures would need to do/how they could be design-for-testing, so we could get that data on how critical these aspects of the guard ring are to the resulting chip yield, without the immense expense of brute force testing. I can't write much rn though.
Avatar
about all I have to offer: prep is tricky, it would help if the slice was at or near the edge
5:07 p.m.
and now is the time to add some stuff specifically for looking at when it comes back from the fab in 3 months
Avatar
Avatar
carlfk
and now is the time to add some stuff specifically for looking at when it comes back from the fab in 3 months
Yeah, basically it's apparently something about cracks and potential of contaminants diffusing through a gap in a metal layer due to the dielectric filler being more vulnerable there than it would be between the vias?
Avatar
Avatar
carlfk
about all I have to offer: prep is tricky, it would help if the slice was at or near the edge
I'm pretty sure it'd be quite straight forward to get much of that manual stuff automated.
Avatar
one thing about the SEM - it takes a min or two to attach the sample to the stage (special carbon something double sided tape) another min to load the sage into the chamber. 2 min (maybe more) to pull a vacuum. so easy 5 min before anything shows up.
5:28 p.m.
I would be surprised if a sample can be removed and lapped a little more
5:29 p.m.
so any iteration of remove material and looking at the slice to see if it is good isn't going to happen in the SEM
Avatar
Avatar
carlfk
so any iteration of remove material and looking at the slice to see if it is good isn't going to happen in the SEM
Yeah I know.
Avatar
@Mod more spam
👍 1
Avatar
fwiw I added a channel to my discord that auto-bans anyone who posts in it (using a bot). not perfect but it seems to catch a lot of those driveby bot spams
💜 1
Avatar
Avatar
BreakingTaps
fwiw I added a channel to my discord that auto-bans anyone who posts in it (using a bot). not perfect but it seems to catch a lot of those driveby bot spams
Andrew Wingate 2026-07-06 9:50 p.m.
Is it open? Want to share a link?
Avatar
Avatar
Rob Taylor
I'd like to announce the first official release of Jacquard - a GPU accelerated, timing aware and gate-level capable simulator. Apple GPU, NVIDIA and AMD are supported (though AMD less tested due to lack of github runners) It currently has support for gate level simulation of SKY130 and GF180 standard cells, and the upcoming 0.3 will be able to support any cell library. I've been using it for my recent wafer.space designs 😁 Please dig in and report any issues!
Tim 'mithro' Ansell 2026-07-07 1:50 a.m.
There are a few groups from TensTorrent lurking on this Discord, maybe you can convince them to collaborate on something. I know they use ventilator internally on some stuff.
Avatar
(oh man, I was inches from purchasing a tenstorrent card the other day. looks like a really fun architecture to program) (edited)
Avatar
Tim 'mithro' Ansell 2026-07-07 7:15 a.m.
@BreakingTaps / @Rob Taylor - The fix for Google Drive, Dropbox and Fastmail download has been deployed to https://platform.wafer.space now.
Platform for wafer.space low cost silicon manufacturing.
👍 3
7:16 a.m.
The https://platform.wafer.space also now has the ability to select the CoB packaging and the CrowdSupply order number on your project. Will put an announcement in #announcements with some other updates shortly.
Platform for wafer.space low cost silicon manufacturing.
👍 2
Avatar
moderator : Spam ... ( @Tim 'mithro' Ansell @Leo Moser (mole99) )
👍 1
urish started a thread. 2026-07-07 1:11 p.m.
Avatar
Tim 'mithro' Ansell 2026-07-07 2:55 p.m.
🔥 1
Avatar
algofoogle (Anton Maurovic) 2026-07-07 4:24 p.m.
Howdy folks, I did a brief video of a wafer.space Tiny Tapeout chip (experimental "ttgf0p2") that I was lucky enough to participate in, and even luckier to try out. This is just a teaser, and I hope to share more soon: https://www.linkedin.com/posts/anton-maurovic_asic-openasics-activity-7480291900114030592-cFQw?utm_source=share&utm_medium=member_desktop&rcm=ACoAACUSJDsBhWb3XdMIrld_0q8cMtLDXdKRF8s
I've been busy since my last post! A dozen more personal #ASIC projects taped out that I'm keen to share soon, but for now here's a teaser of an experimental Tiny Tapeout chip I received from wafer.space's Tim Ansell and have been playing with. Making #OpenASICs never gets old, but now the silicon is coming back in waves and I've got to test mor...
🎉 2
❤️ 1
4:25 p.m.
Thanks @Tim 'mithro' Ansell for the chip! It's a beauty. And well done to the Tiny Tapeout team, of course.
🫂 1
Avatar
Hi. I’m starting to work with GF PDK and was wondering about the 6V transistors and 10V LDMOS. Are they available in the shuttles?
Avatar
the latter aren't easy to use; the former are just longer channel vversions of the 5V types, with no real further differences besides that increased minimum channel length (and maybe a few other DRC minimums)
Avatar
Avatar
namibj
the latter aren't easy to use; the former are just longer channel vversions of the 5V types, with no real further differences besides that increased minimum channel length (and maybe a few other DRC minimums)
I’ve worked with LDMOS before, that’s why I’m interested in those. How can I enable them in the PDK, especially in KLayout?
Avatar
...yeah, on another matter, as you aren't the only one trying to use them, does anyone have PCells on hand for the gf180mcuD LDMOS (the 10V devices)?
Avatar
Avatar
namibj
...yeah, on another matter, as you aren't the only one trying to use them, does anyone have PCells on hand for the gf180mcuD LDMOS (the 10V devices)?
I see, there are not PCells available yet. That is good information, thanks!😊
Avatar
Alright, ya’ll can have some mux4 as a treat!
🎉 3
🥳 1
Avatar
Now the question is how long will that take to filter through to the project template and should I rebuild TinyQV using it? TQVD is squeezed to the limit of what I can fit into it at the moment so it could help a bit.
Avatar
It is taking approximately three eternities to characterize, because its a 6-input function (edited)
7:35 p.m.
(one eternity for each process corner)
😆 2
Avatar
I had to disable mux4_2 from synthesis, because its causing issues in timing repair
😢 1
1:46 a.m.
Avatar
I am facing this issue where the flow just gets stuck here after the klayour-drc after the deck has finished ( the magic one ended without error) does anyone have any ides about this . Its been stuck there for a 1 hour now so that not supposed to happend . also checked on cpu there is no klayout running . I am on latest template . also i want to know is it possible to restart the flow from this point if i kill it or have to run again (edited)
Avatar
DRC can take 3-4 hours depending on machine. If you don't have enough RAM and start swapping that could get longer.
Avatar
Avatar
Tholin
Alright, ya’ll can have some mux4 as a treat!
Question: would use of 45 degree bends of poly2 on comp have helped you on any of the cells so far?
Avatar
I don’t think so
Avatar
I'll see to get the octagonal and the related quadratic structure drawn up now; so that I can do the write-up for them on my travel (to a meetup, in a little bit, basically as soon as I'm done with that).
Avatar
Avatar
tnt
Click to see attachment 🖼️
@Tholin note this tactic does work for gf18mcuD.
Avatar
The main bottleneck is actually how many metal1 traces I can have running in parallel
namibj started a thread. 2026-07-11 5:27 p.m.
Avatar
Does LibreLane throw any kind of error if it detects a VDD/VSS short anywhere?
Avatar
If it detects it ... sure. But by default the LVS is abstract so depending on where the short comes from it could be missed.
Avatar
Avatar
Tholin
Does LibreLane throw any kind of error if it detects a VDD/VSS short anywhere?
Are you worried about a chip being DOA?
10:16 p.m.
I have the FeatherLane generated layouts on there
Avatar
Avatar
Tholin
Click to see attachment 🖼️
After determining that this issue is caused by quirks of this specific design, I’m re-enabling mux4_2 for synthesis
Avatar
Avatar
Tholin
Sortof?
I can see to get extraction running through the recently (weeks) improved magic PEX and get Xyce to solve at least DC op point for it, if you want?
Avatar
(I take a .gds, of which I expect to have to delete all labels but the pad labels myself, followed by fully flattening it. If you have any conventions on pad labeling, I'd prefer those to be applied already and this includes separating the VDD and the VSS pads individually.)
Avatar
Multi-project die. Contribute to AvalonSemiconductors/ws-submission-2026 development by creating an account on GitHub.
10:35 p.m.
There’s two in there. Use the GDSII files. fl_mcpu32 is way smaller, test with that
Avatar
I'm ETA about 40 minutes from my desk.
10:40 p.m.
I hope magic 8.3.674 is pretty recent?
Avatar
Avatar
Tholin
There’s two in there. Use the GDSII files. fl_mcpu32 is way smaller, test with that
How is that to be biased/connected?
10:43 p.m.
Answer only needed if not obvious from looking.
Avatar
You can look at the .v files to see what is an input and an output
10:43 p.m.
If you wanna just do DC, tie all inputs low (edited)
10:44 p.m.
If you want to check if the outputs are outputting, you may do that.
Avatar
Avatar
namibj
(I take a .gds, of which I expect to have to delete all labels but the pad labels myself, followed by fully flattening it. If you have any conventions on pad labeling, I'd prefer those to be applied already and this includes separating the VDD and the VSS pads individually.)
There's a series of commands in magic that will flatten the layout but ignore the text. I don't think you need to prepare a flattened version outside of magic. (edited)
Avatar
Avatar
bailey
There's a series of commands in magic that will flatten the layout but ignore the text. I don't think you need to prepare a flattened version outside of magic. (edited)
Oh, good; I'd need hand-holding magic just confuses me 🙁
10:53 p.m.
(I'll proceed to use the same tactic as last time, provided this is with a padframe.)
Avatar
Avatar
namibj
Oh, good; I'd need hand-holding magic just confuses me 🙁
This magic manual page describes the 2 magic pex extraction flows. Search for PEX http://www.opencircuitdesign.com/magic//howto.html One with just capacitances and one with resistors and capacitances.
Avatar
Ahh I'll just take only the m4 labels
👍 1
Avatar
Avatar
Tholin
There’s two in there. Use the GDSII files. fl_mcpu32 is way smaller, test with that
Avatar
Avatar
bailey
This magic manual page describes the 2 magic pex extraction flows. Search for PEX http://www.opencircuitdesign.com/magic//howto.html One with just capacitances and one with resistors and capacitances.
I got a script around that wrangles it through.
Avatar
Avatar
namibj
Click to see attachment 🖼️
.subckt fl_mcpu32 VSS VDD le clk rst_n rst_override_n din[0] clk_n din[11] din[10] + din[9] din[8] din[7] din[6] din[5] din[4] din[3] din[2] din[1] din[12] din[13] din[15] + din[14] address[0] address[1] address[11] address[7] address[8] address[6] address[4] + address[3] address[13] address[14] address[12] address[9] address[2] address[15] + address[10] address[5] dout[1] dout[2] dout[3] dout[4] dout[5] dout[6] dout[7] dout[15] + dout[14] dout[13] dout[12] dout[11] dout[10] dout[9] dout[8] dout[0] oeb bus_enable + web unused[0] unused[1] unused[2] unused[3] unused[4] unused[5] unused[6]
Avatar
Avatar
namibj
Click to see attachment 🖼️
Avatar
``` Netlist error in file tb_fl_mcpu32.xyce at or near line 15 Model is required for device D0 and no valid model card found. ``` great!
11:59 p.m.
looks like diode models need explicit importing as library....
12:00 a.m.
* Device Count Summary ... C level 1 (Capacitor) 280984 D level 1,2 (Diode) 9694 M level 14 (BSIM4) 44848 R level 1 (Resistor) 267528 V level 1 (Independent Voltage Source) 22 --------------------------------------------- Total Devices 603076 * Setting up matrix structure... * Number of Unknowns = 292543 * Initializing... Analyzed Singleton Problem: --------------------------- Singletons Detected! Num Singletons: 44 --------------------------- ConstructedSingleton Problem: --------------------------- RatioOfDimensions: 0.99985 RatioOfNonzeros: 0.765899 --------------------------- ZOLTAN Load balancing method = 10 (HYPERGRAPH)
12:01 a.m.
(that's the small one; the large one is still extracting)
Avatar
Oh, so that’s what that happens! I usually just remove the diodes from the netlist.
Avatar
Avatar
Tholin
Oh, so that’s what that happens! I usually just remove the diodes from the netlist.
(Yeah it's LLM-prepared; minor manual edits have been done to it; nothing about this testbench seemed too complex to be likely to break and it's hot here... really hot, for 2:30 am.)
12:31 a.m.
mayhaps continuation=2 (natural MOS parameter homotopy) was not the efficcient thing to do, for as it's still stuck on the same screen/output as shown above.)
12:34 a.m.
let's try without continuation and to directly solve for the 3.3V case.
12:38 a.m.
(affording the 2.5 + 1.7 GB of ram usage for the continuation attempt, I've paused that and am trying now without continuation.)
12:40 a.m.
(maybe full-die PEX usage is actually only for cluster usage... hmmmpf)
namibj started a thread. 2026-07-12 12:57 a.m.
Avatar
There is no need to to PEX ...
6:32 a.m.
You can instruct librelane to use GDS for LVS instead of DEF and then the LVS will actually check submodules instead of abstracting then. And you can double check that in the report.
Avatar
Tim 'mithro' Ansell 2026-07-12 11:00 a.m.
👀 1
Avatar
Avatar
Tim 'mithro' Ansell
Click to see original message
https://discord.com/channels/1361349522684510449/1523053835864637510/1524075766219014326 @RebelMike is the free edge possibly free of top metal, and as such possibly suited for putting flip chip bond pads there?
Avatar
Avatar
namibj
https://discord.com/channels/1361349522684510449/1523053835864637510/1524075766219014326 @RebelMike is the free edge possibly free of top metal, and as such possibly suited for putting flip chip bond pads there?
metal5 is used for power rails, so there's probably not loads of space. But if you want to try and prove some flip chip bonding method maybe it would be better to make a test project where you didn't need most of the pads to work in order to get anything useful out? If Tim thinks that is an interesting project it might get accepted by the sounds of things
Avatar
Yeah so, the thing is, most of the chip would be barren if only housing connectivity (4-wire kelvin measurements) test pads. And in this time I can't get much interesting structure done below, sadly, especially given that I'm not allowed to test vaguely-short channel native nfet's because someone decided years ago what amount of subthreshold leakage would be permissible to design with, and banned all channels narrower than that. Though I guess I should check again if the 0.5um channels would pass DRC.
Avatar
Avatar
RebelMike
metal5 is used for power rails, so there's probably not loads of space. But if you want to try and prove some flip chip bonding method maybe it would be better to make a test project where you didn't need most of the pads to work in order to get anything useful out? If Tim thinks that is an interesting project it might get accepted by the sounds of things
Oh I see now. Would that chip need more than one VDD/VSS pair per SRAM tile? Even if, feeding the m4 straps both at the bottom and the top of each tile (or like, connecting the m4 through and putting a shared m5 connection at the border between SRAM tiles, freeing up m5 over the active memory region), that would give plenty of freedom for some varied pad designs. Also would conveniently test "circuit under [flip-chip] pad".
Avatar
How fast are the available IO pins? The possibility of free silicon is almost irresistable but I think the best path I'd have to doing something relatively cool would be to use my ethernet library. Unfortunately I only have RGMII support, so i'd need 125MHz IO 🤔
Avatar
Avatar
namibj
Oh I see now. Would that chip need more than one VDD/VSS pair per SRAM tile? Even if, feeding the m4 straps both at the bottom and the top of each tile (or like, connecting the m4 through and putting a shared m5 connection at the border between SRAM tiles, freeing up m5 over the active memory region), that would give plenty of freedom for some varied pad designs. Also would conveniently test "circuit under [flip-chip] pad".
Feeding power to those SRAMs is a bit tricky as they ideally need connections around their edges. I'm in the final stages of finishing this design so don't really want to be messing with things, but I'm not paying for it so if Tim/Leo would like to dedicate some area to a flip chip pin test I could potentially just remove some of the SRAMs if you had a macro that would drop in their place. I'm pretty sure the PDN grid will just drop some straps if you block met5, which maybe isn't ideal for power distribution integrity, but probably also not a disaster. And if you had a ready to go macro i would also be easy for someone to drop into a different design.
Avatar
Avatar
RebelMike
Feeding power to those SRAMs is a bit tricky as they ideally need connections around their edges. I'm in the final stages of finishing this design so don't really want to be messing with things, but I'm not paying for it so if Tim/Leo would like to dedicate some area to a flip chip pin test I could potentially just remove some of the SRAMs if you had a macro that would drop in their place. I'm pretty sure the PDN grid will just drop some straps if you block met5, which maybe isn't ideal for power distribution integrity, but probably also not a disaster. And if you had a ready to go macro i would also be easy for someone to drop into a different design.
I mean in principle the edges would be free? The wiring would ideally be escaped somehow to an e.g. ESD diode or something.
Avatar
Avatar
TheZoq2
How fast are the available IO pins? The possibility of free silicon is almost irresistable but I think the best path I'd have to doing something relatively cool would be to use my ethernet library. Unfortunately I only have RGMII support, so i'd need 125MHz IO 🤔
That should work.
1:42 p.m.
Re: ready-to-go macro: basically I'm hoping to test a few mostly pairs of pads of sufficciently varied size and pitch, primarily targeting the "ACF + JLC's special 2L 0.33oz (each) flex" affordable baseline.
Avatar
Avatar
TheZoq2
How fast are the available IO pins? The possibility of free silicon is almost irresistable but I think the best path I'd have to doing something relatively cool would be to use my ethernet library. Unfortunately I only have RGMII support, so i'd need 125MHz IO 🤔
I think the best answer we have is: probably. A 200MHz input clock worked ok. The outputs are strong so likely to work at that speed, but as far as I know I don't think anyone has tried anything non-trivial running at a fast clock in run 1.
Avatar
Yeah not sure how fast the 3v3 library is in practice, but the foundry 5V library even the 9T one is apparently fairly slow.
Avatar
Cool, I might give this project a shot then 🤔
Avatar
Indeed - the challenge will likely be more in driving the logic that fast, not the speed of the IO pads
Avatar
Avatar
TheZoq2
Cool, I might give this project a shot then 🤔
IMO prepare to immediately put a DDR serdes by the IO pads without much routing, drop down to at least 4 if not 8 wide per-IO-lane; then your core should likely have no severe issues synthesizing to timing.
1:51 p.m.
@RebelMike For the record, a major practical use case I'm hoping to prove viable with this is putting more than one flip chip pad on a standard-size TT analog tile, i.e., on that 340x325um area, and in a way that can be extended sideways to cover up to maximum-size analog tile. So we're not talking about large areas here, for the most part at least.
Avatar
I think this is my most scuffed tapeout so far, seeing as I have to make manual edits in KLayout to the top-level GDSII to fix DRC errors.
😬 1
Avatar
I had to do a emergency hotfix in my SCL to un-do an earlier change that introduced a bug that broke synthesis! If anyone is using my SCL and using the latest build from my GitHub, update, and re-run all your flows!
Avatar
Avatar
Tholin
I had to do a emergency hotfix in my SCL to un-do an earlier change that introduced a bug that broke synthesis! If anyone is using my SCL and using the latest build from my GitHub, update, and re-run all your flows!
noob question: what's an SCL ? (edited)
Avatar
standard cell library
👌 1
Avatar
судонет 2026-07-13 8:35 a.m.
yay!!!
👍 1
8:36 a.m.
my 16-bit risc cpu is manufacturable!!!
👏 8
8:41 a.m.
all in a few days' work, i guess* (edited)
Avatar
There we go!
💜 4
👀 2
👏 1
7:40 p.m.
I think this one’s even more crammed with stuff than my last
Avatar
Avatar
Tim 'mithro' Ansell
Click to see original message
silly question but are the possibly-spare half slots in the 0.5x1 or 1x0.5 shape?
Avatar
@everyoneI’m sorry for the big ping, but if you have used my 3.3v SCL gf180mcu_as_sc_7t3v3 for your tapeout, YOUR CHIPS ARE GUARANTEED BROKEN RIGHT NOW! I’ve fixed the problem, so you will HAVE to re-run your flows with the hotfix applied. Clone the SCL’s GitHub repo or download as .zip from here: https://github.com/AvalonSemiconductors/gf180mcu_as_sc_mcu7t3v3/ You will have to take the libs.ref and libs.tech directories from inside pdk and copy them. Go to your project template and paste them to gf180mcu/gf180mcuD/, merging with the existing two directories of the same names. Overwrite existing files. Re-run your flows.
Custom Standard Cell Library for GF180MCU process node on open PDK. - AvalonSemiconductors/gf180mcu_as_sc_mcu7t3v3
👍 5
👀 2
😲 1
11:52 p.m.
Fuck, it didn’t ping
11:52 p.m.
Lets hope people see it
Avatar
I forgot to push a commit, so that’s there now. You’ll have to repeat the steps if you have done so already.
Avatar
Avatar
Tholin
There we go!
when you've updated this to incorporate the fixed buf_8, and if you happen to have "sufficcient" stimuli on hand (I'm vaguely assuming the config/instance select pins work by the same principle/UX as last time?), I'd like to test it for at least like 5-or-so clock cycles with the full-die PEX, though with the solver set to low fidelity; if it were to happen to have labels on enough nets to make it impossible to hold a wrong/unwanted state in the registers of the sequential logic, and there's a state snapshot telling whether those nets are VSS or VDD, it may even be affordable-enough to simulate a decent fraction of a scanline of the test pattern modulator output machinery; or the like. Basically just trying to confirm the chip as a whole simulates "respectable/acceptable" behavior and if easy enough to provoke, whether a particularly worrying timing arc works for a process "corner" of arbitrary choice and relevance with basically-all RC parasitics included.
Avatar
Avatar
Tholin
@everyoneI’m sorry for the big ping, but if you have used my 3.3v SCL gf180mcu_as_sc_7t3v3 for your tapeout, YOUR CHIPS ARE GUARANTEED BROKEN RIGHT NOW! I’ve fixed the problem, so you will HAVE to re-run your flows with the hotfix applied. Clone the SCL’s GitHub repo or download as .zip from here: https://github.com/AvalonSemiconductors/gf180mcu_as_sc_mcu7t3v3/ You will have to take the libs.ref and libs.tech directories from inside pdk and copy them. Go to your project template and paste them to gf180mcu/gf180mcuD/, merging with the existing two directories of the same names. Overwrite existing files. Re-run your flows.
Tim 'mithro' Ansell 2026-07-14 1:42 a.m.
@everyone - Please note this message from @Tholin if you are using their standard cell library.
💜 5
ScaredPig 1
👀 1
🫂 1
Avatar
Is that relevant to ppl who used the recommended wafer.space template?
Avatar
Avatar
Buzz
Is that relevant to ppl who used the recommended wafer.space template?
Tim 'mithro' Ansell 2026-07-14 1:57 a.m.
Not unless you used/enabled the 3v3 standard cells from @Tholin.
👍 1
Avatar
As part of the couple extraction-calibration structures I hope to include on Run2, I hope to accomplish estimating a more detailed distribution of contact/via resistance than this; if anyone happens to have some ideas for how to realistically measure that/how to embed a DUT-contact in a fashion that sufficciently allows de-embedding during post-processing of e-test measurements, please share.
Avatar
@Tholin out of curiosity what was the actual bug?
⬆️ 2
Avatar
Avatar
namibj
As part of the couple extraction-calibration structures I hope to include on Run2, I hope to accomplish estimating a more detailed distribution of contact/via resistance than this; if anyone happens to have some ideas for how to realistically measure that/how to embed a DUT-contact in a fashion that sufficciently allows de-embedding during post-processing of e-test measurements, please share.
Ratiometric
3:49 a.m.
create two identical pairs of structures broken out to analog pins with as identical paths as possible
3:49 a.m.
one a via chain of length N, another of N+K
3:50 a.m.
the delta gives you the resistance of K vias, modulo process variation between the two
Avatar
Avatar
azonenberg
one a via chain of length N, another of N+K
I'm more worried about local mismatch effects in places that can't afford to spam a nice array. These resistances are easily manageable via 4-wire measurements with one tt_asw instance each to connect the analog pad to the specific DUT. I guess more worried about the contacts than the vias...
Avatar
Avatar
azonenberg
@Tholin out of curiosity what was the actual bug?
Cc @Essen
👀 1
3:57 a.m.
Dropped 2.7V over that diode-connected NMOS finger highlighted bottom left.
3:58 a.m.
in each buf_8/clkbuf_8 instance, around 300μA each
Avatar
Trying to understand whats going on here, so that bottom right contact is ground and the one at center is the output?
4:00 a.m.
it just looks like a nromal multifinger buffer to me so i'm clearly missing something about the well structure
Avatar
Good thing I weakly but nonetheless insisted on doing at least a full-GDS DC op point run with Xyce after what the last Avalon Semiconductor pulled....
Avatar
Avatar
azonenberg
Trying to understand whats going on here, so that bottom right contact is ground and the one at center is the output?
The left finger shouldn't exist
4:01 a.m.
Avatar
Were these cells not validated with extractions individually already?
Avatar
Avatar
azonenberg
it just looks like a nromal multifinger buffer to me so i'm clearly missing something about the well structure
It looks harmless enough to the casual non-bitter observer to have lasted until not even 6 hours ago.
Avatar
i mean i'm used to reversing chips that work :p
4:03 a.m.
i want to understand how
4:04 a.m.
but i usually just classify a cell as a buffer and move on lol
Avatar
Avatar
azonenberg
Were these cells not validated with extractions individually already?
Unfortunately the extractor doesn't actually extract static power and this consumption isn't on it's own "too much" current for the cell, so didnt't get caught in the dynamic power measurements, and I'm guessing something something LVS didn't happen with the rigor that would have prevented this.
Avatar
Avatar
azonenberg
i want to understand how
4:11 a.m.
Ahhh here without the annoying layers messing up the contrasts:
4:12 a.m.
P vs. N doesn't matter as you can see this is symmetric in that direction.
4:12 a.m.
There are no diffusion/comp breaks here
4:13 a.m.
(well, there's one long P-channel diffusion and one long N-channel diffusion)
4:14 a.m.
You don't have to look to the right of the 5th gate finger counting from the left.
Avatar
I'm guessing there is no LVS at all AFAICT because there is no reference schematic, so it's YOLO mode.
Avatar
Noritsuna Imamura 2026-07-14 7:57 a.m.
I submitted an our project of 0p5x1 slot. If there's an available free slot, I'd appreciate it if you could have it manufactured. https://github.com/ishi-kai/ISHI-KAI_Multiple_Projects_WaferSapce-GF180-2/ Also, I got an error when using "ISHI" as the Project ID in the "Generate ID" field. The error disappeared after I changed it to "SK02". (edited)
ISHI-KAI's Multiple Projects Wafer for Wafer.Sapce GF180 Run 2. - ishi-kai/ISHI-KAI_Multiple_Projects_WaferSapce-GF180-2
❤️ 1
Avatar
судонет 2026-07-14 8:15 a.m.
i also hope there's an available free slot for my design to be manufactured as well (p.s.: wow that's a mouthful) (edited)
8:16 a.m.
mine is half-height 1x0p5 though (edited)
Leo Moser (mole99) started a thread. 2026-07-14 8:54 a.m.
Avatar
Not for this run obviously, but in general: Do the current toolchains support turning inferred logic[][] memories in RTL into SRAMs (even via a manual synthesis script step or something)? (edited)
3:25 p.m.
Or if you want to use openram etc is it absolutely mandatory that you do a primitive instantiation in the RTL
3:26 p.m.
more generally, what's the best way to structure code that uses ram if you are targeting both asic and FPGA and want to support parameterizable memory sizes?
Avatar
Leo Moser (mole99) 2026-07-14 3:29 p.m.
You can write a memlib file for your available SRAMs, which also includes their cost, and then map to them. However, I'm not sure if LibreLane has support for adding these things to the Yosys scripts. I would be happy to add these variables, though.
3:31 p.m.
Placement, however, is still done manually. We haven't integrated OpenROAD's automated placer into LibreLane yet.
Avatar
Avatar
azonenberg
Not for this run obviously, but in general: Do the current toolchains support turning inferred logic[][] memories in RTL into SRAMs (even via a manual synthesis script step or something)? (edited)
I'd expect so, as the synthesis front end should be the same engines as are used in the AFAIK production-grade non-proprietary FPGA synthesis toolchain, and I'd be weirded out if they failed to think about using EBR unless it's very explicitly instantiated...
Avatar
Yeah I'm not worried about placement. So, for background, I'm in the process of building out a suite of open hardware debug IPs currently targeting FPGA
👍 1
3:32 p.m.
it's basically "ARM SoC debug but for gateware", where you have a bridge from $EXTERNAL_BUS (currently UART but planning to add JTAG and Ethernet/UDP transports too) to APB
3:33 p.m.
there's a rom table at a well known address / exposed by the bridge that describes each debug IP by a (fourcc ID, base address) tuple
3:33 p.m.
then each debug block has a series of registers for e.g. a VIO or ILA
3:33 p.m.
Right now they all use "initial" blocks, inferred ram, and are generally written for FPGA style design structures
3:34 p.m.
But i'm wondering about the feasibility of eventually getting one of them in asic for fun, it'd be cool to throw an ILA tile in a TT run or something even if it can only record like 128 clocks worth of waveform
3:34 p.m.
obviously i'd have to refactor it to use explicit resets but that's straightforward
3:35 p.m.
the capture RAM is the part i'm not sure about
3:35 p.m.
Turning the ROM with the set of signal names and widths into a high density via rom etc would be nice too but that's lower priority
Avatar
Leo Moser (mole99) 2026-07-14 3:36 p.m.
Nice. Yeah, as long as the ram is inferred and implicit resets are removed, that should work.
Avatar
(it's written as a big case statement right now and would have to be restructured but i was going to do that anyway in hopes of getting it to map to block ram more cleanly)
Avatar
Leo Moser (mole99) 2026-07-14 3:36 p.m.
Looking forward to seeing more about it.
Avatar
i've been talking to whitequark about her making a register-compatible amaranth/wishbone version in addition to my systemverilog/APB version. The underlying bus transport doesn't matter as long as it provides 32 bit read/write semantics (no sub-word access is used)
3:38 p.m.
On the PC side, a debug bridge connects to the DUT and exposes a libscopehal-compatible SCPI server on a separate TCP socket for each debug IP
3:38 p.m.
so you could e.g. have two different ngscopeclient sessions talking to different ILA IPs if you wanted, or one talking to both
3:39 p.m.
But before we go that far, and certainly before I make an asic version, i need to make some improvements to the ROM structure, fix some setup and cross-synthesis-tool issues i ran into, and also make it support trigger comparators to trigger on the inputs rather than only having an external trigger input like it does now
👌 1
3:40 p.m.
I've already basically stopped using the Vivado ILA as a result of how much nicer my workflow is though lol
3:41 p.m.
3:41 p.m.
being able to run protocol decodes on ILA waveforms is such a game changer lol
3:42 p.m.
(seen here debugging an artix ultrascale+ displayport aux channel transceiver)
3:43 p.m.
If this works out well it might even be possible to integrate something like this into say the TT harness as a block that individual tiles could share, rather than having to burn tile space on capture buffers
3:43 p.m.
obviously you're not going to get ~128 bits of probes at a 16K sample capture depth like i have here :p
😁 1
3:46 p.m.
(ts28lp open pdk wen lol)
3:48 p.m.
anyway, i guess in a couple months when i've polished this up more, i'll see if anybody is interested in shoving an updated version of it into spare space on a die somewhere - i don't want to do a dedicated tapeout just for it since it's small, but if somebody has spare space and a few GPIOs i can steal, i'd like to give it a try and will gladly cover part of the fab cost (edited)
3:50 p.m.
and if it works maybe you'll get the ability to poke around inside your asic :p
Avatar
Oh man, I am beyond stressed and worn out now. Finding out you broke not just your own chip, but those of several other people, less than 48 hours before deadline, is not fun.
4:19 p.m.
I barely slept last night
🫂 4
💜 3
Avatar
Avatar
azonenberg
But i'm wondering about the feasibility of eventually getting one of them in asic for fun, it'd be cool to throw an ILA tile in a TT run or something even if it can only record like 128 clocks worth of waveform
As long as your involvement makes the successful tapeout of the chip more likely, I'd be able to give you up to about 1mm^2 of core area along the entire top edge IO of the 1x0.5 slot I'm doing the test structures on.
Avatar
Yeah I mean, it should be low risk as long as you keep the APB segment dedicated to debug IPs and don't put anything else on it
4:22 p.m.
it uses its own dedicated IOs for the bridge and the ILA is input-only other than the internal APB
4:22 p.m.
it's parameterizable so we can figure out how wide and deep to make the capture buffer later
Avatar
Avatar
azonenberg
Yeah I mean, it should be low risk as long as you keep the APB segment dedicated to debug IPs and don't put anything else on it
APB? I'm not doing any of that the only thing we'd share would be the power ring, and I'd probably claim most of the top metal over your section to put flip chip test pads there.
Avatar
Yeah the debug interconnect on my implementation is APB although wq was going to use wishbone for her version
4:24 p.m.
you can use any memory mapped bus you want
4:24 p.m.
ultimately it's just a pipe to read and write 32-bit words
Avatar
The difficulty is just that we should have a layout submitted to the precheck in about 12 hours to have enough time left to fix any of the CI issues.
Avatar
We're definitely not getting it in this tapeout, I would need to do a bunch of refactoring on the code to switch from implicit to explicit resets and fix a few other things
4:25 p.m.
I'd be looking at next cycle
Avatar
(most or all of the APB side logic is reset by PRESET which can be reset over the UART debug bridge, but the capture-clock domain does not have an explicit reset currently, and the debug bridge itself does not have a POR connection)
Avatar
(Are you by chance set up to possibly run the e-tests at least while figuring out how to best set that up/aquiring initial coarse sweeps to begin calibrating the SPICE models from which I can then synthesize a sample-efficient set of operating points to probe, because the goal is later to measure several dozen of the dies to quantify same-run cross-die process variations and also better quantify local mismatch statistics?) It's gonna be wired with tiny tapeout analog switches/MUX-style and there's two lines going to each pin of any of the DUTs, to enable remote-sense measurements for de-embedding the mux's contributions. DC effects only. Hoping to include a few of Tholin's 3v3 logic cells among the DUTs, which probably drives the total count of analog lines the MUX uses (I'm not sure where they top out but they at least get up to 9 pins (mux4 as you have to count VDD and VSS as well)).
Avatar
I'm not currently set up to do any on-die probing at home. Anything wired to top level pads is potentially worth looking at though
4:36 p.m.
I was talking to some other folks about potentially building a more generic characterization board with an FPGA and STM32 and some I2C for talking to temp sensors on the die carrier etc
4:36 p.m.
Just a matter of time and too many things on my plate
Avatar
Avatar
azonenberg
I'm not currently set up to do any on-die probing at home. Anything wired to top level pads is potentially worth looking at though
No it's all COB'd; if the cob mezzanine handles enough cycles the test adapter/jig could just use that directly with a 3d printed claw to assist in guiding the (un)plugging without putting the force the wrong way onto the board nor the COB.
Avatar
Avatar
azonenberg
Just a matter of time and too many things on my plate
I mean I'm happy to do the test design work, I just don't really have access to anywhere enough channels of source-measurement-unit/metrology hardware.
Avatar
Avatar
Tholin
Oh man, I am beyond stressed and worn out now. Finding out you broke not just your own chip, but those of several other people, less than 48 hours before deadline, is not fun.
no stress, I think we all understood it was a risk to use! Huge props for providing it, my project just wouldn't really have been possible at the scale I wanted without! ❤️
💯 1
Avatar
Yeah I'm definitely excited for it, and hoping one day we get a 1v8 PDK variant too
4:57 p.m.
but even the 3v3 lib is a huge step up from the 5v one
Avatar
@BreakingTaps if you'd have a couple photodiodes including ideally one set up to allow operating it under photovoltaic "energy harvesting" bias conditions (through CMOS transmission gates regular ESD protected analog IO pads), I'd love to try to include them.
Avatar
hmmm, don't think I ever finished any of the designs enough to be useful (even for probing) 😢 Should have spent some cycles making little macros to put in corners as space allowed. i'll double check when I get home though!
5:01 p.m.
only one that got sorta far was a 1T active pixel, but it needs a ton of other circuitry to be useful. and it was pretty incomplete too
Avatar
Avatar
BreakingTaps
no stress, I think we all understood it was a risk to use! Huge props for providing it, my project just wouldn't really have been possible at the scale I wanted without! ❤️
I learned from that that we'll need to fix the tooling that measures data for Liberty specs from custom designed SCL cells, particularly about handling power and ideally some way of checking EDR compliance like current density/electromigration/hot-carrier-injection. Because that's SCL today has zero extraction of "static power".
👍 1
Avatar
Avatar
BreakingTaps
only one that got sorta far was a 1T active pixel, but it needs a ton of other circuitry to be useful. and it was pretty incomplete too
I'm expecting support for up to at least 8 DUT pins, and legal voltage range between 0V and 5V relative to substrate.
5:06 p.m.
(those are MUXd out with full kelvin connection to them, I.e., that'd be 16 analog pads that are separate right up to the DUT's pins to de-embed the (near) DC operating point.)
Avatar
will see if I can vpn into my home machine and dig up the design over lunch! i think i left it pretty not-finished unfortunately
Avatar
@Tholin I'll try to throw your cells in as DUTs on the muxed e-test; plan so far is up to 9 pins per DUT (not counting substrate, but very much counting everything but the substrate including the typical VSS rail of an SCL) and probably a 30μm width restriction with mandate of no relevant doping extending beyond, and a couple hundred um height. Small DUTs with fewer pins can share a slot. Pins are to be wired kelvin-connected at the DUT's actual pin, so there's 18 lines of m4 (if that fits in the 30um.... ferrisBallSweatSpin ) coming in from the short side. I unfortunately don't expect to have much time to instantiate your full library and kekvin-connect it to those 18 wires, but I do expect to have shit 20~40 DUT slots spare that would love to take thin oxide standard cells. I'll see to get the interface definition to that drawn up by about 3~4 hours from now and while not promising I can finish the wrapper and MUX in the deadline, I'll do my best.
Avatar
Avatar
namibj
@Tholin I'll try to throw your cells in as DUTs on the muxed e-test; plan so far is up to 9 pins per DUT (not counting substrate, but very much counting everything but the substrate including the typical VSS rail of an SCL) and probably a 30μm width restriction with mandate of no relevant doping extending beyond, and a couple hundred um height. Small DUTs with fewer pins can share a slot. Pins are to be wired kelvin-connected at the DUT's actual pin, so there's 18 lines of m4 (if that fits in the 30um.... ferrisBallSweatSpin ) coming in from the short side. I unfortunately don't expect to have much time to instantiate your full library and kekvin-connect it to those 18 wires, but I do expect to have shit 20~40 DUT slots spare that would love to take thin oxide standard cells. I'll see to get the interface definition to that drawn up by about 3~4 hours from now and while not promising I can finish the wrapper and MUX in the deadline, I'll do my best.
If anyone else has worthy DUTs they think would fit in the approximately 30 wide 300~400 tall slots with 18 kelvin-connection m4 wires entering from the short side (8 signals plus PDN-ground plus ground-sense), please post in the thread; if someone with experience happens to not be busy on their own chip, I would very appreciate help.
Avatar
I’m finally running a top-level flow again after all day of getting a single macro to behave (edited)
8:06 p.m.
I think I will just barely make the deadline
8:07 p.m.
Rented a way too expensive AWS instance just to iterate faster
8:07 p.m.
Detailed routing and DRC checks go brrrrrrrrr
😁 1
Avatar
I splashed out for a RYZEN 9 9950X3D bare metal server this time around, definitely worth it. full librelane flow is a little over 2.5hrs for me
Avatar
Yeah I miss the single thread performance of my Ryzen 9 5950X; sadly the south bridge or likely it's VRM is dead. At least I was able to get this Skylake-SP system to use.
Avatar
Avatar
Tholin
Oh man, I am beyond stressed and worn out now. Finding out you broke not just your own chip, but those of several other people, less than 48 hours before deadline, is not fun.
@Tholin There is an unfortunately named CVC-RV tool available that should flag those kind of errors (digital) pretty easily. https://github.com/d-m-bailey/cvc If you have a magic extracted layout, I could help with the underdocumented setup. It should run in under a minute.
CVC: Circuit Validity Checker. Check for errors in CDL netlist. - d-m-bailey/cvc
Avatar
Tim 'mithro' Ansell 2026-07-15 1:16 a.m.
BTW When the precheckers are idle between runs I have been letting @bailey use the hardware for doing validation of designs.
😁 2
Avatar
so, well, unless the mux controls turn out to synthesize nicely enough, hope for that to work out is now sadly somewhat limited, welp.
5:46 a.m.
(just timeline though; the issue at hand is pretty much just due to me being not given sufficcient notice to have things prepared for this scenario of how unsold slots are dealt with; that claim is based on assuming that there was more than a week until deadline when it was known that I should with high probability have that muxed-e-test ready by the deadline)
Avatar
Tim 'mithro' Ansell 2026-07-15 6:34 a.m.
Anyone played with https://alpharomerojl.github.io/reticle/ at all?
Browser-native, GPU-accelerated editor for very large hierarchical 2D IC-layout scenes.
❤️ 2
Avatar
Any idea why OpenROAD (ORFS) would not automatically place a seal ring for 6_final.gds? "[Error]: Layer 'GUARD_RING_MK' is not used. wafers.space requires a seal ring (guard ring) around the die."
Avatar
Avatar
EmbeddedKen
Any idea why OpenROAD (ORFS) would not automatically place a seal ring for 6_final.gds? "[Error]: Layer 'GUARD_RING_MK' is not used. wafers.space requires a seal ring (guard ring) around the die."
Leo Moser (mole99) 2026-07-15 6:41 a.m.
The reason is that the seal ring is not part of the ORFS flow. If you are not using the LibreLane template, you can "steal" a seal ring from the example layouts and place it in KLayout: https://github.com/wafer-space/gf180mcu-example-layouts
👍 1
Avatar
Avatar
Leo Moser (mole99)
The reason is that the seal ring is not part of the ORFS flow. If you are not using the LibreLane template, you can "steal" a seal ring from the example layouts and place it in KLayout: https://github.com/wafer-space/gf180mcu-example-layouts
Thanks!
👌 1
Avatar
algofoogle (Anton Maurovic) 2026-07-15 8:02 a.m.
@Tim 'mithro' Ansell Project https://platform.wafer.space/projects/9fed917e-da6f-4613-b725-216f69c12b1b/ is a half-height slot with precheck-passing GDS that I hit "submit" on that could be included if there happens to be a spare slot available. If not, no worries: there may be more-eligibile projects lining up. Here's the repo for it: https://github.com/algofoogle/gf180ws2-raybox-zero -- I'll try and do a rev before the deadline tonight.
Platform for wafer.space low cost silicon manufacturing.
Contribute to algofoogle/gf180ws2-raybox-zero development by creating an account on GitHub.
🔥 1
❤️ 6
Avatar
I've been having some issues with file uploads to the submission platform as shown in the photo or additionally things like: Security validation failed: URL validation failed: Failed to check file size: 403 Client Error: Forbidden for url:. Wanted to check if anyone had a workaround
Avatar
Avatar
Max Vallone
I've been having some issues with file uploads to the submission platform as shown in the photo or additionally things like: Security validation failed: URL validation failed: Failed to check file size: 403 Client Error: Forbidden for url:. Wanted to check if anyone had a workaround
Tim 'mithro' Ansell 2026-07-15 8:24 a.m.
That doesn't look like a valid URL to provide the system, what is your project ID?
Avatar
We have uploads working now. Tried with an uncompressed file and through google instead of github
Avatar
My solution for hosting the gds file was to put it in a GitHub release. Also added the librelane logs from the build to the same release so they can be inspected if necessary
👍 1
Avatar
Avatar
Max Vallone
We have uploads working now. Tried with an uncompressed file and through google instead of github
Tim 'mithro' Ansell 2026-07-15 8:30 a.m.
Contribute to Purdue-IEEE-EDS/WaferSpace-GF180-June26 development by creating an account on GitHub.
Avatar
It was a different GDS but same repo
Avatar
Avatar
Max Vallone
It was a different GDS but same repo
Tim 'mithro' Ansell 2026-07-15 8:42 a.m.
I just tested and it seemed to work okay? Can you give me your project code?
Avatar
ok I (practically) give up on completing any useful part of the actual muxed e-test in time, librelane strikes again with confusion and lack of sufficient documentation on the matters of how-to-handle-things-that-are-not-plain-SCL-synthesis, once a user dares to try and have it "just integrate"... welp. Can anyone help me just stamp out a DRC-legal (filler and a legal sealring) blank slate without the normal pad ring, where I can at least draw up a couple test pads for flip-chip trials that won't require boards with details/specs beyond what JLCPCB has on offer?
9:26 a.m.
@Essen @Tim 'mithro' Ansell I'm sorry the e-test MUX stuff won't make; if there's sufficient expected spare silicon/otherwise-blank slots, I'd like to at least include 2 or 3 candidates of flip chip pads; that won't touch anything but M5 and the nitride passivation/"pad opening" layers; if it's DRC-legal to have floating pads (not connected to diffusion), would I have to do the filler for the other layers myself, necessarily?
🫂 1
Avatar
Is there an existing example of a density fill script for OpenROAD? (edited)
Avatar
Avatar
EmbeddedKen
Is there an existing example of a density fill script for OpenROAD? (edited)
Leo Moser (mole99) 2026-07-15 9:32 a.m.
Yes: gf180mcuD/libs.tech/klayout/tech/scripts/fill_all.rb klayout -b -zz -r path/to/script -rd input=input.gds -rd output=input.gds
waferspace 1
❤️ 1
9:32 a.m.
The LibreLane template does the fill and density check for you :)
Avatar
I saw something on the matter in KLayout's PDK-loaded menu, iirc. No idea how functional it is, though. If the flow for this will be that I give someone a GDS that only draws on these two layers of interest, to get it plopped down onto a filler+sealring combo that's otherwise sufficciently DRC-legal due to filler and all, that'd also work.
Avatar
damn it's 8:00 pm here in sydney
10:01 a.m.
still another 2 hours till deadline
Avatar
We have had sealring error issues since yesterday that only appeared when uploading the GDS for final checks online, but they seem to be sorted out. Unfortunately the online GDS verification has been running for an hour already. Hopefully it finishes in the next 90 minutes :\
Avatar
Avatar
dburnett
We have had sealring error issues since yesterday that only appeared when uploading the GDS for final checks online, but they seem to be sorted out. Unfortunately the online GDS verification has been running for an hour already. Hopefully it finishes in the next 90 minutes :\
hope it gets accepted in time!
Avatar
Yea I kinda shot myself in the foot using OpenROAD
10:49 a.m.
👀 1
💦 1
10:50 a.m.
OpenROAD's pad placement naturally presses directly against the DIE AREA without any padding.
10:50 a.m.
I imagine pad/seal ring overlap is not allowed
10:51 a.m.
I mean, even it was, that'd be useless, shorting all the pads together, there isn't much difference between that and nothing.
😂 2
10:52 a.m.
I'm kind of curious why you went for ORFS though ... I see why ORFS was originally created, but now that librelane exist, what's the benefit of ORFS ?
Avatar
I was not a fan of OpenLane a few years ago; seems like LibreLane would have been much easier.
Avatar
I wasn't a fan of OpenLane , the first version either. But OpenLane 2 and now LibreLane have a much better architecture and design, there is no contest.
Avatar
I think this is the most dense thing I’ve ever taped out
👀 4
waferspace 5
Avatar
I’m actually slightly anxious that this will fail the fab’s DRC check because of The Palette, since there is some weird combinations in there.
Avatar
This just needs the DRC flag -wedge as it's not for wedge bonding (but flip chip); and it might need that corner marker stuff if that would trip the platform check. Oh, and fill, per the defaults; also with fill in case that's easier: (I think the without-fill is also not zeroes to the origin; that's fixed in the try2 which also has the fill.)
Avatar
Looks like the fix would have been to use: set_padring_options -offsets "Specifies the offset, in microns, from the edges of the die area to corresponding edges of the padcells."
Avatar
oh and damn I gues I'm offset..... should be quick to fix tho.
Avatar
Avatar
namibj
This just needs the DRC flag -wedge as it's not for wedge bonding (but flip chip); and it might need that corner marker stuff if that would trip the platform check. Oh, and fill, per the defaults; also with fill in case that's easier: (I think the without-fill is also not zeroes to the origin; that's fixed in the try2 which also has the fill.)
filled and non-filled with size adjusted; turns out the slot docs page rounded numbers from what I can tell....
Avatar
I put months of effort into building FeatherLane, my custom RTL to Layout flow, and I got it to be just powerful enough to run RTL for a RV32I core through it. And I taped it out. FeatherLane was written in plain C with no external dependencies and the code kept as simple as possible with the hopes that it’ll be able to run on the RV32I core, allowing the CPU to reproduce its own layout from RTL. First open-source self-compiling chip layout. This shall be my claim to fame!
🎉 3
♾️ 1
Avatar
Avatar
Tim 'mithro' Ansell
Anyone played with https://alpharomerojl.github.io/reticle/ at all?
nope but this looks sick!
Avatar
Avatar
Tholin
What?
not you, me, doing:
Layout size: layout width: 1836.0 layout height: 2531.0 Expected slot size: slot width: 1936.0 slot height: 2531.0
11:50 a.m.
sparkly-clean with the latest DRC deck set to all,-wedge. Well, the filled one; the other one obviously misses that filler.
Avatar
Avatar
Tim 'mithro' Ansell
Anyone played with https://alpharomerojl.github.io/reticle/ at all?
I tried to earlier but we made the server crash 😅
algofoogle (Anton Maurovic) started a thread. 2026-07-15 11:53 a.m.
Avatar
And it's done! 🕰 (edited)
🎉 2
Avatar
https://platform.wafer.space/projects/96a9e8e4-31b1-4f4a-bdfb-0ccf39343834/ these are a couple flip chip test pads; the smaller ones are for tight and calm pitch targeting ACF bonding to JLCPCB's 0.33oz 2L flex (2~3 mil minimum usable half-pitch); the larger ones are for trying WLCSP-LGA processing options/tactics that would offer high performance (current, thermals, and signal integrity) attachment to affordable PCBs at the cost of reduced/limited pin count vs. the current wire bond option. The dense ACF tactic would have somewhat higher DC resistance and possibly thermal vulnerabilities, but could (when somewhat extended/pushed) probably double to quadruple the maximum IO count on a full slot.
Platform for wafer.space low cost silicon manufacturing.
Avatar
Looks like our online check took 3 hours and failed with 5 DRC violations despite running clean locally 🙁
🫂 1
Avatar
Is that magic or klayout violations ?
Avatar
klayout
😥 1
Avatar
asic destroyer 2026-07-15 2:01 p.m.
@Tim 'mithro' Ansell @Leo Moser (mole99) @Andrew Wingate (edited)
2:02 p.m.
🎉 3
2:04 p.m.
It looks like mainline Linux with MMU is running on the GF180MCU. Machdyne built the board and did the bring-up. He sent me one board so I can investigate it further. (edited)
💯 2
🥳 5
2:05 p.m.
He wrote to me earlier that the system has already been running for six hours.
Avatar
Avatar
Tholin
Rented a way too expensive AWS instance just to iterate faster
Which instance type out of curiosity?
Avatar
Don’t remember
Avatar
Avatar
namibj
Yeah I miss the single thread performance of my Ryzen 9 5950X; sadly the south bridge or likely it's VRM is dead. At least I was able to get this Skylake-SP system to use.
skylake-sp is old but better than nothing
2:37 p.m.
If folks working on foundational stuff like open cell libraries and PHY IP need extra compute, i may be able to help
2:38 p.m.
I have a bunch of fairly beefy compute in my home lab that I can offer up VMs on
2:39 p.m.
64 vCPUs and 512GB RAM on one and 52 vCPUs and 128GB on the other. The bigger box also has a bunch of nvidia 3050s in it
2:40 p.m.
so compute wise, i can offer up to roughly a c6i.12xlarge instance equivalent but optionally with a lot more RAM per vCPU, and one or more nvidia cards
2:40 p.m.
Upload bandwidth to the internet is only about 40 Mbps but if you're mostly using it for compute-heavy tasks and RDP/VNCing into it, that should be fine
2:41 p.m.
the big system is a xeon platinum 8362 and the smaller a gold 5320, so both are icelake based, two gens newer than skylake-sp
2:42 p.m.
I do use these same VM hosts to run my own lab production workloads as well as CI builds for ngscopeclient so i'll need to do some balancing to free up a GPU or a huge amount of compute (e.g. by reducing the level of concurrent CI jobs during the time you're using the system) so it's not something to waste lightly, but if the IP you're developing is open source and it will make a significant difference in your ability to iterate/test i'll do what I can
2:44 p.m.
High memory is easy for me to offer within reason, I have a lot of burst capacity for running tons of CI jobs
2:44 p.m.
2:44 p.m.
2:47 p.m.
@Tholin ^
Avatar
Avatar
azonenberg
If folks working on foundational stuff like open cell libraries and PHY IP need extra compute, i may be able to help
You don't happen to have the skills it takes to figure decently efficient hyperparameters for letting Xyce simulate up to a couple mm^2 of gf180mcuD PEX extraction, or do you? I lack the background to know how to tune the bunch of solver options and solver choices offered 🙁 I'm just seeing it being highly stalling on memory with also sadly substantial lacks in reasonable prefetching behavior (it's nowhere near 30% bandwidth utilization and hovers around 0.02~0.05 IPC... Yeah it's bad.)
Avatar
I have no experience with the existing solvers. Optimization in general is something I am good at when I have the time, but it's currently a lot easier for me to spend a few minutes setting up a VPN and instance for someone and letting them play with it than to spend a lot of time doing development
3:04 p.m.
Long term down the road i wanted to try my hand at making GPU accelerated blocks for some passes
3:04 p.m.
possibly including extractions
3:04 p.m.
but i'd need to understand the existing algorithms much better first and have not had time to do that
Avatar
Avatar
azonenberg
I have no experience with the existing solvers. Optimization in general is something I am good at when I have the time, but it's currently a lot easier for me to spend a few minutes setting up a VPN and instance for someone and letting them play with it than to spend a lot of time doing development
Well it's "just" some non-linear solving that seems to typically include a lot of linear solving in its course, so I don't think it's particularly Xyce-specific how one understands which solving strategies to use/try to make it faster.
Avatar
Avatar
azonenberg
Long term down the road i wanted to try my hand at making GPU accelerated blocks for some passes
Yeah I am hoping to eventually get analytic autodiff capable models to use for some fancier higher-order-derivatives-using numerical solvers/optimizers. Including enabling a way to do harmonic balance (-like) solves with intrusive sensitivity and approximated Bayesian modeling of process variations (notably local mismatch is a concern). But it's not looking too good; and a better start might be to port the mosfet models away from the crusty legacy BSIM4 code to numerically much nicer modern mosfet code that also allows physically realistic simulation of more-asymmetric FETs. (A particular interest are annual FETs and related structures.)
Avatar
This is all way beyond my understanding, the only solver i've dug into the internals of at all is method-of-moments EM analysis
3:18 p.m.
and i dont grok the math there either, i was focusing on the computationally heavy bit that solves a huge system of linear equations by LU decomposition of a matrix
3:18 p.m.
where those equations come from is somebody else's problem :p
3:18 p.m.
solving a matrix more efficiently, that i can do
Avatar
Avatar
namibj
Yeah I am hoping to eventually get analytic autodiff capable models to use for some fancier higher-order-derivatives-using numerical solvers/optimizers. Including enabling a way to do harmonic balance (-like) solves with intrusive sensitivity and approximated Bayesian modeling of process variations (notably local mismatch is a concern). But it's not looking too good; and a better start might be to port the mosfet models away from the crusty legacy BSIM4 code to numerically much nicer modern mosfet code that also allows physically realistic simulation of more-asymmetric FETs. (A particular interest are annual FETs and related structures.)
Sorry, beginner question. What are the modern models of MOSFETs represented as? What’s the successor to BSIM?
Avatar
Avatar
azonenberg
solving a matrix more efficiently, that i can do
Yeah; occasionally Xyce has to evaluate the non linear device models again.
Avatar
(most of the parasitics etc extraction i have experience with is transmission line modeling on PCBs running at tens of GHz)
Avatar
Avatar
vpro
Sorry, beginner question. What are the modern models of MOSFETs represented as? What’s the successor to BSIM?
BSIM4 is the bad one; BSIM6 and PSP103 should help a lot.
Avatar
Avatar
namibj
BSIM4 is the bad one; BSIM6 and PSP103 should help a lot.
Cool! I assume these models often packaged with closed source PDKs?
3:31 p.m.
What does it take to complete a BSIM6 model as opposed to a BSIM4 on the development of the kit?
Avatar
Avatar
azonenberg
(most of the parasitics etc extraction i have experience with is transmission line modeling on PCBs running at tens of GHz)
Does that care much about the fiber-ness of the glass or does it approximate the fiber layer as a homogenous (even if not isotropic) medium while at most having separate layers for the non-fiber sheets of matrix (typically epoxy) between them (the layers exist because the stacked fiber sheets aren't interwoven together, but it's just a stack of cloth sheets that got epoxied together into a block that's faaaar weaker to delamination than to in-plane loads)?
Avatar
Avatar
azonenberg
(most of the parasitics etc extraction i have experience with is transmission line modeling on PCBs running at tens of GHz)
SI? For SerDes? Is the industry still using Matlab for this?
3:33 p.m.
Apologies for the tirade of questions lol
Avatar
Avatar
namibj
Does that care much about the fiber-ness of the glass or does it approximate the fiber layer as a homogenous (even if not isotropic) medium while at most having separate layers for the non-fiber sheets of matrix (typically epoxy) between them (the layers exist because the stacked fiber sheets aren't interwoven together, but it's just a stack of cloth sheets that got epoxied together into a block that's faaaar weaker to delamination than to in-plane loads)?
The solver I am using does not model nonuniform dielectrics in the x-y plane. you can have arbitrary numbers of layers of any thickness, Dk, Df you want
3:36 p.m.
but the parameters cannot vary with spatial position
3:36 p.m.
So it won't model fiber weave effect
3:36 p.m.
but you can model e.g. cores and prepregs having different resin density no problem
Avatar
Avatar
vpro
SI? For SerDes? Is the industry still using Matlab for this?
Yeah. I'm sure some people use matlab i use sonnet for the extractions then do time domain modeling in ngscopeclient to do TDR/eye pattern transforms off the touchstone files
Avatar
Avatar
azonenberg
Yeah. I'm sure some people use matlab i use sonnet for the extractions then do time domain modeling in ngscopeclient to do TDR/eye pattern transforms off the touchstone files
Oh cool! I’ve been meaning to find some open source tooling around the space. Are these OSS?
3:40 p.m.
A couple friends / peers of mine did some tangential work: but this is not really a full suite, nor would I say is it super high fidelity
Avatar
Sonnet is not, it's one of the lower priced commercial EM solvers
👍 1
3:42 p.m.
I have a really good relationship with the developers, AVX code I wrote is in the inner loop of the solver now, and get a huge discount as a result
Avatar
Oh no way! That’s awesome
Avatar
ngscopeclient is F/OSS and I'm the lead dev
🤩 1
3:43 p.m.
it's also gpu accelerated and ludicrously fast, it'll do eye patterns something like 2-3 OOMs faster than my lecroy scope's vendor software
3:43 p.m.
the bottleneck is often getting data from the scope into the software, not the compute
Avatar
Makes sense, often the case nowadays
3:44 p.m.
Smth smth latency bound haha
Avatar
Which is why i am so excited about the ThunderScope
3:45 p.m.
this is 4 Gsps of live streaming sample data FFT'd in real time. 32 Gbps of waveform data, every sample off the ADC, from four different scopes around the lab firehosing over 100GbE to a single workstation
🔥 1
Avatar
So I assume your workflow is first simulating some high speed link across a PCB, then actually testing it after manufacturing?
Avatar
Yeah I iterate a bunch doing the layout in kicad, exporting to gerber, a pass through klayout to convert from gerber to dxf and crop out the region of interest, extract to s-parameters in sonnet (the one non-f/oss part of the flow) then TDR transforms and simulated eye patterns in ngscopeclient
👍 1
Avatar
Avatar
azonenberg
this is 4 Gsps of live streaming sample data FFT'd in real time. 32 Gbps of waveform data, every sample off the ADC, from four different scopes around the lab firehosing over 100GbE to a single workstation
Holy parallel processing Batman. That’s sick, what’s the key enabler from ThunderScope? Is it just an easier way to access high speed output?
Avatar
Yeah there's plenty of scopes with higher analog performance than the TS
3:47 p.m.
nothing comes even close to the back end data streaming capability
Avatar
Avatar
azonenberg
Yeah there's plenty of scopes with higher analog performance than the TS
I’ve heard yeah, was fortunate enough to see it at Latch Up this year
Avatar
picoscopes push about 2.5 Gbps max and they're the industry leader
3:47 p.m.
TS will do 8
👍 1
3:47 p.m.
that demo above is four ganged together pushing 32
3:47 p.m.
my GPU can barely keep up, it'll do FFT and draw the waveforms but when i turn on a waterfall it slows from 50 Hz refresh rate to 45
3:47 p.m.
(at 20M points per channel)
3:48 p.m.
But I want to use this same platform, and my higher bandwidth LeCroy scopes, to do open SERDES IP characterization whenever someone tapes one out with some semblance of success and gets me samples
🔥 1
3:48 p.m.
I'm capable of doing full characterization out to around 10 Gbps NRZ and BER / BER eye measurements out to 25G NRZ
👍 1
3:49 p.m.
The software can do PAM3/PAM4 as well
👍 1
Avatar
Yeah! I’ve been looking into atleast building some open source educational material around SerDes
3:50 p.m.
Not sure if a full tapeout is in scope nowadays
Avatar
Avatar
vpro
Yeah! I’ve been looking into atleast building some open source educational material around SerDes
I assume you've seen sam palermo's course notes, they're excellent
3:50 p.m.
I wrote most of the wikipedia page on eye patterns and need to add more meat there
Avatar
Avatar
azonenberg
I assume you've seen sam palermo's course notes, they're excellent
No I haven’t! I’ve been using the Springer textbook on HSS for most context so far
3:50 p.m.
I’ll take a peek
Avatar
ngscopeclient can do CDR (using a not-perfect but good enough for most purposes PLL), eye patterns, all kinds of measurements like TIE histograms and jitter spectra and bathtub curves
3:51 p.m.
most of these are GPU accelerated
Avatar
Avatar
azonenberg
ngscopeclient can do CDR (using a not-perfect but good enough for most purposes PLL), eye patterns, all kinds of measurements like TIE histograms and jitter spectra and bathtub curves
I will definitely take a peek then, I’ve been drowning in the MATLAB SerDes designer so far
3:52 p.m.
Which has been an absolute pita
Avatar
There is also a wip simulation flow. you can generate PRBses then convert to NRZ or PAM4 analog waveforms
3:52 p.m.
add sinusoidal Pj or gaussian RJ
3:52 p.m.
add AWGN
Avatar
Would be curious to learn more about workflows that ingest IBIS-AMI models, how are those actually used in verification / validation for SI?
Avatar
do FFT channel emulation of a s-parameter channel
3:53 p.m.
we do not support IBIS-AMI and have very very limited regular-IBIS support
3:53 p.m.
(it just replays canned rising./falling edge waveforms)
3:53 p.m.
we can do CTLE and tap-based FIR equalization
Avatar
That’s sick!
Avatar
simulate TX FFE pre/de emphasis or remove it
3:53 p.m.
no DFE currently
3:54 p.m.
all of these blocks can apply to real scope waveforms too
3:54 p.m.
so like, you can take a not-great eye off a scope and throw a CTLE with specific pole/zero frequencies on it in post
👍 1
Avatar
I guess the real question is the transition from this simulation tool to the (presumably) DSP-based equalization circuits on both ends. If you wanted to tape it out?
Avatar
i mean, ngscopeclient is fundamentally a waveform processing sandbox. it's not a simulation tool per se
3:55 p.m.
Right, makes sense
Avatar
it just doesnt care if the waveform you're looking at came from a CSV file or a scope or was generated by another filter graph node
3:56 p.m.
data in, stuff happens, data out
👍 1
Avatar
I guess I meant the translation of the logic from a GPU kernel to some logic on a chip
3:56 p.m.
Right, understood
Avatar
Yeah. Making an analog block that matches the behavior of a specific filter kernel is not my area of expertise
3:57 p.m.
But like, TX FIR equalization in hardware matches very closely to how you would do it in DSP
3:57 p.m.
you just have three output drivers on a sliding window of 3 output bits X, X-1, X+1
👍 1
3:57 p.m.
and adjustable weights for each
3:59 p.m.
@vpro also if you want to play with ngscopeclient please either build from source or grab the latest CI build
3:59 p.m.
there have been massive improvements since v0.1.1 and 0.2 is coming out in the next week or so probably
Avatar
Avatar
azonenberg
@vpro also if you want to play with ngscopeclient please either build from source or grab the latest CI build
Ok perfect will do, has the GPU util been built for WSL2 stations?
4:00 p.m.
Unfortunately on the go, so I'm working off my laptop haha
Avatar
No idea about WSL but it runs natively on windows, we have binaries built with msys2 that you can just install as a MSI
👍 1
4:00 p.m.
and macos
Avatar
ok perfect
Avatar
(the CI binaries are not signed although the releases are)
👍 1
Avatar
Yeah WSL is a bit weird, whenever I try to get GPU util on linux sw it's gets a bit wonky
Avatar
Avatar
vpro
What does it take to complete a BSIM6 model as opposed to a BSIM4 on the development of the kit?
First step should be filling in the physical base parameters like doping concentrations and oxide thickness, second step would IMO be synthesizing a large dump of synthetic e-test DC operating conditions with full global& local process variations enabled (and probably ideally exposed, i.e., the random values it picked from the statistical distribution should be reported with the DC operating point "measurements"), and then using an optimizer (e.g. through Xyce's sensitivity analysis or by plucking the calls to the BSIM6 code out of Xyce and stuffing it into a more targeted harness) to model-fit the tunables of the BSIM6 model bins to make it match the synthesized e-test "measurements" under the specified values for the random variables that encode the local&global process variations (those random variables with physically reasoned statistical distribution shapes get mangled by the non-linear mosfet model into whatever effect they have on the synthetic-e-test "measurements"). I kinda hoped to include some actual e-test DUTs on a convenient analog MUX on Run2 so we could have set up to collect real e-test measurements from literally a couple hundred dies, to give us the ability to much better calibrate the statistical models of "single-FOUP batch-of-wafers" "pseudo-local" mismatch. ..including a way to model how location on the wafer affects things, and, to an extent, at least approximating a multi-scale stochastic model of the "locality" concept for mismatch/matching. Like, @tnt always says to bias MOSFET current sources (for e.g. differential amplifier tail current biasing) by copying a master reference current for all consumer blocks, wiring to those consumer blocks the thus constant-current lines, and receiving these reference currents into a current mirror locally at each block. Sure, there are some effects that can shift reference potential, like IR drop in the PDN on the VSS connection, but beyond those aspects (which are just cases of "single ended signaling is sensitive to ground bounce"), and ofc temperature differences from gradients across the die, but otherwise it's some form of currently-not-modeled locality-sensitive mismatch. I'd like to have a stochastic model that can quantify the trade-off between more sequential stages of current mirrors/current-fan-out multi-output buffers, and using larger transistors but fewer stages, which could both be dialed to have equal area and power, differing only in "performance". And without a model that actually differentiates between a nicely laid out matched pair, and someone placing the input and output of a simple current mirror 500μm apart, I'm very-not-happy about that concept. Because everything in the choice of shapes and their arrangement in the GDS is a trade-off. Starts with higher density SCL PnR taking prohibitively long to succeed creating a legal routing that meets timing, and ends somewhere around dreaming up structures like the free vertical PNP & NPN of sky130A/gf180mcuD, the ldmos structures of both, and some esd-clamping structures that can be made with the same mask set fabrication process (but not necessarily the same mask layer generation from drawn layers (I don't mean OPC, but rather that some masks (pre-OPC) are kinda indirect Boolean functions of several drawn layers)) while behaving as a poly-gate-triggered thyristor. (Such thyristor approaches can beat passive ESD diodes by a lot, especially in situations where there are no convenient fat power rails a diode could clamp to, like a 5V CMOS GPIO on a chip that's otherwise running a 1.8V core; it'd be easy to overload the entire 5V VDD rail if there are just a couple GPIO cells on that supply.)
🔥 1
Avatar
Avatar
azonenberg
But I want to use this same platform, and my higher bandwidth LeCroy scopes, to do open SERDES IP characterization whenever someone tapes one out with some semblance of success and gets me samples
working towards it
Avatar
Avatar
azonenberg
The software can do PAM3/PAM4 as well
Btw, is there practical utility to creating a 10GBaud PAM3/4 TX on gf180mcuD/sky130A?
Avatar
I am not aware of any existing protocols that do this, but it would be fun to characterize
4:23 p.m.
1000baseT1 is 750 Mbaud PAM3 and 100baseT1 is 66 Mbaud PAM3
4:23 p.m.
i do not know of anyone using PAM4 below about 28 gbaud
4:24 p.m.
I also do not see a point in making an open ethernet PHY IP at this stage because those are cheap jellybean parts you can buy
4:24 p.m.
the key enablers will be high speed IO interfaces you can't practically buy as an external peripheral, e.g. PCIe
4:25 p.m.
The minimum viable "actually useful" high speed PHY, in my opinion, is a 2.5 Gbaud NRZ SERDES that supports the PCIe receiver detect stuff, and can run at half-rate for SGMII / 1000base-X
4:25 p.m.
that will give you ethernet and pcie gen1 (edited)
4:26 p.m.
the next notches up on the list of interesting targets are 5 Gbaud NRZ for pcie gen2, 8 Gbaud NRZ for pcie gen3, and 10.3125 G NRZ for 10GbaseR
4:27 p.m.
and then in between all of this, JESD204 doesnt have fixed speed targets and you can run it at whatever speed depending on your adc clock and lane count, so it would be enabled by any of the above and there's not like a "jesd204 gen1" speed we can aim for
4:27 p.m.
5G NRZ would also enable usb3
4:27 p.m.
the usb3 phy is almost identical to pcie gen2 and dual-mode PHYs are very common
4:28 p.m.
so any serdes capable of doing one can likely, with few if any changes, do the other
Avatar
Avatar
vpro
Not sure if a full tapeout is in scope nowadays
I have like 70% of the cells for 10GBaud NRZ TX on gf180mcuD with a couple taps of FIR, and current-mode output driver, behaving themselves in xschem/SPICE for a few weeks now, and about 20% of the overall cells through layout, so it should be realistic to finish the rest and then do a bit of post-layout SPICE tuning to make them run significantly more efficiently (to afford the power of several FIR taps), months before the Run3 deadline. Help would be VERY appreciated. Let's talk in 10~15 days on details if you're interested; expressing interest or chatting about rough plans for the project and that can be discussed sooner.
Avatar
I am interested in post silicon characterization but am not familiar enough with the analog side of things to be able to contribute significantly to the design
4:29 p.m.
I want it to exist and will happily test once it's made
4:30 p.m.
and I am very comfortable with line coding and similar stuff that can be paired with said serdes once it's validated to do Real Work (tm)
4:30 p.m.
e.g. I have an FPGA proven 64/66b coder and 10gbaseR PCS block that I also used the 64/66b block from on a 28nm ASIC and it worked there too
4:32 p.m.
And I can assist with things like board layout and test fixture design
4:32 p.m.
but i do not know transistor level analog design/layout at all
4:33 p.m.
and in a couple weeks if access to some big iron VMs will help your simulations and tuning, i can probably help with that too
Avatar
Avatar
azonenberg
I also do not see a point in making an open ethernet PHY IP at this stage because those are cheap jellybean parts you can buy
IMO "it just spits out Ethernet frames into a regular 10GBASE-SR/25GBSE-SR(-C) SFP+/SFP28, with a comfy 100BASE-T or RGMII back-channel for the reverse of the link" is a fairly convenient to consume high speed output option for these MPW options, because it's one of the few not-horribly-proprietary/-exotic SerDes MAC protocols that works without a high speed RX on the ASIC and hyper-COTS reception equipment on the way from the ASIC into a computer. PCIe&USB need duplex PHYs; MIPI DSI/CSI are generic but not cheap COTS to funnel into a computer; DP/HDMI are waaaay more expensive but likely still cheaper than DSI/CSI to funnel into a computer without the dongle forcing lossy image compression; imfiniband fiber channel SAS and SATA AFAIK all demand duplex PHYs; that leaves what other option besides Ethernet?
Avatar
Avatar
azonenberg
I am interested in post silicon characterization but am not familiar enough with the analog side of things to be able to contribute significantly to the design
Yeah I know.
Avatar
what i mean is i dont see a point in making a baseT PHY because you can easily just hang a RGMII off your chip
4:43 p.m.
ideally i would like a bidirectional high speed PHY but a TX-only 10G PHY is certainly a good starting point
4:49 p.m.
(and a TX is probably easier to validate than a RX)
Avatar
Avatar
azonenberg
what i mean is i dont see a point in making a baseT PHY because you can easily just hang a RGMII off your chip
Oh yeah, especially because the non-rare-variant BASE-T speeds that would even be properly interesting for direct usage are AFAIK all full-duplex with echo-cancellation. Which is not reasonable to do "casually"; pretty sure it's much easier to do 1000BASE-KR than to do 1000BASE-T.
Avatar
yes by far
4:52 p.m.
I would much rather slap a SGMII PHY or baseT SFP+ in a cage next to a chip than try to put a 1000baseT PHY on it
4:52 p.m.
100baseTX is probably reasonable to do for fun but there's no practical point
Avatar
Avatar
azonenberg
ideally i would like a bidirectional high speed PHY but a TX-only 10G PHY is certainly a good starting point
Sure some use cases need high speed RX, but it's much harder to push RX speed on a process node people traditionally question the possibility of that SerDes speed with, than it is to RX. E.g. I'm pretty sure with inductors and using about half of a w.s quarter slot I could get to spec-compliant 25GBASE-KR TX; and on a full slot probably upgrade that to 50GBASE-KR with it's PAM4, but I have no hope getting even just 25GBASE-R RX anywhere near nominal RX equalization quality/eye-tolerance on a full slot, unless you let me burn like 10~20 W or thereabouts which would need gaming overclocking levels of die TDP/heatsink solutions to pull off.. The 25G TX should not need more than a decent QFN package and a decent PCB with thermal vias in a not-hot-stuffy-enclosure environment to run, in comparison...
Avatar
Avatar
azonenberg
100baseTX is probably reasonable to do for fun but there's no practical point
IIRC there's PHY for that on a recent TT.
Avatar
yeah 25G is a whole different ballgame
Avatar
Well, maybe missing the differential impedance matched line driver/receiver but that's harmless at that speed.
Avatar
for me, 2.5G full duplex would be more interesting as a baseline because then i could hang the chip off of pcie
5:01 p.m.
i would even be OK with needing an external repeater/retimer because its buitl in receiver can't handle as much insertion loss as the spec demands
Avatar
Avatar
azonenberg
yeah 25G is a whole different ballgame
I'm not sure 10G RX is easy, at least not with non-peachy eyes.
Avatar
How feasible do you think a 2.5G RX / as-fast-as-you-can TX would be?
5:03 p.m.
i.e. you can use it for pcie or 1000baseX, or a super-fast one-way link
5:03 p.m.
perhaps as separate physical IPs for tx, rx, and common/pll
5:03 p.m.
that you can gang in any combo
Avatar
Avatar
azonenberg
i would even be OK with needing an external repeater/retimer because its buitl in receiver can't handle as much insertion loss as the spec demands
5G should not be a problem as long as the eye is open enough with 2-"tap" (it's not taps but I forgot the unit, it's the "2" though) CTLE and no DFE to have a decent jitter tolerance. Only 8b/10b though because CDR gets much harder to lock on without that many forced transitions.
Avatar
well all of the common 5G protocols like pcie gen1/2 and usb3 use 8b10b anyway
5:05 p.m.
so that's fine
Avatar
Avatar
azonenberg
perhaps as separate physical IPs for tx, rx, and common/pll
There's two parts to the PLL; the fast VCO directly tuned to the gigabit current mode logic gates, and whatever 100s of MHz intermediate you can handle with CMOS SCL clock trees that you use with probably a reference crystal and dial in to give you the CDR because it's comfy to work with; the fast VCO would run a fixed divider wide bandwidth PLL from that, likely matching the MUX ratio of the SerDes.
Avatar
Avatar
azonenberg
well all of the common 5G protocols like pcie gen1/2 and usb3 use 8b10b anyway
Yeah except 5GBASE-R 😄
Avatar
5gbaseR is not 5gbaud
5:22 p.m.
or wait baseR
5:22 p.m.
is that a thing
5:23 p.m.
is it like downclocked 10gbaseR
5:23 p.m.
i wanted this yaears ago when artix7 was the new hotness to get >1 gbps off a cheap fpga to a lan
5:23 p.m.
i could have hypothetically built it but nothing spoke it that i could put on the far end of the link
Avatar
Avatar
azonenberg
i would even be OK with needing an external repeater/retimer because its buitl in receiver can't handle as much insertion loss as the spec demands
If I make you a parametric SPICE model for a tunable CT"L"E input buffer/limiting amplifier, where you "design time" tune the sizing parameters and "run time/link tuning" tune the bias currents, would you be in a position to subject that to sufficiently-realistic input eyes and see if there's a set of sizing parameters that let you turn the relevant range of input eyes into a "reasonably open, with enough Vp-p opening to work for the CDR samplers (what number that means I can estimate in a few days)" eye, while only needing to tune the bias currents to adapt between the various realistic input eyes? If the 2-stage version with like 7 bias currents (DC offset cancellation strength applied to I guess a cascode input stage that exploits the low impedance to recover some initial sensible signal amplitude for the subsequent CTLE activity; 2 second-order cells w/active-negative-feedback that work to first calmly then forcefully spread the eye open by delivering peaky gain with flatness towards DC) would be "manageable" for you approaches to that task, we could hope for the preparations on my side for that being done in 10~15 days...
Avatar
Avatar
azonenberg
is it like downclocked 10gbaseR
Exactly. They also adjusted the error counter fault state trigger thresholds to maintain some nominal time constant for trip speed of sorts, but other than this error monitoring/fault state adjustment, and probably fine details on the nominal eye shapes, it's literally half-rate 10GBASE-R.
Avatar
Avatar
azonenberg
i could have hypothetically built it but nothing spoke it that i could put on the far end of the link
Yeah I don't know of any decent COTS switches that speak it. I feel it only exists for 5GBASE-T SFP+ modules or maybe SFP+ option on something that is not supposed to be 10G PHY capable for arbitrary reason but wants to use 5GBASE-T for some forsaken reason of those two applying together... Like no one can use it so just do 10GBASE-R and throw pause packets at the far end when your small packet buffer gets full...
Avatar
Avatar
namibj
If I make you a parametric SPICE model for a tunable CT"L"E input buffer/limiting amplifier, where you "design time" tune the sizing parameters and "run time/link tuning" tune the bias currents, would you be in a position to subject that to sufficiently-realistic input eyes and see if there's a set of sizing parameters that let you turn the relevant range of input eyes into a "reasonably open, with enough Vp-p opening to work for the CDR samplers (what number that means I can estimate in a few days)" eye, while only needing to tune the bias currents to adapt between the various realistic input eyes? If the 2-stage version with like 7 bias currents (DC offset cancellation strength applied to I guess a cascode input stage that exploits the low impedance to recover some initial sensible signal amplitude for the subsequent CTLE activity; 2 second-order cells w/active-negative-feedback that work to first calmly then forcefully spread the eye open by delivering peaky gain with flatness towards DC) would be "manageable" for you approaches to that task, we could hope for the preparations on my side for that being done in 10~15 days...
I don't have any easy way to work with spice models. if i can get s-parameters i can use those
Avatar
Avatar
azonenberg
I don't have any easy way to work with spice models. if i can get s-parameters i can use those
Behavior is non-linear; how would you handle a DFE? I think I could set it up to have you feed a time-series in, possibly parametric, possibly subjected to parametric distortion, and produce the gradient of the output waveform with respect to the parameters? Gradient-free output from SPICE would of course be trivial but I'd guess it might be substantially less powerful.
Avatar
I mean you could probably build something as a dedicated filter block
7:47 p.m.
but the existing channel emulation block just works with s-parameters
Avatar
(I'm thinking have the cascode (common-gate) input stage be DC current biased through the output load of it and at the source side sink into the 50 Ohm input termination resistor, while matching/compensating the input capacitance of the cascode with an input series inductor.)....
Avatar
in general ngscopeclient is not really a circuit simulator it works with waveform data
7:49 p.m.
it assumes you have a waveform plugged into an ideal termination and then do something to it
7:49 p.m.
so like, you can add emphasis or equalization from a simple tap model or something
Avatar
Avatar
azonenberg
but the existing channel emulation block just works with s-parameters
Ok so the idea was that I could relatively straight forward adapt the recently tuned 10 Gbit/s limiting amplifier cell I wanted to use to boost the drive of the MUX to 50 Ohm output strength levels; add an impedance matching input stage dual-acting to handle DC offset cancellation (I.e., drop the low frequency gain towards zero); figure out how to present a representative load to the output that loads the CTLE stage's output like a CDR sampler would; then give that to you. So that you can use whatever approaches you would normally apply for figuring out whichever tuning dial settings of a CT"L"E properly open the eye after a simulated channel. Then you'd loop that thing to force progressively worse channels onto it, tuning the SPICE model's tunables/synthesis-instantiation-arguments to let it keep up with the worsening channels, while still always checking that the less-bad channels don't end up exceeding the input amplitude "linear" range (despite attempting to adjust the run-time-dials (bias currents) to get the equalizer "back" to acceptable emphasis, considering that we're expecting the circuit to become suited for more and more peaking and a gain).
Avatar
Avatar
namibj
First step should be filling in the physical base parameters like doping concentrations and oxide thickness, second step would IMO be synthesizing a large dump of synthetic e-test DC operating conditions with full global& local process variations enabled (and probably ideally exposed, i.e., the random values it picked from the statistical distribution should be reported with the DC operating point "measurements"), and then using an optimizer (e.g. through Xyce's sensitivity analysis or by plucking the calls to the BSIM6 code out of Xyce and stuffing it into a more targeted harness) to model-fit the tunables of the BSIM6 model bins to make it match the synthesized e-test "measurements" under the specified values for the random variables that encode the local&global process variations (those random variables with physically reasoned statistical distribution shapes get mangled by the non-linear mosfet model into whatever effect they have on the synthetic-e-test "measurements"). I kinda hoped to include some actual e-test DUTs on a convenient analog MUX on Run2 so we could have set up to collect real e-test measurements from literally a couple hundred dies, to give us the ability to much better calibrate the statistical models of "single-FOUP batch-of-wafers" "pseudo-local" mismatch. ..including a way to model how location on the wafer affects things, and, to an extent, at least approximating a multi-scale stochastic model of the "locality" concept for mismatch/matching. Like, @tnt always says to bias MOSFET current sources (for e.g. differential amplifier tail current biasing) by copying a master reference current for all consumer blocks, wiring to those consumer blocks the thus constant-current lines, and receiving these reference currents into a current mirror locally at each block. Sure, there are some effects that can shift reference potential, like IR drop in the PDN on the VSS connection, but beyond those aspects (which are just cases of "single ended signaling is sensitive to ground bounce"), and ofc temperature differences from gradients across the die, but otherwise it's some form of currently-not-modeled locality-sensitive mismatch. I'd like to have a stochastic model that can quantify the trade-off between more sequential stages of current mirrors/current-fan-out multi-output buffers, and using larger transistors but fewer stages, which could both be dialed to have equal area and power, differing only in "performance". And without a model that actually differentiates between a nicely laid out matched pair, and someone placing the input and output of a simple current mirror 500μm apart, I'm very-not-happy about that concept. Because everything in the choice of shapes and their arrangement in the GDS is a trade-off. Starts with higher density SCL PnR taking prohibitively long to succeed creating a legal routing that meets timing, and ends somewhere around dreaming up structures like the free vertical PNP & NPN of sky130A/gf180mcuD, the ldmos structures of both, and some esd-clamping structures that can be made with the same mask set fabrication process (but not necessarily the same mask layer generation from drawn layers (I don't mean OPC, but rather that some masks (pre-OPC) are kinda indirect Boolean functions of several drawn layers)) while behaving as a poly-gate-triggered thyristor. (Such thyristor approaches can beat passive ESD diodes by a lot, especially in situations where there are no convenient fat power rails a diode could clamp to, like a 5V CMOS GPIO on a chip that's otherwise running a 1.8V core; it'd be easy to overload the entire 5V VDD rail if there are just a couple GPIO cells on that supply.)
Haha, this is super cool. Makes sense, we did some characterization work in labs and classes, so this seems like it would make sense with regards to having fixed designs with certain curves to fit
8:07 p.m.
I'll definitely take some time to read up on this though, I can't say I fully understood everything
Avatar
Avatar
namibj
I have like 70% of the cells for 10GBaud NRZ TX on gf180mcuD with a couple taps of FIR, and current-mode output driver, behaving themselves in xschem/SPICE for a few weeks now, and about 20% of the overall cells through layout, so it should be realistic to finish the rest and then do a bit of post-layout SPICE tuning to make them run significantly more efficiently (to afford the power of several FIR taps), months before the Run3 deadline. Help would be VERY appreciated. Let's talk in 10~15 days on details if you're interested; expressing interest or chatting about rough plans for the project and that can be discussed sooner.
Let's do it! I'm pretty green with SerDes design, but would like to help in any capacity I can.
Avatar
Avatar
azonenberg
in general ngscopeclient is not really a circuit simulator it works with waveform data
If this CT"L"E was Verilog instead of spice, how would you search for instantiation arguments that allow the run-time-tunable registers to cover the entire range of expected channels (open the eye enough for the slicer to maintain negligible BER), starting off with conservative instantiation arguments that are incapable of providing substantial gain or peaking, but are sufficiently obvious to come up with by hand, forcing it to handle worse and worse channels as the instantiation arguments become better?
Avatar
For simulation, isn't this somewhat of a "closed" problem with the prevalence of the IBIS-AMI spec?
8:10 p.m.
Something I wanted to build to help folks onboard onto playing around with SerDes modules (through simulation), is essentially designing a harness to allow verilator C++ to be linked to the dlls that AMI would consume to define the "algorithm" portion of simulation
8:11 p.m.
Unsure if I'm missing something / making some misguided assumptions
8:11 p.m.
https://github.com/WXY163/ezAMI was looking at this work (and the associated paper) as inspiration
an C++ IBIS-AMI generation tool. Contribute to WXY163/ezAMI development by creating an account on GitHub.
Avatar
Avatar
vpro
Something I wanted to build to help folks onboard onto playing around with SerDes modules (through simulation), is essentially designing a harness to allow verilator C++ to be linked to the dlls that AMI would consume to define the "algorithm" portion of simulation
Well so my case is not verilog.
Avatar
I assume some analog blocks?
Avatar
It's a spice subcircuit parametrized by a bunch of synthesis-time adjustables, which it then turns into underlying spice model instance parameters with the built in expression support of the SPICE engine.
Avatar
realistically it seems like you can pipe any function into the spec for the Init or GetWave, and still reap the benefits. At some point you have to wonder if there is any merit to using the spec as opposed to simply creating a bespoke simulator
8:18 p.m.
but it should be plenty useful if you could model the eqns in C++ and just link it into some AMI model
Avatar
There's also the mentioned about 7 bias currents it takes that in a tapeout are adjusted by suitably configured DACs. (Like, think number of bits, offset, amplitude of LSB.)
Avatar
makes sense, afaik there's a reason why the industry tended away from doing pure spice simulations of the whole SerDes module. Though, I'm curious what your intended goal is and what software doesn't exist to simulate it?
Avatar
The goal is to start with hand picked synthesis parameters that give behavior closer to a unity gain buffer than a wide range adjustable variable-gain-amplifier/CT"L"E combo, and maybe also give a set of bias currents that make it behave like that unity-ish-gain buffer so the optimizer can rely on some trust-region search algorithm to not get lost in non-functional regions of the parameter space.
Avatar
Avatar
vpro
makes sense, afaik there's a reason why the industry tended away from doing pure spice simulations of the whole SerDes module. Though, I'm curious what your intended goal is and what software doesn't exist to simulate it?
It's not for the full SerDes we're just trying to find a tuple of the about 20~30 transistor sizing parameters which instantiated a CT"L"E that can be run-time-tuned from a good channel all the way to a mildly-shitty channel.
Avatar
I see. Why not just use QSpice or Xyce or something to simulate and design it? Or is this just like a "this is what we have to do, but haven't done yet", kinda thing
Avatar
The difficulty for me is that I don't know how I should ideally do the tuning of the bias currents for various channels to verify that it will be capable of tuning to all those channels when taped out.
Avatar
Avatar
vpro
I see. Why not just use QSpice or Xyce or something to simulate and design it? Or is this just like a "this is what we have to do, but haven't done yet", kinda thing
I guess an idea would be to have a set of representative channels and keep the bias currents needed for each one updated as the parameter tuning goes on, enforcing boundaries on the searched space by banning movement in parameter space that would force any of the already tunable channels's bias currents to get out-of-legal-range?
8:31 p.m.
Then it's "just" a question of how to properly express the ability to eye open in the Xyce run?
Avatar
I think you need "the rest of the owl" at some point, or to design some heuristic which provides a similar amount of confidence
8:32 p.m.
this is kind of why I think folks use Matlab to export models of "whole serdes", and then just poke around with the parameters to solve and isolate for values (biases in your case) that they care about
8:33 p.m.
I'm not too sure, I probably need to look into this a lot more and start breaking things before I can give definitive answers
8:35 p.m.
if you're designing a CT"L"E, maybe it does actually make sense to port over some compiled C++ that fits into the Algorithm portion of an AMI. The AMI will give you the simulation harness to see the eye and test the "whole system" in operation, whereas you can write the code which updates the logic based on the spice subcircuits you defined
Avatar
If you could express that eye opening aspect in transient mode Xyce I think it should be fairly straight forward to use it's .SENS to compute gradients of the bias current choices w.r.t. the resulting output eye (locally for each channel that's already open), and for-subsequent-aggregated-summing the gradients of the instantiation parameters which are shared across all tested channels and therefore have to be basically just added up (iirc differentiation rules correctly) over those channels, to get the global shared desire of how the parameters should evolve to enable better eyes.
👍 1
Avatar
Avatar
vpro
if you're designing a CT"L"E, maybe it does actually make sense to port over some compiled C++ that fits into the Algorithm portion of an AMI. The AMI will give you the simulation harness to see the eye and test the "whole system" in operation, whereas you can write the code which updates the logic based on the spice subcircuits you defined
Well it's wired like a plain active CTLE (gain-peaking linear amplifier), it just has an ability to somewhat deliberately clip it's output amplitude by essentially having too much gain for the voltage supply/bias conditions of the output to possibly remain linear.
8:42 p.m.
(I've noticed the limiting amplifier gain cell I've already mostly tuned to exhibit notable run-time-adjustable amounts of gain-peaking and overall/low-frequency gain, which AFAIK is basically what one wants from a CTLE anyways?)
Avatar
Avatar
vpro
I see. Why not just use QSpice or Xyce or something to simulate and design it? Or is this just like a "this is what we have to do, but haven't done yet", kinda thing
Because I have not yet figured out how to measure the eye quality in a way where I could hope to get useful gradients from Xyce, which I btw. low key need to get anywhere without days of compute trying to explore a 10~30 dimensional (even if reasonably compressing it by rotating the vector space until only a few dimensions still experience substantial changes during the optimization) search space of transistor sizing, and let's not forget that we constantly have to keep the run time tunables updated for all channels that we already solved so that we'll notice if it ever tries to sacrifice the ability to read a good channel to learn how to (better) understand the newest shitty channel.
Avatar
Avatar
vpro
makes sense, afaik there's a reason why the industry tended away from doing pure spice simulations of the whole SerDes module. Though, I'm curious what your intended goal is and what software doesn't exist to simulate it?
Clear enough what this upcoming CT"L"E optimization/search is supposed to accomplish?
Avatar
Tim 'mithro' Ansell 2026-07-16 1:03 a.m.
Morning everyone, it looks like ya'all broke https://platform.wafer.space overnight?
Platform for wafer.space low cost silicon manufacturing.
Avatar
Avatar
Tim 'mithro' Ansell
Morning everyone, it looks like ya'all broke https://platform.wafer.space overnight?
Tim 'mithro' Ansell 2026-07-16 1:04 a.m.
Nope, it just looks like the admin interface is slow.
Avatar
Avatar
Tim 'mithro' Ansell
Morning everyone, it looks like ya'all broke https://platform.wafer.space overnight?
We are innocent 👼 🥳
😂 1
Avatar
судонет 2026-07-16 9:03 a.m.
is this a smol risc i see?
👌 1
9:08 a.m.
(this MIGHT be my first ever submission)
Avatar
repo for my cpu if anyone wants: https://github.com/SUD0NET/as16
16-bit RISC CPU designed by a student in Sydney Technical High School. - SUD0NET/as16
kcolley started a thread. 2026-07-16 10:46 p.m.
Avatar
Hi everyone! Since GF180MCU Run 2 is already over, is there an estimated timeline or tentative schedule for GF180MCU Run 3? Thanks!
Avatar
Avatar
DuanLC
Hi everyone! Since GF180MCU Run 2 is already over, is there an estimated timeline or tentative schedule for GF180MCU Run 3? Thanks!
судонет 2026-07-17 1:44 a.m.
based on the mpw schedule, the next gf180mcu shuttle after run 2 will be taped out in January 2027 (edited)
👍 1
1:44 a.m.
so i presume it will be some time during q4 2026
Avatar
Is there an xschem symbol library available for the gf180mcu standard cells?
Avatar
Avatar
судонет
based on the mpw schedule, the next gf180mcu shuttle after run 2 will be taped out in January 2027 (edited)
Thank you!
Avatar
Avatar
DuanLC
Hi everyone! Since GF180MCU Run 2 is already over, is there an estimated timeline or tentative schedule for GF180MCU Run 3? Thanks!
Tim 'mithro' Ansell 2026-07-17 2:41 a.m.
It is likely that Run #3 will open on 1st August with the final submission date around mid-December. If that run is a success then it is likely we will move to doing a run per quarter in 2027.
👍 9
😮 1
Avatar
Tim 'mithro' Ansell 2026-07-17 5:06 a.m.
FWIW - We delivered the GDS for Run #2 to GlobalFoundries today.
🎉 18
❤️ 1
🔥 2
waferspace 1
urish started a thread. 2026-07-17 6:23 a.m.
Avatar
Does anyone know how "principled" the PEX extraction is inside magic / klayout? Which should I use? I have drawn some manual tap cells instead of using the guard rings to save space, and want to be sure these are somewhat realistically modelled in simulation...
Avatar
Avatar
судонет
repo for my cpu if anyone wants: https://github.com/SUD0NET/as16
Did you view this image using klayout? It looks great
Avatar
Avatar
Nino_Y
Did you view this image using klayout? It looks great
yep
Avatar
Tim 'mithro' Ansell 2026-07-18 12:13 a.m.
👍 8
🔥 2
Avatar
Avatar
namibj
Clear enough what this upcoming CT"L"E optimization/search is supposed to accomplish?
yeah this makes a lot of sense, I'm going to read up more on what current simulation tools / metrics exist. I'll ask around at school too
Avatar
Silly question - has anyone done a rom generator?
Avatar
Avatar
Rob Taylor
Silly question - has anyone done a rom generator?
Egor Lukyanchenko 2026-07-19 5:47 a.m.
No, as far as I'm aware. I've done an efuse array generator, but not a regular ROM. There is no much reason to implement a ROM generator for gf180mcu, because Librelane-implemented ROM would usually be smaller and faster than classic VIA-programnable ROM array, and there is no option to patch only a VIA mask with wafer.space.
Avatar
Leo Moser (mole99) 2026-07-19 7:47 a.m.
Sylvain is working on a ROM compiler. See: It has already been silicon-verified on sky130. At some point, it may be ported to gf180mcu. I do think that a ROM compiler would be very useful as it should be denser much more predictable than just a standard-cell ROM: you can swap out the data late in the design process and the size and timing will stay the same.
tnt started a thread. 2026-07-19 8:40 a.m.
Avatar
Ethan Mahintorabi 2026-07-19 3:54 p.m.
Just wanted to quickly share that Google joined The OpenROAD Initiative board. The charity is now the owner of the OpenROAD repo and ensures that no one company has sole control over the repo or direction of the project. https://openroadinitiative.org/google-joins-ori/
OpenROAD Initiative - Democratize chip design, the open-source way!
Avatar
Tim 'mithro' Ansell 2026-07-20 5:48 a.m.
IHP scientists released the IHP Open ADK, the first European open-source Assembly Design Kit for heterogeneous chiplet systems with a real route to fabrication. Presented at the 2026 Free Silicon Con-ference in Ljubljana, the IHP Open ADK lowers the barriers to chip design and fabrication for researchers and start-ups.
👀 6
🎉 1
Avatar
@Essen any plans on timeline for continuing work on the muxed e-test?
Avatar
Avatar
namibj
@Essen any plans on timeline for continuing work on the muxed e-test?
How about we sit down and chat about it via voice early next week. I will let the specific time up to you, just dm me.
Avatar
Avatar
Essen
How about we sit down and chat about it via voice early next week. I will let the specific time up to you, just dm me.
Sure.
👍 1
Avatar
Tim 'mithro' Ansell 2026-07-20 10:02 p.m.
I'll be speaking at COSCUP in Taiwan in a few weeks about wafer.space - https://coscup.org/2026/session/CV8FKG/
Twenty years ago, getting a custom circuit board made was slow, expensive, and painful. Then pooling services like OSH Park, JLCPCB, PCBWay, and Seeed Studio made it cheap, predictable, and open to anyone. [Tim 'mithro' Ansell](ht...
👀 3
👍 9
💜 1
🥳 1
❤️ 1
Avatar
Avatar
vpro
yeah this makes a lot of sense, I'm going to read up more on what current simulation tools / metrics exist. I'll ask around at school too
Hmm, so, I've done some more thinking and reading (e.g. https://downloads.graniteriverlabs.com/hubfs/Presentation-and-Publication/PCIe_EQ_and_Optimization_Fulldeck-FINAL.pdf ), and well, I think I could get Xyce to produce a sufficiently dense grid of S-parameter tables if the concrete frequencies of concern are known, including probably first-order gradients of those S-parameters w.r.t. the sweep-tunables; that's for each block in the CTLE setup, i.e., the resistive loads, and the differential pairs on their tail current sources; approximating reasonably representative bias-to-substrate voltages. @azonenberg If I thus can provide the (probably 2, I think: diff pair & resistive load) blocks as interpolatable (if needed with interpolator and/or Xyce script to generate fresh on-the-fly to runtime requested exact values) S-parameter specs (Touchstone?), and a nominal connection topology for how they assemble into the CTLE, would that suffice to let the equalizer tuning scripts (or whatever exists) figure out if they can even just under nominal conditions be assembled and then biased into a CTLE that's powerful enough to give a usably-open eye as part of a 10GBASE-SR "serdes in the receive path?
❤️ 1
7:52 p.m.
(Tim Edwards's project proposal deadlines for the first of the iiuc 6 planned chips would want us to figure out if 10GBASE-R reception from (ideally spec-compliant (worst the spec still allows), but at least practically realistically degraded) non-retimed signals could (with enough praying, at least, to the dieties of PVT robustness) work out on all 3 targeted PDK's, without needing to drag in DFEs.)
Avatar
Avatar
namibj
Hmm, so, I've done some more thinking and reading (e.g. https://downloads.graniteriverlabs.com/hubfs/Presentation-and-Publication/PCIe_EQ_and_Optimization_Fulldeck-FINAL.pdf ), and well, I think I could get Xyce to produce a sufficiently dense grid of S-parameter tables if the concrete frequencies of concern are known, including probably first-order gradients of those S-parameters w.r.t. the sweep-tunables; that's for each block in the CTLE setup, i.e., the resistive loads, and the differential pairs on their tail current sources; approximating reasonably representative bias-to-substrate voltages. @azonenberg If I thus can provide the (probably 2, I think: diff pair & resistive load) blocks as interpolatable (if needed with interpolator and/or Xyce script to generate fresh on-the-fly to runtime requested exact values) S-parameter specs (Touchstone?), and a nominal connection topology for how they assemble into the CTLE, would that suffice to let the equalizer tuning scripts (or whatever exists) figure out if they can even just under nominal conditions be assembled and then biased into a CTLE that's powerful enough to give a usably-open eye as part of a 10GBASE-SR "serdes in the receive path?
for my own flows, there's no "equalizer tuning scripts". I can simulate a PRBS with various impairments and channel models through an s-parameter model of the various equalizer blocks
8:00 p.m.
but you have to decide manually how to combine them, and there's not like a trivial pass/fail at the output
8:00 p.m.
you need to define an eye mask for what your receiver can tolerate after equalization and i can check BER
Avatar
Avatar
azonenberg
but you have to decide manually how to combine them, and there's not like a trivial pass/fail at the output
Oh yeah I have like 2 or 3 topologies that I'd consider relevant to explore/check "for starters"; what I don't have is any good idea with what tuning knob values to instantiate the blocks (those translate to transistor sizing and biasing conditions). I can create an overview and a script that feeds particular values into Xyce and spits out the exact corresponding Touchstone file; but I don't really know how to actually fiddle them until they start to sufficiently approximate a useful CTLE response.
Avatar
i mean if you are able to just plot the s-parameters i can look at them to get a starting idea
Avatar
Avatar
azonenberg
you need to define an eye mask for what your receiver can tolerate after equalization and i can check BER
I'd start with 0.1 UI and 10% of peak amplitude, I know that's aggressive but if it can't equalize for such an IMO tolerant slicer, I don't think it'd work out without involving a DFE.
Avatar
Avatar
azonenberg
i mean if you are able to just plot the s-parameters i can look at them to get a starting idea
plot how?
8:08 p.m.
(I'm trying to understand today; and have a productive day at my desk and only my desk (no travel!!!) tomorrow to implement that.)
Avatar
just S21 log mag vs frequency
8:08 p.m.
ngscopeclient or any of a ton of other tools can just display this
8:08 p.m.
off the s2p
8:09 p.m.
and then probably also time domain step response is good to have to look for any weird phase nonlinearities
Avatar
Note that the naive S-parameters will be horribly unmatched-impedance because these are not blocks with transmission line ports, these are blocks with discrete (probably usually aluminium, iirc the PDKs) wires of a few 10's of um's length.
Avatar
what about your input buffer?
Avatar
We're gonna drive them all nice in the region they act linear for comfy CTLE action; they will eventually behave as a limiting amplifier depending on how the knobs were tuned at least, but I'm relegating that behavior to a stage after the CTLE because AFAIK your simulation setup is not accustomed to dealing with translinear blocks.
Avatar
i assume you're buffering the input before it goes into the equalizer?
8:12 p.m.
and yeah i can't easily model anything nonlinear
Avatar
Avatar
azonenberg
what about your input buffer?
We can dream up a T-coil via the power of imagination (and remembering that inductor Q over 5 will be questionable) to deal with that issue.
8:14 p.m.
(Ok I make another "block" that's a common-gate diff pair which should allow nicer matching there.)
Avatar
Avatar
azonenberg
i assume you're buffering the input before it goes into the equalizer?
ideally not really, given it's an active one (I was figuring for starters to use the second-order gain cell with it's integrated active negative feedback, as it looked to exhibit a nice peaking response).
8:19 p.m.
Avatar
Avatar
namibj
Click to see original message
1.78 simulated fan-out
8:20 p.m.
8:20 p.m.
still that fan out, and the knob for the negative feedback adjusted
8:22 p.m.
blue is continuos phase in degrees, orange is group delay in 10's of ps, red is db voltage gain. All differential mode only; that's for one unit of "2nd order gain cell"; that's not in any special way tuned for CTLE targeted behavior.
8:24 p.m.
@azonenberg do those plots I had around give you some idea already? Particularly towards maybe what deformations you'd want to see me do to the plot's shape, for the regions I'd run/sample you responses over?
8:26 p.m.
(that testbench has it sitting sandwiched between identical cells; it's representing behavior in a clock buffer or pre-driver that'll deliberately operate in mildly-limiting-amplifier conditions to keep amplitudes stable)
Avatar
Those look plausible at a glance. If you get me a s2p i can try to apply it to some signals through various lossy channels
8:40 p.m.
this is targeting 10.3125 Gbps I assume
Avatar
Avatar
azonenberg
this is targeting 10.3125 Gbps I assume
yeah
8:49 p.m.
I'll get you a bunch of s2p's tomorrow; just give me some ideas on what frequencies to ask the calculator for (to include in it) and what shape changes approximately to look for/around/about in the process.
8:50 p.m.
(I'm not able to give you actual quality I'm confident won't be buggy before I get sleep.)
Avatar
I don't have a good idea of specific poles/zeroes to target or anything, that bit isn't my expertise
8:52 p.m.
but i can vna some real channels and see what a waveform looks like through it plus your equalizer
8:53 p.m.
as a data point for a plausible "probably longer than you would have to deal with" channel
Avatar
If you have Xyce/can run that, I can probably make you a convenient script that spits out an s2p when provided with knob values, or (at your preference) takes a csv or json or (choose before I wake up) of knob values to batch-produce s2p's from.
Avatar
(i do not currently)
8:54 p.m.
300mm of Shengyi S1000-2M outer layer differential microstrip with soldermask is -2.9 dB at 2 GHz, -5.5 dB at 4 GHz, -8.3 dB at 6 GHz, -12 dB at 8 GHz
8:55 p.m.
so your ~7 dB of peaking would nicely cancel most of that out
Avatar
oh, hmm, fair. (Your package manger might have it; AUR does at least.)
Avatar
well right now i dont have the time to learn another tool while doing 300 other things :p
8:57 p.m.
it's on the list but not a today thing
Avatar
Avatar
azonenberg
so your ~7 dB of peaking would nicely cancel most of that out
If you'd happen to have model(s) for SFP+ results (not actually close to modal dispersion limits of multimode fiber or noise/signal strength margins for long range single mode fiber; I'm thinking "across the room"/"from the lab to the server closet down the hall" levels of "using up" the fiber distance allowance of an SR optic), that'd be likely more practically relevant than 30cm no connectors of differential microstrip 🙁
Avatar
well actually, it is. because SFPs have limiting amplifiers in them
9:03 p.m.
Some even have retimers
9:04 p.m.
The quality of the eye coming out of the optic, other than perhaps a slight increase in jitter, doesn't really get worse with a longer fiber
Avatar
Avatar
azonenberg
well right now i dont have the time to learn another tool while doing 300 other things :p
oh I wasn't trying to have you learn it; I was gonna (by your choice of whether batch or not) package the invocation with the netlist that generated the above and the PDK device model library, and give that instead of pre-generating a thousand touchstone files that suffer under curse of dimensionality. Though I guess there's only a limited number of actual degrees of freedom for that general kind of 2nd order response? If you'd happen to know how many parameters there should actually be/remain, I could see to work on reparametrizing/rebasing that parameter space to not expose the "redundant" parameters.
Avatar
It's the path from the optic to the asic that matters
Avatar
Avatar
azonenberg
Some even have retimers
these types shouldn't have retimers afaik
Avatar
Yes, typically 25G is when you start seeing that iirc
9:04 p.m.
10G normally does not
9:04 p.m.
but 10/25G dual mode might
9:05 p.m.
anyway, I have an actual test fixture with a pair of back to back SFPs connected through 6 dB passive splitters
9:05 p.m.
with one half looped back to the other optic and the other out to SMAs
Avatar
Avatar
azonenberg
well actually, it is. because SFPs have limiting amplifiers in them
hmm yeah right I forgot they specially make linear ones for use with fancy DSP PHYs that fix the fiber's modal dispersion in post, to squeeze more speed out of legacy multimode cable plants.
Avatar
Yes that's 10Gbase-LRM
9:05 p.m.
We would not be targeting those
Avatar
yeah I don't think they'd help here 😄
Avatar
(although i did consider getting some for use in e.g. DIY OTDR applications)
Avatar
Anyway so with that fixture i can do a simple linear scaling of 2:1 and get a reasonably close approximation of the signal coming out of the optic, ignoring insertino loss of the feedlines which are fairly short
9:06 p.m.
(i plan to make a second gen fixture in the future that has a 2x thru so you can de-embed the feedlines)
9:07 p.m.
Longest fiber i have sitting around off the top of my head unused is 30m but i have a couple
9:07 p.m.
but again, dispersion doesnt show up much on the far side of the optic
9:08 p.m.
I can also just generate PRBSes on the BERT with various equalizer settings and experiment until it barely passes the SFP+ MSA spec
9:08 p.m.
so then we have a worst case eye coming out of the optic, then add a lossy channel between the optic and the ASIC
9:08 p.m.
then your equalizer
9:08 p.m.
and see how it looks
Avatar
Avatar
azonenberg
It's the path from the optic to the asic that matters
oh ok, in that case, yeah, the 30cm of PCB is more than what I'd consider reasonable length; assuming at least that the SFP+ connector itself won't cause trouble relatively speaking (I mean this isn't like PAM16 or such sensitive)
Avatar
Yeah the connector is pretty negligible but again, i can get you real data
9:09 p.m.
besides channel emulation, i have a physical isi channel emulator board
9:09 p.m.
with 55, 150, and 300mm channels on it
9:09 p.m.
i can hook the real sfp breakout to it
9:09 p.m.
then put the scope on the output side
9:09 p.m.
de-embed the feedline cables
9:10 p.m.
then channel emulate your CTLE
9:10 p.m.
This is half the reason i have all this hardware
9:10 p.m.
But i'll start out with doing it in sim just because i have a bunch of other stuff wired to the big scope right now that i dont feel like moving
9:11 p.m.
in fact, the PRBS31 waveform in the ngscopeclient demo scope is literally an ideal prbs through that 300mm ISI channel
9:11 p.m.
with a bit of AWGN i think added on top
Avatar
What matters in the next week-or-two is just getting a reasonable understanding of whether a DFE-free RX of 10GBASE-SR off of an SFP+ under reasonable limitations of the fiber length in play, could give an eye that should be slice-able even on gf180mcuD.
Avatar
again, fiber length is of no real consequence here
9:12 p.m.
it's the PCB channel that will limit performance
Avatar
(yeah I just mean I'm not even bothering to include assumptions that push fiber length anywhere near nominal spec limits)
9:14 p.m.
brb let me get you the actual version of that spec
9:15 p.m.
Avatar
Avatar
azonenberg
it's the PCB channel that will limit performance
does this in return mean that the CTLE response (at least it's frequency peaking nuances) do not need to be tunable if we can mandate the PCB to attenuate in a sufficiently specific way?
Avatar
vertical opening is +/- 95 mV, horizontal +0.12 to +0.88 UI = 0.76 UI worst case for a compliant optic, at the optic pins
9:17 p.m.
Ideally there should be a few levels of equalization selectable, but the actual insertion loss of a PCB channel is relatively predictable and just scales with length and dielectric/copper loss at a very high level
9:17 p.m.
9:17 p.m.
sometimes there is a bit more of a downward curve with a sharp initial falloff
9:18 p.m.
but this is not atypical for pcb channels
Avatar
(This isn't aimed at very general purpose mainsteam commercial ASICs anyways, so if it greatly eases at least feasibility checking if not implementation effort of the equalizer, it'd IMO be ok to essentially co-design the PCB channel and the equalizer that has to fix the PCB channel's response.)
Avatar
and a shorter channel would just be a linear scaling of this one's loss
Avatar
It's gonna be tunable to some extend; there's 3 bias currents involved in the above plotted gain cell after all.
9:19 p.m.
this is 55, 150, 300mm channels
9:19 p.m.
the 55 has a bit of mismatch at the connector launch it looks causing ripples from reflections
Avatar
Avatar
azonenberg
this is 55, 150, 300mm channels
oh so the order of the pre-peaking/low-frequency-roll-off of the peaking action would have direct relationship to the channel length?
Avatar
i mean in general loss is a function of 1/f with some smaller higher order terms
9:22 p.m.
and the loss per unit length of a transmission line, ignoring reflections and just looking at dielectric/conductor losses, is linear and just scales with the overall length
9:22 p.m.
since your signal is propagating nominally in a linear time invariant fashion and just encountering the same attenuation per unit distance over more distance
Avatar
I'm assuming you don't by chance have any parametric active filter response around that is shaped anywhere near my plots, and which you could use to estimate what rough shape would be ideal, right? Is the group delay peaking a problem here btw.?
Avatar
I have a trivial parametric CTLE that takes in a pole and zero frequency
9:23 p.m.
Ideally you want linear group delay response. I can simulate non-ideal response and see how big a deal it is
Avatar
Avatar
azonenberg
and the loss per unit length of a transmission line, ignoring reflections and just looking at dielectric/conductor losses, is linear and just scales with the overall length
no it's exponential in length; it's only linear when you think in decibel.
Avatar
well i'm talking multiplicative loss not additive
9:24 p.m.
but yeah, linear dB/unit length
Avatar
filter order N has x*N dB per decade roll-off
Avatar
anyway for good pulse behavior, you want ideally linear response like a 4th order bessel. but we arent designing test equipment here, it just has to be clean enough to slice
Avatar
Avatar
azonenberg
I have a trivial parametric CTLE that takes in a pole and zero frequency
can you run 2 of those in series easily?
Avatar
until i see an eye i wont be able to say how much you can get away with
9:24 p.m.
Yes
9:25 p.m.
it just does some trivial math to generate a s-parameter curve then does fft convolution to apply it. iirc that model is an idealized zero group delay filter
9:25 p.m.
but if i get touchstone files for a real filter i can do whatever
Avatar
Avatar
azonenberg
until i see an eye i wont be able to say how much you can get away with
an eye that suffered the s2p "CTLE" I provided? Or what do you mean?
Avatar
yeah
9:26 p.m.
Get me something you have even if its garbage and i'll run it as a demo
9:26 p.m.
it takes me 30 seconds to set up
Avatar
(Can I give you s4p and nominally ground-reference the "ports", exposing the differential input and the differential output as two single ended (referenced to ground) each? Or would that cancel out anyways in a fully differential amplifier structure?)
Avatar
It's easier for me to get just sdd21 as a s2p
Avatar
I'll do tomorrow I don't think I have the testbench set up for that now and I only ever skimmed the manual on producing touchstone files. I don't think you mentioned what frequencies I shall ask for to be sampled in the file. I have no particular idea. Everything from like the 2nd/3rd harmonic of baud rate down to like a PRBS-7's period-127 sub-harmonic of baud rate? Feels excessive for checking/understanding....
Avatar
Avatar
azonenberg
It's easier for me to get just sdd21 as a s2p
Yeah sure I wasn't sure if it'd actually cancel out the ground reference aspect though, that's why I asked.
Avatar
Ideally for time domain analysis I would get around 5-10 MHz out to the 3rd harmonic of the baud rate but they dont have to be super close, i can interpolate as long as the channel is short enough that the frequency points don't rotate >360 degrees or anything between samples
9:33 p.m.
in particular ngscopeclient's channel emulation has trouble if your dataset is missing low frequency data there will be baseline wander
Avatar
(Because as mentioned, it's not inherently matched to a transmission line, it lives in a circuit, and not unlikely feeds clones of itself that may or may not have mildly different instantiation tunables, to follow the "eye-opening" with some proper limiting-amplification action to blow the opening wide up for the slicer to be "sufficiently easy/obvious" to make work.)
Avatar
ok so the ngscopeclient CTLE block takes parameters for DC gain, max gain (it clips at this level), two poles, and one zero
Avatar
I mean I AFAIK get continuos phase though not sure if that's the case for touchstone output files as well. Just ask for the points per decade I guess that'll be easy to tell Xyce and get results. I'd go 3 to 30 GHz? Or do you need it aligned to baud rate? Or uneven sampling density across decades?
Avatar
I'm going to end up interpolating the sample data between points to match the number of FFT bins
9:38 p.m.
So I just need enough data the resampling is valid
9:38 p.m.
I'd stop at 16 GHz
9:39 p.m.
10.3125 GHz / 2 = 5.15625 GHz fundamental, 10.3125 2nd harmonic, 15.46875 GHz 3rd harmonic
9:39 p.m.
conveniently matching the 16 GHz BW of my big scope
9:39 p.m.
on the low end if you can go down to like 10 MHz that would be great
9:39 p.m.
i've done tests with EM solver sims cutting off at 100 MHz and i had low frequency artifacts in time domain sim
Avatar
(ngl, I have yet to really wrap my head around the concept of "poles" and "zeroes"...) (If I happen to see what kind of filter response for that kind of filter order/pattern would be ideal to open the eye, I could look at it and see to tweak it to match better?) (Do you happen to have a no-RX-EQ-at-all eye for a realistically achievable (not excessively long just to show that'll still be compensated by the CTLE incarnation) channel for this kind of task?)
Avatar
Avatar
namibj
(ngl, I have yet to really wrap my head around the concept of "poles" and "zeroes"...) (If I happen to see what kind of filter response for that kind of filter order/pattern would be ideal to open the eye, I could look at it and see to tweak it to match better?) (Do you happen to have a no-RX-EQ-at-all eye for a realistically achievable (not excessively long just to show that'll still be compensated by the CTLE incarnation) channel for this kind of task?)
i dont have the intuition either i just plugged in the numbers so other people could use it :p
Avatar
can we for convenience just round that to an exact 10 GHz until we start to deal with post-layout-simulations? I don't think it'll be worth the effort of dragging those decimals around all the time for pre-layout circuit simulations 😄
Avatar
yeah i'm just used to specifying exactly because the pll wont lock if you try to do 10.00 lol
Avatar
lol yeah they and their LC PLL's
9:44 p.m.
(I don't have enough precision over inductor physics to trust that, and I don't need that fast a clock for this to "work", so I'm not gonna risk that.)
Avatar
Avatar
azonenberg
i dont have the intuition either i just plugged in the numbers so other people could use it :p
Got an eye or two to look at for what the equalizer would have to fix, for a realistically short amount of PCB starting from a sufficiently realistic SFP+'s TIA/redriver eye?
Avatar
yeah gimme a sec i'm building some tests
Avatar
yeah no rush
Avatar
frankly I'm not gonna care about BER for that link as long as it'll work (well, with packet loss of under like 20% I'd say to not mandate exotic TCP tuning to make up for it); but ethernet is very not plug&play when your links are not symmetric 😄
9:56 p.m.
(and things like TCP kinda break when there's no even-somewhat-decent return channel available)
10:04 p.m.
so here's an example of that 300mm fr4 channel with a fairly clean input signal going into it
10:04 p.m.
top eye is no eq, bottom is with the CTLE parameters in the right side
10:05 p.m.
passing the sfp+ MSA eye mask for the receiver (+/- 0.15 UI, +/- 150 mV
10:05 p.m.
we can of course substitute the mask for your slicer
10:05 p.m.
if you're able to calculate that
Avatar
Avatar
azonenberg
if you're able to calculate that
I wish.
Avatar
Avatar
azonenberg
so here's an example of that 300mm fr4 channel with a fairly clean input signal going into it
much cleaner than what the MSA requires?
Avatar
the mask i'm showing up top is the transmitter mask, which it fails. It would probably pass the receiver mask although i didn't check
10:14 p.m.
the bottom plot is showing the rx mask
Avatar
Because with eyes like that it makes me wonder whether on a porcess less slow than gf180mcuD, 25GBASE-CR-S (the one without the Rees-Solomon) would be up for grabs with a tuned CTLE and overclocking the serdes relative to that gf180mcuD "speed"....
Avatar
Avatar
azonenberg
the mask i'm showing up top is the transmitter mask, which it fails. It would probably pass the receiver mask although i didn't check
but that transmitter mask happens at launch end of the 300mm?
10:19 p.m.
Does the ngscopeclient tool have an ability to "do your worst" from the TX eye specification, or is that infeasible/future-wish-list?
10:20 p.m.
"assume the worst optic from the worst optical feed that still pass spec, feeding into this 300mm PCB trace leading to the ASIC: try to break the receive eye with that given channel and how the launch eye is defined".... or something.
Avatar
Avatar
namibj
but that transmitter mask happens at launch end of the 300mm?
the transmitter mask is at the launch end, yes. the eye i'm showing is at the asic end before and after eq
Avatar
Avatar
namibj
Does the ngscopeclient tool have an ability to "do your worst" from the TX eye specification, or is that infeasible/future-wish-list?
no, that doesnt make a whole lot of sense
Avatar
if anything I'm at most worried and even then just slightly about the width of the eye, not the hieght. I'm gonna assume there'll be two slicers in parallel one slicing with nominally positive clock the other with nominally negative clock; both are running on somewhat/somehow peaked clock to approximate pulsed sampling somehow, then let to resolve for about a full UI, before transferring state to an output demux pathway and getting themselves zeroed out in preparation for the next bit. I'd wager something like 50 mV p-p @ 0.5 UI wide, rectangular opening, to be directly practical to realize on gf180mcuD, at least if done in C4 with an explicit regeneration phase that has a defined end separated from the start of the next bit it shall slice. (That is technically assuming it employs "sufficient" DC offset mitigation at the slicer, but that efffect should not be a substantial concern I think.)
Avatar
Avatar
azonenberg
the transmitter mask is at the launch end, yes. the eye i'm showing is at the asic end before and after eq
Yeah.
Avatar
Avatar
azonenberg
no, that doesnt make a whole lot of sense
Huh? Oh, is the channel defined via loss equation and the reciver and transmitter eye are related to each other through that? I'd have thought that showing acceptable BER even for a pathological source that almost-just-by-technicality meets the specifications that apply to it, would be a reasonable qualification test/check. And I'm pretty sure there's some inherent differences to what kinds of channel behaviors in particular are marginal for DFE-heavy vs. for FFE-heavy vs. for CTLE-heavy receiver equalization architectures. Like I'd assume that the 10G-LRM hardware suffers BER penalty in some applications where it wouldn't be expected? Like, due to noise not getting clipped away or so?
Avatar
what i mean is, given an eye mask how would you synthesize a waveform that barely meets it? like piecewise linear physically unrealistic straight line waveforms?
10:37 p.m.
and yeah, i dont have a ton of understanding of CTLE dynamics. I grok FFE's much better although those are usually TX side for whatever reason
10:37 p.m.
and have never got down and dirty with a DFE
Avatar
Avatar
azonenberg
what i mean is, given an eye mask how would you synthesize a waveform that barely meets it? like piecewise linear physically unrealistic straight line waveforms?
nah, if not explicitly called out, I'd put up some regularizing limits on high frequency PSD.
11:25 p.m.
E.g.:
149.5.2.4 Transmitter power spectral density (PSD) and power level
11:26 p.m.
I'd like to particularly point at the upper limit of power spectral density
11:26 p.m.
(2.5G and 5G are PAM2; 10G is PAM4)
Avatar
um, what?
11:27 p.m.
10GbaseR is NRZ and 10GbaseT is PAM16
11:27 p.m.
and afaik 2.5/5G are just downclocked 10G
11:28 p.m.
1000baseT is PAM5
Avatar
Avatar
azonenberg
um, what?
capping the power spectral density with steep enough roll-off at least should make physically unrealistic transmissions out-of-spec and thus not a worry, just because a transmit mask has corners.
11:28 p.m.
Clause 149 is 2.5/5/10GBASE-T1
11:30 p.m.
I just used it as an example for how transmit signals are at times specified in a way that would preclude a pathologically chosen transmission that technically just about still meets spec from looking like some non-physical piece wise linear waveform.
Avatar
Avatar
azonenberg
and yeah, i dont have a ton of understanding of CTLE dynamics. I grok FFE's much better although those are usually TX side for whatever reason
AFAIK CTLE's are, while in linear region, literally just linear whatever-order filters.
Avatar
i mean more like i have an intuitive feel for hwo to manipulate pre/post cursor taps to clean up specific forms of distortion
11:32 p.m.
i don't have that for a CTLE
Avatar
(if active, ofc. including active amplification)
11:33 p.m.
ohh, I see
11:34 p.m.
they look easier to look at in the spectral view
Avatar
yeah but in SI (vs RF) I usually find time domain views more intuitive and useful
Avatar
especially log/db plot, where it's just added
Avatar
like i can't look at a waveform and tell you how many dB off unity gain it is at a given frequency
Avatar
oh yeah I wasn't trying to suggest that eye margins are in any way obvious from a spectrum
Avatar
or an eye pattern and be like "oh you have to boost the 4-6 GHz range by 2 dB"
11:34 p.m.
etc
Avatar
Avatar
azonenberg
like i can't look at a waveform and tell you how many dB off unity gain it is at a given frequency
pretty sure that's literally not in there
Avatar
but with FFE I can intuitively just look at the eye and be like "yeah turn the post cursor up another 20% and that should do it"
11:35 p.m.
and sure i dont get the percentage right every time but i know what knob to adjust in what direction and there's not that many of them
Avatar
unless you'd like internalize the test sequence patterns and those cover the range of relevance.
11:36 p.m.
good thing I won't have that many knobs either for the CTLE.
11:37 p.m.
Your thing, you said it does FFT things; could it dump a waveform at a place in the pipeline, throw it at a wrapper script, and continue with what that produced?
Avatar
every filter block in ngscopeclient outputs a waveform (or scalar, or digital waveform, or whatever)
Avatar
(How many UI's long of a pattern would we realistically need for this to sufficciently understand the circuit's limited linearity/limiting/clipping behaviors?)
Avatar
there is currently not a way to hook out to external scripts
Avatar
Avatar
azonenberg
there is currently not a way to hook out to external scripts
oh
Avatar
but you can dump waveforms to a file, call the script, then adjust settings manually
11:39 p.m.
or write the automation in c++
Avatar
there's been talk of adding a full python scripting API but the internals need to stabilize a lot before that happens
11:40 p.m.
we are nowhere near the level of maturity that making any kind of FFI would make sense
Avatar
..... can you send me that "worst-ish realistic case" receiver waveform, pre-CTLE?
11:41 p.m.
I wanna try to get Xyce to use it's interpolating magic on that.
11:42 p.m.
(for handling the numerical discontinuities in an appropriately calm manner)
11:42 p.m.
I'll go catch the sleep now, though.
Avatar
Tim 'mithro' Ansell 2026-07-22 12:03 a.m.
Transistor-level exploration of setup/hold violations in a SKY130 flip-flop.
Avatar
After lunch I can probably get to (properly) start on it.
Avatar
@azonenberg an example file; ports 1 and 2 are the single ended "input pair" and port 3 is the differential output; I couldn't think of a way to straight-forward let it have a single input port while still forcing a common mode operating point on it, and getting it to behave "properly". Can you see if that at least kinda works? Like, with not-too-hard matching; beware while I used a represenative-ish port impedance for it, it doesn't mean the circuit is on it's own expected to behave resitive.
Avatar
Avatar
namibj
@azonenberg an example file; ports 1 and 2 are the single ended "input pair" and port 3 is the differential output; I couldn't think of a way to straight-forward let it have a single input port while still forcing a common mode operating point on it, and getting it to behave "properly". Can you see if that at least kinda works? Like, with not-too-hard matching; beware while I used a represenative-ish port impedance for it, it doesn't mean the circuit is on it's own expected to behave resitive.
edit: this has in the same .s3p in the sequence given by the .res a sweep of the primary design-time peaking control tunable; essentially the header and footer are only present once, and then it's the touchstone lines/frequency-sweep from the "operating bias points" listed in the .res file, just concatenated together, in the order they are called out in the .res file.
8:57 p.m.
here's just a single one for ease of plugging in; this should be much more representative than the first preview I had shared a few hours ago.
Avatar
These are the "obvious" tunables; though the main ones to aim for to move the response behavior would be: clk_buf_in_out_ratio clk_buf_load_r clk_buf_neg_ratio clk_buf_tail_current input_cm with clk_buf_neg_tail_adjust being a minor tunable. clk_buf_in_out_ratio says how much weaker the input stage is vs. the output stage clk_buf_load_r is the pull-up/load resistance at the output stage clk_buf_neg_ratio says how much weaker the negative feedback onto the output node[pair] of the input stage should be, relative to the strength of the output stage. Thus divide it by clk_buf_in_out_ratio to understand how strong the negative feedback is relative to the input. clk_buf_tail_current adjusts about anti-proportionally with clk_buf_load_r and gives the tail current reference fed to a current mirror (with infinite decoupling capacitance) for driving the actual tail current sources for the 3 diff pairs here. The input and output pair share a bias voltage and only adjust their tail current through adjusting the size of the tail transistor. input_cm is the common mode voltage of the input signal, very relevant for determining the bias conditions the input diff pair are subjected to. In hindsight I guess there should be little harm from just setting that very high as the tail current source ought to take up any necessary slack.... I think... but probably it's not nearly as clear-cut as that hindsight idea hoped. clk_buf_neg_tail_adjust multiplies the tail current fed to the negative feedback diffpair's current mirror from what the naive clk_buf_neg_ratio * clk_buf_tail_current would otherwise give. clk_buf_tail_current even if adjusted anti-proportionally with clk_buf_load_r is relevant because the capacitances (and in that case, also the output-side voltages) remain the same, even as the resistances change, which adjusts the RC time constants.
Avatar
Avatar
namibj
here's just a single one for ease of plugging in; this should be much more representative than the first preview I had shared a few hours ago.
let me look
9:30 p.m.
hmmm i can't read that
9:30 p.m.
neither sonnet nor ngscopeclient can parse it and the format looks different. is touchstone 2.0 a new thing?
9:30 p.m.
can you convert to a touchstone v1 file?
Avatar
If I read correctly this suggests that there's a hump between about 2.6 GHz and 8.4 GHz with this parametrization here:
Avatar
Avatar
azonenberg
can you convert to a touchstone v1 file?
sure
9:31 p.m.
the manual said it's default and didn't mention it being funky so I figured the v1 was legacy form the 90's that one didn't wanna actually use 😄
9:33 p.m.
Avatar
Avatar
azonenberg
hmmm i can't read that
does this please your tooling?
Avatar
Avatar
namibj
the manual said it's default and didn't mention it being funky so I figured the v1 was legacy form the 90's that one didn't wanna actually use 😄
it's the 30 year old format that was so simple and functional that there was no reason to ever change it
9:36 p.m.
and became the industry standard interchange format for a reason
9:37 p.m.
then someone bought up the rights to the name and came out with a newer version that breaks compatibility in a bunch of ways and a lot of tooling doesnt support
9:37 p.m.
ok so which port number is which?
Avatar
Avatar
namibj
the manual said it's default and didn't mention it being funky so I figured the v1 was legacy form the 90's that one didn't wanna actually use 😄
I mean it's 17yo by now.... https://ibis.org/touchstone_ver2.0/
Avatar
if it's 17 years old and my commercial eda tool can't read it
9:38 p.m.
there's probably a reason they never implemented it :p
Avatar
Avatar
azonenberg
ok so which port number is which?
1 and 2 are the wires of the supposedly balanced input; 3 is the differentially connected output
Avatar
every s-parameter dataset i've ever got from an rf component vendor, off a VNA, etc has been v1 format
9:39 p.m.
ok so... hmm. this doesn't look like much of an equalizer?
9:39 p.m.
looking at S31 it's flat for a while then rolls off, i'm not seeing much in the way of peaking
Avatar
Version 1.0 and Version 2.0 files differ in three additional respects: • G-, H-, Y-, and Z- parameters are normalized in Version 1.0 but are not normalized in Version 2.0. • Effective noise resistance in noise parameter data is considered normalized in Version 1.0 but is not normalized in Version 2.0. • Mixed-mode support is added in Version 2.0, so that network parameter data in the file is interpreted differently in the presence of the [Mixed-Mode Order] keyword.
Avatar
Avatar
azonenberg
looking at S31 it's flat for a while then rolls off, i'm not seeing much in the way of peaking
what about S13?
9:43 p.m.
wait huh
Avatar
Avatar
azonenberg
ok so... hmm. this doesn't look like much of an equalizer?
does one of these behave better?
9:47 p.m.
(nami is sad about having wasted so much time earlier on ILT)
Avatar
I see huge differences in end to end gain, is that expected?
9:48 p.m.
the 0.2 is like +6 dB, the 0.4 is -16, the 0.6 is -45
9:48 p.m.
but shows more of a peaking response like i would expect
9:50 p.m.
it's the strength of the inter-stage active negative feedback
9:50 p.m.
9:50 p.m.
forgive the upside-down center please
Avatar
Avatar
azonenberg
I see huge differences in end to end gain, is that expected?
peak gain or low frequency?
Avatar
Low frequency
Avatar
yeah that's supposed
Avatar
The peaking response on the v0.6 looks good as a start just from looking at the plot, if you can move it up 40 dB or so :p
Avatar
can you fix the latter through adding an inductor or attaching a different impedance at the inputs/outputs? Also keep in mind you're supposed to feed port 1 and 2 from the two wires of a balanced line....
9:54 p.m.
(that's not 40dB though)
Avatar
Yeah I'm just looking at 3 from 1 for the purposes of a quick look
Avatar
yeah I just guessed the impedances from the load impedance.... roughly
Avatar
The bigger issue I see is group delay flatness, ~150ps variation over 0-10 GHz is not ideal
9:56 p.m.
that's multiple UIs
Avatar
well 10GHz is kinda far frequency wise...
9:59 p.m.
but yes
Avatar
Avatar
azonenberg
The peaking response on the v0.6 looks good as a start just from looking at the plot, if you can move it up 40 dB or so :p
is it possible that many of the missing dB are accounted for by reflection?
Avatar
very possible i didnt look at return loss. flatness is what i'm more concerned about at this opint
10:02 p.m.
10:02 p.m.
and i'm not too happy with what i see so far :p
10:02 p.m.
this is before and acter
10:02 p.m.
yes, the after is worse
10:02 p.m.
I think the group delay response is a significant part of the issue since the magnitude response doesnt look too bad
10:03 p.m.
phase linearity is the issue
Avatar
is that better for some of the other(s)?
10:08 p.m.
oh, also, could it be that this might only even be necessary when looking at direct-attach copper cables (the multi-meter Twinax ones), and use with optics could reasonably rely on the redriver in the optic providing an open-enough eye to the slicer?
Avatar
Avatar
azonenberg
Click to see attachment 🖼️
(...is that behavior tamed by applying series or shunt inductor at input and/or output?)
10:10 p.m.
I'd not expect the mosfet gate input to be particularly resistive in impedance...
Avatar
This is purely a frequecny domain propagation model, not a circuit simulation
Avatar
....I'd guess the takeaway can already be "sfp+ optics are already able to provide an eye that can be sliced without any receiver equalization, provided short and quality PCB trace is used"?
Avatar
Avatar
namibj
....I'd guess the takeaway can already be "sfp+ optics are already able to provide an eye that can be sliced without any receiver equalization, provided short and quality PCB trace is used"?
Yes, i think that should be the case
10:13 p.m.
If you have a long direct-attach cable or something you'd definitely want a retimer/redriver befroe a non-equalizing receiver
Avatar
Avatar
azonenberg
This is purely a frequecny domain propagation model, not a circuit simulation
yeah and the mentioned are just linear things with very plain piecewise-linear shaped log-log plotted complex impedances
10:15 p.m.
are such redrivers/retimers low cost COTS chips?
Avatar
Yes
ferrisCatOwO 1
Avatar
Avatar
azonenberg
Yes, i think that should be the case
Yay. I'll share the happy news where plans about collaborative design of a "proper" SerDes for Tim Edward's chipalooza are under discussion.
Avatar
Avatar
azonenberg
Yes
.....could we perhaps even rely on their existence to hope for possibly reaching all the way to 25G if the mux is doubled once more (to 8:1) and we give up any hope of producing a strong good eye (gain at those frequencies is very expensive on gf180mcuD, even with inductors helping) and the base clock is overclocked/pushed to 3.2 from the 10G C4's 2.5 ? I'd expect 50~100 mV p-p (opening, through de-emphasis of low frequencies) to be readily feasible to produce, but aiming for much more would make me worry about melting the chip.
Avatar
I have no idea. The good retimers will have a CTLE/DFE at the input and a FFE on the output programmable over i2c
10:25 p.m.
Check out the DS125DF111 for example which digikey has for... wow $23 @ qty1, priecs have gone up
Avatar
....programmable.... good; that should allow skipping CTLE on the receiver by pushing that work to the transmitter's FFE, right?
Avatar
(you can get cheaper ones that are just a CTLE/buffer without the full CDR PLL and TX equalizer)
Avatar
Avatar
azonenberg
Check out the DS125DF111 for example which digikey has for... wow $23 @ qty1, priecs have gone up
ehhh, not so bad 😄
Avatar
Avatar
azonenberg
(you can get cheaper ones that are just a CTLE/buffer without the full CDR PLL and TX equalizer)
yeah
Avatar
For the sake of testing, I have a commercial and a homemade FPGA based BERT that both have programmable TX FFE and drive strength
10:26 p.m.
so i can throw an overemphasized eye at a receiver for testing
Avatar
hmmm.... I'm assuming there are similarly affordable 25G variants of the DS125DF111 's functionality, right?
Avatar
The DS250DF230 is $33.64 and BGA only
11:31 p.m.
but yes
Avatar
ferrisCatSneaky 25G..... hope unlocks extra motivation levels......
11:56 p.m.
I'd expect a mere 10G redriver to only run about 10~15$ then; considering that a 25G SerDes might have to sacrifice enough equalization to make tha twork (without melting) that it won't do the normal expected 10G eye anymore (if it's clocked appropriately slower)...
Avatar
Tim 'mithro' Ansell 2026-07-23 3:56 a.m.
@namibj - If you manage to achieve even close to 10G SERDES on GF180MCU you'll be forever my hero. Just hitting 5G to get the slowest USB3 would be pretty amazing.
❤️ 1
Avatar
personally 2.5G for pcie gen1 would already be very real-world useful
❤️ 1
4:02 a.m.
but i will take as fast as i can get :p
Avatar
Avatar
Tim 'mithro' Ansell
@namibj - If you manage to achieve even close to 10G SERDES on GF180MCU you'll be forever my hero. Just hitting 5G to get the slowest USB3 would be pretty amazing.
While you're so curious, would https://discord.com/channels/1361349522684510449/1361349523724570941/1526921632105365524 be allowed on Run3? Or are we banned from taping out a die the foundry would consider/call "flip-chip"?
4:10 a.m.
(also, do you care more about the RX or the TX being that fast? If you'd have a choice between a 10G TX&1G RX, or a 10G RX &1G TX, which would you prefer?
Avatar
Avatar
namibj
https://platform.wafer.space/projects/96a9e8e4-31b1-4f4a-bdfb-0ccf39343834/ these are a couple flip chip test pads; the smaller ones are for tight and calm pitch targeting ACF bonding to JLCPCB's 0.33oz 2L flex (2~3 mil minimum usable half-pitch); the larger ones are for trying WLCSP-LGA processing options/tactics that would offer high performance (current, thermals, and signal integrity) attachment to affordable PCBs at the cost of reduced/limited pin count vs. the current wire bond option. The dense ACF tactic would have somewhat higher DC resistance and possibly thermal vulnerabilities, but could (when somewhat extended/pushed) probably double to quadruple the maximum IO count on a full slot.
Tim 'mithro' Ansell 2026-07-23 4:39 a.m.
I believe we managed to sneak that project onto Run #2 even with the 1 DRC error -- not 100% sure.
Avatar
Avatar
namibj
(also, do you care more about the RX or the TX being that fast? If you'd have a choice between a 10G TX&1G RX, or a 10G RX &1G TX, which would you prefer?
A TX is easier to characterize
7:18 a.m.
but given the choice i would prefer 2.5 on both so i could do pcie gen1 or 1000base-X/SGMII
7:18 a.m.
10G unidirectional i would only be able to use for JESD204
Avatar
Avatar
Tim 'mithro' Ansell
I believe we managed to sneak that project onto Run #2 even with the 1 DRC error -- not 100% sure.
It'd be obvious in the reticle, for not having the pad frame ring on any side.
Avatar
Avatar
azonenberg
10G unidirectional i would only be able to use for JESD204
and for Ethernet
Avatar
i mean yes cursed unidirectional ethernet could exist but
Avatar
@azonenberg @namibj I wish i understood half of this conversation, but it's certainly cool!
Avatar
Avatar
Rob Taylor
@azonenberg @namibj I wish i understood half of this conversation, but it's certainly cool!
1:33 p.m.
nami is way ahead of me on the analog design side of things, I work with high speed SERDES all the time as an FPGA/ASIC RTL developer and board designer but for me they're mostly a magic black box lol
1:34 p.m.
it gives me a clock, i feed it parallel bits, serial bits come out the other side, i give it a differential channel with the right impedance and not too much loss, serial bits come into the rx, parallel bits and a recovered clock out the other side
1:34 p.m.
and like, i know which knobs in the equalizers to tweak when i scope the line and the eye isn't open enough or something
1:34 p.m.
but how to design the circuit that makes that happen, vs just poking register values? that bit is beyond me
Avatar
Avatar
azonenberg
if you want some background read https://people.engr.tamu.edu/spalermo/ecen720.html
Thanks for sharing! Super cool stuff
1:36 p.m.
I'm playing around a bit myself on this topic
1:37 p.m.
The eye diagrams in ngscopeclient you shared, are those just generated from a .raw dump of a simulation? 🙂
1:38 p.m.
I'm trying to build my own TX serializer but targeting a WAYY lower clock (maybe going for PCIe 1 if possible).
Avatar
ngscopeclient can generate an eye pattern from a digital clock (DDR, sampling on both edges centered in the data valid window) and an analog waveform
1:39 p.m.
There are two common flows that end up with you having that
1:39 p.m.
first is to use the cdr pll filter, second is to have the clock propagated from the source in some way
1:40 p.m.
where that waveform comes from, it doesn't care one bit
1:40 p.m.
it can be a PRBS that you generated in the digital domain, converted to an analog NRZ or PAM4 or whatever waveform, passed through an s-parameter channel model, added some noise and jitter to, etc
1:40 p.m.
it can be a raw measurement off a scope
1:40 p.m.
it can be loaded from a CSV or binary waveform file you imported from somewhere else
1:41 p.m.
it can be the output of another filter block, e.g. I plotted an eye a while back that had y axis units of Hz because I was demodulating FSK data
1:41 p.m.
so i downconverted and filtered the waveform then used the frequency-measurement block to measure frequency of the IF vs time
1:42 p.m.
then fed that into the eye as well as thresholding it at like 1 MHz or so to get back to a digital NRZ waveform i could run decodes on
1:43 p.m.
one of the most key things about ngscopeclient's architecture is that it's basically a DSP/protocol decode/math sandbox, if you can provide a stream of data in the right format nothing cares hwo it got there
1:44 p.m.
you can decode PCIe just as well from an oscilloscope waveform as from some kind of FPGA based protocol analyzer where the native data format an instrument channel measures is "time series of 8b/10b code words"
1:44 p.m.
and this is not a made-up use case, i built exactly that - you compile it into an FPGA design and on trigger it records a configurable number of raw line-coded symbols off your transceiver into a block ram then you read out (edited)
Avatar
Super cool! Thanks for the explanation!
Avatar
For the specific screenshots I shared, the flow was roughly digital PRBS31 -> add some gaussian RJ -> convert to ideal NRZ waveform -> add AWGN -> pass through s-parameter channel derived from spice simulation -> CDR PLL -> eye
1:49 p.m.
but you could just as well have replaced the synthetic test waveform with a real scope measurement
1:50 p.m.
or the simulated s-parameter dataset with live VNA measurements of a real on-wafer device if you had suitable RF GSG / GSSG probes, etc
1:50 p.m.
everything is fungible, you just have to acquire/create/convert the data into whatever format the next block in the chain wants
Avatar
Avatar
azonenberg
if you want some background read https://people.engr.tamu.edu/spalermo/ecen720.html
nice, thank you!
Avatar
The part that isn't quite there yet is streaming through a transient SPICE.
Avatar
Yeah I would like to have some way to make a virtual instrument that runs a ngspice or whatever model then runs the filter graph on that waveform
2:07 p.m.
just hasnt been a priority yet
2:07 p.m.
Too many other things to do and not enough time
2:08 p.m.
Most of my recent work on ngscopeclient has been focused on thunderscope integration, performance, and specific protocol blocks that I needed at work
Avatar
Avatar
azonenberg
Yeah I would like to have some way to make a virtual instrument that runs a ngspice or whatever model then runs the filter graph on that waveform
Oh I don't mean pre-recorded SPICE waveform: transient mode SPICE is just adaptive time step time integration of a non-linear system of differential equations.
Avatar
I dont mean pre recorded either
2:16 p.m.
i mean having an "instrument" that is literally a wrapper around a pipe to ngspice
2:17 p.m.
when you click trigger it starts the sim
Avatar
In some cases it's possible to simulate analog audio filters (think "guitar tube amplifier") in real time.
Avatar
Or a filter block i guess
2:17 p.m.
it could be possible to work in both modes, as a signal source or a flow-through processing block
Avatar
I do not have the time to build such an integration any time soon
2:18 p.m.
But it would be nice to have eventually
Avatar
Are there any phase frequency detectors I could have in idealized form in spice to force a VCO to run in sync so I can put measurement cursors in places and temporarily cheat clock tree phasing with ideal analog delays?
Avatar
No idea. Same as serdes, PLLs are mostly a black box to me
2:21 p.m.
i give it a clock, i configure the various dividers
2:21 p.m.
one or more clocks come out
2:21 p.m.
i know the basic idea of a feedback system adjusting an oscillator to lock to the PFD input
2:21 p.m.
but how the PFD works? Not a clue
Avatar
Avatar
azonenberg
but how the PFD works? Not a clue
Oh yeah I'm not looking for a physical realization, but ideally a mathematically perfect PFD that just has to be casual.
Avatar
yeah i have no idea
2:27 p.m.
the ngscopeclient PLL is a fully DSP based design that does fairly simple second order corrections
2:28 p.m.
and does not have any specific jitter transfer curve and i want to eventually replace/supplement with one that actually matches the response in various standards
Avatar
Ideal comparators + verilog 2DFF PFD comes to mind. If you figure out a simple way please do post about it -- would have helped speed up my PLL transients a ton.
Avatar
Oh I'm expecting to share the SPICE deck(s) for/of it "basically immediately" with the next decently-clean commit after figuring it out, and if nothing sufficiently urgent keeps me from doing so, I'd have reason to blog post explain it, I guess, given how I've been stumped on it so far and that to me at least it feels like something that should be quite obvious to have access to in order to allow all the good benefits of harmonic balance SPICE analysis (it's basically the translinear operating conditions + support-for-intermodulation-products evolution of the linearized-small-signal AC analysis; or seen another way, the ensemble-of-harmonics-and-intermodulation-products analytic-time-integration-reliant evolution of the classic single-frequency-only (0 Hz) DC operating point analysis), even when once has to analyze a VCO across PVT. Because you're not gonna be able to handle the PVT variation aspect in any reasonable way without a way to let the SPICE solver also solve for whatever control voltage happens to be correct, in order to operate at the nominal frequency. You don't want to model any real PLL, you just want to have the solver cough up the control voltage that makes the VCO be your clock, while it is already working on coughing up all those other operating point node voltages. Like, at least to me, there's no fundamental difference between simulating a mixer in harmonic balance fed from an ideal LO and an ideal baseband, vs. plopping down the VCO you're gonna use to synthesize the LO, wiring that realistic drive behavior source to the mixer, and attaching some magical block to the VCO's outputs and the ideal LO feed and the VCO's control node and selecting what sign the VCO's deltaHz/V slope has. It might be quite ticklish to initial conditions especially if not sufficiently frequency detector and too much phase detector based, but it's not like one couldn't "just" use exisitng cycle counting based frequncy measurments for the VCO in SPICE while stepping through some control voltages over a few transient runs, to figure out a reasonable approximation for at least the typical corner and nominal voltage&temperature, from where quality higher order continuation solvers ought to be able to "pull in and lock the PLL", and once there is a consistent set of harmonic balance phasors for all the nodes, those very same quality continuation solvers should have an easy time dragging the parameters of concern from those values of the typical corner to those values of the target corner that the solver is supposed to find a solution for. Because those are specifically about dealing with flaky behavior and breakage-levels of "there exist multiple solutions/bias points for this new corner, good luck not getting them confused as you transition from your exisitng solution to one for the new corner"..... (from the Xyce docs; Figure 8-8; attached Figure 8-9:) It initializes Vtest to 0 and sweeps it between 0 and 2.0 with initial step size 0.01, max step size 0.1, and minimum step size of 1e-8; it relies on a secant predictor to round the corners of where multiple currents are solutions to an individual voltage.) Test for turning points using arclength continuation * polynomial coefficients: .param A=3.0 .param B=-2.0 .param C=1.0 .param I=1.0 Vtest 1 0 5.0 Btest 1 0 V=A*(I(Vtest)-I)**3 + B*(I(Vtest)-I) + C .DC Vtest 1 1 1 * natural parameter continuation options (via loca) .options nonlin continuation=1 * stepper sets what order of continuation this is. * stepper=0 or stepper=NAT is natural continuation * stepper=1 or stepper=ARC is arclength continuation * * predictor must be set to secant to see turning points * predictor=0 tangent * predictor=1 secant * predictor=2 random * predictor=3 constant .options loca stepper=1 + predictor=1 stepcontrol=1 + conparam=Vtest + initialvalue=0.0 minvalue=0.0 maxvalue=2.0 + initialstepsize=0.01 minstepsize=1.0e-8 maxstepsize=0.1 + aggressiveness=0.1 .print homotopy I(Vtest)
Avatar
Avatar
namibj
It'd be obvious in the reticle, for not having the pad frame ring on any side.
Tim 'mithro' Ansell 2026-07-24 12:56 a.m.
Well it's more if something comes up at the fab it might get ejected.
Avatar
Avatar
Tim 'mithro' Ansell
Well it's more if something comes up at the fab it might get ejected.
Oh you mean, it's on the reticle but liable to getting bumped off if the fab has any complaints about it being there?
Avatar
Tim 'mithro' Ansell 2026-07-24 5:00 a.m.
Avatar
I’ve decided I need a break from taping out these big multi-project dies. Its really burning me out each time and taking away valuable space on the wafer. Next shuttle, my submission is going to be simple: how much current can I push? Either a quarter or half slot, entire die area filled with parallel FETs to see just how much physical current I can switch. Whole pad ring will be analog pads to spread out the current over multiple pads.
👍 1
Avatar
Why ? Like what would you do with that data ?
Avatar
And just so the chip is not going to be entirely useless, I am going to add a little analog stuff in the corner to turn it into a charge controller for sodium-ion cells, because I genuinely need such a thing.
7:13 p.m.
There is some cool stuff that could be made if we can push decent currents. Mostly power stuff. DC-DC converters of various kinds.
Avatar
Avatar
Tholin
There is some cool stuff that could be made if we can push decent currents. Mostly power stuff. DC-DC converters of various kinds.
I'm planning to drive epc-co power FETs with it for using digital predistortion to neutralize EMI from a multi-phase charge pump. Also if we're lucky we might know that we could do flip chip which would work great with integrated power stages. Also you might possibly be interested in helping me& @Essen actually do that muxed e-test with which we're planning to do full DC characterization across VT (can't do P; models have to help with that part) of whatever thin oxide SCL we hope to use productively on Run4. Are you sure you don't want your SCL to use channels longer than minimum for leakage?
⬆️ 1
Avatar
My SCL is optimized for performance
9:38 p.m.
I’m not going to do anything that lowers propagation delays
Avatar
(note that an efficient gate driver has to use some inductance in the gate drive loop, and actively pulse-form transitions as the power device will be lossy when the channel is half on)
Avatar
Avatar
Tholin
I’m not going to do anything that lowers propagation delays
Oh ok
Avatar
The muxed e-test is for near-DC measuring as de-embedding parasitic capacitance would be hard. If you're having suggestions on how to deal with that part it'd be appreciated, though. Near-DC is just "4"-wire kelvin connections to the "pin"'s of the DUT, or including the via down to it.
Avatar
Hi @azonenberg , I am currently layout the spec for what features we want in the 10GBASE-R PCS and since you are the authority on testing I have come bearing questions 🧵
Avatar
thank you @Tim 'mithro' Ansell @Leo Moser (mole99) for selecting my submission for free slot . ☺🕺 (edited)
❤️ 3
Avatar
Now comes the part where I have to start worrying about bring-up!
🥲 1
Avatar
Avatar
Tholin
Now comes the part where I have to start worrying about bring-up!
You mean the best part ? 🔥 w 🔥
Avatar
Well, last bring-up it turned out my chips were absolutely busted and unusable...
Avatar
Avatar
Tholin
Well, last bring-up it turned out my chips were absolutely busted and unusable...
Please let me have hope 😅 More seriously, have you been able to figure out what the issue was ?
Essen started a thread. 2026-07-30 4:50 p.m.
Avatar
On another topic: Does anyone know if there is there any chance the Georgia Tech ICE lab would agree to update the public spice models with there floating gate behavioral data they will be collecting from there test chip ? (code: 0000 ) (edited)
Avatar
Avatar
Essen
Please let me have hope 😅 More seriously, have you been able to figure out what the issue was ?
Yes. Too powerful pull-up on the class A on my DAC's opamp
Avatar
Avatar
Tholin
Yes. Too powerful pull-up on the class A on my DAC's opamp
Ouf, did you lose the entire chip ?
Avatar
It works. For a bit. Then it fries itself.
🫂 1
🪦 1
Avatar
Avatar
Essen
On another topic: Does anyone know if there is there any chance the Georgia Tech ICE lab would agree to update the public spice models with there floating gate behavioral data they will be collecting from there test chip ? (code: 0000 ) (edited)
Do we get access to the measurement results? I had planned to port them from level=54 to level=77 BSIM6 version 6.1.1 or level=103/level=1031 PSP version 103.4 (it's probably hard to calibrate the self-heating aspect of level=77 and level=1031) with data from the muxed e-test, but more data won't hurt, especially on the subject of floating gate stuff....
Avatar
Avatar
Tholin
Yes. Too powerful pull-up on the class A on my DAC's opamp
if there's a defined timing corner at the like 1.8V level, I'd potentially suggest eventually figuring out how fast it ought to work at that reduced supply, and we could then in due time see about extracting your actual GDS (not my re-built imitation of it!) and seeing if there's a point of reduced voltage where it could be operated safely enough to let you test the things you have designed there, even if it's not fully operational due to the speed and possibly a block or two not actually being usable at these conditions.
Exported 1,070 message(s)
Timezone: UTC+0