JAC-EE / tt08-SegDecode-ASIC

ASIC implementation of a university CPLD project which drives 4 multiplexed 7 segment displays, and scans a multiplexed keypad.
Apache License 2.0
0 stars 0 forks source link

Tiny Tapeout project - 7 segment display driver

How it works

The serial protocol implemented in this design consists of a simple single byte packet which instructs the CPLD which column of the keypad to multiplex into MISO, which screen should be displaying data, and what number should be displayed on the screen. The screen select signal also doubles up as instructing which row of the keypad to be scanned. Data is sent Most Significant Bit (MSB) first.

SPI Protocol visual bit representations

SPI Protocol bit definitions

SPI example byte 0xD7

Verilog block diagram

The high impedance programming state is not implemented in this ASIC. It is represented as a bit out instead.

Keep in mind: This system is clocked by the SPI clock, and therefore requires constant clocking to function.

How to test

Build the supporting hardware as described in the schematic found in "Exteral hardware". Create a system which transmits SPI bytes, according to specifications in "How it works". The system will display your desired digits on the selected screens.
You may also use the MISO to implement a 4x4 keypad, which is interpreted by the system creating the SPI bytes. This will not be detailed as to how to implement.

External hardware

Main external system schematic:

Main schematic

Simple keypad:

Keypad schematic

3D View

68747470733a2f2f6a61632d65652e6769746875622e696f2f747430382d5365674465636f64652d415349432f6764735f72656e6465722e706e67