dau_core.exp_generator

Renders the fixed-point exp tile from a declared operating point.

The datapath is dau_core.fixed_point.ExpDatapath and the emitted SystemVerilog mirrors ExpDatapath.evaluate() step for step, so the cocotb bench can compare against it with zero tolerance like every other tile. The operating point – internal precision, table size, polynomial degree, whether Horner steps round – arrives as configuration, which is why this is a generator and not a checked-in file: the 256-entry table of 2**(j/256) is a function of those parameters and SystemVerilog cannot compute it.

The datapath is PIPELINED, one multiply per stage, chosen after measuring what a multiply costs rather than from the estimate this docstring used to quote. Measured on the dpv1 Artix (2026-08-09, the registry’s points): 50 DSP48s at the exact point and 20 at the light one, against 740 on the part. Folding onto a shared multiplier would cut that to roughly a ninth, but at one row per nine cycles against sqrt’s and divide’s one per three – the tile would become the bottleneck of any chain it joined.

Classes

ExpTileGenerator

Renders dau_fixed_point_exp for one operating point.

Module Contents

class dau_core.exp_generator.ExpTileGenerator(/, **data: Any)[source]

Bases: dau_core.generators.CoreGenerator

Renders dau_fixed_point_exp for one operating point.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

module: str = 'dau_fixed_point_exp'
datapath: dau_core.fixed_point.ExpDatapath
property source_name: str
__call__(context: dau_core.generators.RenderContext) → dau_core.generators.RenderedCore[source]

This method produces the result for the given context.

Instead of passing the context, one can pass an object that pydantic will try to validate as the context. Additionally, if kwargs are passed instead of the context, it will use these to construct the context.