Results & Export

A job leaves behind a work directory full of tool reports, logs and outputs. Odatix turns that into results: a list of records, each tying a design + configuration + target to the metrics measured for it — area, timing, Fmax, power, simulation cycles, whatever your workflow reports.

Results are written to the results/ directory as plain YAML files. Those files are the input of Odatix Explorer, and they are readable and diffable on their own.

Export happens automatically

You normally never have to think about exporting. Every run command exports its results when its jobs complete:

Terminal
odatix fmax --tool vivado      # runs the jobs, then exports the results

Pass -e/--noexport when you want the jobs only — for instance because you plan to launch several batches and export once at the end:

Terminal
odatix fmax --tool vivado -e   # run only, no export

Nothing is lost by skipping the export: metrics are extracted from the work directories at export time, not while the job runs. As long as the work directories are still there, you can export whenever you want, as many times as you want.

Exporting manually

That same property is what makes manual export useful: if a metric was missing or wrong, fix its definition and re-export — no job has to be re-run.

Command Exports
odatix results Synthesis, custom-frequency and place & route results, then derived metrics.
odatix res_synth Synthesis, custom-frequency and place & route results only.
odatix res_simulation Simulation results only.
odatix res_workflow Workflow results only.
odatix res_benchmark Benchmark (simulation) values only.
odatix res_derived Recompute derived metrics over the result files already on disk.

Each command exports the job types it owns, so a full post-processing pass after a mixed batch is explicit:

Terminal
odatix res_synth       # synthesis and place & route
odatix res_simulation  # values defined in simulations/*/_metrics.yml
odatix res_workflow    # values defined in workflows/*/_metrics.yml
odatix res_derived     # join and compute cross-source metrics

odatix results is the convenient shorthand after a synthesis run: it exports the synthesis and P&R results, then recomputes derived metrics using any simulation and workflow result files already present. It does not rebuild those files — use res_simulation and res_workflow for that.

Useful options for odatix results:

Terminal
odatix results -u              # include benchmark values
odatix results -f csv          # format: csv, yml, or all
odatix results -t vivado -r results
Option Meaning
-u Include benchmark values in the export.
-f, --format Output format: csv, yml or all.
-t, --tool Restrict the export to a given tool.
-r Results directory to write to.

Metrics come with the tools

You do not have to declare anything to get results. Every EDA tool shipped with Odatix comes with its own metrics.yml, which already defines the values worth extracting from that tool’s reports — LUT and register counts, BRAM and DSP usage, Fmax, area, static and dynamic power, and so on. Run a Vivado synthesis and you get the Vivado metrics; run Design Compiler and you get the Design Compiler ones.

Those definitions are just YAML, and they are not a closed list. You can add your own metrics to a tool, or define metrics for your own workflows and simulations in their _metrics.yml file, using regex, csv, yaml, json, xml, benchmark or operation rules. Anything your tool or your script writes to a file can become a metric.

Linking results from different sources

A metric extracted this way can only describe the job that produced it. But the interesting numbers often span job types: a simulation knows how many cycles a benchmark takes, a synthesis knows at what frequency the design closes timing — neither can state a runtime on its own.

Derived metrics close that gap. Declared once for the whole workspace in odatix_userconfig/derived_metrics.yml, they can import a metric from another result — matched on architecture, configuration, target, parameter domains — and compute new values from it. Cycles + Fmax gives runtime; runtime + power gives energy per operation.

Because they are recomputed from the existing result files, odatix res_derived applies them in seconds, without touching a single job.

Explore the results

Point Odatix Explorer at the results directory (the default is results/):

Terminal
odatix-explorer
odatix-explorer --input results

From there you can compare configurations, correlate metrics and export figures — see Odatix Explorer.

Cleaning up

Result files are small; the work directories they were extracted from are not. Once you are satisfied with the exported results, remove the work directories with a cleanup profile:

Terminal
odatix clean
odatix clean -i odatix_userconfig/clean.yml

The profile’s remove_list (see Configuration reference) lists the glob patterns to delete. Keep in mind that once the work directories are gone, re-exporting is no longer possible — only res_derived, which works from the result files themselves, still is.

In this section