Skip to content

EMA core (the multiply-add cousin of the MAC engine) #6

@tylrcc

Description

@tylrcc

A natural second block: an exponential moving average. ema = ema + alpha * (px - ema), one multiply and a couple of adds per tick, no window buffer at all, so it is simpler than the MAC engine in a lot of ways.

Goal: rtl/ema_engine.v with a configurable alpha in Q16.16, plus the matching golden model and a self-checking testbench, following the same pattern as the MAC engine (model is the source of truth, testbench replays its vectors).

Why this is a good first issue: it reuses the whole verification scaffold that already exists, so you can copy the MAC engine flow and focus on the (small) datapath.

Done when: ema_engine.v matches its golden model and runs in CI next to the MAC engine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions