Display Troubleshooting
Speeding up the display
I found that my display emulation circuit was slowing down the
simulation by a factor of 4, so I replaced it with a multiplexed
design. I changed the "Input Format" of the LED Matrix components to
"Select Rows/Colums" and eliminated the flip-flops from the panel
driver circuit. With 864 fewer flip flops, the simulation now runs only
50% slower than it did before I added the display.
The panel driver now simply provides row/column select signals for the LED matrices:
![](logisim/panel-driver-2.png)
I also removed the flip-flop that was holding a value for the display
data input line and replaced it with a gate that pulses the input
during the second half of each refresh cycle. With the "Light
Persistence" parameter of the LED matrices set to 3500 ticks (slightly
longer than a complete display refresh) this produces a stable display.
![](logisim/display-mod-1.png)
Memory Write Glitches
I found that spurious changes were occurring to the memory contents
since I added the display. I fixed this by gating WMEM with TWRITE, so
that memory writes only occur during the CPU Write phase. The previous
gating of WMEM with RUNCLK was removed.
New gating:
![](logisim/wmem_gating.png)
New main memory subcircuit:
![](logisim/main_memory_3.png)