Ergodex · Chip Design
VT01 Ibex ECO
The task
You have 8 hours of wall-clock time for this task. Your machine has 8 CPU cores, 64 GiB of RAM and no GPU. When the time is up, you are stopped and your work is graded as it stands.
Timing ECO on a routed Ibex core
We have a routed Ibex core on Nangate45 (ibex_core) which requires an ECO step to improve its timing and ECP. The current design meets 2.2 ns clock with 33 ps of slack, an effective clock period (ECP) of 2.167 ns. Bring the ECP down as far as possible, changing or removing at most 104 existing cells and adding at most 104, while equivalence checks (LEC) against the RTL pass. The ECO spec, what you may change, and sign-off and LEC rules are in /task/eco_spec.md. The key instructions are:
- Write the ECO only via
/app/eco.tcl, plus anyhooks/*.tclandhelpers/*.pyit sources. Nothing else in/appmay change. - Added cells must be combinational: no new flops, latches, clock gates, clock nets or anything that may drive a clock net.
- LEC is sequential, with registers matched to the RTL by name, which means keeping register instance names (or Q-net names) with no retiming, added latency or new timing exceptions.
- Keep setup and hold met, stay within the area, power and wirelength caps in
/task/contract.json, and pass the physical sign-off checks. orfs-agent-run ecois a quick trial from the routed checkpoint.orfs-agent-run finishrebuilds the prefix from RTL, applies your ECO and reroutes, as sign-off does.
The session will end without warning, and the sign-off process uses whatever is in /app then. Sign-off reruns the rebuild and your ECO from /app in a clean environment, and that must finish within 2.5 hours.