Architecture Examples

An architecture is a design plus the recipe that turns it into a family of configurations: where its sources live, which top level to implement, and which parameters to sweep. The seven examples below are all shipped in a fresh workspace, and all of them run out of the box once an EDA tool is installed.

They are ordered by what they add, not by size. Read the counter first if you want the shortest complete example; read the Cordic if you want to see everything at once.

What these examples demonstrate, together
  • Delimiter-based substitution with no markers in the RTL — the existing parameter declaration is the delimiter, so sources stay synthesizable outside Odatix.
  • Four RTL languages, plus Chisel and C++ — Verilog, SystemVerilog, VHDL, Scala and a design that only becomes RTL when a generator or a high-level synthesis is run.
  • Parameter domains — several parameters swept independently and combined automatically.
  • Generated configurations — sweeps described by a variable and a template instead of a directory of files.
  • Multi-file designs and synthesis wrappers — packages, submodules, and a top level whose only job is to register the boundary.
  • Simulation with several tools — each testbench reporting its own metrics.

The examples

At a glance

Example Languages Parameters Adds
Cordic VHDL, SystemVerilog 2 domains simulation with four tools, testbench metrics
Counter Verilog, SystemVerilog, VHDL, Chisel 1 domain the same sweep in four languages
ALU SystemVerilog, Chisel 1 domain multiple source files, synthesis wrapper, ambiguous delimiters
Multiplier & Shift Register SystemVerilog 1 domain two designs sharing one set of configuration files
Sine ROM Chisel 2 domains generated configurations, formatted names
Configuration generation — 10 settings files every variable type, side by side
FIR filter (HLS) C++ 3 variables RTL generated by high-level synthesis, pragmas swept from the command line

Running them

Tutorials

Step-by-step instructions to run the examples, and understand how Odatix works.
Browse the tutorials