Public

Thread: Using gf180mcu_ocd_io in LibreLane

152 Discord messages from ℹ️ - Information/general/threads/using-gf180mcuocdio-in-librelane.md.

Category: ℹ️ - Information Parent channel: #general Thread ID: 1443243481744277565

Messages: 152

message-1443243487565975665

2025-11-26T14:14:21.603+00:00 — tnt (@246tnt)

Content

Creating a thread to avoid spamming #general  😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1443244568022614077

2025-11-26T14:18:39.204+00:00 — tnt (@246tnt)

Content

And I also can't creae issues on the `gf180_ocd_io` repo because issues are disabled on it.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443245853434314906

2025-11-26T14:23:45.67+00:00 — Leo Moser (mole99) (@mole99)

Content

Actually, I think there is no reason. I simply wanted to do it like the SCL library where you can just select a different one and all the views will point to that one instead. But the PAD library is a bit more complicated and just selecting a different one does not work that well.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>

message-1443246927020953682

2025-11-26T14:28:01.633+00:00 — tnt (@246tnt)

Content

Well having the `PAD_CELL_LIBRARY` is nice. But ATM some of the config seem to be set in the base file based on replacing `$PAD_CELL_LIBRARY` and some config is set by loading the subdirectory tcl file.   And I think putting it all in the subdir file (possibly still using `$PAD_CELL_LIBRARY` so you can easily create new config for new IO lib by just copying and patching the little things needed.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "ok_hand",
      "id": "",
      "imageUrl": "2025-11_media/1f44c-59547.svg",
      "isAnimated": false,
      "name": "👌"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
        "color": null,
        "discriminator": "0000",
        "id": "323371864074485771",
        "isBot": false,
        "name": "mole99",
        "nickname": "Leo Moser (mole99)"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443247119489171467

2025-11-26T14:28:47.521+00:00 — tnt (@246tnt)

Content

Now I'm faced with the much more annoying issue that OpenROAD is segfaulting on me during GlobalRouting 😩

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "face_with_spiral_eyes",
      "id": "",
      "imageUrl": "2025-11_media/1f635-200d-1f4ab-AC747.svg",
      "isAnimated": false,
      "name": "😵‍💫"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
        "color": null,
        "discriminator": "0000",
        "id": "323371864074485771",
        "isBot": false,
        "name": "mole99",
        "nickname": "Leo Moser (mole99)"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "weary",
        "id": "",
        "imageUrl": "2025-11_media/1f629-B734A.svg",
        "isAnimated": false,
        "name": "😩"
      }
    ]
  }
}
</details>

message-1443288385547669595

2025-11-26T17:12:46.116+00:00 — tnt (@246tnt)

Content

🎉    Found what OR didn't like 😁

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "clap",
      "id": "",
      "imageUrl": "2025-11_media/1f44f-3D381.svg",
      "isAnimated": false,
      "name": "👏"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
        "color": null,
        "discriminator": "0000",
        "id": "323371864074485771",
        "isBot": false,
        "name": "mole99",
        "nickname": "Leo Moser (mole99)"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "tada",
        "id": "",
        "imageUrl": "2025-11_media/1f389-5C738.svg",
        "isAnimated": false,
        "name": "🎉"
      },
      {
        "code": "grin",
        "id": "",
        "imageUrl": "2025-11_media/1f601-4E9BD.svg",
        "isAnimated": false,
        "name": "😁"
      }
    ]
  }
}
</details>

message-1443308250480115724

2025-11-26T18:31:42.285+00:00 — tnt (@246tnt)

Content

```
292 Magic DRC errors found.
47 LVS errors found.
```
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443308363134931087

2025-11-26T18:32:09.144+00:00 — tnt (@246tnt)

Content

The DRC errors are in the corner cells and looking at the upstream repo, I think @Tim Edwards already fixed them a few hours ago.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443308430369493133

2025-11-26T18:32:25.174+00:00 — tnt (@246tnt)

Content

The LVS errors look related to the analog pads having DVSS shorted to ASIG5V ...

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "no_mouth",
      "id": "",
      "imageUrl": "2025-11_media/1f636-300DD.svg",
      "isAnimated": false,
      "name": "😶"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
        "color": null,
        "discriminator": "0000",
        "id": "323371864074485771",
        "isBot": false,
        "name": "mole99",
        "nickname": "Leo Moser (mole99)"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443310101103378593

2025-11-26T18:39:03.508+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt: I've been chasing those errors all day long.  Hopefully it should be resolved by tomorrow.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443310525009367103

2025-11-26T18:40:44.575+00:00 — tnt (@246tnt)

Content

@Tim Edwards DRC or also the LVS one ?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443310963406143600

2025-11-26T18:42:29.097+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

The DRC one.  I should have time to look at the LVS issue but I was previously unaware of it.  The DRC issue has been bugging me for a while;  I just needed to find some time to work on it.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "ok_hand",
      "id": "",
      "imageUrl": "2025-11_media/1f44c-59547.svg",
      "isAnimated": false,
      "name": "👌"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443311648071880785

2025-11-26T18:45:12.334+00:00 — tnt (@246tnt)

Content

Ok. I'll just wait for the DRC one and keep digging on the LVS one, see if I can find what's the cause since it could very well be something on my side that I screwed up ...
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443313495406809332

2025-11-26T18:52:32.773+00:00 — tnt (@246tnt)

Content

@Tim Edwards BTW, did you adapt all the cells including `in_s` and `in_c` ?  Just to make sure I can also use those 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443324442397769768

