Updated GPIO test to set the success pin high before the test starts, so that if it fails on the first test its more clear.
diff --git a/verilog/dv/peripheralsGPIO/peripheralsGPIO.c b/verilog/dv/peripheralsGPIO/peripheralsGPIO.c
index 1325ed6..9655a15 100644
--- a/verilog/dv/peripheralsGPIO/peripheralsGPIO.c
+++ b/verilog/dv/peripheralsGPIO/peripheralsGPIO.c
@@ -115,6 +115,10 @@
reg_mprj_xfer = 1;
while (reg_mprj_xfer == 1) {}
+ // Setup test output
+ bool testPass = true;
+ wbWrite (GPIO0_OUTPUT_ADDR, 0x1 << 12);
+
wbWrite (GPIO0_OE_ADDR, ~0x3F000);
wbWrite (GPIO0_OUTPUT_ADDR, 0x1 << 14);
wbWrite (GPIO0_OUTPUT_ADDR, 0x3 << 14);
@@ -125,30 +129,28 @@
wbWrite (GPIO0_OUTPUT_ADDR, 0x8 << 14);
wbWrite (GPIO0_OUTPUT_ADDR, 0);
- bool inputTestPass = true;
-
wbWrite (GPIO1_OE_ADDR, ~0x00000);
- nextTest (inputTestPass);
+ nextTest (testPass);
uint32_t ioData = wbRead (GPIO1_INPUT_ADDR);
- wbWrite (GPIO0_OUTPUT_ADDR, (inputTestPass ? 0x1 << 12 : 0) | (ioData << 15));
- if (ioData != 0x2) inputTestPass = false; // input = 2'b10
+ wbWrite (GPIO0_OUTPUT_ADDR, (testPass ? 0x1 << 12 : 0) | (ioData << 15));
+ if (ioData != 0x2) testPass = false; // input = 2'b10
- nextTest (inputTestPass);
+ nextTest (testPass);
ioData = wbRead (GPIO1_INPUT_ADDR);
- wbWrite (GPIO0_OUTPUT_ADDR, (inputTestPass ? 0x1 << 12 : 0) | (ioData << 15));
- if (ioData != 0x1) inputTestPass = false; // input = 2'b01
+ wbWrite (GPIO0_OUTPUT_ADDR, (testPass ? 0x1 << 12 : 0) | (ioData << 15));
+ if (ioData != 0x1) testPass = false; // input = 2'b01
- nextTest (inputTestPass);
+ nextTest (testPass);
ioData = wbRead (GPIO1_INPUT_ADDR);
- wbWrite (GPIO0_OUTPUT_ADDR, (inputTestPass ? 0x1 << 12 : 0) | (ioData << 15));
- if (ioData != 0x3) inputTestPass = false; // input = 2'b11
+ wbWrite (GPIO0_OUTPUT_ADDR, (testPass ? 0x1 << 12 : 0) | (ioData << 15));
+ if (ioData != 0x3) testPass = false; // input = 2'b11
- nextTest (inputTestPass);
+ nextTest (testPass);
ioData = wbRead (GPIO1_INPUT_ADDR);
- wbWrite (GPIO0_OUTPUT_ADDR, (inputTestPass ? 0x1 << 12 : 0) | (ioData << 15));
- if (ioData != 0) inputTestPass = false; // input = 2'b00
+ wbWrite (GPIO0_OUTPUT_ADDR, (testPass ? 0x1 << 12 : 0) | (ioData << 15));
+ if (ioData != 0) testPass = false; // input = 2'b00
// Finish test
- nextTest (inputTestPass);
+ nextTest (testPass);
}