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 10/31/2025 23:59 and 12/01/2025 00:00
Avatar
Great talk thanks for sharing, I probably would have missed it otherwise
Avatar
I finished porting the AS2650v2 to the wafer.space template. Although Iโ€™m not planning to tape this out, its a good reference: https://github.com/AvalonSemiconductors/as2650-ws
AS2650v2 on wafer.space template. Contribute to AvalonSemiconductors/as2650-ws development by creating an account on GitHub.
๐Ÿ’œ 2
Avatar
Look how much free space there is without caravel!
๐ŸŽ‰ 4
12:51
With enough effort, you could easily double the amount of on-die RAM to 8KiB, but there is also 16 unused pads here as there is more of those too, so could fit more peripherals.
12:51
I am very happy I designed a extendable bus interface for the peripherals.
Avatar
Running DRC on this takes more than the 32GB of RAM in my PC, so I have yet to actually see a top-level flow complete on this. (edited)
13:02
I will spin up an AWS instance with 128GB of RAM later and hopefully it completes.
13:02
Youโ€™ll see me commit the final outputs into the repo if I succeeded.
Avatar
Leo Moser (mole99) 11/03/2025 13:04
Maybe don't commit to the repo as it will bloat the git history, instead maybe as a release?
Avatar
Or that
Avatar
I did not take that much RAM to build user_project_wrapper during GFMPW
Avatar
Avatar
Tholin
I did not take that much RAM to build user_project_wrapper during GFMPW
Leo Moser (mole99) 11/03/2025 13:31
Steps like filler generation were done by Efabless at the time. However, if you think a step takes too much RAM for its purpose, please let me know.
Avatar
Yeah, I didnโ€™t consider that it now has to check all the fillers.
13:35
I have my own concerns about those. Like, afraid that the fillers will interfere with any artwork on the die.
13:36
Ideally, Iโ€™d like the option to block fillers on a specific layer only, instead of every layer at once using fillblock. The artwork pixels themselves would create the required density on whichever layer it is on.
Avatar
Leo Moser (mole99) 11/03/2025 13:49
Unfortunately, this PDK does not provide layers to block fill on specific layers only. There's NDMY and PMNDMY (https://gf180mcu-pdk.readthedocs.io/en/latest/physical_verification/design_manual/drm_10_08.html).
Avatar
I forgot that the SRAM macros generate magic DRC errors.
14:34
I think the LVS errors are from the logo.
14:35
Yes
14:35
Okay, I can fix that
14:35
Just missing some config lines
14:36
There is a layer in the GDSII file called "SRAM_CORE" or something like that, that is probably a DRC exclude.
14:36
Magic seems to ignore it right now. Klayout appears aware and does not generate DRC errors.
14:37
"SramCore 108/5"
14:37
Thatโ€™s it
Avatar
Leo Moser (mole99) 11/03/2025 14:48
Yes, there are special rules for SRAM:
14:48
Maybe @Tim Edwards could look into adding them to the magic DRC deck, or simply ignore DRC errors in these areas (KLayout also checks them).
Avatar
Tim Edwards 11/03/2025 17:39
1) What 3.3V SRAM? 2) Yes, the usual method is to replace the SRAM with an abstract view. For the foundry-supplied 5V SRAMs, the PDK creates a .mag view in maglef/ that is DRC clean and points to the GDS data for the SRAM. That is the appropriate one to have in the layout while running full DRC.
Avatar
Avatar
Tim Edwards
1) What 3.3V SRAM? 2) Yes, the usual method is to replace the SRAM with an abstract view. For the foundry-supplied 5V SRAMs, the PDK creates a .mag view in maglef/ that is DRC clean and points to the GDS data for the SRAM. That is the appropriate one to have in the layout while running full DRC.
Leo Moser (mole99) 11/03/2025 17:51
There are none in the PDK yet, but with Staf Verhaegen's SRAM generator we could try to generate them. 2. I was thinking more along the lines of excluding all areas marked by SramCore from the default DRC rules. This way all SRAM macros (and future generated ones) won't result in any violations. We should still check the layout with the KLayout rules, of course. I will try to blackbox the foundry SRAMs for now, I even created a LibreLane PR for that some time ago: https://github.com/librelane/librelane/pull/786
Avatar
I opened one of the SRAM macros in magic on its own. There are DRC errors outside the region marked as "SramCore" also.
Avatar
Those are illegal overlap but they are "fixed" by using the appropriate gds flat glob options when loading the GDS. IIRC Leo already set that up.
Avatar
Tim Edwards 11/03/2025 19:08
The abstract view is of the entire SRAM macro, so if you use that, it should resolve all issues whether or not they exist in the core cell.
๐Ÿ‘ 2
Avatar
Avatar
tnt
Those are illegal overlap but they are "fixed" by using the appropriate gds flat glob options when loading the GDS. IIRC Leo already set that up.
Leo Moser (mole99) 11/03/2025 19:30
I've set those up for the I/O and filler cells: https://github.com/wafer-space/gf180mcu-project-template/blob/6c5025a5e572e6c65f1c677966f37575acb1e52a/librelane/config.yaml#L192 Maybe the _CDNS_ also fixes the issue for the SRAMs.
Avatar
Andrew Wingate 11/03/2025 20:17
Awesome video from @Matt Venn and Nanik Adnani who made some analog designs on gf180 https://www.youtube.com/watch?v=hVejMrkV-Bk
โค๏ธ 1
Avatar
Avatar
Leo Moser (mole99)
I've set those up for the I/O and filler cells: https://github.com/wafer-space/gf180mcu-project-template/blob/6c5025a5e572e6c65f1c677966f37575acb1e52a/librelane/config.yaml#L192 Maybe the _CDNS_ also fixes the issue for the SRAMs.
Tim Edwards 11/03/2025 20:37
I changed the behavior of magic some revisions ago (after our discussion about the problem) to automatically seed the GDS reader with flatglob "*_CDNS_*" so that this would be taken care of by default for anyone with a sufficiently new version of magic. But I don't think that will solve the issue with the SRAMs, because the "CDNS" string is a result of using Cadence pcells, and the SRAM module cells are not pcells.
Avatar
Avatar
Tim Edwards
I changed the behavior of magic some revisions ago (after our discussion about the problem) to automatically seed the GDS reader with flatglob "*_CDNS_*" so that this would be taken care of by default for anyone with a sufficiently new version of magic. But I don't think that will solve the issue with the SRAMs, because the "CDNS" string is a result of using Cadence pcells, and the SRAM module cells are not pcells.
Leo Moser (mole99) 11/03/2025 20:41
Good to know! Then I can remove that flatglob.
Avatar
Tim 'mithro' Ansell 11/03/2025 23:57
@Leo Moser (mole99) - Any recommendation on how much memory the server needs to run the checks?
00:01
@everyone - If people aren't already - I highly recommend signing up for the wafer.space GF180MCU Run 1 Crowd Supply campaign @ https://www.crowdsupply.com/wafer-space/gf180mcu-run-1
Fabricate 1,000 chips of your own design
๐Ÿ’œ 3
waferspace 3
โค๏ธ 3
Avatar
Avatar
Tholin
Look how much free space there is without caravel!
asic destroyer 11/04/2025 00:02
16 x SRAM 512x8 SP?
00:04
GF180MCU SRAM Maximizer Goal Work out the maximum amount of SRAM that is able to fit into the GF180MCU configuration. Specification Layout as many SRAMs as possible that fit in a given die space. Current die size - 3.88mm x 5.07mm Die Size Instances Total Wi...
โค๏ธ 1
Avatar
Avatar
asic destroyer
16 x SRAM 512x8 SP?
Could easily fit that much total, yeah
โค๏ธ 1
00:07
But I think I will continue to rely on external memory for most things.
Avatar
Avatar
Tim 'mithro' Ansell
@everyone - If people aren't already - I highly recommend signing up for the wafer.space GF180MCU Run 1 Crowd Supply campaign @ https://www.crowdsupply.com/wafer-space/gf180mcu-run-1
Brian Swetland 11/04/2025 00:09
I'm definitely interested in this, but it's a little outside of my hobbyist budget at the moment (especially for pre-ordering when I don't have a specific design pretty far along). Keeping an eye on it, but unlikely to be in on this first run. Feedback, if useful: (a) It'd be useful to have details on the COB option (specific sizes, number of pads, etc), and (b) a partial COB option (like 30-100 or so parts) that would allow one to pursue packaging for the rest if results are good, or (c) a packaged option (QFN or the like) would make things a bit more appealing to this particular hobbyist.
Avatar
I also wanna add that the magic DRC check taking dozens of gigabytes of RAM to run on the top-level is not good since not everyone has that. Even if that particular step is skipped, the rest of the flow needs enough RAM to where my laptop is struggling. And when it comes to hobbyists, these are the kinds of devices people are using.
Avatar
Tim Edwards 11/04/2025 00:27
@Tim 'mithro' Ansell : You might consider crowdsourcing additional Tiny Tapeout runs at Tiny Tapeout prices? I think you are better off aiming at getting many users at $100 to $200 each than indivduals putting up $7000 a run. I would certainly put $200 down on a lark, but I'm not going to spend $7000 unless I have something obvious in mind to do with it.
Avatar
Brian Swetland 11/04/2025 00:27
doh. Might be time to finally upgrade the lunix workstation. 32GB is kinda weak these days I guess ^^
Avatar
Avatar
Tim Edwards
@Tim 'mithro' Ansell : You might consider crowdsourcing additional Tiny Tapeout runs at Tiny Tapeout prices? I think you are better off aiming at getting many users at $100 to $200 each than indivduals putting up $7000 a run. I would certainly put $200 down on a lark, but I'm not going to spend $7000 unless I have something obvious in mind to do with it.
Tim 'mithro' Ansell 11/04/2025 00:28
I'm hoping that when TT has finished porting that will definately be what happens.
00:29
@Brian Swetland / @Tim Edwards - You can also sign up for the updates even if you don't buy anything.
๐Ÿ‘ 2
Avatar
Brian Swetland 11/04/2025 00:29
something mid-way between TT and a full dedicated wafer space run in cost, number of parts, and area might be interesting too.
00:31
I feel like there are probably viable price steps around $500 or $1000 or so for folks interested in something a bit more than a single part on an eval board of TT but not quite as big a commitment as $7000-8500 for 1K parts of their own
Avatar
Tim Edwards 11/04/2025 00:32
@Tholin : If anyone wants to help track down why magic is taking dozens of gigabytes of RAM, I can work on thinking of ways to mitigate the resource problem. It really should not be that bad. A number of methods were written (including by me) without consideration of how resources might blow up, and even when that goal is kept in mind, it's not always clear how badly some random subroutine is going to scale. From time to time I work on those issues, but recently I've been doing more PDK work and much of the magic development has been quick fixes and additions for problems that crop up when onboarding a new process. The "quick fixes" are often responsible for the resource hogging because I was trying to solve a problem quickly and just put down what came to mind without thinking about it too deeply.
โค๏ธ 1
00:36
@Tim 'mithro' Ansell : The $500 range is good for a "Chipalooza test chip" type design; those had about 14 slots for dedicated analog designs, all power gated (and $500 x 14 = $7000, conveniently). I've been wanting to run something like that on GF but I don't have any structure set up for advertising it.
Avatar
Brian Swetland 11/04/2025 00:39
No matter how you slice it, it's very exciting to see ASIC design heading into viability for hobbyists, small shops, etc, the way PCB and FPGA stuff previously has. Not just the more affordable shuttle runs, but the open toolchain.
Avatar
Tim Edwards 11/04/2025 00:40
@Tim 'mithro' Ansell : Also I don't know how much CrowdSupply works like KickStarter but I'm willing to bet that if you had a $50 entry for just supporting the whole project and getting back some small token piece of swag, you would get a lot of takers.
๐Ÿ‘ 3
Avatar
Brian Swetland 11/04/2025 00:44
If there was an interesting project in the run that was open source (or at least open documentation), a support tier for $50-100ish for like 2-3 COB parts of that particular project, under a "can't guarantee it'll work, but you get an artifact and it might work" disclaimer might be a worthwhile "support the run" sort of thing
Avatar
Avatar
Brian Swetland
I feel like there are probably viable price steps around $500 or $1000 or so for folks interested in something a bit more than a single part on an eval board of TT but not quite as big a commitment as $7000-8500 for 1K parts of their own
Tim 'mithro' Ansell 11/04/2025 00:51
I'm 100% supportive of people organising that type of thing.
Avatar
Avatar
Brian Swetland
If there was an interesting project in the run that was open source (or at least open documentation), a support tier for $50-100ish for like 2-3 COB parts of that particular project, under a "can't guarantee it'll work, but you get an artifact and it might work" disclaimer might be a worthwhile "support the run" sort of thing
Tim 'mithro' Ansell 11/04/2025 00:52
One of the primary reason Crowd Supply is interested is that they would like people to use Crowd Supply to raise for their own projects that use wafer.space silicon.
Avatar
Avatar
Tim 'mithro' Ansell
I'm 100% supportive of people organising that type of thing.
Brian Swetland 11/04/2025 00:54
Makes sense. Suppose that could take the form of a template/example project of a TT style interconnect and sub-project-select interface that folks wanting to do so could easily integrate.
Avatar
Avatar
Tim 'mithro' Ansell
One of the primary reason Crowd Supply is interested is that they would like people to use Crowd Supply to raise for their own projects that use wafer.space silicon.
Brian Swetland 11/04/2025 00:54
oh, interesting! Yeah that would be cool to see.
Avatar
Tim 'mithro' Ansell 11/04/2025 00:55
IE If you are crowd funding a device which is a few hundred dollars and get a few hundred orders, it's reasonable to do a wafer.space run or two.
00:58
Crowd Supply also offers a pathway to getting your stuff listed on Mouser
Avatar
Avatar
Tholin
I also wanna add that the magic DRC check taking dozens of gigabytes of RAM to run on the top-level is not good since not everyone has that. Even if that particular step is skipped, the rest of the flow needs enough RAM to where my laptop is struggling. And when it comes to hobbyists, these are the kinds of devices people are using.
aedancullen 11/04/2025 01:02
@Tholin (or others) - I have a machine (Ryzen 9950X3D, 128GB DDR5) which I was thinking I could give out a few accounts on, for people needing ways to run their stuff. Let me know if this would be helpful for you (edited)
Avatar
Tim 'mithro' Ansell 11/04/2025 01:02
Sadly my machines which have >128gb memory are in a shipping container
Avatar
AWS also works
Avatar
Avatar
Tim Edwards
@Tim 'mithro' Ansell : Also I don't know how much CrowdSupply works like KickStarter but I'm willing to bet that if you had a $50 entry for just supporting the whole project and getting back some small token piece of swag, you would get a lot of takers.
That's a great point. I hope it is added as an option. I don't have anything I can fab at this time, but I want to make sure it continues to be available
Avatar
Or use any leftover slots to tape out chip design people might be interested in buying and make the money back that way.
Avatar
Avatar
Tholin
Or use any leftover slots to tape out chip design people might be interested in buying and make the money back that way.
Tim 'mithro' Ansell 11/05/2025 11:36
I had hope to do something like that, but need to have some designs people want to buy first
Avatar
I canโ€™t really offer much. I could do what I did with the AS2650v2, but with a RISC-V or other architecture that actually has C compiler support.
11:40
But thatโ€™s all I can think off
Avatar
Tim 'mithro' Ansell 11/05/2025 11:45
GF180MCU Silicon Capacitor Goal Create software which is able to generate a "maximal silicon capacitor" for a given configuration. Specifications GDSFactory Uses AI to tune the capacitor capacity Initial targets are the different GF180MCU stack ups. Why? Empty slots can be filled with silicon...
Avatar
I am also experimenting with analog
11:59
Especially since we can do high-frequency analog stuff inside an IC
11:59
I want to make a chip that just has a bunch of analog gadgets on it
12:00
But Iโ€™m still experimenting.
Avatar
Tim 'mithro' Ansell 11/05/2025 12:04
There is of course @peterkinget 's Mosbius too
Avatar
Avatar
Tholin
I want to make a chip that just has a bunch of analog gadgets on it
Tim Edwards 11/06/2025 01:36
See https://github.com/fossi-foundation/frigate_analog. Basically a field-programmable analog array with DACs, ADCs, instrumentation amplifiers, temperature sensor, etc., etc. Hard to port from sky130 to another process, but I would like to do that for GF180MCU and IHP sg13g2 eventually.
๐Ÿ‘ 2
Avatar
Tim Edwards 11/07/2025 00:57
By the way, I am now actively working on a 3.3V SRAM macro. A bit of detective work which is a combination of ripping the DUALGATE layer off of the existing SRAMs and squeezing the transistors down to minimum length with the same W/L as the 5V cells have, and squeezing out additional space according to the published 3.3V SRAM design rules. My estimate from working on the main core SRAM cell is that a 512kB block will be 255um x 285um vs. 430um x 485um for the existing 5V SRAM 512kB macro. That's approximately 1/3 the area.
๐Ÿ‘ 3
โค๏ธ 4
๐Ÿ”ฅ 2
Avatar
sky130's mpw_precheck has an oeb check to verify that the gpio connections make sense. Like:
  • If the gpio output is connected, then oeb should not be fixed high.
  • If the gpio input is connected, the gpio should be in input mode.
  • etc.
Does wafer.space need anything similar?
Tim 'mithro' Ansell started a thread. 11/07/2025 04:42
Leo Moser (mole99) started a thread. 11/07/2025 07:06
Leo Moser (mole99) started a thread. 11/07/2025 07:11
Avatar
Iโ€™m slowly getting better at throwing together these multi-project dies. Come a long way since my first one on GFMPW-1. Optimizing multiplexer timing right now.
09:34
And at this point, I understand it good enough that I can automate it, I think.
09:35
Its definitely possible to auto-generate the multiplexer RTL from some config files specifying each design.
09:37
The big thing with my setup is that any lines going to the pads, be it outputs or output enables or anything like that, have any constant values optimized. If a io_oe value, for instance, is fixed at 0, instead of that being implemented in the project macro, routed on the top-level to the multiplexer where it then passes through standard cells to the output, the constant is instead resolved inside the multiplexer RTL to remove all that overhead.
09:37
Yielding better top-level density and timings.
09:38
09:38
Like this
09:38
Actually, this may be a better example
09:39
So its not as easy as generating a case-block where each entry is 5'hxx: begin io_oe_sel = designname_oe; io_out_sel = designname_out; io_cs_sel = designname_cs; etc (edited)
09:40
Still, I think this is automatable with enough effort.
09:41
This is a really good setup for sharing die space between a low number of designs, like 4 or 5
09:41
Its, like, in-between TinyTapeout and utilizing the full die.
๐Ÿ‘ 2
09:42
I could get to work on this if there is demand for a automatic, small-scale multi-project setup.
๐Ÿ’œ 1
Avatar
Tim 'mithro' Ansell 11/07/2025 12:01
@Tholin - Offer still stands to put Avalon on the wafer.space design-help page -- maybe it could be focused on "help groups share multiple designs in one slot" type thing?
Avatar
I mean, I at the very least have a LOAD of reference designs.
12:02
Soon even analog stuff
Avatar
Avatar
Tim 'mithro' Ansell
@Tholin - Offer still stands to put Avalon on the wafer.space design-help page -- maybe it could be focused on "help groups share multiple designs in one slot" type thing?
Tim 'mithro' Ansell 11/07/2025 12:02
Also, might be worth mentioning in the profile update that @Andrew Wingate is doing for me?
Avatar
Avatar
Tim 'mithro' Ansell
Also, might be worth mentioning in the profile update that @Andrew Wingate is doing for me?
Andrew Wingate 11/07/2025 12:04
Sure!
Avatar
Unfortunately, time is tight for me now, so I will definitely not get started on an automated multi-project setup until after december.
Avatar
Avatar
Tholin
Unfortunately, time is tight for me now, so I will definitely not get started on an automated multi-project setup until after december.
Tim 'mithro' Ansell 11/07/2025 12:11
I mean a "contact Tholin if you are interested in XYZ" type thing?
Avatar
Probably not. That sounds like it could easily become too stressful on me.
Avatar
Avatar
Tim 'mithro' Ansell
I had hope to do something like that, but need to have some designs people want to buy first
I don't know if @Leo Moser (mole99) is planning to port greyhound, but something like that on a breakout would be interesting for me to buy as a hobbyist. Mosbius too.
Avatar
My next multi-project die is going to include a few things for homebrew computer builders.
๐Ÿ‘ 1
Avatar
Avatar
RebelMike
I don't know if @Leo Moser (mole99) is planning to port greyhound, but something like that on a breakout would be interesting for me to buy as a hobbyist. Mosbius too.
Leo Moser (mole99) 11/07/2025 12:49
I won't be porting Greyhound just yet, but I'll start with an FPGA. Just need to find the time for it while preparing the reticle :)
๐Ÿ’œ 1
Avatar
Iโ€™m thinking - arranging the macros of my multi-project die is a bit tedious to make sure there is enough spacing. I extended my padout graphic generator to also draw the macros, but even then, its a lot of tweaking values in the config and re-running the generator until I happen to get it right. But I wonder if I could turn the padout generator into an interactive UI where you can click and drag the macros with your mouse?
Avatar
Does magic not automatically generate a PR_bndry when streaming out GDSII? It didnโ€™t for one of my analog macros.
Avatar
In any case, setting the bounding box manually works and I now have DACs in my submission.
Avatar
you need the FIXED_BBOX property and then it will.
15:55
I just add DACs to this column as I need them
15:56
The outputs are not wired up to the analog pads yet because something broke and Iโ€™m still trying to figure it out.
15:59
I am going to create a layout for an op-amp next. Already have a schematic for it. I wanna use op-amps inside one of my peripherals, but Iโ€™ll also wire one straight to three analog pads for testing.
16:02
I also wanna see if I can generate a VGA signal, but using actual analog outputs for the colors.
Avatar
Definitely need some big drivers if you're planning direct drive. Each color signal is ~ 14 mA peak. ๐Ÿ™‚
Avatar
Probably not that. Weโ€™ll see.
Avatar
Tim 'mithro' Ansell 11/08/2025 01:50
@แต–สณแต’แต–แต–สธ - See @Tholin's multi-project stuff above. (edited)
Avatar
How likely is it that the first run actually happens? The Crowdsupply page shows only 13% funding, and the announcement about reaching out if you're planning to buy a slot makes it seem like it's currently unlikely to happen? And if that were the case, would there be another attempt at a later date, or would that be the end of wafer.space? (edited)
Avatar
Leo Moser (mole99) 11/08/2025 16:54
@Tim 'mithro' Ansell
Avatar
Tim 'mithro' Ansell 11/09/2025 03:40
@Leon - The run will 100% be happening
03:41
@Leon - I'm committed to running atleast two GF180MCU runs
03:42
Getting enough people purchasing slots is important to getting us beyond these first two runs
๐Ÿ‘ 1
Avatar
That's really great to hear, but it might be useful to clarify that on the website somewhere? Usually when a crowdfunding goal isn't reached, that means the project doesn't happen, so the "13% funded" on the Crowdsupply page might be deterring people from making plans to use wafer.space? (I'm just guessing though, I know very little about chip design and am just an interested spectator hoping for your success.)
Avatar
Itโ€™s a bit different to a normal crowdfund because the thing youโ€™re buying is only worth something if youโ€™ve completed a design yourself. Doing that will take weeks and most people wouldnโ€™t have started until after the start of the campaign. So it makes sense that most of the purchases will come in at the last minute.
Avatar
Avatar
RebelMike
Itโ€™s a bit different to a normal crowdfund because the thing youโ€™re buying is only worth something if youโ€™ve completed a design yourself. Doing that will take weeks and most people wouldnโ€™t have started until after the start of the campaign. So it makes sense that most of the purchases will come in at the last minute.
So it makes sense that most of the purchases will come in at the last minute.
Of course, but that also means you only know if the project reaches the funding goal at the last minute. With the usual crowdfunding model (where projects without sufficient funding are cancelled), that means people have to commit to spending time and resources without knowing if they can actually have the designs produced. I imagine there are potential customers not willing to do this, for whom it would be highly relevant to know that the first two runs are certain to happen.
(edited)
๐Ÿ‘ 3
Avatar
So, my multi-project tapeout is going to have a series of DACs on it and I wish to see if I can use three of them to generate a VGA signal directly. But I donโ€™t wanna display just frames of solid color. Anyone have an existing VGA Demo from TT theyโ€™d be okay with me using for testing purposes?
Avatar
DVD-style screen saver with the Tiny Tapeout logo and Gamepad Pmod support - TinyTapeout/tt-logo-screensaver
๐ŸŽ‰ 1
17:02
But all TT projects are permissively licensed, so you can choose virtually any project
17:03
There are many cool projects from the TT08 demoscene compo: https://tinytapeout.com/competitions/demoscene-tt08-entries/
All the entries to the TT08 demoscene competition
Avatar
That's nice and colorfull! Perfect!
โค๏ธ 2
ttlogo 3
Avatar
Overhauling my DAC in multiple ways right now. It doesnโ€™t actually quite work as it is right now.
13:46
Resistors too small. Even a buf_20 cell cannot drive the DAC as it is.
13:47
Did an oopsie and used the wrong kind of resistor.
13:47
Its very confusing how many of them there are.
Avatar
Since I have a working opamp now, may as well use it. Hereโ€™s old vs. new.
๐Ÿ‘ 1
14:20
Previous version just used a FET
Avatar
Oh man, am I going to need some massive transistors in that opamp just to drive a 1Kohm load on the output.
Avatar
What does "number of fingers" do? If I change it from 1, nothing changes about the simulation output.
Avatar
It's in how many finger the W you indicated will be split during layout.
Avatar
Oh, so it doesnโ€™t automatically multiply the W by nf?
Avatar
It does change some things subtly but it's mostly when trying to match devices or changing the capacitance and such, you wouldn't really see it much in the kind of graphs you're plotting.
15:03
No, the W is the total W, not the finger W.
15:03
Because I am trying to multiply W
15:04
While keeping the shape of the FET in the layout managable
Avatar
Well you can inrease nf buf you also need to increase W.
Avatar
I guess I just have to do it by hand
15:07
Actually, it doesnโ€™t like that
15:08
If the total W gets too high, it breaks.
Avatar
Leo Moser (mole99) 11/10/2025 15:24
The models only support a W up to a certain size. You need to change the multiplier instead.
๐Ÿ˜‘ 1
Avatar
Thatโ€™s a lot of very large transistors.
15:47
This is gonna take a minute
Avatar
Iโ€™ve found that trying to set up my opamps as voltage followers (output connected to MINUS, source voltage into PLUS) strangely doesnโ€™t work. But building an inverting amplifier with a little bit of gain does.
16:37
No idea why
16:37
Donโ€™t question the component name.
Avatar
Tim Edwards 11/10/2025 18:03
My main problem with that schematic is not that the op-amp is chonky (chonky is in the eye of the beholder!) but that you have some pretty high currents for an on-chip amplifier. On-chip circuits are usually meant to drive microamps, not milliamps. Driving an off-chip load does require some beefy components, but with the right amp design, you can restrict the beefy components to just the output driver, and most of the rest of the amplifier will be reasonbly small. A voltage follower is generally easier to get working than an inverting amplifier (all the drive current goes to the load), so it's probably a good idea to look closely at what's causing that configuration to fail. Finally, a current bias is much better than a voltage bias, and if it's really taking a voltage bias, then you shouldn't need a milliamp current path through your voltage divider to set it.
18:04
@Tholin : Feel free to post the amplifier schematic, or a link to the project. (edited)
Avatar
Note: resistor values are not yet properly tuned, I only care about the ratios so far.
18:16
But yeah, this is meant to drive a pad.
18:18
I should share the schematic for the opamp sometime.
Avatar
I also wouldn't count too much on that working like in sim. I'm not expert, but biasing the gate of mosfet with a resistor divider seems like it could yield quite a bit of process variation.
20:47
Why is the gate and drain of XM6 connected together ?
Avatar
Avatar
Leo Moser (mole99)
The models only support a W up to a certain size. You need to change the multiplier instead.
Shouldn't the model only care about the finger width and not the total width ?
Avatar
Avatar
tnt
I also wouldn't count too much on that working like in sim. I'm not expert, but biasing the gate of mosfet with a resistor divider seems like it could yield quite a bit of process variation.
Saltypretzel 11/10/2025 21:09
I second this. For the "adj" pin, you should definitely consider using a replica biasing scheme.
21:11
Even if your resistors are ratiometrically designed, your mosfet threshold voltage, mobility, Cox etc... will all change under process. Since mosfets have gain, you'll have a trouble keeping the bias currents the same. across chip-chip or even from one part of the chip to another.
Avatar
Avatar
Tholin
Click to see attachment ๐Ÿ–ผ๏ธ
Saltypretzel 11/10/2025 21:12
the first stage of the amplifier can definitely be a lot smaller (length and width wise)... it seems like one side of the differential pair (and current mirror) is not equal to the other? These should be the same otherwise you will have systematic offset in your circuit.
Avatar
Donโ€™t worry - I can explain all this very easily.
21:21
I donโ€™t know what Iโ€™m doing
21:21
Analog stuff is so inaccessible still flop
21:23
Also, yeah, I do have some weird offsets
Avatar
I played with the transistor values until the output looked good. And I simulated it across all process corners and there is very little variance.
Avatar
Ethan Mahintorabi 11/11/2025 08:11
Been working on a 500x300 black and white camera, and I finally got the pixel array done. All done in gdsfactory https://github.com/njcoburn/OPENIMAGESENSOR/blob/main/test.py
OPENIMAGESENSOR - An open source image sensor. Contribute to njcoburn/OPENIMAGESENSOR development by creating an account on GitHub.
โค๏ธ 1
blobclap 2
๐Ÿ‘€ 1
๐Ÿ‘ 1
Avatar
Leo Moser (mole99) 11/11/2025 08:30
Very cool! Do I see round corners on the photodiode? Do the docs have DRC guidelines on that?
Avatar
I built a better opamp after doing some research. This one is almost rail-to-rail!
11:02
And will only need two big transistors.
11:03
The other opamp I designed I may keep the non-chonky version of for internal use on the die. It has some properties that made it easier to use for building that sine wave generator I showed a long time ago.
Avatar
It behaves okay enough under a 1Kohm output load, so I think Iโ€™ll move ahead to the layout stage with this one.
12:25
Still a massive output stage just to drive a 1Kohm load. Am I doing this right?
Avatar
Check the size of the transistor in the IOs. They can drive a 1kohm load with no problem, so if you're bigger than they are, you're doing something wrong.
12:42
Also post the new internal schematic of your op amp.
Avatar
Oh, right
12:44
It looks a little weird on the right, having duplicated the transistors in the schematic. But its so that importing the SPICE into magic generates the transistors how I want them.
Avatar
Avatar
Tholin
I built a better opamp after doing some research. This one is almost rail-to-rail!
Since this thing at least works really good in this configuration, I do wonder if a IO pad structure specifically meant for analog output that contains this circuit would be something people would want to use. It just takes whatever analog signal comes in and boosts it to be able to drive 1kohm loads. (and inverts it, but that can be solved with a second opamp).
Avatar
I don't know the tools you are using, but many of them will let you get multiple instances in the same way by using InstanceName<N:0> to get N+1 instances of the transistor in the netlist and layout. I would try it in the schematic then check the netlist to see if it works in your toolchain.
Avatar
I can do this, but it stacks the transistors in a way I donโ€™t like.
Avatar
So I think one issue might also be expecting it to be rail to rail using that architecture. Inherently that basic op-amp can never be and maybe you're massively oversizing the transistor to get it closer to rail and compensate for a fundamental limit of the architecture.
Avatar
What might also be worth investigating is using shorter cascoded transistors. Shorter channels will give the same gm with shorter widths, and the cascode will raise the output impedance with lower Vds
12:52
With this process you can also probably interdigitate the two transistors for a very compact layout.
Avatar
Avatar
tnt
So I think one issue might also be expecting it to be rail to rail using that architecture. Inherently that basic op-amp can never be and maybe you're massively oversizing the transistor to get it closer to rail and compensate for a fundamental limit of the architecture.
Oh, yeah, I stopped making the transistors larger when I hit an area of diminishing returns. But if I make them any smaller, there is a big difference in the output still. What is nice is that its effectively rail-to-rail when used internally, not to drive an output pad.
Avatar
See how this for instance use symmetrical Nmos/Pmos input pairs and then combine them to increase the range : https://www.xschem-viewer.com/?file=https://github.com/htfab/flash-adc/blob/main/xschem/opamp.sch Obviously this is single stage so you'd still need to drive a power stage instead.
Avatar
That xschem viewer doesnโ€™t work on firefox
Avatar
Avatar
tnt
See how this for instance use symmetrical Nmos/Pmos input pairs and then combine them to increase the range : https://www.xschem-viewer.com/?file=https://github.com/htfab/flash-adc/blob/main/xschem/opamp.sch Obviously this is single stage so you'd still need to drive a power stage instead.
That is for increased input common-mode range (as needed in a unity-gain non-inverting amplifier), but doesn't do anything for output swing.
Avatar
Oh yeah, I thought it was setup as a non-inverting buffer to buffer the R2R output, my bad. Rechecking the way it's used, it's indeed inverting and will mainain both input at mid range.
Avatar
Avatar
tnt
Oh yeah, I thought it was setup as a non-inverting buffer to buffer the R2R output, my bad. Rechecking the way it's used, it's indeed inverting and will mainain both input at mid range.
Although if the intention is to produce a general-purpose op-amp, then it is a point worth considering in the design.
Avatar
Avatar
Tholin
Oh, right
Saltypretzel 11/11/2025 13:54
Given you have two gain stages now with the diff amp, you have 3 poles which could be close to each otherโ€ฆ make sure everything is stable when you build it with feedback too
Avatar
Saltypretzel 11/11/2025 14:06
Oh never mind, they seem to be in parallelโ€ฆ regardless it is still something to consider
Avatar
Avatar
Leo Moser (mole99)
Very cool! Do I see round corners on the photodiode? Do the docs have DRC guidelines on that?
Ethan Mahintorabi 11/11/2025 15:27
The docs do not have drc guidance on that, but it didn't trigger any rules so I assume it's okay. The nwell is 5x5um so I assume it's large enough to not matter
Avatar
Avatar
Ethan Mahintorabi
The docs do not have drc guidance on that, but it didn't trigger any rules so I assume it's okay. The nwell is 5x5um so I assume it's large enough to not matter
Leo Moser (mole99) 11/11/2025 15:42
It might be okay, it might also be a missing check :) I only found the following in 3.0 Layout Information:
3.6 Only 90 deg and 45 deg bends are allowed for poly and metal lines.
So I assume that for nwell round coners are okay (as long as all points are on-grid). If you have a complete chip layout, please let me know and I can already include it in the reticle to send to GF for early feedback.
Avatar
Avatar
Leo Moser (mole99)
It might be okay, it might also be a missing check :) I only found the following in 3.0 Layout Information:
3.6 Only 90 deg and 45 deg bends are allowed for poly and metal lines.
So I assume that for nwell round coners are okay (as long as all points are on-grid). If you have a complete chip layout, please let me know and I can already include it in the reticle to send to GF for early feedback.
Ethan Mahintorabi 11/11/2025 15:44
Do you need a full pad frame with density fill or can I just send you a gds with the pixel array fitting into the die area
15:47
Or I could just send you some rounded nwell
Avatar
Avatar
Ethan Mahintorabi
Been working on a 500x300 black and white camera, and I finally got the pixel array done. All done in gdsfactory https://github.com/njcoburn/OPENIMAGESENSOR/blob/main/test.py
BreakingTaps 11/11/2025 19:03
this looks amazing! have you been doing simulations to check functionality, or just YOLO'ing it? And if yes, how? That's the part that I really stumbled on when thinking about doing an imager ๐Ÿ™‚
Avatar
Leo Moser (mole99) 11/11/2025 19:47
The wafer.space community is developing a flexible chip-on-board packaging strategy, so you won't need specialized equipment or expensive packaging services to use your chips.
๐Ÿ’œ 3
Ethan Mahintorabi started a thread. 11/11/2025 20:13
urish started a thread. 11/11/2025 20:39
Avatar
All I did was try to include my opamp in another circuit and magic went and reset the positions of the transistors AND saved the changes to the .mag file without asking for confirmation. Why? Why did magic just destroy my work?
Avatar
Avatar
Tholin
All I did was try to include my opamp in another circuit and magic went and reset the positions of the transistors AND saved the changes to the .mag file without asking for confirmation. Why? Why did magic just destroy my work?
Tim Edwards 11/12/2025 02:40
I guess you can blame me for that one. the SPICE import function is supposed to be re-entrant, letting you add, subtract, or change devices without messing with the existing layout. Apparently that doesn't work?
Avatar
Noritsuna Imamura 11/13/2025 09:44
Hi, All. We, ISHI-KAI( https://ishi-kai.org/links ), are a community that promotes open source PDK & EDA in Japan. This time, we brought together 14 novice semiconductor designers (most of whom were new to semiconductor design), each of whom created an analog circuit, such as an Inverter or OPAMP, ADC, PLL, BGR, CS, made using xschem & klayout with P-Cells for Wafer.Space GF180MCU . All schematics and layouts are released under an open source license.
  • Our Project
https://github.com/ishi-kai/ISHI-KAI_Multiple_Projects_WaferSapce-GF180-1 This is the development environment for analog circuits we used for Wafer.Space. Feel free to use it if needed.
  • WSL Image
https://www.noritsuna.jp/download/ubuntu2404_waferspace_2025.zip ID:ishikai Pass:ishikai
  • How to Setup
Execute on the Windows command line
cd [Unzipped directory] wsl --import-in-place ubuntu2404_waferspace_2025 .\ubuntu2404_waferspace_2025\ext4.vhdx
  • How to Use
Execute on the Windows Double-click ubuntu2404_waferspace_2025.lnk
  • How to Delete
Execute on the Windows command line
cd [Unzipped directory] wsl --unregister ubuntu2404_waferspace_2025
  • How to Run precheck
Execute on the WSL command line
cd ~/tools/gf180mcu-precheck/ nix-shell export PDK=gf180mcuD export PDK_ROOT=gf180mcu python3 precheck.py --input [GDS file] --top [Top Cell Name]
  • Setup script for xschem & ngspice, magic, KLayout fo Wafer.Spice GF180 of Analog on Local WSL&Ubuntu&MacOS
https://github.com/ishi-kai/OpenEDA-PDK_SetupScript
  • How to Setup
git clone https://github.com/ishi-kai/OpenEDA-PDK_SetupScript bash eda-setup.sh bash pdk_gf180-setup.sh
(edited)
๐Ÿ‘ 1
Leo Moser (mole99) started a thread. 11/13/2025 10:11
Avatar
Tim 'mithro' Ansell 11/13/2025 21:40
Avatar
Oh! I can use this as the analog output VGA demo on my multi-project die.
Avatar
Once I am no longer busy preparing a chip layout for the december tapeout, I am planning to spend the following months (while the fab is busy) on two things. Firstly, my custom 3.3V standard cells (including IO pad structures for 3.3V IO). Secondly, a general-purpose, easy to use toolset for creating multi-project dies. I want to make it as simple as defining a project list in a CSV and dropping it plus the source RTL for each project into a repository template, and the whole multiplexer and top-level setup is auto-generated. It would not be as advanced as TinyTapeout, but more dynamic. Better for when the die is only to be split 4 or 5 ways, with each project having a variable size, so you can do crazy splits like a 3 project die where 90% of available area goes to to project #1 and 5% to #2 and #3 each. For bonus points, I may create a GUI for managing the project list, settings and macro arrangement.
๐Ÿ‘ 3
๐ŸŽ‰ 2
Avatar
It's old and unmaintained but maybe there are some ideas you can take from my old https://github.com/mattvenn/multi_project_tools
tools to help make the most of the limited space we have on the Google sponsored Efabless shuttles - mattvenn/multi_project_tools
Avatar
Andrew Wingate 11/14/2025 21:08
Another CrowdSupply post. This time featuring @Tholin https://www.crowdsupply.com/wafer-space/gf180mcu-run-1/updates/tholin-feature
Our first shuttle run includes a number of incredible projects, and we wanted to take a moment to highlight one of them: an open reimplementation of the historic Signetics 2650 microprocessor.
๐Ÿ’œ 2
๐ŸŽ‰ 2
Avatar
Tim 'mithro' Ansell 11/14/2025 21:35
I got distracted and accidentally created https://discord.wafer.space archive of the discord server
Public archive of wafer.space Discord server
Avatar
Triangle and sine/cosine wave generators work much better with the new opamp design.
Avatar
I wish there was time to get the NTSC color video generator demo going in time for the december tapeout, but I donโ€™t think there is.
โค๏ธ 1
21:57
Sad.
Avatar
Tim Edwards 11/17/2025 02:34
Update: Work on the 3.3V SRAM block is progressing steadily. I was hoping to finish layout at the end of last week, but it ran over into the weekend. I now have a draft layout, DRC clean, but I have not run LVS yet (will work on that tomorrow) The design is currently about 300 x 330 um, which makes it just slightly less than 1/2 the area of the 5V SRAM. I have some room to shave off additional area from the bottom. I can probably get it down to 300 x 300, but probably don't have time to do that for this tapeout. Once I get it LVS clean, I will push the layout, netlist, and LEF. Adjusting all the timing in the liberty and verilog files will take a lot of time and effort.
๐Ÿ‘ 3
๐ŸŽ‰ 4
02:36
I would post a picture but it looks just like the 5V SRAM layout from a bird's-eye view, so not really worth the effort.
urish started a thread. 11/17/2025 07:16
Avatar
@Leo Moser (mole99) How is your ground ring connected to the pads in the template ?
10:14
Maybe it didn't build properly for me locally but I'm looking at it and I can't find anywhere where it's attached.
Avatar
Avatar
tnt
@Leo Moser (mole99) How is your ground ring connected to the pads in the template ?
Leo Moser (mole99) 11/17/2025 10:17
LVS is clean, so it better be attached ๐Ÿ˜„ Let me check...
Avatar
Could be attached through substrate ...
Avatar
Leo Moser (mole99) 11/17/2025 10:17
Oh, I see
10:18
It's only attached to the top and bottom ground pad ๐Ÿ˜…
10:19
The reason is, I made changes to the template and now gf180mcu_fd_io__dvss is used for all ground pads instead of my modified gf180mcu_ws_io__dvss which has pins on two metal layers.
10:20
I think there should be no issue with gf180mcu_ws_io__dvss for both horizontal and vertical I/O rows.
10:21
Thanks a lot for alerting me!
๐Ÿ‘Œ 1
Avatar
I hadn't see the one on top and bottom because I forgot I had added those in the padframe ๐Ÿ˜…
๐Ÿ˜ 1
10:25
Although I have my rings on Metal5 / Metal4 so I'm not sure how that's going to help me ๐Ÿ˜…
Avatar
Leo Moser (mole99) 11/17/2025 10:25
Yeah, that's another issue ๐Ÿ˜…
Avatar
BreakingTaps 11/17/2025 15:15
Crunched all weekend...I think I just might make the tapeout deadline! need to add more tests to the bootloader and uart interface, but if I can convince myself that's working my entry is probably ship'able whenever ๐Ÿคž
๐Ÿ‘ 2
Avatar
Avatar
BreakingTaps
Crunched all weekend...I think I just might make the tapeout deadline! need to add more tests to the bootloader and uart interface, but if I can convince myself that's working my entry is probably ship'able whenever ๐Ÿคž
Leo Moser (mole99) 11/17/2025 15:20
Feel free to ask if you get stuck at any point in the process.
Avatar
BreakingTaps 11/17/2025 15:22
thanks! might take you up on that once I start integrating into the project template ๐Ÿ™‚
๐Ÿ‘ 1
urish started a thread. 11/18/2025 10:43
Avatar
Leo Moser (mole99) 11/18/2025 17:38
Important notice regarding the foundry SRAM models โ€ผ๏ธ If you're as innocent as me, you might think that the meaning of the SRAM control signals is as follows:
  • CEN = Chip Enable
  • GWEN = Global Write Enable
  • WEN = Write Enable
Far from it! The real meaning is actually:
  • CEN = Chip Enable Negative
  • GWEN = Global Write Enable Negative
  • WEN = Write Enable Negative
All of the control signals need to be negated. (I would have preferred CEB, GWEB and WEB...) Another pitfall: in order for the SRAM model to work, it needs to see a falling edge on CEN. Therefore, you cannot start the simulation with CEN low. Thank you for your attention ๐Ÿ˜„
โ‰๏ธ 3
Avatar
Oh that's just mean.
๐Ÿฅฒ 1
๐Ÿ’ฏ 1
Avatar
Avatar
Leo Moser (mole99)
Important notice regarding the foundry SRAM models โ€ผ๏ธ If you're as innocent as me, you might think that the meaning of the SRAM control signals is as follows:
  • CEN = Chip Enable
  • GWEN = Global Write Enable
  • WEN = Write Enable
Far from it! The real meaning is actually:
  • CEN = Chip Enable Negative
  • GWEN = Global Write Enable Negative
  • WEN = Write Enable Negative
All of the control signals need to be negated. (I would have preferred CEB, GWEB and WEB...) Another pitfall: in order for the SRAM model to work, it needs to see a falling edge on CEN. Therefore, you cannot start the simulation with CEN low. Thank you for your attention ๐Ÿ˜„
Leo Moser (mole99) 11/18/2025 17:54
( @BreakingTaps )
๐Ÿ‘€ 1
Avatar
BreakingTaps 11/18/2025 18:20
will check my code when I get home, cheers for the note!
๐Ÿ‘ 1
Avatar
Avatar
Leo Moser (mole99)
Important notice regarding the foundry SRAM models โ€ผ๏ธ If you're as innocent as me, you might think that the meaning of the SRAM control signals is as follows:
  • CEN = Chip Enable
  • GWEN = Global Write Enable
  • WEN = Write Enable
Far from it! The real meaning is actually:
  • CEN = Chip Enable Negative
  • GWEN = Global Write Enable Negative
  • WEN = Write Enable Negative
All of the control signals need to be negated. (I would have preferred CEB, GWEB and WEB...) Another pitfall: in order for the SRAM model to work, it needs to see a falling edge on CEN. Therefore, you cannot start the simulation with CEN low. Thank you for your attention ๐Ÿ˜„
this is diabolical, these signals were clearly named by someone who got paid off by Big ECO
๐Ÿ˜ 2
Avatar
This is normal, wait til you see pads where the output data is called I
23:08
as in Into the pad (going out of the chip)
๐Ÿ’€ 1
Avatar
Avatar
Leo Moser (mole99)
( @BreakingTaps )
Tim 'mithro' Ansell 11/19/2025 00:35
I assume there is no way to verify people are doing things correctly in the precheck.
Avatar
Avatar
Tim 'mithro' Ansell
I assume there is no way to verify people are doing things correctly in the precheck.
@Tim 'mithro' Ansell for the chipIgnite shuttle, we implemented an oeb check that would check the connections and logic values at the user - gpio interface and report discrepancies like output signals without oeb connections, output signals with high oeb etc. Given sufficient specs, I might be able to come up with something using my CVC-RV to examine the port signals and their connections.
Avatar
Avatar
bailey
@Tim 'mithro' Ansell for the chipIgnite shuttle, we implemented an oeb check that would check the connections and logic values at the user - gpio interface and report discrepancies like output signals without oeb connections, output signals with high oeb etc. Given sufficient specs, I might be able to come up with something using my CVC-RV to examine the port signals and their connections.
Tim 'mithro' Ansell 11/19/2025 01:55
We should probably update the IP to be named something like CE_N or something....
๐Ÿ‘ 3
Avatar
Tim 'mithro' Ansell 11/19/2025 06:37
Can people see/access test-platform.wafer.space?
Avatar
It keeps loading for a long time
urish started a thread. 11/19/2025 06:51
Avatar
Andrew Wingate 11/19/2025 08:47
Another update, this time featuring @peterkinget and Mosbius. There's also an interesting interview posted with @Matt Venn talking about his project https://www.crowdsupply.com/wafer-space/gf180mcu-run-1/updates/mosbius
This week we highlight MOSbius, an educational platform from Columbia University bringing hands-on silicon learning to students worldwide.
๐Ÿ‘ 3
Avatar
Avatar
Tholin
Once I am no longer busy preparing a chip layout for the december tapeout, I am planning to spend the following months (while the fab is busy) on two things. Firstly, my custom 3.3V standard cells (including IO pad structures for 3.3V IO). Secondly, a general-purpose, easy to use toolset for creating multi-project dies. I want to make it as simple as defining a project list in a CSV and dropping it plus the source RTL for each project into a repository template, and the whole multiplexer and top-level setup is auto-generated. It would not be as advanced as TinyTapeout, but more dynamic. Better for when the die is only to be split 4 or 5 ways, with each project having a variable size, so you can do crazy splits like a 3 project die where 90% of available area goes to to project #1 and 5% to #2 and #3 each. For bonus points, I may create a GUI for managing the project list, settings and macro arrangement.
ReJ aka Renaldas Zioma 11/19/2025 12:03
Looking forward!
Avatar
I have a perfectly working layout for a fast DAC now. So why not make an NTSC video generator?
๐Ÿ‘€ 3
19:49
Literally 20 lines of RTL
19:49
Pretty cool
Avatar
Tim 'mithro' Ansell 11/19/2025 20:44
@Tholin - How about a 640x480 HDMI output? ๐Ÿ˜›
Avatar
Possible with the ADV7513
Avatar
Tim 'mithro' Ansell 11/19/2025 21:59
The pixel clock for an HDMI connection at 640x480 resolution is approximately 25.175 MHz. -- 10bits per pixel makes it 250MHz needed at the I/O
22:01
22:02
HDMI PMOD is 100% feasible
Avatar
Tim 'mithro' Ansell 11/19/2025 22:08
@Tholin - I'm very familar with those Analog Devices parts
Avatar
for 60 Hz it's exactly 25.2 MHz -- for some reason the NTSC colour subcarrier -0.1% thing has made its way into digital standards too
22:14
Simple DDR out running at 126 MHz would do it, the problem is just the pad libraries and the clock source ๐Ÿ˜…
22:15
you can drive 252 Mbps with a clean eye mask with just a 3.3V CMOS push/pull GPIO on a microcontroller and a 270 ohm resistor to set the current level
22:16
I'm also interested in your NTSC DAC as I'm making a games console ๐Ÿ™‚ roughly GBA-competitive in terms of graphics and CPU
22:16
would be awesome to play on a CRT
Avatar
Avatar
LukeW
for 60 Hz it's exactly 25.2 MHz -- for some reason the NTSC colour subcarrier -0.1% thing has made its way into digital standards too
(it's just 800 x 525 x 60 = 25.2e6)
Avatar
i'm also interested in the NTSC logic for game console reasons, I'm working on an NES clone atm
Avatar
Multi-project die. Contribute to AvalonSemiconductors/ws-submission-2025 development by creating an account on GitHub.
Avatar
Ooh so the DAC is R2R with current steering through the 2Rs? I never looked into how DACs are actually implemented before, that's very cool
12:53
Would be great for VGA too. We're a bit too pad-limited for external ladder DACs.
12:54
Annoyed I already assigned all my pads to digital IOs
Avatar
I am going to test if its good for VGA also
โค๏ธ 1
12:55
Though right now I am still battling LibreLane
12:55
It is refusing to route the outputs of the DACs to the analog pads.
Avatar
LibreLane: "it's not a one or a zero therefore it cannot hurt me."
Avatar
This is weird. My analog pads arenโ€™t being routed, but the netlist that comes out of detailed routing claims they are connected.
15:10
@Leo Moser (mole99) Are the analog pads getting routed in the unmodified template?
Avatar
Leo Moser (mole99) 11/20/2025 15:20
@Tholin The template does not connect the analog pads to anything. So no, they aren't routed.
15:23
Well
15:23
I am connecting them to something and they still donโ€™t route.
15:24
Triggering an obvious LVS error
Avatar
Leo Moser (mole99) 11/20/2025 15:29
In the worst case, you could hardcode the port types as inputs and outputs. A proper solution would of course be better. I haven't tried to route inout ports yet, maybe you need to convince OpenROAD's GRT/DRT in some way to do that.
Avatar
Already tried that. Actually did a lot of modifications to the PDK files to try and get it to route, but no luck.
Avatar
Is your project somehwere online we can look at ?
Avatar
Multi-project die. Contribute to AvalonSemiconductors/ws-submission-2025 development by creating an account on GitHub.
Avatar
You can try to use the ef bi IO that have the analog port added and see if it connects better to that.
17:02
not ideal, but if that works, at least it'll narrow the issue.
Avatar
@Tholin So I can see the connections in the system verilog. What about the synthesized gate level verilog? Can you see the analog connections there?
19:08
The connections are even still present in the netlist post route.
๐Ÿ‘ 1
Avatar
I know a lot of people do retro stuff so they probably disagree, but I find that having the default settings of librelane be 5V instead of 3.3V is a bit annoying ๐Ÿ˜…
๐Ÿ‘ 1
Avatar
Avatar
tnt
I know a lot of people do retro stuff so they probably disagree, but I find that having the default settings of librelane be 5V instead of 3.3V is a bit annoying ๐Ÿ˜…
Leo Moser (mole99) 11/21/2025 09:41
I feel you. Including the libs for KianV was some work. But I would argue that the foundry-provided stdcells shouldn't really be used at 3.3V, as they are really bad for that ๐Ÿ˜„ Once we have a confirmed working 3.3V stdcell library, we can discuss setting it as the default for gf180mcu.
Avatar
They're really not that bad at 3.3V. I wouldn't use them at 1.8V even if they have specs for that, but at 3.3V they're a bit slower but still very much usable.
09:52
Will the first run include foundry biased wafers ( ss / sf / fs / ff ) with test structures for new standard cells to allow proper validation ?
Avatar
When I run nix-shell in the template and then magic, I expected magic to load the gf180mcuD PDK, but it instead loads with sky130A. I cannot figure out how to get it to gracefully load the gf180mcuD PDK, so I keep having to go back to iic-osic-tools for analog layout.
Avatar
Avatar
tnt
Will the first run include foundry biased wafers ( ss / sf / fs / ff ) with test structures for new standard cells to allow proper validation ?
Leo Moser (mole99) 11/21/2025 10:01
I didn't know the foundry could create biased wafers on purpose. I thought that just happens due to process variations, and the wafers are sorted afterwards based on the measurements of the test structures? As for your question, I don't think so. First, we would need to pick a stdcell library (or more) to characterize. There is Tholin's library, for example, and the FlexCell library. I tried to PnR Staf's FlexCell library, but I had to stop at routing due to some issues. Also someone need to do the work of creating a chip with these libraries for characterization. @Tim 'mithro' Ansell no one is working on that atm, correct?
Avatar
Avatar
Tholin
When I run nix-shell in the template and then magic, I expected magic to load the gf180mcuD PDK, but it instead loads with sky130A. I cannot figure out how to get it to gracefully load the gf180mcuD PDK, so I keep having to go back to iic-osic-tools for analog layout.
Leo Moser (mole99) 11/21/2025 10:02
Did you export PDK_ROOT and PDK and pass the rcfile to magic?
Avatar
@Leo Moser (mole99) I didn't know either, I only learned about that recently. I guess they can tweak parameters and then validate using their own test structure that they hit the target and where that wafer ends up ๐Ÿคท
๐Ÿ‘ 1
Avatar
Avatar
Leo Moser (mole99)
Did you export PDK_ROOT and PDK and pass the rcfile to magic?
magic crashes
10:04
No, -d OGL is what crashes it, my bad
Avatar
Avatar
Leo Moser (mole99)
I didn't know the foundry could create biased wafers on purpose. I thought that just happens due to process variations, and the wafers are sorted afterwards based on the measurements of the test structures? As for your question, I don't think so. First, we would need to pick a stdcell library (or more) to characterize. There is Tholin's library, for example, and the FlexCell library. I tried to PnR Staf's FlexCell library, but I had to stop at routing due to some issues. Also someone need to do the work of creating a chip with these libraries for characterization. @Tim 'mithro' Ansell no one is working on that atm, correct?
We also have the problem of no 3.3V-optimized IO pads. I will create some eventually as part of my SCL, but not in less than two weeks. Next shuttle. Actually, Iโ€™ve had to pause work on my SCL so I can participate in this shuttle and have something ready in time. Sorry.
Avatar
Avatar
Tholin
We also have the problem of no 3.3V-optimized IO pads. I will create some eventually as part of my SCL, but not in less than two weeks. Next shuttle. Actually, Iโ€™ve had to pause work on my SCL so I can participate in this shuttle and have something ready in time. Sorry.
Leo Moser (mole99) 11/21/2025 10:07
Don't be sorry, that's super exciting work ๐Ÿ‘ Yeah, 3.3V I/Os would also be great!
Avatar
Avatar
Tholin
magic crashes
Leo Moser (mole99) 11/21/2025 10:10
magic: ## Open magic with the gf180mcuD PDK PDK_ROOT=${PDK_ROOT} PDK=${PDK} magic -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/gf180mcuD.magicrc .PHONY: magic This should work.
Avatar
I am cheating a bit. I took gf180mcu_fd_io__bi_24t, flattened some of it and just deleted the DUALGATE layer. Next step wouldโ€™ve been to go through and shrink the transistor lengths, since the 3.3V transistors have a way shorter minimum length. Note that this produces a 3.3V only pad, not a pad with separate core and IO voltage supporting both.
๐Ÿ‘Œ 1
10:13
The biggest struggle and time-sink would be characterization.
Avatar
TBH for IO pads, I intend to keep the 5V rated ones since 5V compat is good to keep for TT. Although I'd switch to the split core/io voltage ones of course. And speed wise they're only about 30% slower.
๐Ÿ‘ 1
Avatar
I donโ€™t think I can rely on lctime anymore.
10:13
I like using lctime because Iโ€™ve read most of its code and understand it, but its limited and simplistic.
Avatar
Leo Moser (mole99) 11/21/2025 10:14
Well, there's some talks about performance optimizations at least: https://codeberg.org/librecell/lctime/issues/38
I had a discussion with Holger from NGSpice about how we could improve the speed for characterization, and got the following feedback: "For standard cell characterisation, where we have lots of very similar simulations, where each simulation takes relatively few time and the simulation setup and ...
Avatar
Avatar
tnt
@Leo Moser (mole99) I didn't know either, I only learned about that recently. I guess they can tweak parameters and then validate using their own test structure that they hit the target and where that wafer ends up ๐Ÿคท
Tim 'mithro' Ansell 11/21/2025 11:26
You can overdope and over expose and do things like that.
Avatar
Avatar
Leo Moser (mole99)
I didn't know the foundry could create biased wafers on purpose. I thought that just happens due to process variations, and the wafers are sorted afterwards based on the measurements of the test structures? As for your question, I don't think so. First, we would need to pick a stdcell library (or more) to characterize. There is Tholin's library, for example, and the FlexCell library. I tried to PnR Staf's FlexCell library, but I had to stop at routing due to some issues. Also someone need to do the work of creating a chip with these libraries for characterization. @Tim 'mithro' Ansell no one is working on that atm, correct?
Tim 'mithro' Ansell 11/21/2025 11:28
I was trying to convince Mehdi's group to do the same thing as their SKY130 test tile for GF180MCU -> https://github.com/google/skywater-pdk-sky130-raw-data/tree/main/docs/sky130-testtile-open
Raw data collected about the SKY130 process technology. - google/skywater-pdk-sky130-raw-data
Avatar
I wonder if the issue LibreLane has with the analog pads is that they have no separate pins for the pad and signal input. All the IO pads have a separate PAD pin in their definition, except the analog pads, which just have ASIG5V.
11:57
Iโ€™m gonna experiment.
๐Ÿ‘ 1
Avatar
Update: works
13:25
I will let this flow finish, though, to ensure there is no LVS errors left.
13:25
But it appears that gf180mcu_fd_io__asig_5p0 has some broken port definitions.
Avatar
Or OpenRoad has a bug that's triggered by whatever they're using ๐Ÿ™‚
13:33
Because looking at the LEF I didn't really see anything wrong about it ๐Ÿคท
Avatar
The mag has some weird stuff going on
13:36
The ports that are missing the signal bidirectionalare actually duplicates of ports that do have those parameters.
13:36
Idk
13:36
Removing the broken-looking ones fixed it
Avatar
The mag shouldn't be used by OpenRoad at all.
Avatar
Yeah, but I generated the lef and GDSII from that mag
13:38
Oh, I also added a PAD port
13:38
And updated the verilog and lib to reflect this
Avatar
Avatar
Tholin
Oh, I also added a PAD port
@Tholin if you added a PAD port to the analog io cell, wouldn't that short with the ASIG5V port?
13:41
PAD and ASIG5V are still one and the same
13:42
But somehow it makes a difference having both names assigned to it.
Avatar
Is your current "built" GDS somewhere ? (The repo doesn't use github action so I can't just download what it looks like there ๐Ÿ˜… )
13:51
Its still building
13:52
A github actions pipeline would fail at this time anyways because I know it has KLayout DRC errors in the DACs.
13:52
I need to flatten them. It sees errors that arenโ€™t there if you take in context from higher up in the hierarchy.
Avatar
I took that make_gds script from the wafer.space logo IP in the project template and updated it to make it more compatible with a wider range of inputs. https://github.com/AvalonSemiconductors/ws-submission-2025/blob/main/silicon_art/make_gds.py
15:25
The input image no longer has to be in a specific pixel format.
15:25
But most importantly, I added code to automatically repair potential DRC errors.
15:26
Most common are pixels that only touch at the corner: X_ _X _X X_
15:26
But one-pixel gaps are also filled on lower pixel sizes.
15:26
The script now inserts additional pixels until all such errors are gone.
๐Ÿ‘ 2
Avatar
Which is just a little hint to everyone that Iโ€™m about to have a need for converting more complex images to layouts.
๐Ÿ˜† 1
๐Ÿ’œ 1
Avatar
Avatar
Tholin
I took that make_gds script from the wafer.space logo IP in the project template and updated it to make it more compatible with a wider range of inputs. https://github.com/AvalonSemiconductors/ws-submission-2025/blob/main/silicon_art/make_gds.py
Tim 'mithro' Ansell 11/21/2025 23:57
Cool!
Avatar
Avatar
Tholin
Which is just a little hint to everyone that Iโ€™m about to have a need for converting more complex images to layouts.
Tim 'mithro' Ansell 11/21/2025 23:57
Silicon artwork?
23:58
@Tholin - We should send some to https://www.youtube.com/c/EvilmonkeyzDesignz
I'm a Computer Engineer that loves electronics. Video content that I post may include:
  • Electronics tear-downs
  • Component close-ups under the microscope
  • Circuitboard design
  • Anything else electronics related that I think other people might enjoy. If you are looking for more, check out my Instagram account (@evilmonkeyzdesignz) or the webs...
Avatar
Okay, my modified analog pads do connect now, but also have a ton of DRC errors.
14:51
Imma see if I canโ€™t be a bit smarter about this.
Avatar
Avatar
Tholin
Which is just a little hint to everyone that Iโ€™m about to have a need for converting more complex images to layouts.
Didn't the PULP team open source their artwork generator recently? I thought they did but I can't find it on their website
Avatar
An Open-Source Toolchain for Top-Metal IC Art and Ultra-High-Fidelity GDSII Renders - pulp-platform/artistic
Avatar
Avatar
Tholin
The mag has some weird stuff going on
The duplicate rlabels/ports are indeed a problem. If I donโ€™t remove them, not only does routing fail, but the DRT has a chance of crashing.
15:54
I tried doing a diff of the .lef file with and without the duplicate labels and the coordinates of all the ASIG5V pins change slightly. Current theory: the duplicate ports are not exact duplicates, but slightly shifted downwards. If the lef is then written with -pinonly, only these shifted duplicates are exported, which occupy illegal positions. (edited)
Avatar
Avatar
Tholin
I tried doing a diff of the .lef file with and without the duplicate labels and the coordinates of all the ASIG5V pins change slightly. Current theory: the duplicate ports are not exact duplicates, but slightly shifted downwards. If the lef is then written with -pinonly, only these shifted duplicates are exported, which occupy illegal positions. (edited)
If you're using magic for lef generation, be sure that the bounding box FIXED_BBOX is set.
Avatar
It is
๐Ÿ‘ 1
Avatar
Avatar
Tholin
Which is just a little hint to everyone that Iโ€™m about to have a need for converting more complex images to layouts.
๐Ÿ’œ 2
Avatar
I am paranoid about the fillers messing up the silicon art, so Iโ€™ve drawn fillblock over it and duplicated the art onto every metal layer and the poly layer to provide the required density.
17:23
DRC passes with this, so hopefully its fine
Avatar
Avatar
Tholin
I am paranoid about the fillers messing up the silicon art, so Iโ€™ve drawn fillblock over it and duplicated the art onto every metal layer and the poly layer to provide the required density.
Andrew Wingate 11/23/2025 17:49
Can't wait to see this for real!!!
17:50
This design is ~120 µm? edit tall? (edited)
Avatar
Its 700 by 583
17:53
um
17:53
quite big
Avatar
Andrew Wingate 11/23/2025 17:54
Oh, I see what I'm looking at now. Mistook 2 scales for one Awesome!!
Avatar
STA is really annoying me right now. Its reporting setup violations in the 100ns violations because an active design might change the output-enable or pull resistors or something on a IO pad, which triggers a change in the padโ€™s outputs to the core area, which kicks of timing paths through unrelated designs, which may also change output enables which changes pad outputs which triggers changes through the designs etc. etc. and so on. It "bounces" like that for up to 5 times before coming to a stop.
20:16
I need STA to disregard ANY timing paths that cross macro boundaries except the multiplexer.
20:17
Only one of these will ever be active at a time and it doesnโ€™t get that.
20:17
I could disable STA or STA checker entirely since the setup timing analysis results are largely meaningless anyway in my use case (every design has its own fmax), but Iโ€™d like the flow to fail on hold violations.
20:18
Iโ€™d like to ignore just setup violations, but still fail on hold violations.
20:20
I tried set_false_path -from [get_ports {io_oe_.*}] and so on, but no luck.
20:20
Or is it set_false_path -from [get_ports {io_oe_*}]?
20:20
Glob or regex?
Avatar
ports are external pads, so if you're running that on the top level, the ports are the actual pads since the top level include the IO cells. (edited)
20:26
And it's glob.
Avatar
Thanks
20:27
Actually, because I thought it was regex, it was still trying to do timing analysis on the design select pins, which I thought I had disabled.
Avatar
You can try to grab the pins on the IO cells [ get_pins "*pad/OE" ] or something.
Avatar
I just looked at the very top of the STA log and then turned that into set_false_path -from [get_ports {design_sel_*}]
20:28
Iโ€™m just matching everything to do with design selection
Avatar
If these are digital paths, something I find useful is to insert an anchor buffer in the RTL: module falsepath_anchor ( input wire i, output wire z ); `ifdef GF180MCU (* keep *) gf180mcu_fd_sc_mcu9t5v0__clkbuf_1 magic_falsepath_anchor_u ( .I (i), .Z (z) ); `else assign z = i; `endif endmodule and then just glob them out in the .sdc: # Apply RTL-inserted false path constraints (setup/hold only, still constrain slew) set_false_path -setup -hold -through [get_pins *.magic_falsepath_anchor_u/Z] It's dirty but it makes the constraints a bit less fragile because you don't have to update them when hierarchy changes. Also I think paths through PD/PU can pretty much universally be falsepathed as the slew on the pad due to pulls is so slow.
Avatar
Record for most violations on DRT?
๐Ÿ˜† 1
Avatar
Ethan Mahintorabi 11/24/2025 00:26
Does anyone by chance have a level shifter cells for 3.3 -> 5v and vice versa. I'm about to design one to fit in the 7 track library, I can change to the 9 track though if someone already has one
Avatar
Tim 'mithro' Ansell 11/24/2025 04:20
@Tholin / @Tim Edwards - You'd be the people I'd guess at being most likely to have done sometihng like the above -^
04:20
BTW Can people access https://doc.test-platform.wafer.space ? (edited)
Avatar
Tim 'mithro' Ansell 11/24/2025 04:33
The manufacturing checking will be deployed there very shortly.
Avatar
Ethan Mahintorabi 11/24/2025 04:45
NX domain for me
Avatar
Avatar
Tim 'mithro' Ansell
BTW Can people access https://doc.test-platform.wafer.space ? (edited)
Yes on IPv6, no on IPv4
Avatar
Avatar
Ethan Mahintorabi
Does anyone by chance have a level shifter cells for 3.3 -> 5v and vice versa. I'm about to design one to fit in the 7 track library, I can change to the 9 track though if someone already has one
Ethan Mahintorabi 11/24/2025 04:45
Also I decided I'm just going to run the whole tile at 3.3V to avoid the complexity
Avatar
Avatar
Tim 'mithro' Ansell
BTW Can people access https://doc.test-platform.wafer.space ? (edited)
I cannot access. DNS_PROBE_FINISHED_NXDOMAIN
Avatar
Tim 'mithro' Ansell 11/24/2025 10:06
IPv6 only for the next few hours.
Avatar
Works for me. I knew configuring ipv6 would pay off ๐Ÿ‘Œ
Avatar
Avatar
bailey
I cannot access. DNS_PROBE_FINISHED_NXDOMAIN
Tim 'mithro' Ansell 11/24/2025 14:27
IPv4 should now work in theory.
โœ… 1
Avatar
Avatar
Ethan Mahintorabi
Does anyone by chance have a level shifter cells for 3.3 -> 5v and vice versa. I'm about to design one to fit in the 7 track library, I can change to the 9 track though if someone already has one
Tim Edwards 11/24/2025 14:53
I made a level shifter for the I/O cells here: https://github.com/RTimothyEdwards/gf180mcu_ocd_io/; specifically, see https://github.com/RTimothyEdwards/gf180mcu_ocd_io/blob/main/magic/lvlshift_up.mag. However, this was designed to fit in the existing I/O cells, not the standard cells, so it's not pitch-matched to any standard cell library. To level-shift down, I generally just use a 5V inverter powered at 3.3V, although if you want it matched to a standard cell library, then the 5V rail should bias the nwell (which will be connected to other 5V standard cell nwells) and the 3.3V supply to the inverter should be a separate pin.
Avatar
Avatar
Tim Edwards
I made a level shifter for the I/O cells here: https://github.com/RTimothyEdwards/gf180mcu_ocd_io/; specifically, see https://github.com/RTimothyEdwards/gf180mcu_ocd_io/blob/main/magic/lvlshift_up.mag. However, this was designed to fit in the existing I/O cells, not the standard cells, so it's not pitch-matched to any standard cell library. To level-shift down, I generally just use a 5V inverter powered at 3.3V, although if you want it matched to a standard cell library, then the 5V rail should bias the nwell (which will be connected to other 5V standard cell nwells) and the 3.3V supply to the inverter should be a separate pin.
@Tim Edwards just out of curiosity, why do you recommend biasing the level-down shifter (a normally 5V inverter powered at 3.3V) at 5V?
Avatar
@bailey Well if you powered it at 5V , it would output 5V ... that wouldn't be much of a level shifter.
15:37
If you make an inverter out of 5V transistors but feed them 3.3V, they will wistand the 5V swing input but only output 3.3V on the output, hence shifting down from 5V -> 3.3V domain.
Avatar
ReJ aka Renaldas Zioma 11/24/2025 16:46
I would like to add 16KB of RAM (32 macro x SRAM 512 5V). Any advice on the layout? (Z80 design I am working on has a lot of free space, I want to put 16KB of RAM. That particular combinations Z80+16KB RAM is useful for fixing DRAM in old computers) (edited)
Avatar
Avatar
tnt
@bailey Well if you powered it at 5V , it would output 5V ... that wouldn't be much of a level shifter.
@tnt Thanks for the explanation. However, I understand that. I was wondering why @Tim Edwards was recommending biasing at 5V with a 3.3V power supply.
Avatar
Tim Edwards 11/24/2025 18:50
@bailey : Because if the level shifter is in a standard cell library and is part of a standard cell block, then the nwell will be shared with other cells biasing it to 5V.
Avatar
Avatar
Tim Edwards
@bailey : Because if the level shifter is in a standard cell library and is part of a standard cell block, then the nwell will be shared with other cells biasing it to 5V.
Thanks @tim. So if it's in a 5V standard cell block then the bias is 5V, but if it's in a 3.3V standard cell block, a 3.3V bias is ok too, right? Wouldn't putting a 3.3V powered 5V standard cell in a 5V standard cell row be difficult? You'd need two power rails. Do the 5V standard cells have 2 power rails?
Avatar
Ethan Mahintorabi 11/24/2025 21:57
You do need two power rails which is why shifters often exist on the boundary of two power domains. Here's the LV -> HV Sky130 shifter
Avatar
Tim Edwards 11/25/2025 01:23
@bailey : You don't need a power rail, just a power connection. It's only powering the level shifter, not an entire row of logic. In practice, all the level shifters are going to end up on the edge of the digital block, so it should be easy enough to bring a low voltage power bus close to the block and hook it up.
Avatar
@Ethan Mahintorabi I understand that a level up shifter needs 2 power rails. What I'm asking is why we need two power connections for an inverter implementing a level down shifter. If the cell row height is the same for low/high voltage, then the high voltage capable inverter standard cell could be placed anywhere in a low voltage standard cell layout and still work without a high voltage power connection. The only high voltage is the input signal.
Avatar
Ethan Mahintorabi 11/25/2025 02:56
Sorry I misunderstood you. You're correct. That's essentially what I'm doing but across the whole chip. Using 5V standard cells and IO, but only providing 3.3v power.
๐Ÿ‘ 1
Avatar
How many IO pins?
Avatar
Tim Edwards 11/25/2025 16:32
FYI: I have started work on a GF180MCU "openframe" design. Hopefully I will get it (and an example user project using the 3.3V logic and the 3.3V SRAM) finished in time for the tapeout.
๐Ÿ‘ 3
Avatar
@Tim Edwards I want to also try and submit a TT variant using the split IO so any example of how to do that will be welcome ๐Ÿ™‚
Avatar
Tim Edwards 11/25/2025 16:56
@tnt : I will be pushing everything to a repository as soon as I have done enough work on it that I know I won't have to replace everything wholesale on every update. Right now I have it in a half-finished state and using it as a reference would be highly misleading. Hopefully by end of day today or tomorrow I will have knocked down most of the items on my "to do" list.
Avatar
It looks like I wonโ€™t be able to test my DACs for VGA output at their full range. TT demos only do 2 bits per channel of color depth, while the DACs are capable of 12 bits per channel.
17:03
Though anything about 8 bits per channel would be overkill.
Avatar
Some demos can do more
Avatar
Which ones?
Avatar
I think @algofoogle (Anton Maurovic) had a demo for his own DAC that can do 8bpc (edited)
17:06
and there's a variant of the tt logo screensaver which reads a bitmap from the ROM that can be easily adjusted to 8bpc https://github.com/urish/tt-rom-vga-screensaver (edited)
17:08
basically need to edit convert.py and remove the parts that downscales from 8bpc to 2bpc, and extend the ROM word length from 6 bits to 24 bits
Avatar
I have a GBA-ish-capable PPU that's currently hooked up to SPI LCD only. Pretty easy to knock together VGA timing generation. Can your DAC tristate its output @Tholin? It would have to share with digital pads (we have combined digital bidi + analogue pads right?)
17:11
It would be RGB555 320x240, with 480p60 timings, so only a 12ish MHz pixel clock. Not sure if that is an interesting test for you.
17:12
For VGA signal levels without an external buffer I would probably just tie off the 3 MSBs of the DAC code input (assuming it's rail-to-rail) and drive bits 8:4 with RGB555 components
Avatar
It cannot
17:13
no worries. I'm a bit tight on IOs due to the external parallel SRAM ๐Ÿ™‚
17:15
Um. I mean I guess I could replace my audio PWM outputs with a DAC, and then steal my one unassigned GPIO as the third RGB component ๐Ÿค” then I could afford 3 analog pads
Avatar
Where can I see the total wire length after a flow?
Avatar
Avatar
urish
I think @algofoogle (Anton Maurovic) had a demo for his own DAC that can do 8bpc (edited)
algofoogle (Anton Maurovic) 11/25/2025 20:28
Yes thatโ€™s right, @Tholin I have this, though itโ€™s little more than just an RGB888 test pattern generator: https://tinytapeout.com/chips/tt08/tt_um_algofoogle_tt08_vga_fun โ€” source for the latest version I taped out is here: https://github.com/algofoogle/ttsky25b-analog-vga-dacs/tree/main/verilog/rtl
Rough 24-bit VGA DAC tests with digital control block
More analog VGA DAC experiments. Contribute to algofoogle/ttsky25b-analog-vga-dacs development by creating an account on GitHub.
20:28
20:30
I was also working on something more pretty โ€” than the ones above โ€” in RGB888 here: https://github.com/algofoogle/tt10-vga-dac-party/blob/main/verilog/rtl/core_design.v (edited)
24-bit analog VGA DAC experiments (segmented current-steering) on Tiny Tapeout 10 - algofoogle/tt10-vga-dac-party
20:34
I recall @toivoh on the TT discord had an RGB444 demo that would be more interesting. I guess the key would be something that does nice gradients but also hard swings (high frequency stuff and full white or black pixels/blocks over gradients) every now and thenโ€ฆ to test both linearity and slew rate. Thatโ€™s what I was trying to do with the last link I shared.
Avatar
Avatar
Tholin
Where can I see the total wire length after a flow?
algofoogle (Anton Maurovic) 11/25/2025 20:35
Is it in the โ€œmetricsโ€ file? The TT GHA reports it, so there would be code in the tt-support-tools repo which pulls it out of librelane run artefacts
Avatar
3076425 of whatever unit its in
Avatar
algofoogle (Anton Maurovic) 11/25/2025 22:54
I think itโ€™s in microns, so ~3 metres of wire. Nice ๐Ÿ™‚
22:55
(This is in the ballpark for large designs, I recall)
Avatar
Yes....large
22:59
Avatar
This is what 32768 x 5 bits of constant data look like.
Avatar
Avatar
algofoogle (Anton Maurovic)
Yes thatโ€™s right, @Tholin I have this, though itโ€™s little more than just an RGB888 test pattern generator: https://tinytapeout.com/chips/tt08/tt_um_algofoogle_tt08_vga_fun โ€” source for the latest version I taped out is here: https://github.com/algofoogle/ttsky25b-analog-vga-dacs/tree/main/verilog/rtl
Hmmm...I guess its kinda difficult to make a RGB888 demo since none of the simulators, like VGA playground, have support for this color format?
Avatar
Avatar
Tholin
Click to see attachment ๐Ÿ–ผ๏ธ
No data routing on M5?
Avatar
M5 has the top-level power grid
23:17
In chip_top
23:17
I do not wish to disrupt it any more than I already have.
๐Ÿ‘ 1
Avatar
was just asking because you've done an excellent job of shading in all the other layers ๐Ÿ˜…
23:18
I have a 256-byte ROM for my bootloader and it's enough to make me yearn for tnt's mask ROM
Avatar
My data here is literally just a single bitmap
23:20
In my NTSC signal generator test
23:21
This is the least efficient way of encoding an image that Iโ€™ve ever seen.
Avatar
Avatar
Tim Edwards
FYI: I have started work on a GF180MCU "openframe" design. Hopefully I will get it (and an example user project using the 3.3V logic and the 3.3V SRAM) finished in time for the tapeout.
Tim 'mithro' Ansell 11/26/2025 03:05
How is that different from what the template is creates / is using?
Avatar
Tim Edwards 11/26/2025 03:11
@Tim 'mithro' Ansell : Well,for one, it's a reference design for the mixed-voltage padframe.
Avatar
Avatar
Tim Edwards
@Tim 'mithro' Ansell : Well,for one, it's a reference design for the mixed-voltage padframe.
Tim 'mithro' Ansell 11/26/2025 03:13
It would be nice to eventually have a mixed-voltage padframe support in the gf template. I'm assume @Leo Moser (mole99) has that all under control and you guys are communicating regularly about it. (edited)
Avatar
Tim Edwards 11/26/2025 03:15
Right now, the easiest path for me is to copy a lot of stuff from caravel-gf180mcu. Once I've worked out all the details, it can be re-done as a template.
Avatar
Avatar
Tim Edwards
Right now, the easiest path for me is to copy a lot of stuff from caravel-gf180mcu. Once I've worked out all the details, it can be re-done as a template.
Tim 'mithro' Ansell 11/26/2025 03:58
Guess that makes sense.
Avatar
@LukeW I started drafting things to port it over ๐Ÿ˜…
โค๏ธ 2
Avatar
Avatar
Tholin
Click to see attachment ๐Ÿ–ผ๏ธ
algofoogle (Anton Maurovic) 11/26/2025 11:13
Ah I see your problem: Your chip is full of... green.
algofoogle (Anton Maurovic) started a thread. 11/26/2025 11:16
Avatar
Ok, setting PAD_CELL_LIBRARY doesn't work, can't do that at all because if a glob called from the default config doesn't match any file, it's a fatal error, even if you try to later override that config key in your config ...
13:21
So I need to let PAD_CELL_LIBRARY be gf180mcu_fd_io and then override each key manually.
Avatar
Leo Moser (mole99) 11/26/2025 13:36
If there's a way to do things smarter in the config or in LibreLane, just let me know and we can change it.
Avatar
Well, I think having glob returning no file not be an error would be good ๐Ÿ™‚
13:44
But ATM I'm just trying to get it to run and see exactly what I need to change for that.
๐Ÿ‘Œ 1
Avatar
Is there any reason all those PAD_ config to be there at all and not in the gf180mcu_fd_io/config.tcl ? (edited)
tnt started a thread. 11/26/2025 14:14
Avatar
Why is global routing run twice? Its a step that takes forever in some of my flows and its run twice.
Avatar
I don't think it should be run twice ... I only see it once in Chip flow. (edited)
Avatar
Its run first as its own step
16:17
Then again during Antenna Repair
16:17
Then a third time actually, but after Antenna Repair has inserted new cells, so that checks out.
16:18
I have a flow where global routing takes 15 minutes each time, so that is 45 minutes of just global routing.
16:18
But yeah, Antenna Repair runs GRT before doing anything and Iโ€™m wondering why it canโ€™t pull that data from the database from when GRT was run as its own step.
Avatar
Thatโ€™s a new one!
Avatar
BreakingTaps 11/26/2025 18:26
hehe I ran into that a bunch last night while messing around with my sram placements
Avatar
Avatar
BreakingTaps
hehe I ran into that a bunch last night while messing around with my sram placements
Trevor Peyton 11/26/2025 21:21
I know this was asked somewhere else but I'm curious did you find a good way to layout the SRAM? How many are you using and at what size?
Avatar
Avatar
Trevor Peyton
I know this was asked somewhere else but I'm curious did you find a good way to layout the SRAM? How many are you using and at what size?
BreakingTaps 11/26/2025 22:24
huge grain of salt: I have no idea what I'm doing ๐Ÿ˜‡ I have twenty 512x8 blocks, and my current setup is a ring around the logic cells. Pretty sure I have them all backwards at the moment though, and I have a bunch of slew/cap violations at the moment (and some other broken stuff too) Seeing how little logic there actually is, I might condense the blocks closer to help with timing issues
๐Ÿ’œ 2
Avatar
Tim 'mithro' Ansell 11/26/2025 23:02
I'm currently pushing a version of the platform (to either https://doc.test-platform.wafer.space or https://buddy.test-platform.wafer.space) which actually runs the gf180mcu-precheck on incoming designs and could probably use a few testers shortly.
Platform for wafer.space low cost silicon manufacturing.
Avatar
Avatar
BreakingTaps
huge grain of salt: I have no idea what I'm doing ๐Ÿ˜‡ I have twenty 512x8 blocks, and my current setup is a ring around the logic cells. Pretty sure I have them all backwards at the moment though, and I have a bunch of slew/cap violations at the moment (and some other broken stuff too) Seeing how little logic there actually is, I might condense the blocks closer to help with timing issues
Tim 'mithro' Ansell 11/26/2025 23:02
I believe that is similar to the layout that @asic destroyer is using for thier design.
๐ŸŽ‰ 1
Avatar
Avatar
Tim 'mithro' Ansell
I believe that is similar to the layout that @asic destroyer is using for thier design.
asic destroyer 11/26/2025 23:10
Avatar
BreakingTaps 11/26/2025 23:15
now that is some nice logic density! i feel bad for wasting so much space haha
๐Ÿ˜ฎ 1
Avatar
Tim 'mithro' Ansell 11/26/2025 23:25
@BreakingTaps - It just means you'll have to do more designs and purchase more wafer.space slots! ๐Ÿ˜›
๐Ÿ˜ฎ 1
Avatar
BreakingTaps 11/26/2025 23:25
hehe yessir! plenty of room for growth ๐Ÿ™‚
Avatar
asic destroyer 11/26/2025 23:26
In theory, you could build a memory chip by filling the whole die with SRAM cells and routing the signals out
Avatar
Avatar
asic destroyer
In theory, you could build a memory chip by filling the whole die with SRAM cells and routing the signals out
Tim 'mithro' Ansell 11/26/2025 23:26
GF180MCU SRAM Maximizer Goal Work out the maximum amount of SRAM that is able to fit into the GF180MCU configuration. Specification Layout as many SRAMs as possible that fit in a given die space. Current die size - 3.88mm x 5.07mm Die Size Instances Total Wi...
โค๏ธ 1
Avatar
My custom SCL breaks LVS. Its been over 3 hours.
๐Ÿ˜ฎ 1
23:28
I tried checking the logs in the runs directory, but they all cut off. Mid-line.
23:29
So either some unflushed file buffers, or it actually hard crashed.
Avatar
Avatar
Tholin
I tried checking the logs in the runs directory, but they all cut off. Mid-line.
@Tholin If you send what you have of the lvs.log and lvs.report, I'll take a look.
Avatar
Already cleaned up the runs directory for another go But I comited the librelane project causing the issue: https://github.com/AvalonSemiconductors/gf180mcu_as_sc_mcu7t3v3/tree/main/example_project
Custom Standard Cell Library for GF180MCU process node on open PDK. - AvalonSemiconductors/gf180mcu_as_sc_mcu7t3v3
Avatar
Avatar
BreakingTaps
huge grain of salt: I have no idea what I'm doing ๐Ÿ˜‡ I have twenty 512x8 blocks, and my current setup is a ring around the logic cells. Pretty sure I have them all backwards at the moment though, and I have a bunch of slew/cap violations at the moment (and some other broken stuff too) Seeing how little logic there actually is, I might condense the blocks closer to help with timing issues
Trevor Peyton 11/27/2025 03:57
What clock speed are you running at?
Avatar
Trevor Peyton 11/27/2025 06:34
"Free worldwide shipping is included, but buyers are responsible for insurance and tariffs." Does anyone have an estimate on what the tariff prices will be for the tapeout to the US? (edited)
Avatar
Given this changes every time the orange throws a tantrum, any estimates today wouldn't weigh much for what it will be in 4 months ...
Avatar
Trevor Peyton 11/27/2025 06:43
An estimate for todays rates would at least help ballpark additional costs.
Avatar
it's around 50%
โ— 1
Avatar
Tim 'mithro' Ansell 11/27/2025 07:35
The baseline import tariff for goods from Singapore to the US is 10%, though specific sectoral tariffs may apply and can be higher. It's important to note that these tariffs are based on the product's country of origin, not where it's shipped from.
๐Ÿ‘ 1
07:36
According to the Google AI -- so no idea if that is true or not
07:37
Calculate US import duties, tariffs and landed costs. Analyze profit margins and optimize your importing strategy with our free calculator tool.
07:37
The COB packaging is likely to happen in China which would make the country of origin probably China
Avatar
Tim 'mithro' Ansell 11/27/2025 11:42
While waiting for things to deploy, I had Claude throw together the following API server for the precheck - https://github.com/mithro/gf180mcu-precheck/tree/feature/api-server/server Would love thoughts on how horrible it is @ https://github.com/wafer-space/gf180mcu-precheck/pull/13 Thinking was to put up a dedicated hetzner server with the highest single threaded performance running it and allow people to run it.
Precheck for wafer.space MPW runs using the gf180mcu PDK - mithro/gf180mcu-precheck
โš ๏ธ Draft PR - For Feedback Only This PR is NOT intended to be merged. It is shared purely to gather early feedback on the design and implementation approach for an API server that wraps the prechec...
Avatar
Avatar
Trevor Peyton
What clock speed are you running at?
BreakingTaps 11/27/2025 12:41
20mhz right now (albeit with 5ns slack violations at max_ss)
๐Ÿ‘€ 1
Avatar
Tim 'mithro' Ansell 11/27/2025 23:14
BTW - https://doc.test-platform.wafer.space should be finally running manufacturing checks now.
Platform for wafer.space low cost silicon manufacturing.
โค๏ธ 1
23:20
Avatar
Tim 'mithro' Ansell 11/27/2025 23:40
I'll be back in an hour or two.
Avatar
Tim 'mithro' Ansell 11/27/2025 23:47
Lost most of yesterday to an issue with SSH multiplexing and jump hosts causing my deployment commands to end up on the wrong VM ๐Ÿ™
Avatar
Tim 'mithro' Ansell 11/28/2025 00:18
Test Submission Platform up @ https://doc.test-platform.wafer.space I expect the submission process is going to be more bumpy than I would like, so I will be trying to babysit it as much as I can. Please do say something if you are having issues or things look wrong! At the moment it is just as likely to be the system as it is your problem. (edited)
Platform for wafer.space low cost silicon manufacturing.
Tim 'mithro' Ansell pinned a message to this channel. 11/28/2025 00:20
Avatar
Since the run is going to happen anyways, what does the funding goal indicate? Is it the amount of buyers where wafer.space becomes sustainable?
Avatar
Avatar
Leon
Since the run is going to happen anyways, what does the funding goal indicate? Is it the amount of buyers where wafer.space becomes sustainable?
Tim 'mithro' Ansell 11/28/2025 09:40
That is a good question. I guess it indicates the number of paid slots that I was aiming to have purchased.....
Avatar
I feel confident that the next run will have more uptake, especially if there are any designs sharing their submissions as examples. Were you planning to have the next run before or after the receipt of chips from this run ?
Avatar
Avatar
Tim 'mithro' Ansell
Test Submission Platform up @ https://doc.test-platform.wafer.space I expect the submission process is going to be more bumpy than I would like, so I will be trying to babysit it as much as I can. Please do say something if you are having issues or things look wrong! At the moment it is just as likely to be the system as it is your problem. (edited)
Trevor Peyton 11/28/2025 21:24
I tested a submission using a link from google docs compressed and uncompressed and it was failing. With github, the upload worked just fine.
Avatar
Avatar
Trevor Peyton
I tested a submission using a link from google docs compressed and uncompressed and it was failing. With github, the upload worked just fine.
Tim 'mithro' Ansell 11/29/2025 01:09
Can you log an issue?
Avatar
Avatar
dshadoff
I feel confident that the next run will have more uptake, especially if there are any designs sharing their submissions as examples. Were you planning to have the next run before or after the receipt of chips from this run ?
Tim 'mithro' Ansell 11/29/2025 01:10
Avatar
Tim Edwards 11/29/2025 22:25
The first cut of the GF180MCU Caravel "openframe" layout has now been pushed to https://github.com/RTimothyEdwards/gf180mcu_ocd_openframe !
Caravel openframe for GF180MCU. Contribute to RTimothyEdwards/gf180mcu_ocd_openframe development by creating an account on GitHub.
๐Ÿ‘ 2
blobclap 1
22:26
Now to create a user project for it that is something more than a bunch of connections that turn off all the GPIOs. . .
Exported 511 message(s)
Timezone: UTC+0