sandbox/fpga/tinyfpga/TinyAdder
Kyle Isom b70f066f25 fpga: 7-segment test on TinyFPGA. 2019-01-02 14:58:17 -08:00
..
Makefile TinyAdder: remove unused pins from constraints, add Makefile. 2018-12-29 11:08:26 -08:00
README.md TinyAdder: Add docs, organise things, updated EAGLE files. 2018-12-29 10:49:04 -08:00
SegmentLCD.v fpga: 7-segment test on TinyFPGA. 2019-01-02 14:58:17 -08:00
TinyAdder.v TinyAdder: clean up top-level. 2018-12-29 11:10:02 -08:00
apio.ini Update FPGA experiments. 2018-12-28 20:45:02 -08:00
install_apio.sh Update FPGA experiments. 2018-12-28 20:45:02 -08:00
pins.pcf TinyAdder: remove unused pins from constraints, add Makefile. 2018-12-29 11:08:26 -08:00
tinyadder_r2.brd Update FPGA experiments. 2018-12-28 20:45:02 -08:00
tinyadder_r2.sch Update FPGA experiments. 2018-12-28 20:45:02 -08:00
tinyadder_r3.brd TinyAdder: Add docs, organise things, updated EAGLE files. 2018-12-29 10:49:04 -08:00
tinyadder_r3.sch TinyAdder: Add docs, organise things, updated EAGLE files. 2018-12-29 10:49:04 -08:00

README.md

TinyAdder

TinyAdder is a 4-bit adder built on the TinyFPGA BX. It connects four slide switches (I wanted actual toggle switches, but that's how it goes) to a pair of 7-segment LCD displays.

Code organisation

Currently there are two modules:

  • SegmentLCD: a little awkwardly named due to the naming constraints, but this takes a 4-bit input number and outputs a 7-bit output. The hookup requirements are described in the module comments.
  • TinyAdder: This is the top-level adder.

Hardware revisions

  • rev1 (2018-12-22)
  • rev2 (2018-12-22): realised that the LCDs were missing resistors; I had been looking at a tutorial that used a shift register; the shift register apparently had an internal current limiter so I assumed the LCDs didn't need them. This was wrong. Fortunately I was able to cancel the rev1 order before it went out.
  • rev3 (2018-12-28): after breadboarding the push button, I realised I'd messed up the schematic (and accordingly, the board) by wiring both ends of the push buttons to Vcc, which... isn't very useful at all. I fixed it, but not before the rev2 was sent to the fab.

TODO

  • I'd like to have the two displays show the two numbers before adding them. The 'hi' display could show the first addend, and the 'low' could show the second addend, with live updating.