CLKS per bit pin added
diff --git a/verilog/dv/FPU_Half/FPU_Half.c b/verilog/dv/FPU_Half/FPU_Half.c index 7a575db..5e98b57 100644 --- a/verilog/dv/FPU_Half/FPU_Half.c +++ b/verilog/dv/FPU_Half/FPU_Half.c
@@ -65,10 +65,13 @@ // 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_la0_oenb = reg_la0_iena = 0xFFFF0000; // CLK per Bit input + reg_la1_oenb = reg_la1_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_la0_data = 0x015C0000; // CLK per bit reg_la2_data = 0x00000000; // reset reg_la2_data = 0x00000002; + reg_la2_oenb = reg_la2_iena = 0x00000000; // 64 anf 65 bit as input to user proj and output from cpu //reg_la1_oenb = reg_la1_iena = 0x00000000;
diff --git a/verilog/rtl/FPU/FPU_FSM_TOP.v b/verilog/rtl/FPU/FPU_FSM_TOP.v index b2f55b8..8095aac 100644 --- a/verilog/rtl/FPU/FPU_FSM_TOP.v +++ b/verilog/rtl/FPU/FPU_FSM_TOP.v
@@ -62,6 +62,7 @@ // FPU FSM input clk, input rst_l, + input [15:0] CLKS_PER_BIT, output [15:0] FPU_hp_result // FPU FSM @@ -148,7 +149,7 @@ .i_Clock(clk), .rst_ni(rst_l), .i_Rx_Serial(r_Rx_Serial), - .CLKS_PER_BIT(16'd348), + .CLKS_PER_BIT(CLKS_PER_BIT), .o_Rx_DV(o_Rx_DV), .o_Rx_Byte(o_Rx_Byte) );
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v index d369405..222fde8 100644 --- a/verilog/rtl/user_proj_example.v +++ b/verilog/rtl/user_proj_example.v
@@ -73,6 +73,7 @@ wire rst; wire rx_i; wire [15:0] FPU_hp_result; + wire [15:0] CLKS_PER_BIT; wire [`MPRJ_IO_PADS-1:0] io_in; wire [`MPRJ_IO_PADS-1:0] io_out; @@ -91,14 +92,15 @@ assign irq = 3'b000; // Unused // 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}}; + assign la_data_out[31:0] = 32'h00000000; + assign la_data_out[47:32] = (&la_oenb[47:32]) ? FPU_hp_result : 16'h0000; + assign la_data_out[127:48] = {79{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; - + assign CLKS_PER_BIT = (la_oenb[31:16] == 16'h0000) ? la_data_in[31:16] : 16'd348; + // Initiation of TOP Module FPU_FSM_TOP FPU_Half_Precision_Top ( @@ -109,6 +111,7 @@ .clk(clk), .rst_l(rst), .r_Rx_Serial(rx_i), + .CLKS_PER_BIT(CLKS_PER_BIT), .FPU_hp_result(FPU_hp_result) );