Some minor updates to the testbench Makefiles and verilog.
diff --git a/verilog/dv/caravel/mgmt_soc/gpio/Makefile b/verilog/dv/caravel/mgmt_soc/gpio/Makefile
index 95fcbf5..dd34c59 100644
--- a/verilog/dv/caravel/mgmt_soc/gpio/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/gpio/Makefile
@@ -14,7 +14,7 @@
 hex:  ${PATTERN:=.hex}
 
 %.vvp: %_tb.v %.hex
-	iverilog -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
+	iverilog -DFUNCTIONAL -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
 	$< -o $@
 
 %.vcd: %.vvp
diff --git a/verilog/dv/caravel/mgmt_soc/gpio/gpio.c b/verilog/dv/caravel/mgmt_soc/gpio/gpio.c
index 0d9caf5..4dbacc6 100644
--- a/verilog/dv/caravel/mgmt_soc/gpio/gpio.c
+++ b/verilog/dv/caravel/mgmt_soc/gpio/gpio.c
@@ -4,35 +4,35 @@
 
 /*
 	GPIO Test
-		Tests PU and PD on the lower 8 pins while being driven from outside
-		Tests Writing to the upper 8 pins
-		Tests reading from the lower 8 pins
+		Tests PU and PD on the lower 2 pins while being driven from outside
+		Tests Writing to the upper 2 pins
+		Tests reading from the lower 2 pins
 */
 void main()
 {
 	int i;
 
-	/* Lower 8 pins are input and upper 8 pins are o/p */
+	/* Lower 2 pins are input and upper 2 pins are o/p */
 	reg_gpio_data = 0;
-	reg_gpio_ena =  0x00ff;
+	reg_gpio_ena =  0x0003;
 
 	// change the pull up and pull down (checked by the TB)
-	reg_gpio_data = 0xA000;
-	reg_gpio_pu = 0x000f;
-	reg_gpio_pd = 0x00f0;
+	reg_gpio_data = 0x0100;
+	reg_gpio_pu = 0x0001;
+	reg_gpio_pd = 0x0002;
 
-	reg_gpio_data = 0x0B00;
-	reg_gpio_pu = 0x00f0;
-	reg_gpio_pd = 0x000f;
+	reg_gpio_data = 0x0300;
+	reg_gpio_pu = 0x0002;
+	reg_gpio_pd = 0x0001;
 
-	reg_gpio_pu = 0x000f;
-	reg_gpio_pd = 0x00f0;
+	reg_gpio_pu = 0x0001;
+	reg_gpio_pd = 0x0002;
 
-	// read the lower 8 pins, add 1 then o/p the result
+	// read the lower 2 pins, add 1 then o/p the result
 	// checked by the TB
-	reg_gpio_data = 0xAB00;
+	reg_gpio_data = 0x0100;
 	while (1){
-		int x = reg_gpio_data & 0xff;
+		int x = reg_gpio_data & 0x03;
 		reg_gpio_data = (x+1) << 8;
 	}
 }
diff --git a/verilog/dv/caravel/mgmt_soc/gpio/gpio.hex b/verilog/dv/caravel/mgmt_soc/gpio/gpio.hex
index dd2e7fe..667a214 100755
--- a/verilog/dv/caravel/mgmt_soc/gpio/gpio.hex
+++ b/verilog/dv/caravel/mgmt_soc/gpio/gpio.hex
@@ -6,7 +6,7 @@
 13 09 00 00 93 09 00 00 13 0A 00 00 93 0A 00 00 

 13 0B 00 00 93 0B 00 00 13 0C 00 00 93 0C 00 00 

 13 0D 00 00 93 0D 00 00 13 0E 00 00 93 0E 00 00 

-13 0F 00 00 93 0F 00 00 17 05 00 00 13 05 05 17 

+13 0F 00 00 93 0F 00 00 17 05 00 00 13 05 45 16 

 93 05 00 00 13 06 00 00 63 D8 C5 00 14 41 94 C1 

 11 05 91 05 E3 CC C5 FE 13 05 00 00 93 05 00 00 

 63 57 B5 00 23 20 05 00 11 05 E3 4D B5 FE 71 28 

