---
page_id: curated-rtl
type: context-page
schema_version: 1
template_id: curated-knowledge
template_version: template-0.1.0
title: RTL, Synthesis, and Simulation
slug: curated-rtl
route: /digital-design/rtl-synthesis-and-simulation
section: reference
access: public
summary: RTL simulation, Yosys synthesis checks, gate-level tests, and regression isolation.
status: published
asset_base: .
home_href: /
md_url: /digital-design/rtl-synthesis-and-simulation.md
toc_enabled: true
talk_enabled: false
agent_view_enabled: true
copy_buttons_enabled: true
footer_enabled: true
search_indexed: true
tags: [wafer-space, knowledge-base, curated]
last_updated: 2026-08-19
talk_url: /digital-design/rtl-synthesis-and-simulation.talk.md
talk_route: /digital-design/rtl-synthesis-and-simulation/talk
---

# RTL, Synthesis, and Simulation

## Scope

This page covers checks before physical design: RTL simulation, Yosys synthesis, gate-level simulation, and reduced synthesis test cases. Physical timing closure belongs on [Timing and ECO](/digital-design/timing-and-eco).

## Confirmed practice

- **Confirmed fact — 2025-10-02:** The project-template example used cocotb 2.0.0 for both RTL and gate-level simulation. It also produced an open-PDK DRC/LVS-clean example with filler and seal-ring steps. [Evidence](/evidence/designing/project-template#message-1423349035892478074) ([Discord](https://discord.com/channels/1361349522684510449/1423348662318272592/1423349035892478074))
- **Confirmed fact — 2025-11-18:** When a Yosys check fails, inspect `yosys-synthesis.log` near `Executing CHECK pass`. Also inspect `reports/pre_synth_chk.rpt` when it exists. A later checker can repeat the failure without writing that report. [Evidence](/evidence/i-information/questions/threads/yosys-check-errors-found#message-1440439686526144552) ([Discord](https://discord.com/channels/1361349522684510449/1440427510159638538/1440439686526144552))

## Regression procedure

1. Save the failing RTL, parameters, exact command, Yosys version, template tag, and Nix lock.
2. Reduce the problem to a Yosys-only case when possible. In May 2026, a change between Yosys 0.64 and 0.65 was isolated this way and reported as a regression. [Evidence](/evidence/designing/project-template/threads/yosys-issue#message-1509289394022907985) ([Discord](https://discord.com/channels/1361349522684510449/1509285266941153461/1509289394022907985))
3. Test a pinned or corrected Yosys build, then run the full LibreLane CI path. The May 2026 fix was merged and the template was updated on 2026-05-29. [Evidence](/evidence/designing/project-template/threads/yosys-issue#message-1509880409511432323) ([Discord](https://discord.com/channels/1361349522684510449/1509285266941153461/1509880409511432323))
4. Re-run both RTL and gate-level tests after a synthesis-tool change. This final step is an inferred safety rule from the template's two simulation levels and the recorded synthesis regression. [Evidence](/evidence/designing/project-template#message-1423349035892478074) ([Discord](https://discord.com/channels/1361349522684510449/1423348662318272592/1423349035892478074)) [Regression evidence](/evidence/designing/project-template/threads/yosys-issue#message-1509880409511432323) ([Discord](https://discord.com/channels/1361349522684510449/1509285266941153461/1509880409511432323))

## Status boundaries

- **Obsolete guidance:** Temporary Yosys version overrides from May 2026 are not a current version recommendation. They show how to isolate a regression. The recorded fix was merged on 2026-05-29. [Evidence](/evidence/designing/project-template/threads/yosys-issue#message-1509880409511432323) ([Discord](https://discord.com/channels/1361349522684510449/1509285266941153461/1509880409511432323))
- **Open question:** The archive does not establish that cocotb 2.0.0 is still the current template version. The version is a dated 2025-10-02 fact. [Evidence](/evidence/designing/project-template#message-1423349035892478074) ([Discord](https://discord.com/channels/1361349522684510449/1423348662318272592/1423349035892478074))

## Related pages

- [Digital Design](/digital-design)
- [Timing and ECO](/digital-design/timing-and-eco)
- [Version Management](/librelane-and-tooling/version-management)
- [Tool Failures](/troubleshooting/tool-failures)

## Sources

- `1423349035892478074` — 2025-10-02T16:40:54.703+00:00 — Leo Moser (mole99) (@mole99) — cocotb RTL/GL tests and completed example flow. [Evidence](/evidence/designing/project-template#message-1423349035892478074) ([Discord](https://discord.com/channels/1361349522684510449/1423348662318272592/1423349035892478074))
- `1440439686526144552` — 2025-11-18T20:33:03.343+00:00 — aedancullen — Yosys log and report locations. [Evidence](/evidence/i-information/questions/threads/yosys-check-errors-found#message-1440439686526144552) ([Discord](https://discord.com/channels/1361349522684510449/1440427510159638538/1440439686526144552))
- `1509289394022907985` — 2026-05-27T20:17:12.776+00:00 — Leo Moser (mole99) (@mole99) — Yosys regression and reduced-case request. [Evidence](/evidence/designing/project-template/threads/yosys-issue#message-1509289394022907985) ([Discord](https://discord.com/channels/1361349522684510449/1509285266941153461/1509289394022907985))
- `1509880409511432323` — 2026-05-29T11:25:41.849+00:00 — Leo Moser (mole99) (@mole99) — fix merged and template updated. [Evidence](/evidence/designing/project-template/threads/yosys-issue#message-1509880409511432323) ([Discord](https://discord.com/channels/1361349522684510449/1509285266941153461/1509880409511432323))
