Friday, August 12, 2022

Feedback and diagnostic information brought to LEDs on the Virtual 2315 Cartridge FPGA board

AVAILABLE INPUT OUTPUT DEVICES ON THE ARTY S7 FPGA BOARD

The FPGA board I use for this project has a number of user inputs and outputs that I decided to put to use. There are four slide switches, four pushbuttons, four white LEDs and two tri-color LEDs on the board. 

The FPGA board

USING FOUR SWITCHES TO SELECT 16 SETS OF SIGNALS TO FOUR LEDS

As I was limited on output indicators, I chose to use the four slide switches to route signals to the four LEDs. For each of the sixteen binary values set on the switches, I route a different four signals to the LEDs. 

TRICOLOR LEDS USED FOR OPERATING CONDITION STATUS

The board has two tricolor LEDs, with individually selected red, green and blue LEDs inside the package. While these can be set to a wide range of colors by modulating the brightness of the three colors, interpreting subtle shade differences didn't seem useful.

As a result I set these up so that in most cases they would glow in one distinct color to highlight various conditions. One of them displays normal state information, the other displays if there are high level error conditions. 

The status LED is blue when the board is set to communicate with the Arduino, off when set to operate with the drive or green during reading or red during writing. 

The error LED is green when no error exists. If we caught an error during write and locked up the drive, it is red, while if there have been errors on the SPI link to the Arduino we light it blue. 

PUSHBUTTONS PROVIDE FOR RESETS AND TEST ACTIVATION

There are four pushbuttons plus the reset button on the FPGA board. One button will reassert the power-on reset condition to put all the logic back in its initial state. Another will reset the latch set whenever there has been an SPI link error. By pushing that button and observing how long the error lamp stays green instead of blue, the user can get an idea of the rate of errors on the link.

The other two buttons have no real function. For convenience I wired one to pulse the Access Go signal, thus changing the cylinder number in accordance with the step size and movement direction signals. The other button triggers a push of a read from RAM with whatever address happens to be set up, primarily to allow observation of a RAM access cycle.  I will change these to something more useful when come up with a use. 

No comments:

Post a Comment