@@ -20,13 +20,12 @@
 23 20 75 00 11 05 83 23 05 00 FD 1F E3 96 0F FC 

 FD 15 F1 F1 63 04 0F 00 23 20 75 00 13 03 00 08 

 A3 81 62 00 82 80 01 00 00 00 01 11 22 CE 00 10 

-B7 07 00 21 23 A0 07 00 B7 07 00 21 91 07 13 07 

-F0 0F 98 C3 B7 07 00 21 29 67 98 C3 B7 07 00 21 

-A1 07 3D 47 98 C3 B7 07 00 21 B1 07 13 07 00 0F 

-98 C3 B7 07 00 21 05 67 13 07 07 B0 98 C3 B7 07 

-00 21 A1 07 13 07 00 0F 98 C3 B7 07 00 21 B1 07 

-3D 47 98 C3 B7 07 00 21 A1 07 3D 47 98 C3 B7 07 

-00 21 B1 07 13 07 00 0F 98 C3 B7 07 00 21 2D 67 

-13 07 07 B0 98 C3 B7 07 00 21 9C 43 93 F7 F7 0F 

-23 26 F4 FE 83 27 C4 FE 85 07 13 97 87 00 B7 07 

-00 21 98 C3 CD B7 00 00 

+B7 07 00 21 23 A0 07 00 B7 07 00 21 91 07 0D 47 

+98 C3 B7 07 00 21 13 07 00 10 98 C3 B7 07 00 21 

+A1 07 05 47 98 C3 B7 07 00 21 B1 07 09 47 98 C3 

+B7 07 00 21 13 07 00 30 98 C3 B7 07 00 21 A1 07 

+09 47 98 C3 B7 07 00 21 B1 07 05 47 98 C3 B7 07 

+00 21 A1 07 05 47 98 C3 B7 07 00 21 B1 07 09 47 

+98 C3 B7 07 00 21 13 07 00 10 98 C3 B7 07 00 21 

+9C 43 8D 8B 23 26 F4 FE 83 27 C4 FE 85 07 13 97 

+87 00 B7 07 00 21 98 C3 D5 B7 00 00 

diff --git a/verilog/dv/caravel/mgmt_soc/gpio/gpio_tb.v b/verilog/dv/caravel/mgmt_soc/gpio/gpio_tb.v
index fa095eb..41856ac 100644
--- a/verilog/dv/caravel/mgmt_soc/gpio/gpio_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/gpio/gpio_tb.v
@@ -20,8 +20,6 @@
 
 `timescale 1 ns / 1 ps
 
-`define FUNCTIONAL
-
 `include "caravel.v"
 `include "spiflash.v"
 
@@ -128,7 +126,7 @@
 		.vdd3v3	  (VDD3V3),
 		.vdd1v8	  (VDD1V8),
 		.vss	  (VSS),
-		.clock	  (CLOCK),
+		.clock	  (clock),
 		.SDI	  (SDI),
 		.SDO	  (SDO),
 		.CSB	  (CSB),
diff --git a/verilog/dv/caravel/mgmt_soc/hkspi/Makefile b/verilog/dv/caravel/mgmt_soc/hkspi/Makefile
index 18a1606..31a859c 100644
--- a/verilog/dv/caravel/mgmt_soc/hkspi/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/hkspi/Makefile
@@ -14,7 +14,7 @@
 hex:  ${PATTERN:=.hex}
 
 %.vvp: %_tb.v %.hex
-	iverilog -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
+	iverilog -DFUNCTIONAL -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
 	$< -o $@
 	
 %.vcd: %.vvp
diff --git a/verilog/dv/caravel/mgmt_soc/mem/Makefile b/verilog/dv/caravel/mgmt_soc/mem/Makefile
index 3f25ca2..02e036b 100644
--- a/verilog/dv/caravel/mgmt_soc/mem/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/mem/Makefile
@@ -15,7 +15,7 @@
 hex:  ${PATTERN:=.hex}
 
 %.vvp: %_tb.v %.hex
