{
  "guild": {
    "id": "1361349522684510449",
    "name": "wafer.space Community",
    "iconUrl": "2025-12_media/fb143eaa45770cbb40493d09b625e98b-09FD1.png"
  },
  "channel": {
    "id": "1448681884409266308",
    "type": "GuildPublicThread",
    "categoryId": "1409660288822673408",
    "category": "questions",
    "name": "Slew and Cap Violations",
    "topic": null
  },
  "dateRange": {
    "after": "2025-11-30T23:59:59.999+00:00",
    "before": "2026-01-01T00:00:00+00:00"
  },
  "exportedAt": "2026-05-28T06:06:41.2073863+00:00",
  "messages": [
    {
      "id": "1448681884409266308",
      "type": "Default",
      "timestamp": "2025-12-11T14:24:36.451+00:00",
      "timestampEdited": "2025-12-11T14:42:22.03+00:00",
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "LibreLane says (https://librelane.readthedocs.io/en/stable/usage/timing_closure/index.html):\n\n\"Violating maximum capacitance and maximum transition constraints are OK if you don\u2019t have setup/hold vios. It is always good to check them as they are indicators of design issues. For example, a high capacitance on a net means high fanout and/or long interconnect. Also, high transition time means a high capacitive load and leads to a higher short circuit power and delays.\"\n\nMy design is passing timing, however I have massive slew and capacitance violations from:\n\nbidir_PAD[13] (inout)\nFanout: 1\nCap: 3.530755\nSlew: 99.174812\nDelay: 54.912\nTime 72.9128\n\nThis is roughly the same for every bidir_PAD.\n\nI've been trying to make the pad capacitance more realistic to the .lib files with no luck. Any ideas?",
      "author": {
        "id": "805909190333038612",
        "name": "trev5514",
        "discriminator": "0000",
        "nickname": "Trevor Peyton",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/2-ADBB4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448685620598673644",
      "type": "Default",
      "timestamp": "2025-12-11T14:39:27.228+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "That's unreadable ...",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448685801327296605",
      "type": "Default",
      "timestamp": "2025-12-11T14:40:10.317+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "put the full timing report as a .txt not pasted like that because with discord reformating it's impossible to read it unless you already knows what it says.",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448685943631384739",
      "type": "Default",
      "timestamp": "2025-12-11T14:40:44.245+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Also post a link to your repo so we can refer to the code and config.",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448686623309959280",
      "type": "Default",
      "timestamp": "2025-12-11T14:43:26.293+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "@tnt It was tab delimited, so I thought it was semi-redable sorry about that. Updated with a cleaner version.",
      "author": {
        "id": "805909190333038612",
        "name": "trev5514",
        "discriminator": "0000",
        "nickname": "Trevor Peyton",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/2-ADBB4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "596068704471482370",
          "name": "246tnt",
          "discriminator": "0000",
          "nickname": "tnt",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
        }
      ],
      "inlineEmojis": []
    },
    {
      "id": "1448686766675722291",
      "type": "Default",
      "timestamp": "2025-12-11T14:44:00.474+00:00",
      "timestampEdited": "2025-12-11T14:44:49.044+00:00",
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "My code is not open source, I'm using the default project-template sdc and config. The exception is a 90ns clock.",
      "author": {
        "id": "805909190333038612",
        "name": "trev5514",
        "discriminator": "0000",
        "nickname": "Trevor Peyton",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/2-ADBB4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448703684291854446",
      "type": "Reply",
      "timestamp": "2025-12-11T15:51:13.948+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "(my understanding is that this advice was intended for sky130; I do not know how well it applies to gf180mcu)",
      "author": {
        "id": "1187141985530818611",
        "name": "ravenslofty",
        "discriminator": "0000",
        "nickname": "Lofty",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/dd665ae27be32531af89aeb08fd05e04-1D5A4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "805909190333038612",
          "name": "trev5514",
          "discriminator": "0000",
          "nickname": "Trevor Peyton",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-12_media/2-ADBB4.png"
        }
      ],
      "reference": {
        "messageId": "1448681884409266308",
        "channelId": "1448681884409266308",
        "guildId": "1361349522684510449"
      },
      "inlineEmojis": []
    },
    {
      "id": "1448799177835413534",
      "type": "Default",
      "timestamp": "2025-12-11T22:10:41.383+00:00",
      "timestampEdited": "2025-12-11T22:11:36.907+00:00",
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "`DESIGN_REPAIR_MAX_SLEW_PCT`, `DESIGN_REPAIR_MAX_CAP_PCT`, `GRT_DESIGN_REPAIR_MAX_SLEW_PCT`, \n`GRT_DESIGN_REPAIR_MAX_CAP_PCT` (edit: and also limiting the max wire length)\nhelped on my design to get better slew/cap. But that slew seems to be very large. Which corner are you looking at?",
      "author": {
        "id": "270286460668739587",
        "name": "meinhard",
        "discriminator": "0000",
        "nickname": "Meinhard Kissich",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/5-E9BDB.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448839133522034860",
      "type": "Default",
      "timestamp": "2025-12-12T00:49:27.561+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "All of them!",
      "author": {
        "id": "805909190333038612",
        "name": "trev5514",
        "discriminator": "0000",
        "nickname": "Trevor Peyton",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/2-ADBB4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448839442801627400",
      "type": "Reply",
      "timestamp": "2025-12-12T00:50:41.299+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Awesome, didn't know about those, I'll give them a try.",
      "author": {
        "id": "805909190333038612",
        "name": "trev5514",
        "discriminator": "0000",
        "nickname": "Trevor Peyton",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/2-ADBB4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "270286460668739587",
          "name": "meinhard",
          "discriminator": "0000",
          "nickname": "Meinhard Kissich",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-12_media/5-E9BDB.png"
        }
      ],
      "reference": {
        "messageId": "1448799177835413534",
        "channelId": "1448681884409266308",
        "guildId": "1361349522684510449"
      },
      "inlineEmojis": []
    },
    {
      "id": "1448839817772269768",
      "type": "Default",
      "timestamp": "2025-12-12T00:52:10.699+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "So an update (still in progress):\n\nI removed the max_capacitance from the project template SDC and that seemed to help significantly, looks like things are falling back to the .lib files. Is there a major downside to doing this?",
      "author": {
        "id": "805909190333038612",
        "name": "trev5514",
        "discriminator": "0000",
        "nickname": "Trevor Peyton",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/2-ADBB4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1448841297304748042",
      "type": "Default",
      "timestamp": "2025-12-12T00:58:03.447+00:00",
      "timestampEdited": "2025-12-12T01:00:18.628+00:00",
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Also, this line is from the 7t std cell:\n\n```tcl\n# update these\nset ::env(OUTPUT_CAP_LOAD) \"72.91\" ; # femtofarad from pin I in liberty file\n```\n\nBut this is being applied / 1000 to all outputs in the project-template:\n\n```tcl\nset cap_load [expr $::env(OUTPUT_CAP_LOAD) / 1000.0]\nputs \"\\[INFO] Setting load to: $cap_load\"\nset_load $cap_load [all_outputs]\n```\n\nThis seems very low to me for output cells. I upped it to 25000  to have a cap of 25 and it removes most cap violations. Again can anyone inform me if this is a very bad idea and I'm missing something?",
      "author": {
        "id": "805909190333038612",
        "name": "trev5514",
        "discriminator": "0000",
        "nickname": "Trevor Peyton",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-12_media/2-ADBB4.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1449008065323204791",
      "type": "Default",
      "timestamp": "2025-12-12T12:00:44.041+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Hi @Trevor Peyton!\n\nThe default setting of `OUTPUT_CAP_LOAD` is intended to be used for macros, i.e., circuits that you integrate into a larger circuit.\nWhen we implement the macro, we want to consider the external capacitance, which, in the case of standard cells, could be a large buffer e.g. `mcu7t5v0__buf_16`.\nFrom what I see, the input capacitance of the `mcu7t5v0__buf_16` is ~0.03683 pF = 36.83 fF, so I'm not sure where the exact number here comes from, but it's close enough.\n\nNow, for a chip top-level design we should set `OUTPUT_CAP_LOAD` to the capacitance that is actually outside of your chip, i.e., whatever your chip will drive.\nHowever, if we think about it, from the point of view of the implementation it doesn't really matter what we set `OUTPUT_CAP_LOAD` to because OpenROAD can't resize that path anyway.\n\nThe reason is the following:\n\n```\ncore -> pad -> port -> external capacitance\n```\n\nOpenROAD can resize all of the paths inside the core. However, once a signal goes to the pad, that's it. The output of the pad is the bondpad, so nothing can be changed in that path.\n\nGiven that we set a very low output cap with 72.91 fF, and that the pad is a very strong driver (max cap of 30pF in the libs), I'm surprised that you see violations in this path. Also, increasing `OUTPUT_CAP_LOAD` should make it harder to meet the maximum capacitance limit.",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-12_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "805909190333038612",
          "name": "trev5514",
          "discriminator": "0000",
          "nickname": "Trevor Peyton",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-12_media/2-ADBB4.png"
        }
      ],
      "inlineEmojis": []
    }
  ],
  "messageCount": 13
}