
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 |