Public

Thread: Setup Violations in tt corners when using macros

11 Discord messages from ℹ️ - Information/⁉️-questions/threads/setup-violations-in-tt-corners-when-using-macros.md.

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

Messages: 11

message-1446150954536927232

2025-12-04T14:47:35.747+00:00 — Jonathan (@jonathan_ha_25034)

Content

Hi everyone, we are building our toplevel module out of several designs by using macros. We only have one clock input which is routed to all macros, but they do not run at the same clock frequency. Of course, the timing analysis finds Setup Violations in some macros if the toplevel period is smaller than the period of the macro. But how should we go about this? STA finds Setup Violations in the TT corners and then errors out. Is this fine if we know that the macro will never be used at this frequency or do we at least have to fix all errors?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/4-4551A.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446265210347458691

2025-12-04T22:21:36.455+00:00 — Tim 'mithro' Ansell (@mithro_)

Reply/reference

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

Content

I'm pretty sure the precheck does **not** do any timing analysis.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-12_media/4-4551A.png",
        "color": null,
        "discriminator": "0000",
        "id": "1152597572385525871",
        "isBot": false,
        "name": "jonathan_ha_25034",
        "nickname": "Jonathan",
        "roles": []
      }
    ]
  }
}
</details>

message-1446265704281280553

2025-12-04T22:23:34.218+00:00 — Tim 'mithro' Ansell (@mithro_)

Content

You might be able to do something trickly like put in a clock buffer per macro and use sdc to set the maximum frequency on the clock buffer output....
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446265812779405384

2025-12-04T22:24:00.086+00:00 — Tim 'mithro' Ansell (@mithro_)

Content

The Tiny Tapeout people like @tnt and @urish might have some other ideas?
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/9679bb77da48d47c905b398d98a83780-75B68.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-12_media/2b6c3aac0ae09fc8a72a4b2e17d7f9c9-39032.png",
        "color": null,
        "discriminator": "0000",
        "id": "732347216412278825",
        "isBot": false,
        "name": "urish",
        "nickname": "urish",
        "roles": [
          {
            "color": null,
            "id": "1423020172595298314",
            "name": "Mod",
            "position": 4
          }
        ]
      },
      {
        "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
        "color": null,
        "discriminator": "0000",
        "id": "596068704471482370",
        "isBot": false,
        "name": "246tnt",
        "nickname": "tnt",
        "roles": []
      }
    ]
  }
}
</details>

message-1446266546295934997

2025-12-04T22:26:54.97+00:00 — tnt (@246tnt)

Content

The pre-check doesn't do any STA indeed so if you're confident that the violations are false positives you can ignore it.  But you could also write a custom SDC that just sets up the constraints correctly for each submodule.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446412502681391195

2025-12-05T08:06:53.684+00:00 — Jonathan (@jonathan_ha_25034)

Reply/reference

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

Content

The precheck runs without problems. I was just concerned about the "make librelane" flow, since this one ends with an error due to Setup Violations in the tt corner in this case. Does an error prevent some part of the flow from being run? From the log files it seems that every step was executed
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/4-4551A.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-12_media/9679bb77da48d47c905b398d98a83780-75B68.png",
        "color": null,
        "discriminator": "0000",
        "id": "169786952432746498",
        "isBot": false,
        "name": "mithro_",
        "nickname": "Tim 'mithro' Ansell",
        "roles": []
      }
    ]
  }
}
</details>

message-1446412929351286865

2025-12-05T08:08:35.41+00:00 — tnt (@246tnt)

Content

No, STA errors won't prevent anything from running, they're just informations.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446412971134681203

2025-12-05T08:08:45.372+00:00 — tnt (@246tnt)

Content

If you get something in the `final` subdir, then all the steps ran.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>

message-1446413785215799448

2025-12-05T08:11:59.464+00:00 — Egor Lukyanchenko (@egorxe)

Reply/reference

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

Content

You can add "Checker.SetupViolations: null" to the substituting_steps section of config.yaml to stop the LibreLane from failing a flow on timing violations.
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/3-FB033.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2025-12_media/4-4551A.png",
        "color": null,
        "discriminator": "0000",
        "id": "1152597572385525871",
        "isBot": false,
        "name": "jonathan_ha_25034",
        "nickname": "Jonathan",
        "roles": []
      }
    ]
  }
}
</details>

message-1446414131451269180

2025-12-05T08:13:22.013+00:00 — Jonathan (@jonathan_ha_25034)

Content

Okay, thanks very much. I will try that 🙂
<details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/4-4551A.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_smile",
        "id": "",
        "imageUrl": "2025-12_media/1f642-83E8A.svg",
        "isAnimated": false,
        "name": "🙂"
      }
    ]
  }
}
</details>

message-1446414877324218538

2025-12-05T08:16:19.843+00:00 — tnt (@246tnt)

Content

Oh, looks like my info is outdated, I wasn't even aware that flow failed on STA violation now, sorry about that.

Reactions

<details> <summary>Reactions data</summary>
[
  {
    "count": 1,
    "emoji": {
      "code": "thumbsup",
      "id": "",
      "imageUrl": "2025-12_media/1f44d-27259.svg",
      "isAnimated": false,
      "name": "👍"
    },
    "users": [
      {
        "avatarUrl": "2025-12_media/4-4551A.png",
        "color": null,
        "discriminator": "0000",
        "id": "1152597572385525871",
        "isBot": false,
        "name": "jonathan_ha_25034",
        "nickname": "Jonathan"
      }
    ]
  }
]
</details><details> <summary>Other message metadata</summary>
{
  "author": {
    "avatarUrl": "2025-12_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
</details>