Public

Thread: Via arrays

8 Discord messages from ℹ️ - Information/⁉️-questions/threads/via-arrays.md.

Category: ℹ️ - Information Parent channel: #⁉️-questions Thread ID: 1442863453663658076

Messages: 8

message-1442863453663658076

2025-11-25T13:04:14.46+00:00 — tnt (@246tnt)

Content

Rule `Vn.2b` "Vian Space in 4x4 or larger Vian array".
So is a 2x5   or a  2x10 array larger ? Like is it the number of via or the X/Y repeats (one or both?) that need to be larger ?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1442880086524039360

2025-11-25T14:10:20.043+00:00 — tnt (@246tnt)

Content

Both KLayout DRC deck and the magic via generation seem to agree that an array of 2xM (for any M) doesn't need the larger spacing.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1442880224348995707

2025-11-25T14:10:52.903+00:00 — tnt (@246tnt)

Content

However OpenROAD doesn't seem to agree and `pdngen` uses the larger spacing and it seem to use it all the time.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1442916846306197546

2025-11-25T16:36:24.258+00:00 — Leo Moser (mole99) (@mole99)

Content

Good question 😄
OpenROAD uses what is defined in the techlef, right? So this is what came from GF. However, when they created the techlef, it may have been simpler for them to just use the larger spacing for all via arrays.

We could give it a try and see if any DRC violations are flagged when we submit the design.
<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": "smile",
        "id": "",
        "imageUrl": "2025-11_media/1f604-BF863.svg",
        "isAnimated": false,
        "name": "😄"
      }
    ]
  }
}
</details>

message-1442917036236869774

2025-11-25T16:37:09.541+00:00 — Leo Moser (mole99) (@mole99)

Content

PS: I would have interpreted it in the same way as KLayout and magic.
<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-1442918168418058403

2025-11-25T16:41:39.474+00:00 — tnt (@246tnt)

Content

Yeah, I checked the techlef. It looks correct.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1442918351725789226

2025-11-25T16:42:23.178+00:00 — tnt (@246tnt)

Content

Or at least as correct as it can be ... turns out you can't define something special for > 4x4 arrays, it's _always_ 3x3 arrays ...
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-11_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1442918600301220052

2025-11-25T16:43:22.443+00:00 — tnt (@246tnt)

Content

I was trying to follow the code that generates / selects the via in pdngen but ... I got lost and I have to finish the power gates first. I will resume digging into the OR code once I'm done with those.

Reactions

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