Public

Thread: Filler script

11 Discord messages from πŸ“ - Designing/πŸ“-project-template/threads/filler-script.md.

Category: πŸ“ - Designing Parent channel: #πŸ“-project-template Thread ID: 1423349035892478074

Messages: 11

message-1423356248396529724

2025-10-02T17:09:34.298+00:00 β€” htamas (@h.tamas)

Reply/reference

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

Content

<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/1-B2132.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-10_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-1423356252250963999

2025-10-02T17:09:35.217+00:00 β€” htamas (@h.tamas)

Content

Oh, I wanted to give you some feedback regarding the filler script, as of a week ago. We tried to use the version at the time for generating fill on tinytapeout-gf-0p1, and we got some drc violations from the calibre deck. Since we don't have the deck ourselves (nor calibre for that matter) and didn't have a great feedback loop, we had to eventually back out from it and return to a more basic fill, but we have the drc report and you might make good use of it:
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/1-B2132.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1423356270567489607

2025-10-02T17:09:39.584+00:00 β€” htamas (@h.tamas)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "ttgf0p1_v19.drc.tar.gz",
    "fileSizeBytes": 66871,
    "id": "1423356269829554216",
    "url": "2025-10_media/ttgf0p1_v19.drc.tar-0CACB.gz"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/1-B2132.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1423356304474247259

2025-10-02T17:09:47.668+00:00 β€” htamas (@h.tamas)

Content

The corresponding gds is `ttgf0p1_v19.fill.gds` from here:
https://github.com/TinyTapeout/tinytapeout-gf-0p1/releases/tag/v19
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/1-B2132.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1423356351999901819

2025-10-02T17:09:58.999+00:00 β€” htamas (@h.tamas)

Content

And this is my copy of the version of the filler script we used:
https://github.com/htfab/ttgf0p1-pdk-snapshot/tree/main/gf180mcuD/libs.tech/klayout/tech/drc/filler_generation
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/1-B2132.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1423358482597413027

2025-10-02T17:18:26.973+00:00 β€” Leo Moser (mole99) (@mole99)

Content

Thanks a lot Tamas! I'll definitely check it out.
The filler script still needs some updates, only yesterday I implemented the stagger along the x and y axis.
What basic fill did you resort to?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>

message-1423362604751130655

2025-10-02T17:34:49.771+00:00 β€” htamas (@h.tamas)

Reply/reference

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

Content

I manually drew some [fill cells](https://github.com/TinyTapeout/tinytapeout-gf-0p1/blob/main/top/macros/fill/fill.gds) and then used klayout's Edit -> Utilities -> Fill Tool to generate a grid fill (setting the excluded layers as specified by the drc rules, and using 2um spacing around excluded areas). Note that we were close to the density and didn't need to add a lot of fill. Also we didn't generate fill for poly2 as it already had the right density and we were in "if it ain't broken, don't fix it" mode.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-10_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "πŸ‘"
    },
    "users": [
      {
        "avatarUrl": "2025-10_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-10_media/1-B2132.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-10_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-1423371927917039616

2025-10-02T18:11:52.587+00:00 β€” Leo Moser (mole99) (@mole99)

Content

Getting the tapeout done is of course of highest priority!

Matthias is currently working on some filler improvements for KLayout. Once these are ready, I'd like to convert the Ruby script to a DRC-only script :)

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-10_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "πŸ‘"
    },
    "users": [
      {
        "avatarUrl": "2025-10_media/1-B2132.png",
        "color": null,
        "discriminator": "0000",
        "id": "543162393413287956",
        "isBot": false,
        "name": "h.tamas",
        "nickname": "htamas"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>

message-1425375339709861930

2025-10-08T06:52:43.18+00:00 β€” Leo Moser (mole99) (@mole99)

Content

Attachments

<details> <summary>Attachments data</summary>
[
  {
    "fileName": "Bildschirmfoto_vom_2025-10-06_14-50-57.png",
    "fileSizeBytes": 5674,
    "id": "1425375339500142683",
    "url": "2025-10_media/Bildschirmfoto_vom_2025-10-06_14-50-57-27FA6.png"
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>

message-1425375361226510449

2025-10-08T06:52:48.31+00:00 β€” Leo Moser (mole99) (@mole99)

Content

It seems that a number of the DRC errors are caused by not taking euclidean distances into account.

I'm currently implementing some of the dummy fill DRC rules to catch those issues, after which I will look into fixing them in the filler generation script.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>

message-1425377835953946694

2025-10-08T07:02:38.331+00:00 β€” Leo Moser (mole99) (@mole99)

Content

I ignored the other DRC rules (DPF.12, DPF.13, DM.4_DM.6 and DM.5_DM.7) on purpose for now,  as I would like to see if it is possible to waive them.

Essentially, these rules prevent you from placing fill where there is active metal below or above it. For a very dense layout, this means that you can place almost no fill at all.

See here: https://gf180mcu-pdk.readthedocs.io/en/latest/physical_verification/design_manual/drm_13_3.html

For example, all the standard cells contain poly2, so I cannot place any M1 fill above it - which doesn't really make sense? I'm not sure if this is for manufacturability reasons or to prevent capacitive coupling.

Let's see what GF will say.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-10_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
</details>