The samples of the data input pin are shifted into a shift register first. After that the 2 most significant bits of the shift register are used to detect the current signal state (high, low) and the edge events (rising edge, falling edge). There are 4 different states/events displayed on the 7 segment display.
| state/event | segments on |
|---|---|
| high | a |
| low | d |
| rising edge | e and f |
| falling edge | b and c |
The edge events duration is extended by counters, so the events can actually be seen by the human eye.
You can test by using the dip switch connected to io_in[2] as data input. I plan to connect a wire to the pin on the PCB by PMOD connector or custom soldering to be able to have a "measurement probe". ;-)
no external HW required
| # | Input | Output |
|---|---|---|
| 0 | clock | segment a |
| 1 | reset | segment b |
| 2 | data input | segment c |
| 3 | segment d | |
| 4 | segment e | |
| 5 | segment f | |
| 6 | segment g | |
| 7 | dot |