2025-11-26T19:36:02.739+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Yes.  All digital cells are 3.3V compatible.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "ok_hand",
      "id": "",
      "imageUrl": "2025-11_media/1f44c-59547.svg",
      "isAnimated": false,
      "name": "👌"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443330703466037389

2025-11-26T20:00:55.494+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt:  The LVS issue is due to a wayward "DVSS" label that got lost and wandered off and stuck itself to the ASIG5V pad.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443333267301339167

2025-11-26T20:11:06.76+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I finally found the source of the label, hiding in the LEF file, under the sofa cushions.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443342413966872740

2025-11-26T20:47:27.495+00:00 — tnt (@246tnt)

Content

Yes, I saw that in the LEF already, I was about to update the issue on github 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1443342505641906318

2025-11-26T20:47:49.352+00:00 — tnt (@246tnt)

Content

Still have some other LVS issue but that'll have to wait a bit.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443343283567984671

2025-11-26T20:50:54.824+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I have confirmed that fixing the LEF caused the virtual short in the magic view to disappear.  It has been pushed.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "ok_hand",
      "id": "",
      "imageUrl": "2025-11_media/1f44c-59547.svg",
      "isAnimated": false,
      "name": "👌"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443357939221135501

2025-11-26T21:49:09.004+00:00 — tnt (@246tnt)

Content

Ok, yeah, remaining LVS is because one net gets extracted as `\IO_CORNER_NORTH_WEST_INST.DVSS_RING_uq0`  and in the netlist it's `\IO_CORNER_NORTH_WEST_INST.DVSS_RING` and that causes port mismatch.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443358096608202906

2025-11-26T21:49:46.528+00:00 — tnt (@246tnt)

Content

manually fixing that up and running netgen on the result checks out just fine.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443358315735154828

2025-11-26T21:50:38.772+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

If that's a top-level port then you can avoid the unique name by doing `extract unique notopports`, which was how I got the SRAM to pass LVS.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443359282996314347

2025-11-26T21:54:29.385+00:00 — tnt (@246tnt)

Content

Yeah, although technically they should be connected internally and not rely on any external connections.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443359367863734343

2025-11-26T21:54:49.619+00:00 — tnt (@246tnt)

Content

if I use that option, it wouldn't check if they are connected or not.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443359490971009035

2025-11-26T21:55:18.97+00:00 — tnt (@246tnt)

Content

I mean, if all the DVSS nodes were not connected somewhow, it wouldn't spot it.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443359818592030730

2025-11-26T21:56:37.081+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

One way to get around it is just to copy enough of the connection between them inside the top level cell that magic sees that they are connected within the top level.  Magic does extraction on each individual cell without looking at what's in subcells that might be connecting things together.  Modifying that behavior is probably a lot of work.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-11_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "👍"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443385708302831667

2025-11-26T23:39:29.669+00:00 — Tim 'mithro' Ansell (@mithro_)

Reply/reference

<details> <summary>Reference data</summary>
{
  "channelId": "1443243481744277565",
  "guildId": "1361349522684510449",
  "messageId": "1443247119489171467"
}
</details>

Content

Please do report segfaults upstream - OpenROAD should *never* segfault.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1443598069747683423

2025-11-27T13:43:20.583+00:00 — tnt (@246tnt)

Content

`21154 KLayout DRC errors found.`
@Tim Edwards  😢
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "cry",
        "id": "",
        "imageUrl": "2025-11_media/1f622-BDD22.svg",
        "isAnimated": false,
        "name": "😢"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443612854727999730

2025-11-27T14:42:05.597+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  I assume those errors are coming from the I/O pads?  Can you send me the layout and DRC results?  I made many small changes to the I/O layouts, but they are still the same pads apart from swapping in a level shifter circuit in front of each digital pin.  However, I read in the I/O GDS and regenerated it from magic, so a single missing output layer or incorrect rule could have a massive effect.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1443612890308542486

2025-11-27T14:42:14.08+00:00 — tnt (@246tnt)

Content

Lots of them are more due to marker layers causing different rules to apply.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443613039332163695

2025-11-27T14:42:49.61+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Presence or absence of marker layers?  Did I manage to drop some ESD marker mask?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443613173482651710

2025-11-27T14:43:21.594+00:00 — tnt (@246tnt)

Content

Absence.  Of ESD and Latchup.
And then some Resistor marker layer added instead.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443613359441186937

2025-11-27T14:44:05.93+00:00 — tnt (@246tnt)

Content

Let me create a reproducible.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443613403745615922

2025-11-27T14:44:16.493+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Okay.  I'll need to regenerate them with mask hints for the marker layers.  I don't think it's going to be a huge effort.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443613646314803241

2025-11-27T14:45:14.326+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

This is the "dirty" part of "quick & dirty".
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443614548182568971

2025-11-27T14:48:49.348+00:00 — tnt (@246tnt)

Content

```
klayout -b -zz -r ${PDK_ROOT}/gf180mcuD/libs.tech/klayout/tech/drc/gf180mcu.drc -rd input=/mnt/pdk/OL2/pdk_root/gf180mcuD/libs.ref/gf180mcu_ocd_io/gds/gf180mcu_ocd_io.gds -rd report=drc.klayout.lyrdb -rd feol=True -rd beol=True -rd conn_drc=True -rd wedge=True -rd run_mode=deep -rd thr=16 -rd topcell=gf180mcu_ocd_io__bi_24t
```

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-11_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "👍"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443614636464148552

2025-11-27T14:49:10.396+00:00 — tnt (@246tnt)

Content

this runs the DRC on only `gf180mcu_ocd_io__bi_24t` and will show the errors.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443614701471924254

2025-11-27T14:49:25.895+00:00 — tnt (@246tnt)

Content

I mean obviously you need to check all the cells, but that's a good start 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1443614750545281205

2025-11-27T14:49:37.595+00:00 — tnt (@246tnt)

Content

And runs much faster than a full chip DRC
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443627325651554395

2025-11-27T15:39:35.734+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  Where are you getting the file `gf180mcu.drc` from?  I don't have that in my PDK.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1443627842603843656

2025-11-27T15:41:38.985+00:00 — tnt (@246tnt)

Content

@Tim Edwards Ah, from https://github.com/wafer-space/gf180mcu
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443627972866211920

2025-11-27T15:42:10.042+00:00 — tnt (@246tnt)

Content

I think it's just a top level calling all the rules deck. Probably on @Leo Moser (mole99) 's growing list of stuff to upstream 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
        "color": null,
        "discriminator": "0000",
        "id": "323371864074485771",
        "isBot": false,
        "name": "mole99",
        "nickname": "Leo Moser (mole99)",
        "roles": [
          {
            "color": null,
            "id": "1423020172595298314",
            "name": "Mod",
            "position": 4
          }
        ]
      }
    ]
  }
}
</details>

message-1443628877648760984

2025-11-27T15:45:45.759+00:00 — Leo Moser (mole99) (@mole99)

Content

Exactly 😁
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "grin",
        "id": "",
        "imageUrl": "2025-11_media/1f601-4E9BD.svg",
        "isAnimated": false,
        "name": "😁"
      }
    ]
  }
}
</details>

message-1443630030155677748

2025-11-27T15:50:20.538+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

That file belongs in https://github.com/fossi-foundation/globalfoundries-pdk-libs-gf180mcu_fd_pv

Embeds

<details> <summary>Embeds data</summary>
[
  {
    "color": "#1E2327",
    "description": "Contribute to fossi-foundation/globalfoundries-pdk-libs-gf180mcu_fd_pv development by creating an account on GitHub.",
    "fields": [],
    "images": [],
    "inlineEmojis": [],
    "thumbnail": {
      "height": 600,
      "url": "2025-11_media/globalfoundries-pdk-libs-gf180mcu_fd_pv-6EC75",
      "width": 1200
    },
    "timestamp": null,
    "title": "GitHub - fossi-foundation/globalfoundries-pdk-libs-gf180mcu_fd_pv",
    "url": "https://github.com/fossi-foundation/globalfoundries-pdk-libs-gf180mcu_fd_pv"
  }
]
</details>

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-11_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "👍"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
        "color": null,
        "discriminator": "0000",
        "id": "323371864074485771",
        "isBot": false,
        "name": "mole99",
        "nickname": "Leo Moser (mole99)"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443630248796225596

2025-11-27T15:51:12.666+00:00 — Leo Moser (mole99) (@mole99)

Content

First I need to merge: https://github.com/wafer-space/gf180mcu/pull/1
and ensure there aren't any regressions.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>

message-1443630842881769664

