Updated the user_proj_example
diff --git a/verilog/dv/FPU_Half/FPU_Half.c b/verilog/dv/FPU_Half/FPU_Half.c
index 5e5befc..7a575db 100644
--- a/verilog/dv/FPU_Half/FPU_Half.c
+++ b/verilog/dv/FPU_Half/FPU_Half.c
@@ -65,7 +65,7 @@
// Configure LA probes as inputs to the cpu put zero
// Configure LA probes as outputs from the cpu put one
-
+ reg_la0_oenb = reg_la0_iena = 0x00000000; // configuring as output
reg_la2_oenb = reg_la2_iena = 0x00000002; // 65 bit as input to user proj and output from cpu for reset
reg_la2_data = 0x00000000; // reset
reg_la2_data = 0x00000002;
diff --git a/verilog/dv/FPU_Half/FPU_Half_tb.v b/verilog/dv/FPU_Half/FPU_Half_tb.v
index c8b94f8..6dd3d8b 100644
--- a/verilog/dv/FPU_Half/FPU_Half_tb.v
+++ b/verilog/dv/FPU_Half/FPU_Half_tb.v
@@ -15,7 +15,7 @@
`default_nettype wire
-`timescale 1 ns / 1 ps
+//`timescale 1 ns / 1 ps
//`include "uprj_netlists.v"
//`include "caravel_netlists.v"
@@ -63,17 +63,19 @@
initial begin
wait(mprj_ready == 1'b1)
// Observe Output pins [23:8] for multliplication_table
- wait(mprj_io_0 == 16'd5);
- wait(mprj_io_0 == 16'd10);
- wait(mprj_io_0 == 16'd15);
- wait(mprj_io_0 == 16'd20);
- wait(mprj_io_0 == 16'd25);
- wait(mprj_io_0 == 16'd30);
+ wait(mprj_io_0 == 16'h4000);
+ wait(mprj_io_0 == 16'h4020);
+ wait(mprj_io_0 == 16'h4060);
+ wait(mprj_io_0 == 16'h4090);
+ wait(mprj_io_0 == 16'h40b0);
+ wait(mprj_io_0 == 16'h40d0);
+ wait(mprj_io_0 == 16'hC158);
+ wait(mprj_io_0 == 16'hC178);
- $display("MPRJ-IO state = %d", mprj_io[23:8]);
+ $display("MPRJ-IO state = %h", mprj_io[23:8]);
`ifdef GL
- $display("Monitor: Test 1 Mega-Project IO (GL) Passed");
+ $display("Monitor: Test 1 Mega-Project IO (GL) Passed");
`else
$display("Monitor: Test 1 Mega-Project IO (RTL) Passed");
`endif
@@ -105,9 +107,9 @@
power4 <= 1'b1;
end
- //always @(mprj_io) begin
- // #1 $display("MPRJ-IO state = %d, at time = %0t ", mprj_io[23:8], $time);
- //end
+ always @(mprj_io_0) begin
+ #1 $display("MPRJ-IO state = %h, at time = %0t ", mprj_io[23:8], $time);
+ end
wire flash_csb;
wire flash_clk;
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index 9224a38..ad7cc28 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -89,13 +89,16 @@
// IRQ
assign irq = 3'b000; // Unused
- // LA
- assign la_data_out = {{127{1'b0}}};
+ // Ouptut at LA bits [31:16]
+ assign la_data_out[15:0] = 16'h0000;
+ assign la_data_out[31:16] = (&la_oenb[31:16]) ? FPU_hp_result : 16'h0000;
+ assign la_data_out[127:32] = {(127-BITS){1'b0}};
// Assuming LA probes [65:64] are for controlling the count clk & reset
assign clk = (~la_oenb[64]) ? la_data_in[64] : wb_clk_i;
assign rst = (~la_oenb[65]) ? la_data_in[65] : ~wb_rst_i;
+
// Initiation of TOP Module
FPU_FSM_TOP FPU_Half_Precision_Top (
`ifdef USE_POWER_PINS