Skip to content
Enes Cavus
All projects
FPGA06 / 20

FPGA Encoder IP

A VHDL IP core that reads absolute encoders over SSI — clocking the position word out serially, much like an SPI master.

1Features

  • Reads absolute encoders over SSI (synchronous serial interface)
  • Acts as the master: drives the clock and shifts in the position word
  • SPI-like serial read over just a clock and a data line
  • Written in VHDL and packaged as a reusable Vivado IP block

2Specifications

Interface
SSI
Behaviour
SPI-like master
Language
VHDL
Toolchain
Vivado

3Figure 1 — Board

FPGA Encoder IP

4On the bench

5Description

Many absolute encoders report their position over SSI: the reader drives a clock, and the encoder shifts its position word out one bit per edge. In practice it behaves a lot like an SPI read, over just a clock and a data line.

I wrote the reader in VHDL and packaged it as a Vivado IP block, so an FPGA design can drop it in and get the encoder position without re-implementing the protocol each time.

6Design tools

VivadoVHDL