I tested using the incrementing byte pattern that vram is initialized too by file vram_test.txt, and then loading the canvas.html page on the standalone D1-mini programmer with the relevant "verbose = true" in function romulatorReadVramBlock() in module libRomulatorDebug.cpp to print out the returned data values.
To produce a parity error to test the FPGA I forced a send of 0x22 to the FPGA when a specific vram address was accessed and looked at the data returned by the FPGA.
The error in the FPGA verilog code is in the VERIFY_PARITY_BYTE section of the state machine in "diagnostics.v". Change line 219 from "if (rx_dv <= 1'b1)" to "if (rx_dv == 1'b1)"
VERIFY_PARITY_BYTE:
begin
tx_dv <= 0;
// if (rx_dv <= 1'b1)
if (rx_dv == 1'b1)
begin
if (rx_byte == PARITY_ERROR)
begin
vram_address <= vram_address - 8;
end
state <= NEXT_VRAM_BYTE;
end
end
Now that "if (rx_dv == 1'b1)" is functioning properly, the D1-mini code needs to be modified in file "libRomulatorDebug.cpp".
Between lines 356 and 357 add
// Advance FPGA so it can prepare the next vram byte for sending over SPI.
xfer(0x0);
A similar change should also be made on the Raspberry Pi code for that version of debugger.
I tested using the incrementing byte pattern that vram is initialized too by file vram_test.txt, and then loading the canvas.html page on the standalone D1-mini programmer with the relevant "verbose = true" in function romulatorReadVramBlock() in module libRomulatorDebug.cpp to print out the returned data values.
To produce a parity error to test the FPGA I forced a send of 0x22 to the FPGA when a specific vram address was accessed and looked at the data returned by the FPGA.
The error in the FPGA verilog code is in the VERIFY_PARITY_BYTE section of the state machine in "diagnostics.v". Change line 219 from "if (rx_dv <= 1'b1)" to "if (rx_dv == 1'b1)"
Now that "if (rx_dv == 1'b1)" is functioning properly, the D1-mini code needs to be modified in file "libRomulatorDebug.cpp".
Between lines 356 and 357 add
// Advance FPGA so it can prepare the next vram byte for sending over SPI.
xfer(0x0);
A similar change should also be made on the Raspberry Pi code for that version of debugger.