-	iverilog -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
+	iverilog -DFUNCTIONAL -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
 	$< -o $@
 
 %.vcd: %.vvp
diff --git a/verilog/dv/caravel/mgmt_soc/mprj_ctrl/Makefile b/verilog/dv/caravel/mgmt_soc/mprj_ctrl/Makefile
index ed08e54..e60de7e 100644
--- a/verilog/dv/caravel/mgmt_soc/mprj_ctrl/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/mprj_ctrl/Makefile
@@ -14,7 +14,7 @@
 hex:  ${PATTERN:=.hex}
 
 %.vvp: %_tb.v %.hex
-	iverilog -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
+	iverilog -DFUNCTIONAL -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
 	$< -o $@
 
 %.vcd: %.vvp
diff --git a/verilog/dv/caravel/mgmt_soc/perf/Makefile b/verilog/dv/caravel/mgmt_soc/perf/Makefile
index bb9c3ba..00c9aee 100644
--- a/verilog/dv/caravel/mgmt_soc/perf/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/perf/Makefile
@@ -14,7 +14,7 @@
 hex:  ${PATTERN:=.hex}
 
 %.vvp: %_tb.v %.hex
-	iverilog -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
+	iverilog -DFUNCTIONAL -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
 	$< -o $@
 	
 %.vcd: %.vvp
diff --git a/verilog/dv/caravel/mgmt_soc/sysctrl/Makefile b/verilog/dv/caravel/mgmt_soc/sysctrl/Makefile
index dbd8e0d..28c604b 100644
--- a/verilog/dv/caravel/mgmt_soc/sysctrl/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/sysctrl/Makefile
@@ -14,7 +14,7 @@
 hex:  ${PATTERN:=.hex}
 
 %.vvp: %_tb.v %.hex
-	iverilog -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
+	iverilog -DFUNCTIONAL -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
 	$< -o $@
 
 %.vcd: %.vvp
diff --git a/verilog/dv/caravel/mgmt_soc/uart/Makefile b/verilog/dv/caravel/mgmt_soc/uart/Makefile
index 835a68f..0957ab9 100644
--- a/verilog/dv/caravel/mgmt_soc/uart/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/uart/Makefile
@@ -15,7 +15,7 @@
 hex:  ${PATTERN:=.hex}
 
 %.vvp: %_tb.v %.hex
-	iverilog -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
+	iverilog -DFUNCTIONAL -I $(BEHAVIOURAL_MODELS)-I $(IP_PATH) -I $(RTL_PATH) \
 	$< -o $@
 
 %.vcd: %.vvp
diff --git a/verilog/dv/caravel/mgmt_soc/uart/uart.c b/verilog/dv/caravel/mgmt_soc/uart/uart.c
index bf21144..bd4b67d 100644
--- a/verilog/dv/caravel/mgmt_soc/uart/uart.c
+++ b/verilog/dv/caravel/mgmt_soc/uart/uart.c
@@ -1,5 +1,5 @@
 #include "../../defs.h"
-#include "../stub.c"
+#include "../../stub.c"
 
 // --------------------------------------------------------
 
@@ -12,16 +12,16 @@
 	// Divided by clkdiv is 64 kHz
 	// So at this crystal rate, use clkdiv = 4167 for 9600 baud.
 
-	/* All GPIO pins are configured to be output */
+	/* Both GPIO pins are configured to be output */
 	reg_gpio_data = 0;
 	reg_gpio_ena =  0x0000;
 
 	// start test
-	reg_gpio_data = 0xA000;
+	reg_gpio_data = 0x0001;
 
 	// This should appear at the output, received by the testbench UART.
     print("\n");
 	print("Monitor: Test UART (RTL) passed\n\n");
-	reg_gpio_data = 0xAB00;
+	reg_gpio_data = 0x0002;
 }
 
diff --git a/verilog/dv/caravel/mgmt_soc/uart/uart.hex b/verilog/dv/caravel/mgmt_soc/uart/uart.hex
new file mode 100755
index 0000000..bb0c729
--- /dev/null
+++ b/verilog/dv/caravel/mgmt_soc/uart/uart.hex
@@ -0,0 +1,36 @@
+@00000000

