This guide is an introduction to Rox. Rox is a hardware description language that tries to make it easier to design hardware components. Currently it only supports basic combinational logic, but eventually it should support sequential logic, easy-to-write finite state machines, and more complex pipelines.

Once the Rox program is complete, the rox compiler can be used to translate it to VHDL, which is supported by most hardware vendors. The current version generates entity files which can then be used inside external VHDL code. The generated entities are all synthesizable, so they can be used for both hardware synthesis and simulation.

Although the aim is that you shouldn't need to learn VHDL or Verilog if you know Rox, right now you need to know a little VHDL to use Rox.

About this guide

Just like Rox is not ready yet, this guide is incomplete. Since Rox is constantly changing, some features described here will change.

This guide assumes some basic knowledge of digital systems and programming. For example, this guide will not explain unsigned and two's-complement numbers.