2025-11-27T15:53:34.307+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Is that file written in ~~rust~~ ruby?  I'm getting `ERROR: Can't run macro (no interpreter)` but I think I don't have ~~rust~~ ruby enabled in my version of klayout.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443631031898083410

2025-11-27T15:54:19.372+00:00 — Leo Moser (mole99) (@mole99)

Content

It's written in ruby, perhaps that is missing?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>

message-1443631120997683270

2025-11-27T15:54:40.615+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I meant ruby, sorry.  I thought rust was wrong, somehow.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443631297967821002

2025-11-27T15:55:22.808+00:00 — tnt (@246tnt)

Content

All klayout drc are written in ruby AFAIK
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443631747731423406

2025-11-27T15:57:10.04+00:00 — tnt (@246tnt)

Content

I can run drc for each cell and post results if that's easier but  I  thought it'd be better if you could validate changes yourself
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443635400806760561

2025-11-27T16:11:41.001+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Posting results might be _quicker_ because I'm going to have to recompile klayout with ruby support.

But I did a layer-by-layer comparison between an original 5V I/O cell and my modified one, and I think I understand where I'm missing layers.  Some of my generated layers (DUALGATE, for example) are not the same size as the original but are probably still valid.  The main issue seems to be the missing "latchup" and "ESD" marker layers.  Both are just two rectangular areas under the pad, and easy to add with mask hints.

There is another issue with all FETs being marked as 5V due to the fact that the I/O library was created before I modified the handling of 5V/6V cells, but that's easy enough to correct and probably doesn't make a difference anyway.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443642653769207851

2025-11-27T16:40:30.242+00:00 — tnt (@246tnt)

Content

Arf, sorry for dissapearing ... went to grab a drink, knocked something over and spent the last 30 min cleaning up my mess 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1443642668511920288

2025-11-27T16:40:33.757+00:00 — tnt (@246tnt)

Content

Running DRC now.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443644334280020068

2025-11-27T16:47:10.907+00:00 — tnt (@246tnt)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "drc.tar.bz2",
    "fileSizeBytes": 489451,
    "id": "1443644334045134879",
    "url": "2025-11_media/drc.tar-81A4F.bz2"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443644355616309481

2025-11-27T16:47:15.994+00:00 — tnt (@246tnt)

Content

@Tim Edwards

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-11_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "👍"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443652040147337440

2025-11-27T17:17:48.129+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

More work than I was expecting but shouldn't be too big of an issue.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "ok_hand",
      "id": "",
      "imageUrl": "2025-11_media/1f44c-59547.svg",
      "isAnimated": false,
      "name": "👌"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443687281402843216

2025-11-27T19:37:50.299+00:00 — tnt (@246tnt)

Content

BTW, if there is anything I can do to help, I'd be happy to 🙂
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f642-83E8A.svg",
        "isAnimated": false,
        "name": "🙂"
      }
    ]
  }
}
</details>

message-1443692963027882117

2025-11-27T20:00:24.904+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I may need to you run more klayout DRC checks.  But I need to get some updates pushed, first.  I have worked through most of the main errors already.  Fortunately the highest _count_ of errors was in the array contact spacing, which was easy to fix (although it exposed a way to get around magic's generation of wider-spaced 4x4-and-up arrays, which is to stack 4 or more 1xN contact arrays next to each other, which then magic no longer sees as a single "large array").

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-11_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "👍"
    },
    "users": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443728643997171732

2025-11-27T22:22:11.91+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  All right.  I think I have a good handle on all the issues.  I will push everything to the repository along with updates to open_pdks and everything should be ready to retest in the morning.  I may have missed one or two things but nothing looks like it can't be dealt with pretty easily.

I do have to rethink the way I handle generating PPLUS and NPLUS around tap diffusion that is too close to an nwell edge, but I think I have methods now that will work right that weren't available when I originally wrote the GF180MCU tech file.  I haven't tested them yet;  instead I just made sure that all tap diffusion is well away from nwell edges.  It seemed like everything in the I/O library was just slightly closer than the limit that triggers the extra overlap (0.43um).
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1443743073019494441

2025-11-27T23:19:32.057+00:00 — Tim 'mithro' Ansell (@mithro_)

Content

@Tim Edwards - If you have docker installed you can get a docker container with the precheck with all the deps and PDK and everything.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443769333661565031

2025-11-28T01:03:53.082+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  I have updated the PDK and the I/O library.  I don't know if I managed to get everything, but it should be a lot cleaner than before.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1443857796842913812

2025-11-28T06:55:24.348+00:00 — tnt (@246tnt)

Content

@Tim Edwards Indeed, it seems much cleaner now 🙂
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f642-83E8A.svg",
        "isAnimated": false,
        "name": "🙂"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443858046341353575

2025-11-28T06:56:23.833+00:00 — tnt (@246tnt)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "drc.tar.bz2",
    "fileSizeBytes": 12264,
    "id": "1443858046018125895",
    "url": "2025-11_media/drc.tar-E2AD0.bz2"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443858128864284768

2025-11-28T06:56:43.508+00:00 — tnt (@246tnt)

Content

only fillnc and bi_24t still have items.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443863673457082390

2025-11-28T07:18:45.442+00:00 — tnt (@246tnt)

Content

I was looking at this extra overlap limit in the DRM and quite confused because on the diagrams that 0.43um is measured from the "inside" edge !?!
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443863699030016061

2025-11-28T07:18:51.539+00:00 — tnt (@246tnt)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "2025-11-28_377x360_scrot.png",
    "fileSizeBytes": 36140,
    "id": "1443863698895667291",
    "url": "2025-11_media/2025-11-28_377x360_scrot-B65BC.png"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443865401829101600

2025-11-28T07:25:37.518+00:00 — tnt (@246tnt)

Content

Just had a look at the exact errors and `filllnc` is just false positive because the cell can't be used by itself, it's too narrow but when put in the ring, there should be no errors ( although the `pr boundary` seems too wide ? )

And the `bi_24t` is minor issues with nplus/pplus extension but trivial to fix with maskhints.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443916097295486978

2025-11-28T10:47:04.259+00:00 — tnt (@246tnt)

Content

@Tim Edwards Som in `bi_24t`, one of the issue is ... probably a bug in magic or somewhere because if I load the `.mag` and do `gds write gf180mcu_ocd_io__bi_24t` , then there is the issue, like this :
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1443916121878040596

2025-11-28T10:47:10.12+00:00 — tnt (@246tnt)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "2025-11-28_874x440_scrot.png",
    "fileSizeBytes": 1906,
    "id": "1443916121391628288",
    "url": "2025-11_media/2025-11-28_874x440_scrot-DE1E5.png"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443916295870611467

2025-11-28T10:47:51.603+00:00 — tnt (@246tnt)

Content

Then I don't do anything else, but just re run the same `gds write` command and then the issue isn't there and the gap was bridged.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443916320499437669

2025-11-28T10:47:57.475+00:00 — tnt (@246tnt)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "2025-11-28_919x492_scrot.png",
    "fileSizeBytes": 1936,
    "id": "1443916320218550422",
    "url": "2025-11_media/2025-11-28_919x492_scrot-9FABD.png"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443918352925065301

2025-11-28T10:56:02.043+00:00 — tnt (@246tnt)

Content

The other one I fixed with this :
```diff

diff --git a/magic/comp018green_out_paddrv_6T_PMOS_GROUP.mag b/magic/comp018green_out_paddrv_6T_PMOS_GROUP.mag
index 98627ee..6a58925 100644
--- a/magic/comp018green_out_paddrv_6T_PMOS_GROUP.mag
+++ b/magic/comp018green_out_paddrv_6T_PMOS_GROUP.mag
@@ -3272,4 +3272,6 @@ use PMOS_metal_stack  PMOS_metal_stack_6
 timestamp 1758724778
 transform 1 0 809 0 1 496
 box -44 0 1584 12000