+93 00 00 00 93 01 00 00 13 02 00 00 93 02 00 00 

+13 03 00 00 93 03 00 00 13 04 00 00 93 04 00 00 

+13 05 00 00 93 05 00 00 13 06 00 00 93 06 00 00 

+13 07 00 00 93 07 00 00 13 08 00 00 93 08 00 00 

+13 09 00 00 93 09 00 00 13 0A 00 00 93 0A 00 00 

+13 0B 00 00 93 0B 00 00 13 0C 00 00 93 0C 00 00 

+13 0D 00 00 93 0D 00 00 13 0E 00 00 93 0E 00 00 

+13 0F 00 00 93 0F 00 00 17 05 00 00 13 05 45 1B 

+93 05 00 00 13 06 00 00 63 D8 C5 00 14 41 94 C1 

+11 05 91 05 E3 CC C5 FE 13 05 00 00 93 05 00 00 

+63 57 B5 00 23 20 05 00 11 05 E3 4D B5 FE 11 22 

+01 A0 01 00 B7 02 00 28 13 03 00 12 23 90 62 00 

+A3 81 02 00 05 C6 21 4F 93 73 F6 0F 93 DE 73 00 

+23 80 D2 01 93 EE 0E 01 23 80 D2 01 86 03 93 F3 

+F3 0F 7D 1F E3 14 0F FE 23 80 62 00 A1 C9 13 0F 

+00 02 83 23 05 00 A1 4F 93 DE F3 01 23 80 D2 01 

+93 EE 0E 01 23 80 D2 01 83 CE 02 00 93 FE 2E 00 

+93 DE 1E 00 86 03 B3 E3 D3 01 7D 1F 63 17 0F 00 

+23 20 75 00 11 05 83 23 05 00 FD 1F E3 96 0F FC 

+FD 15 F1 F1 63 04 0F 00 23 20 75 00 13 03 00 08 

+A3 81 62 00 82 80 01 00 00 00 01 11 06 CE 22 CC 

+00 10 AA 87 A3 07 F4 FE 03 47 F4 FE A9 47 63 14 

+F7 00 35 45 DD 37 B7 07 00 20 91 07 03 47 F4 FE 

+98 C3 01 00 F2 40 62 44 05 61 82 80 01 11 06 CE 

+22 CC 00 10 23 26 A4 FE 19 A8 83 27 C4 FE 13 87 

+17 00 23 26 E4 FE 83 C7 07 00 3E 85 7D 37 83 27 

+C4 FE 83 C7 07 00 F5 F3 01 00 F2 40 62 44 05 61 

+82 80 41 11 06 C6 22 C4 00 08 B7 07 00 20 13 07 

+10 27 98 C3 B7 07 00 21 23 A0 07 00 B7 07 00 21 

+91 07 23 A0 07 00 B7 07 00 21 05 47 98 C3 B7 07 

+00 10 13 85 47 20 59 3F B7 07 00 10 13 85 87 20 

+71 37 B7 07 00 21 09 47 98 C3 01 00 B2 40 22 44 

+41 01 82 80 0A 00 00 00 4D 6F 6E 69 74 6F 72 3A 

+20 54 65 73 74 20 55 41 52 54 20 28 52 54 4C 29 

+20 70 61 73 73 65 64 0A 0A 00 00 00 

diff --git a/verilog/dv/caravel/mgmt_soc/uart/uart_tb.v b/verilog/dv/caravel/mgmt_soc/uart/uart_tb.v
index 80bc0b4..4f879fe 100644
--- a/verilog/dv/caravel/mgmt_soc/uart/uart_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/uart/uart_tb.v
@@ -50,7 +50,7 @@
 
 		$display("Wait for UART o/p");
 		repeat (150) begin
-			repeat (10000) @(posedge XCLK);
+			repeat (10000) @(posedge clock);
 			// Diagnostic. . . interrupts output pattern.
 		end
 		$finish;