The objective of this lab is to extend the functionality of our seven segment display from lab 1 to that of a 16-bit hexadecimal counter. It shall count up from 0x0000 to 0xFFFF. This can be achieved by adding a time multiplexer to the original design
Note: to be able to do this the blue jumper on the Nexys DDR board must be set to QSPI, not JTAG.
The time multiplexer is used so that we can switch between individual segments of the 7 segment display rapidly. In essence, we show the first digit, turn it off, show the second digit, turn it off, etc... If we do this fast enough (~60Hz) it appears as if all of the segments are displaying numbers continuously. The architecture implemented is shown below.
Implements base functionality of the seven segment display. It maps binary inputs to set outputs on the display so that the appropriate LED's are powered. It also determines which anode line is activated, which controls power to each of the 4 displays.
This code simply sends out an incremental binary signal for every clock cycle. Additionally, it cycles through the individual segments of the display.
You can see here that the display functions properly and counts from 0x0000 to 0xFFFF in hexadecimal. Additionally, the "refresh rate" of the multiplexer is high enough for the camera to only be able to see all segments activated simultaneously.