HOTAS controller with an FPGA based RISC-V CPU

This time around I wanted to look at building an actual device with an FPGA, and also improve the design to be better than the previous example.

This project will focus on building a HOTAS (hands on throttle and stick) controller that we can plug into a PC and play some simulation games with. One could always use an existing cheap board for this purpose, but the idea here is to show how one might achieve the same with an FPGA board with a few inputs and limited resources.

For this one we’ll be building a setup with means to read some digital input from a few magnetic position sensors, an UART interface to talk to the PC and two RISC-V cores with the base instruction set. In addition to the base instruction set, we’ll be adding some timers, a few necessary CSR registers and an interrupt mechanism so that we can handle device input asynchronously.

There will be many fun things to look at along the way, including and not limited to:

  • Using an AXI4 bus
  • Implementing a simple bus arbitrator
  • Device memory mapping
  • CPU caches
  • External devices
  • Interrupt handling
  • Dual core code execution
  • Firmware
  • Device – PC interface and software layer

Stay tuned for more details in the upcoming weeks.