Skip to content

Martoni/chisNesPad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chisNesPad

Chisel Super Nes pad controller

Intro

Control Super Nes pad controller with a chisel component. Git subproject named chisverilogutils is used for cocotb waveform generation and for formal prove injection, then to clone this project ::

$ git clone https://github.com/Martoni/chisNesPad.git

Chisel

Description code is under directory src/main/scala/chisnespad/. To generate verilog synthesizable code do following ::

$ sbt "runMain chisnespad.ChisNesPad"

Cocotb

Some packages must be installed before to launch cocotb simulation :

  • cocotb:
$ python3 -m pip install cocotb
  • cocotbify:
$ cd /opt
$ git clone https://github.com/Martoni/chisverilogutils.git
$ cd chisverilogutils/cocotbify/
$ python3 -m pip install -e .

Testbench code is done with Python Cocotb package in directory cocotb/chisenespad/. To launch tests do following::

$ cd cocotb/chisenespad/
$ make

Yosys-smtbmc

Formal description and prove are in directory formal/. To launch prove do following::

$ cd formal
$ make

chisverilogutils

Tools from chisverilogutils are required for this project. See the project readme for install instruction.

fpgamacro

fpgamacro dependency is automatically cloned and installed for this project.

Ressources

SNES pad is composed of two 4021 shift buffers. The pinout is given here and a datasheet of shift register can be found here