+<< properties >>
+string MASKHINTS_NPLUS 12251 -768 12331 14372
 << end >>
```
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443918413968838667

2025-11-28T10:56:16.597+00:00 — tnt (@246tnt)

Content

but maybe you have a more elegant way of preventing it in the first place 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1443975206061346876

2025-11-28T14:41:56.887+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  Yes, that's where the nwell needs to be extended out to 0.43um to prevent the little stub of NPLUS from showing up.  The algorithm I came up with to deal with the extra overlap of NPLUS or PPLUS for diffusion edges close to an nwell edge works fine except when the diffusion is just slightly less than than the 0.43um limit away from the edge.  Obnoxiously, most of the nwells in the I/O cells have been drawn just slightly under this limit, which then unfortunately highlights where my algorithm doesn't work right.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1443975697264672860

2025-11-28T14:43:53.999+00:00 — Tim Edwards (@rtimothyedwards_19428)

Reply/reference

<details> <summary>Reference data</summary>
{
  "channelId": "1443243481744277565",
  "guildId": "1361349522684510449",
  "messageId": "1443863673457082390"
}
</details>

Content

Yes, I've looked at that illustration before and decided it's an error in the illustration (one of many).
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1443978692891119626

2025-11-28T14:55:48.212+00:00 — tnt (@246tnt)

Content

I have a new chip-wide precheck running ATM, hopefully it will be clear.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443989488295739556

2025-11-28T15:38:42.037+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I made a few edits so that the tap diffusion is wide enough that the NPLUS and PPLUS overlap of contacts is the same width as the overlap of the diffusion, so the NPLUS and PPLUS form simple rectangles that don't need to be hierarchically checked to close up gaps between the shapes.  There was plenty of room to extend the taps outward and I should have done that earlier, just for the sake of the layout being cleaner.  So there will be one more round of updates and the I/O pads should be squeaky-clean by tomorrow.  I still need to rework the algorithm that generates the too-thin diffusion artifacts, but at least the errors only show up in pathological cases.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1443994259744227472

2025-11-28T15:57:39.639+00:00 — tnt (@246tnt)

Content

Ok, hopfully it will show up in a `ciel` release and I can use that to do the final build.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444001169528590347

2025-11-28T16:25:07.06+00:00 — tnt (@246tnt)

Content

It cleared the KLayout DRC deck. Got some magic DRC errors from the pre-check but I suspect it's because the tech file isn't up to date.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444002448359428177

2025-11-28T16:30:11.957+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I didn't change the tech file on this round.  The DRC errors look like something that pops up after a GDS read, but I can reproduce them, so I'll take care of them.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444002799582183578

2025-11-28T16:31:35.695+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

No, actually I think I just cut a corner and made the last several changes without running on drc(full), so totally my fault.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444003458012418230

2025-11-28T16:34:12.677+00:00 — tnt (@246tnt)

Content

I still had the tech file from a while back.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444003474034393298

2025-11-28T16:34:16.497+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

It was an nwell spacing error?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444003556708454480

2025-11-28T16:34:36.208+00:00 — tnt (@246tnt)

Content

Yes and also some via width < 0.28u
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444003720412266598

2025-11-28T16:35:15.238+00:00 — tnt (@246tnt)

Content

`Via3 width < 0.28um (V3.1 + 2 * V3.4)`
`MV N-well spacing < 0.74um (NW.2a)`
`Via4 width < 0.28um (V4.1 + 2 * V4.4)`
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444005611175153716

2025-11-28T16:42:46.031+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

The nwell spacing is due to a tiny notch in an nwell and I'm fixing it now.
The via3/via4 errors are more bothersome---I'm guessing that they come from the same issue in the corner cell where some via rows were spaced close enough together that they get merged by magic, but the rows are slightly offset so they produce slivers that are narrower than the contact after the merge.  But there seems to be some intermittent behavior there, because a few days ago I was fixing those, and after fixing all the errors I saw, I would re-write the GDS, and after reading the GDS back, the errors would appear again, somewhere else.  It was like sometimes it would merge the rows and sometimes it wouldn't.  I thought I had finally fixed the errors once and for all, but apparently not.  The error would not be from the tech file, it would be from the corner cell itself.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444006046229201100

2025-11-28T16:44:29.756+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Arrgh, yes, I can see them. . .
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444098359836278884

2025-11-28T22:51:19.035+00:00 — Tim 'mithro' Ansell (@mithro_)

Reply/reference

<details> <summary>Reference data</summary>
{
  "channelId": "1443243481744277565",
  "guildId": "1361349522684510449",
  "messageId": "1443975697264672860"
}
</details>

Content

I would really love to create some improved documentation with actually useful GDS examples (which can be rendered into diagrams) of these things which are unclear.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1444429180413546627

2025-11-29T20:45:52.807+00:00 — tnt (@246tnt)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "drc_in_s.klayout.lyrdb",
    "fileSizeBytes": 96786,
    "id": "1444429179297861672",
    "url": "2025-11_media/drc_in_s.klayout-162CD.lyrdb"
  },
  {
    "fileName": "drc_in_c.klayout.lyrdb",
    "fileSizeBytes": 96786,
    "id": "1444429179549515892",
    "url": "2025-11_media/drc_in_c.klayout-C61D6.lyrdb"
  },
  {
    "fileName": "drc_bi_t.klayout.lyrdb",
    "fileSizeBytes": 96789,
    "id": "1444429179797115022",
    "url": "2025-11_media/drc_bi_t.klayout-99BA4.lyrdb"
  },
  {
    "fileName": "drc_bi_24t.klayout.lyrdb",
    "fileSizeBytes": 96815,
    "id": "1444429180057026763",
    "url": "2025-11_media/drc_bi_24t.klayout-3EB84.lyrdb"
  },
  {
    "fileName": "drc_bi_a.klayout.lyrdb",
    "fileSizeBytes": 96789,
    "id": "1444429180287582470",
    "url": "2025-11_media/drc_bi_a.klayout-24AB6.lyrdb"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444429241721819326

2025-11-29T20:46:07.424+00:00 — tnt (@246tnt)

Content

@Tim Edwards Errors in NP from the latest cells.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1444429304149704928

2025-11-29T20:46:22.308+00:00 — tnt (@246tnt)

Content

(sorry to be the bearer of bad news 😅 )
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1444447852389732503

2025-11-29T22:00:04.553+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  No problem, iterate until done.
Apparently I did not check the output after my last edit (sloppy or sleepy, not sure which.  Or sloppy because of sleepy).  Otherwise I would have seen that.  I just forgot to add 0.02um to the top of the nwells. . .  Sorry for forcing another round.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1444448121902989467

2025-11-29T22:01:08.81+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I also still need to figure out why magic won't cleanly separate the VSS and DVSS when extracting the corner cell, because that's preventing a clean LVS on anything using the padframe.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444453911749595359

2025-11-29T22:24:09.217+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Now it's suddenly showing a property error in magic, but I think that's related to something that Mitch already pointed out to me, and it's a problem in magic that I need to look into.  It's not a problem in the layouts.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1444505337028935690

2025-11-30T01:48:29.959+00:00 — Tim 'mithro' Ansell (@mithro_)

Reply/reference

<details> <summary>Reference data</summary>
{
  "channelId": "1443243481744277565",
  "guildId": "1361349522684510449",
  "messageId": "1444447852389732503"
}
</details>

Content

Too much turkey? 🙂
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_smile",
        "id": "",
        "imageUrl": "2025-11_media/1f642-83E8A.svg",
        "isAnimated": false,
        "name": "🙂"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1444506729642590270

2025-11-30T01:54:01.984+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  I got klayout recompiled with ruby support, so I should be able to run the DRC myself from now on.  I just needed a little time away from the openframe project to get the compile done.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1444510814462541824

2025-11-30T02:10:15.881+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  Also:  Confirmed that the I/O cells are finally DRC clean.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1444511223730278400

2025-11-30T02:11:53.458+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@Tim 'mithro' Ansell :  I had duck, not turkey.  The wild turkeys have been wandering around my property recently.  I guess they know it's safe here.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-11_media/9679bb77da48d47c905b398d98a83780-75B68.png",
        "color": null,
        "discriminator": "0000",
        "id": "169786952432746498",
        "isBot": false,
        "name": "mithro_",
        "nickname": "Tim 'mithro' Ansell",
        "roles": []
      }
    ]
  }
}
</details>

message-1444512008790867979

2025-11-30T02:15:00.631+00:00 — Tim 'mithro' Ansell (@mithro_)

Content

The google campus in MTV had the occasional wild turkey wandering around it.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446245336598446132

2025-12-04T21:02:38.184+00:00 — tnt (@246tnt)

Content

Mmm, I'm having an antenna violations when connecting to the `SEL` signal of the `ocd` IO but I don't see how that would be possible.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446245685371338924

2025-12-04T21:04:01.338+00:00 — tnt (@246tnt)

Content

Violating rule is `ANT.16_i_ANT.3`
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446245944331997294

2025-12-04T21:05:03.079+00:00 — tnt (@246tnt)

Content

But (1) the `Metal2` line that connects to that pin is really not that long, like 90 um or so. And (2) there is AFAICT an antenna diode on that input.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446248197444993024

2025-12-04T21:14:00.263+00:00 — tnt (@246tnt)

Content

The detail on the error is :
```
ametal_eff: 202.5162
ratio: 401.817857143
agate: 0.504
max_ratio: 400
pmetal_factor: 0.54
adiodes: (0)
diode_factors: (800)
pmetal: 375.03
```
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446248524051120313

2025-12-04T21:15:18.132+00:00 — tnt (@246tnt)

Content

And indeed the gate area is 0.504.  But there is an 1 um x 1 um diode on the same node, so the effective area should be 0.504 + 2 * 1 = 2.504 and thus the ratio is 80 which is _way_ below the 400 threshold
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446252728350277713

2025-12-04T21:32:00.515+00:00 — tnt (@246tnt)

Content

Ah ... the DRC rule only consider `nplus + COMP` to be diodes.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446252759832858645

2025-12-04T21:32:08.021+00:00 — tnt (@246tnt)

Content

But the IO have `pplus + COMP`
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446255838577692822

2025-12-04T21:44:22.051+00:00 — tnt (@246tnt)

Content

Looking at the doc :
"""This comp area contained the protection diode and any other drain or source junction connected to this node."""

so `pplus + COMP` is perfectly valid and should be included in the `diodes` so I'm pretty sure that KLayout deck is wrong.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446255905006948564

2025-12-04T21:44:37.889+00:00 — tnt (@246tnt)

Content

(cc @Leo Moser (mole99) )
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-12_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
        "color": null,
        "discriminator": "0000",
        "id": "323371864074485771",
        "isBot": false,
        "name": "mole99",
        "nickname": "Leo Moser (mole99)",
        "roles": [
          {
            "color": null,
            "id": "1423020172595298314",
            "name": "Mod",
            "position": 4
          }
        ]
      }
    ]
  }
}
</details>

message-1446405824464556032

2025-12-05T07:40:21.473+00:00 — Leo Moser (mole99) (@mole99)

Content

Thanks @tnt for the hint!

From the DRM:

> 1. Possible repairs to metal antenna nodes, which have a high via count or antenna ratio.
>   a. Add an NCOMP/Substrate diode for NMOS gate, PCOMP/Nwell diode for PMOS gate.
>   b. Break the metal close to the gate and jog the metal to an upper metal level.

So instead of:

```
diode      = nplus.and(comp)
```

I would do:

```
n_diode    = nplus.and(comp).not(nwell)
p_diode    = pplus.and(comp).and(nwell)
diodes     = n_diode || n_diode
```

(deep nwell not considered.)

Does that look reasonable to you?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1446408614704054323

2025-12-05T07:51:26.718+00:00 — tnt (@246tnt)

Content

TBH I would think `comp.and(nplus.or(pplus)`  would be enough.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446408773479698442

2025-12-05T07:52:04.573+00:00 — tnt (@246tnt)

Content

Technically if a signal is connected to what's basically a tap, that's also a diffusion that will dissipate charge I would think.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446409159745736811

2025-12-05T07:53:36.666+00:00 — tnt (@246tnt)

Content

But it's a rather weird case so the above would work just fine.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496400805182570580

2026-04-22T06:42:33.738+00:00 — tnt (@246tnt)

Content

@Tim Edwards BTW, basic testing seem to show that IO library works in silicon 🙂
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_smile",
        "id": "",
        "imageUrl": "2026-04_media/1f642-83E8A.svg",
        "isAnimated": false,
        "name": "🙂"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1496403445987541123

2026-04-22T06:53:03.355+00:00 — tnt (@246tnt)

Content

Changed the channel name: Using gf180mcu_ocd_io in LibreLane
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496481688572792842

2026-04-22T12:03:57.841+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

@tnt :  What kind of "basic testing"?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1496481800565035068

2026-04-22T12:04:24.542+00:00 — tnt (@246tnt)

Content

Well, they're fed 3.3v on both Vio and Vcore and they pass data between the inside and the outside of the chip 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2026-04_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1496481883914244177

2026-04-22T12:04:44.414+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

What chip was that?  I thought I was the only one using my I/O library.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496481929879617660

2026-04-22T12:04:55.373+00:00 — tnt (@246tnt)

Content

That's the extend of the testing that will be done at the factory until I get my hands on the chips.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496482017926185092

2026-04-22T12:05:16.365+00:00 — tnt (@246tnt)

Content

We have a version of the tiny tapeout GF 0.2 that uses your library.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496482084070621225

2026-04-22T12:05:32.135+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Oh, wow, I didn't know that.  Nice!
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496482549109620827

2026-04-22T12:07:23.009+00:00 — tnt (@246tnt)

Content

Hopefully by end of next week I'll be able to make actual delay / rise / fall measurements and IV curves and all that stuff with different Vio and Vcore .
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496482696795262976

2026-04-22T12:07:58.22+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I don't think I ever actually tested operation with Vio at 3.3V.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496482867633721367

2026-04-22T12:08:38.951+00:00 — tnt (@246tnt)

Content

I simulated that case and it's behaving just fine AFAICT. Pretty much same results as the original GF pads at 3.3v.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496482985329823825

2026-04-22T12:09:07.012+00:00 — tnt (@246tnt)

Content

Some of your dies should be on their way to you so if you have bonding capability locally you can test those too 🙂 Looking fwd to seeing the 3.3V SRAM results 😁
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_smile",
        "id": "",
        "imageUrl": "2026-04_media/1f642-83E8A.svg",
        "isAnimated": false,
        "name": "🙂"
      },
      {
        "code": "grin",
        "id": "",
        "imageUrl": "2026-04_media/1f601-4E9BD.svg",
        "isAnimated": false,
        "name": "😁"
      }
    ]
  }
}
</details>

message-1496877333406023713

2026-04-23T14:16:06.92+00:00 — Tim 'mithro' Ansell (@mithro_)

Content

@tnt - The first package of Tiny Tapeout bonded die went out to you today.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "tada",
      "id": "",
      "imageUrl": "2026-04_media/1f389-5C738.svg",
      "isAnimated": false,
      "name": "🎉"
    },
    "users": [
      {
        "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1496878581115125761

2026-04-23T14:21:04.397+00:00 — tnt (@246tnt)

Content

@Tim 'mithro' Ansell Got a tracking number ? 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2026-04_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2026-04_media/9679bb77da48d47c905b398d98a83780-75B68.png",
        "color": null,
        "discriminator": "0000",
        "id": "169786952432746498",
        "isBot": false,
        "name": "mithro_",
        "nickname": "Tim 'mithro' Ansell",
        "roles": []
      }
    ]
  }
}
</details>

message-1496879073119571968

2026-04-23T14:23:01.7+00:00 — Tim 'mithro' Ansell (@mithro_)

Reply/reference

<details> <summary>Reference data</summary>
{
  "channelId": "1443243481744277565",
  "guildId": "1361349522684510449",
  "messageId": "1496878581115125761"
}
</details>

Content

I would be able to get you one if the fedex website wasn't so terrible...
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1496879142707134605

2026-04-23T14:23:18.291+00:00 — tnt (@246tnt)

Content

🤣
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "rofl",
        "id": "",
        "imageUrl": "2026-04_media/1f923-5854E.svg",
        "isAnimated": false,
        "name": "🤣"
      }
    ]
  }
}
</details>

message-1496879187519344651

2026-04-23T14:23:28.975+00:00 — tnt (@246tnt)

Content

It's ok, I guess I should eventually get a notification by mail.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1496879237003743356

2026-04-23T14:23:40.773+00:00 — tnt (@246tnt)

Content

Better not share it publically anyway ..
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498346529780404377

2026-04-27T15:34:10.632+00:00 — tnt (@246tnt)

Content

@Tim Edwards Did a bit more testing and they seem to perform just fine at 3.3V    Got rise time of 2 ns and fall time of 1 ns ( not sure of the load, it's a test pcb + scope probe so probably in the 20~30 pF range ). And the output still looked pretty square outputting a 75 MHz clock.   TBH they work better than the sky130 and IHP ones 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2026-04_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ],
    "mentions": [
      {
        "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1498351891762122864

2026-04-27T15:55:29.028+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

The sky130 pads are over-designed and the IHP pads are under-designed, so that's not entirely surprising.  Are you planning any tests at 5V?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498352697735249921

2026-04-27T15:58:41.187+00:00 — tnt (@246tnt)

Content

@Tim Edwards Yes I am. But the breakout I have is unsuitable for 5V test ATM, so I need to wait until I get one where I can set Vio to what I want.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1498353308971044906

2026-04-27T16:01:06.917+00:00 — tnt (@246tnt)

Content

BTW there are diodes between Vcore and Vio, so Vio needs to come up first
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498359086335525116

2026-04-27T16:24:04.348+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I'm not sure if I looked specifically for diodes between the power supplies.  Would there happen to be a forward-biased diode from Vio to Vcore?  That would be a big problem for running the I/O voltage at 5V.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498359316489572413

2026-04-27T16:24:59.221+00:00 — tnt (@246tnt)

Content

No, it's forward biased from Vcore to Vio.  So must have Vio >= Vcore
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498359833017974935

2026-04-27T16:27:02.371+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

In what cell(s)?  A quick check of the netlist for `D` entries shows only diodes between pad and power, and between ground and power.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498359976026968245

2026-04-27T16:27:36.467+00:00 — tnt (@246tnt)

Content

Ah ... that I haven't searched yet, I can just tell you I see it in the silicon 😅
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "sweat_smile",
        "id": "",
        "imageUrl": "2026-04_media/1f605-42B43.svg",
        "isAnimated": false,
        "name": "😅"
      }
    ]
  }
}
</details>

message-1498360114619486360

2026-04-27T16:28:09.51+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Probably some indirect path like through a pullup resistor or something.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498360298741174312

2026-04-27T16:28:53.408+00:00 — tnt (@246tnt)

Content

I was feeding 3.3V to Vcore and I haden't power Vio yet and still the IO were powered through it ...
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1498360534301413559

2026-04-27T16:29:49.57+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

I'll have to go analyze that one.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-04_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1500536702140285020

2026-05-03T16:37:08.414+00:00 — tnt (@246tnt)

Content

Seems to happen in `io_inv_2i` inside the input path.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1500537068139577354

2026-05-03T16:38:35.675+00:00 — tnt (@246tnt)

Content

There is a pmos whose source is wired to `VDD` (core) and nwell is biased by `DVDD`.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1500770294921429053

2026-05-04T08:05:21.273+00:00 — tnt (@246tnt)

Content

As for 5V operation, doing some quick tests now. Seems all fine. I'm feeding 3.0V as Vcore and 5.0V as Vio and works just fine AFAICT.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1500785050873102447

2026-05-04T09:03:59.366+00:00 — tnt (@246tnt)

Content

There isn't any big change in performance. The measure rise time is longer but it's a bit of an artefact of the output shape.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1500785164014321716

2026-05-04T09:04:26.341+00:00 — tnt (@246tnt)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "shot_rise_time_hump_vio_3v3.png",
    "fileSizeBytes": 22900,
    "id": "1500785163599216790",
    "url": "2026-05_media/shot_rise_time_hump_vio_3v3-BE94C.png"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1500785540587454594

2026-05-04T09:05:56.123+00:00 — tnt (@246tnt)

Content

There is a bit of a slow down right before hitting 80% and so that makes the measure point be almost twice as long ... I'd need to check if that's also in simulation. Could be non-linear capacitance/load on the line from the RP2350 chip being on that line.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1500936283248132236

2026-05-04T19:04:55.974+00:00 — tnt (@246tnt)

Content

@Tim Edwards ^^
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-05_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1501007580338847804

2026-05-04T23:48:14.525+00:00 — Tim Edwards (@rtimothyedwards_19428)

Content

Or it could be from the latching stage of the level shifter.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1501170169601589309

2026-05-05T10:34:18.826+00:00 — tnt (@246tnt)

Content

@Tim Edwards There is the same effect in the GF provided default IOs when powered at 3.3V so I don't think it's related to anything you did.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-05_media/6bcc8e61db497b620550682309ace5d5-D89B4.png",
        "color": null,
        "discriminator": "0000",
        "id": "1365118310701600900",
        "isBot": false,
        "name": "rtimothyedwards_19428",
        "nickname": "Tim Edwards",
        "roles": []
      }
    ]
  }
}
</details>

message-1501174313410367600

2026-05-05T10:50:46.787+00:00 — tnt (@246tnt)

Content

I think it's an artefact of the board layout, there is a small stuf to go to a 7 seg display and I think it's some reflection.  Probing another pin that doesn't go to the 7 seg doesn't show that hump and has a better looking rise time.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2026-05_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>