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.
Table of Contents
Export happens automatically
You normally never have to think about exporting. Every run command exports its results when its jobs complete:
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:
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:
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:
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/):
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:
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
Metrics
regex, csv, yaml, json, xml, benchmark or operation rules.Derived metrics
Results file format
meta field.