Category: ℹ️ - Information
Parent channel: #⁉️-questions
Thread ID: 1514919594467393626
Messages: 26
message-1514919594467393626
2026-06-12T09:09:37.166+00:00 — RebelMike (@rebelmike)
- Message ID:
1514919594467393626 - Author ID:
691780627338625077 - Nickname: RebelMike
- User name: rebelmike
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514919594467393626
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Last night, I thought I'd try taking @Matt Venn's R2R DAC he just submitted on TT 0p3 and add it to TinyQV. I've got the macro in and the digital inputs + ground are connected OK (could probably do with buffers on the input, but one thing at a time).
However, librelane won't route the output from the DAC to the analog pin - possibly quite sensibly as in general it probably shouldn't touch analog things. How should I deal with making that connection? I guess I could add it manually to the gds after the librelane flow has finished, but that seems not ideal. Can I add a step to the flow to describe the connection? Or can I just tell the router to connect it somehow?
My repo is here, see the `dac` branch: https://github.com/MichaelBell/ws02-tinyQV/tree/dac
Embeds
- Resolved media URL: https://github.com/MichaelBell/ws02-tinyQV/tree/dac
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/ws02-tinyQV-96057
[
{
"color": "#1E2327",
"description": "TinyQV for Wafer Space run 2 on gf180mcuD. Contribute to MichaelBell/ws02-tinyQV development by creating an account on GitHub.",
"fields": [],
"images": [],
"inlineEmojis": [],
"thumbnail": {
"height": 600,
"url": "2026-06_media/ws02-tinyQV-96057",
"width": 1200
},
"timestamp": null,
"title": "GitHub - MichaelBell/ws02-tinyQV at dac",
"url": "https://github.com/MichaelBell/ws02-tinyQV/tree/dac"
}
]
</details>Reactions
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/1f44d-27259.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/cf91f9947bc37b8a1071311863f9c4b7-14667.png
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/aa8560ba40f1f3d339d044dee6970630-97A62.png
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/7f2ff01a306c951630dba44b88c2044d-9CD24.png
[
{
"count": 3,
"emoji": {
"code": "thumbsup",
"id": "",
"imageUrl": "2026-06_media/1f44d-27259.svg",
"isAnimated": false,
"name": "👍"
},
"users": [
{
"avatarUrl": "2026-06_media/cf91f9947bc37b8a1071311863f9c4b7-14667.png",
"color": null,
"discriminator": "0000",
"id": "356185479911047169",
"isBot": false,
"name": ".dmv",
"nickname": "dmv"
},
{
"avatarUrl": "2026-06_media/aa8560ba40f1f3d339d044dee6970630-97A62.png",
"color": null,
"discriminator": "0000",
"id": "492702620759228416",
"isBot": false,
"name": "mattvenn",
"nickname": "Matt Venn"
},
{
"avatarUrl": "2026-06_media/7f2ff01a306c951630dba44b88c2044d-9CD24.png",
"color": null,
"discriminator": "0000",
"id": "854091366099451924",
"isBot": false,
"name": "mikea1238",
"nickname": "mikea"
}
]
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png",
"discriminator": "0000",
"isBot": false
},
"message": {
"mentions": [
{
"avatarUrl": "2026-06_media/aa8560ba40f1f3d339d044dee6970630-97A62.png",
"color": null,
"discriminator": "0000",
"id": "492702620759228416",
"isBot": false,
"name": "mattvenn",
"nickname": "Matt Venn",
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
}
]
}
}
</details>message-1514920434838278186
2026-06-12T09:12:57.526+00:00 — Matt Venn (@mattvenn)
- Message ID:
1514920434838278186 - Author ID:
492702620759228416 - Nickname: Matt Venn
- User name: mattvenn
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514920434838278186
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Interested to see how you solve it!
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/aa8560ba40f1f3d339d044dee6970630-97A62.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {}
}
</details>message-1514920931372568767
2026-06-12T09:14:55.909+00:00 — Tholin (@tholin)
- Message ID:
1514920931372568767 - Author ID:
220639106915368960 - Nickname: Tholin
- User name: tholin
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514920931372568767
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
This is an issue I encountered last run as well, give me a minute to remember the fix
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514921351830569092
2026-06-12T09:16:36.154+00:00 — Tholin (@tholin)
- Message ID:
1514921351830569092 - Author ID:
220639106915368960 - Nickname: Tholin
- User name: tholin
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514921351830569092
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Librelane does not like that the pad’s layout does not have a port named "PAD". That’s it.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514921441546600500
2026-06-12T09:16:57.544+00:00 — Tholin (@tholin)
- Message ID:
1514921441546600500 - Author ID:
220639106915368960 - Nickname: Tholin
- User name: tholin
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514921441546600500
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
That’s all I did. Copy the files for the analog pad and define a port named "PAD" in magic
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514921493803569152
2026-06-12T09:17:10.003+00:00 — Tholin (@tholin)
- Message ID:
1514921493803569152 - Author ID:
220639106915368960 - Nickname: Tholin
- User name: tholin
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514921493803569152
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
https://github.com/AvalonSemiconductors/ws-submission-2025/tree/main/macros/Analog/AnalogPad
Embeds
- Resolved media URL: https://github.com/AvalonSemiconductors/ws-submission-2025/tree/main/macros/Analog/AnalogPad
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/ws-submission-2025-A262E
[
{
"color": "#1E2327",
"description": "Multi-project die. Contribute to AvalonSemiconductors/ws-submission-2025 development by creating an account on GitHub.",
"fields": [],
"images": [],
"inlineEmojis": [],
"thumbnail": {
"height": 600,
"url": "2026-06_media/ws-submission-2025-A262E",
"width": 1200
},
"timestamp": null,
"title": "ws-submission-2025/macros/Analog/AnalogPad at main · AvalonSemicon...",
"url": "https://github.com/AvalonSemiconductors/ws-submission-2025/tree/main/macros/Analog/AnalogPad"
}
]
</details>Reactions
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/1f44d-27259.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/3e7d21a60c5d0aa08f02cdf15b773a57-AABDE.png
[
{
"count": 1,
"emoji": {
"code": "thumbsup",
"id": "",
"imageUrl": "2026-06_media/1f44d-27259.svg",
"isAnimated": false,
"name": "👍"
},
"users": [
{
"avatarUrl": "2026-06_media/3e7d21a60c5d0aa08f02cdf15b773a57-AABDE.png",
"color": null,
"discriminator": "0000",
"id": "651881618373476362",
"isBot": false,
"name": "kewenlee",
"nickname": "kewenlee"
}
]
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514921765514514543
2026-06-12T09:18:14.784+00:00 — Tholin (@tholin)
- Message ID:
1514921765514514543 - Author ID:
220639106915368960 - Nickname: Tholin
- User name: tholin
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514921765514514543
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Its not even different electrically. The analog pad just provides a straight connection to the outside, the ports "ASIG5V" and "PAD" are electrically shorted, but LibreLane needs "PAD" to exist.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514921884645593150
2026-06-12T09:18:43.187+00:00 — Tholin (@tholin)
- Message ID:
1514921884645593150 - Author ID:
220639106915368960 - Nickname: Tholin
- User name: tholin
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514921884645593150
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Otherwise it goes "whoa, this is useless!" and optimizes it out, since all it sees is a cell with only an input and no output (I *believe*)
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514922646452699259
2026-06-12T09:21:44.816+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514922646452699259 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514922646452699259
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
The issue is that OpenROAD's detailed router does not route any pins with the `SPECIAL` attribute. This makes sense for power supplies, as they are handled by a dedicated pdngen call.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {}
}
</details>message-1514922755739357195
2026-06-12T09:22:10.872+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514922755739357195 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514922755739357195
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Here you can see that ASIG5V has SPECIAL set to True.
Attachments
<details> <summary>Attachments data</summary>[
{
"fileName": "Bildschirmfoto_vom_2026-06-12_11-20-36.png",
"fileSizeBytes": 238223,
"id": "1514922755806728322",
"url": "2026-06_media/Bildschirmfoto_vom_2026-06-12_11-20-36-2E0D6.png"
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {}
}
</details>message-1514922797451972631
2026-06-12T09:22:20.817+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514922797451972631 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514922797451972631
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Looking at the LEF for `gf180mcu_fd_io__asig_5p0.lef`, I don't see the `SPECIAL` attribute set for ASIG5V. However, OpenROAD probably sets it when making the bondpad a BTerm (top-level pin) with [`place_io_terminals`](https://openroad.readthedocs.io/en/latest/main/src/pad/README.html#place-io-terminals).
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {}
}
</details>message-1514923478665400372
2026-06-12T09:25:03.231+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514923478665400372 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514923478665400372
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
I had a similar issue with [HeiChips](https://github.com/FPGA-Research/heichips25-tapeout): in IHP, the bondpads are separate from the I/O cells and [place_bondpad](https://openroad.readthedocs.io/en/latest/main/src/pad/README.html#place-wirebond-pads) also makes the pin SPECIAL. My solution (workaround) was to edit the LEF to add a second port for the core-facing pin of the I/O cell.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {}
}
</details>message-1514923683280322560
2026-06-12T09:25:52.015+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514923683280322560 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514923683280322560
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
afaik sky130 doesn't have this issue since the I/O cells have separate ports for bondpad and core side.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {}
}
</details>message-1514923920610955364
2026-06-12T09:26:48.599+00:00 — RebelMike (@rebelmike)
- Message ID:
1514923920610955364 - Author ID:
691780627338625077 - Nickname: RebelMike
- User name: rebelmike
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514923920610955364
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
I noticed that SPECIAL appeared in the def on the OpenROAD.PadRing step, and suspected that might be the reason the router ignored it
Reactions
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/1f44d-27259.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png
[
{
"count": 1,
"emoji": {
"code": "thumbsup",
"id": "",
"imageUrl": "2026-06_media/1f44d-27259.svg",
"isAnimated": false,
"name": "👍"
},
"users": [
{
"avatarUrl": "2026-06_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": "2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514924100047470736
2026-06-12T09:27:31.38+00:00 — RebelMike (@rebelmike)
- Message ID:
1514924100047470736 - Author ID:
691780627338625077 - Nickname: RebelMike
- User name: rebelmike
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514924100047470736
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
But couldn't work out where that was coming from (or even if it was sensible to try and avoid it!)
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514924542030512128
2026-06-12T09:29:16.757+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514924542030512128 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514924542030512128
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
iirc @tnt recently found a workaround that doesn't require to edit the LEF file? It involves placing a macro with two ports, which is essentially just a short, next to the core-facing pin of the I/O cell.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {
"mentions": [
{
"avatarUrl": "2026-06_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
"color": null,
"discriminator": "0000",
"id": "596068704471482370",
"isBot": false,
"name": "246tnt",
"nickname": "tnt",
"roles": []
}
]
}
}
</details>message-1514924914602283099
2026-06-12T09:30:45.585+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514924914602283099 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514924914602283099
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
However, Tholin's solution is also fine.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {}
}
</details>message-1514926199514730648
2026-06-12T09:35:51.932+00:00 — tnt (@246tnt)
- Message ID:
1514926199514730648 - Author ID:
596068704471482370 - Nickname: tnt
- User name: 246tnt
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514926199514730648
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Yesh, I putting a small macro doing the split connection which works better for me than editing the pads in the PDK :
* No need for modifying PDK
* Because the short is in a separate block with just that in it, it actually doesn't mess with full LVS/GDS check, both the "schematic" and "layout" side of that block will have a single 0R resistor in them, no ambiguity.
* That also allowed me to connect all the split `Metal2` traces on the core side, join them together for better connection and bring them to `Metal3` where I needed them, avoiding me to have to deal with via at all when routing them 😅
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514926845458387087
2026-06-12T09:38:25.937+00:00 — tnt (@246tnt)
- Message ID:
1514926845458387087 - Author ID:
596068704471482370 - Nickname: tnt
- User name: 246tnt
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514926845458387087
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Ends up looking like this :
Attachments
<details> <summary>Attachments data</summary>[
{
"fileName": "2026-06-12_224x778_scrot.png",
"fileSizeBytes": 3356,
"id": "1514926845169111050",
"url": "2026-06_media/2026-06-12_224x778_scrot-9021C.png"
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514927236032237628
2026-06-12T09:39:59.057+00:00 — RebelMike (@rebelmike)
- Message ID:
1514927236032237628 - Author ID:
691780627338625077 - Nickname: RebelMike
- User name: rebelmike
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514927236032237628
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Cool, that sounds like a good solution. I assume I can find that in the TT gf0p3 project?
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514927259918798940
2026-06-12T09:40:04.752+00:00 — tnt (@246tnt)
- Message ID:
1514927259918798940 - Author ID:
596068704471482370 - Nickname: tnt
- User name: 246tnt
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514927259918798940
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
But the routing is still done manually though ODB scripts, I don't leave it up to the auto-router.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514927413988032533
2026-06-12T09:40:41.485+00:00 — tnt (@246tnt)
- Message ID:
1514927413988032533 - Author ID:
596068704471482370 - Nickname: tnt
- User name: 246tnt
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514927413988032533
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
You can't find it anywhere, that's WIP which is not pushed publically anywhere yet.
<details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
"discriminator": "0000",
"isBot": false
},
"message": {}
}
</details>message-1514927824119533608
2026-06-12T09:42:19.268+00:00 — tnt (@246tnt)
- Message ID:
1514927824119533608 - Author ID:
596068704471482370 - Nickname: tnt
- User name: 246tnt
- Type:
Default - Edited: 2026-06-12T09:42:26.39+00:00
- Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514927824119533608
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
But the macro is 2 squares of metal with via between them 😅 just positioned right where it needs to be.
Reactions
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/1f44d-27259.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png
[
{
"count": 1,
"emoji": {
"code": "thumbsup",
"id": "",
"imageUrl": "2026-06_media/1f44d-27259.svg",
"isAnimated": false,
"name": "👍"
},
"users": [
{
"avatarUrl": "2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png",
"color": null,
"discriminator": "0000",
"id": "691780627338625077",
"isBot": false,
"name": "rebelmike",
"nickname": "RebelMike"
}
]
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
"discriminator": "0000",
"isBot": false
},
"message": {
"inlineEmojis": [
{
"code": "sweat_smile",
"id": "",
"imageUrl": "2026-06_media/1f605-42B43.svg",
"isAnimated": false,
"name": "😅"
}
]
}
}
</details>message-1514928573998174288
2026-06-12T09:45:18.053+00:00 — Leo Moser (mole99) (@mole99)
- Message ID:
1514928573998174288 - Author ID:
323371864074485771 - Nickname: Leo Moser (mole99)
- User name: mole99
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1514928573998174288
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
And *if* you want to leave it up to the auto-router, you can now add NDRs directly via the LibreLane config 😉
https://github.com/FPGA-Research/heichips25-tapeout/blob/d555bbc58aad6cc54e0bc9ce81b75936db2df0d8/librelane/config.yaml#L253
Reactions
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/1f440-6C64D.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png
[
{
"count": 1,
"emoji": {
"code": "eyes",
"id": "",
"imageUrl": "2026-06_media/1f440-6C64D.svg",
"isAnimated": false,
"name": "👀"
},
"users": [
{
"avatarUrl": "2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png",
"color": null,
"discriminator": "0000",
"id": "691780627338625077",
"isBot": false,
"name": "rebelmike",
"nickname": "RebelMike"
}
]
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
"discriminator": "0000",
"isBot": false,
"roles": [
{
"color": null,
"id": "1423020172595298314",
"name": "Mod",
"position": 4
}
]
},
"message": {
"inlineEmojis": [
{
"code": "wink",
"id": "",
"imageUrl": "2026-06_media/1f609-9EC67.svg",
"isAnimated": false,
"name": "😉"
}
]
}
}
</details>message-1515106828151820589
2026-06-12T21:33:37.155+00:00 — RebelMike (@rebelmike)
- Message ID:
1515106828151820589 - Author ID:
691780627338625077 - Nickname: RebelMike
- User name: rebelmike
- Type:
Default - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1515106828151820589
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
- Archive source: https://discord.wafer.space/wafer-space/Information/questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Content
Thanks all, I’ve got tnt’s solution working and it’s building with no errors 🙂
Reactions
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/1f44d-27259.svg
- Resolved media URL: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06_media/aa8560ba40f1f3d339d044dee6970630-97A62.png
[
{
"count": 1,
"emoji": {
"code": "thumbsup",
"id": "",
"imageUrl": "2026-06_media/1f44d-27259.svg",
"isAnimated": false,
"name": "👍"
},
"users": [
{
"avatarUrl": "2026-06_media/aa8560ba40f1f3d339d044dee6970630-97A62.png",
"color": null,
"discriminator": "0000",
"id": "492702620759228416",
"isBot": false,
"name": "mattvenn",
"nickname": "Matt Venn"
}
]
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/49aaff687e56f04e7bbdedf0077bab75-7DDB4.png",
"discriminator": "0000",
"isBot": false
},
"message": {
"inlineEmojis": [
{
"code": "slight_smile",
"id": "",
"imageUrl": "2026-06_media/1f642-83E8A.svg",
"isAnimated": false,
"name": "🙂"
}
]
}
}
</details>message-1517258713147379743
2026-06-18T20:04:26.518+00:00 — namibj
- Message ID:
1517258713147379743 - Author ID:
262706220073222144 - Nickname: namibj
- User name: namibj
- Type:
Reply - Discord message: https://discord.com/channels/1361349522684510449/1514919594467393626/1517258713147379743
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/%E2%81%89%EF%B8%8F-questions/connecting-analog-pin-in-librelane-flow/2026-06/2026-06.json
Reply/reference
<details> <summary>Reference data</summary>{
"channelId": "1514919594467393626",
"guildId": "1361349522684510449",
"messageId": "1514928573998174288"
}
</details>Content
If that tooling _looked_ like it could be convinced to route my differential pairs at least approximately like pairs, I'd actually have tried to let it do at least the R part of the PnR for all but the blue and red zone and probably even the P part up to just before the last latch before the MUX between green and blue. In part because _some_ of the early latches are wastefully duplicated between the two to three instances of the bottom section (wired like the top section suggests... except that I forgot to draw a latch pair instead of just a single latch in the top section wherever I drew one; they are both to be preceded by an opposite-phase latch to make the entire green section take inputs all at the nicely same clock.
(Damn, upon further review, I'm annoyingly less confident about the exact nominal bit ordering on the serial side of the MUX structure...)
Attachments
<details> <summary>Attachments data</summary>[
{
"fileName": "mux_tree-C4_for_FIR.png",
"fileSizeBytes": 296824,
"id": "1517258712769757264",
"url": "2026-06_media/mux_tree-C4_for_FIR-89B59.png"
}
]
</details><details>
<summary>Other message metadata</summary>{
"author": {
"avatarUrl": "2026-06_media/f885abc0dddd0a33e4d4991b3c99091d-7ACD2.png",
"discriminator": "0000",
"isBot": false
},
"message": {
"mentions": [
{
"avatarUrl": "2026-06_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>