removed unused modules for rtl
diff --git a/verilog/rtl/azadi_soc_top.v b/verilog/rtl/azadi_soc_top.v
index 177099b..4389a28 100644
--- a/verilog/rtl/azadi_soc_top.v
+++ b/verilog/rtl/azadi_soc_top.v
@@ -11022,180 +11022,6 @@
 		.Fflags_SO(Fflags_SO)
 	);
 endmodule
-module fifo_async (
-	clk_wr_i,
-	rst_wr_ni,
-	wvalid_i,
-	wready_o,
-	wdata_i,
-	wdepth_o,
-	clk_rd_i,
-	rst_rd_ni,
-	rvalid_o,
-	rready_i,
-	rdata_o,
-	rdepth_o
-);
-	parameter [31:0] Width = 16;
-	parameter [31:0] Depth = 3;
-	localparam [31:0] DepthW = $clog2(Depth + 1);
-	input wire clk_wr_i;
-	input wire rst_wr_ni;
-	input wire wvalid_i;
-	output wire wready_o;
-	input wire [Width - 1:0] wdata_i;
-	output wire [DepthW - 1:0] wdepth_o;
-	input wire clk_rd_i;
-	input wire rst_rd_ni;
-	output wire rvalid_o;
-	input wire rready_i;
-	output wire [Width - 1:0] rdata_o;
-	output wire [DepthW - 1:0] rdepth_o;
-	localparam [31:0] PTRV_W = $clog2(Depth);
-	function automatic [PTRV_W - 1:0] sv2v_cast_E27C2;
-		input reg [PTRV_W - 1:0] inp;
-		sv2v_cast_E27C2 = inp;
-	endfunction
-	localparam [PTRV_W - 1:0] DepthMinus1 = sv2v_cast_E27C2(Depth - 1);
-	localparam [31:0] PTR_WIDTH = PTRV_W + 1;
-	reg [PTR_WIDTH - 1:0] fifo_wptr;
-	reg [PTR_WIDTH - 1:0] fifo_rptr;
-	wire [PTR_WIDTH - 1:0] fifo_wptr_sync_combi;
-	reg [PTR_WIDTH - 1:0] fifo_rptr_sync;
-	wire [PTR_WIDTH - 1:0] fifo_wptr_gray_sync;
-	wire [PTR_WIDTH - 1:0] fifo_rptr_gray_sync;
-	reg [PTR_WIDTH - 1:0] fifo_wptr_gray;
-	reg [PTR_WIDTH - 1:0] fifo_rptr_gray;
-	wire fifo_incr_wptr;
-	wire fifo_incr_rptr;
-	wire empty;
-	wire full_wclk;
-	wire full_rclk;
-	assign wready_o = !full_wclk;
-	assign rvalid_o = !empty;
-	assign fifo_incr_wptr = wvalid_i & wready_o;
-	assign fifo_incr_rptr = rvalid_o & rready_i;
-	always @(posedge clk_wr_i or negedge rst_wr_ni)
-		if (!rst_wr_ni)
-			fifo_wptr <= {PTR_WIDTH {1'sb0}};
-		else if (fifo_incr_wptr)
-			if (fifo_wptr[PTR_WIDTH - 2:0] == DepthMinus1)
-				fifo_wptr <= {~fifo_wptr[PTR_WIDTH - 1], {PTR_WIDTH - 1 {1'b0}}};
-			else
-				fifo_wptr <= fifo_wptr + {{PTR_WIDTH - 1 {1'b0}}, 1'b1};
-	function automatic [PTR_WIDTH - 1:0] sv2v_cast_88E25;
-		input reg [PTR_WIDTH - 1:0] inp;
-		sv2v_cast_88E25 = inp;
-	endfunction
-	function automatic [PTR_WIDTH - 1:0] dec2gray;
-		input reg [PTR_WIDTH - 1:0] decval;
-		reg [PTR_WIDTH - 1:0] decval_sub;
-		reg [PTR_WIDTH - 2:0] decval_in;
-		reg unused_decval_msb;
-		begin
-			decval_sub = (sv2v_cast_88E25(Depth) - {1'b0, decval[PTR_WIDTH - 2:0]}) - 1'b1;
-			{unused_decval_msb, decval_in} = (decval[PTR_WIDTH - 1] ? decval_sub : decval);
-			dec2gray = {decval[PTR_WIDTH - 1], {1'b0, decval_in[PTR_WIDTH - 2:1]} ^ decval_in[PTR_WIDTH - 2:0]};
-		end
-	endfunction
-	always @(posedge clk_wr_i or negedge rst_wr_ni)
-		if (!rst_wr_ni)
-			fifo_wptr_gray <= {PTR_WIDTH {1'sb0}};
-		else if (fifo_incr_wptr)
-			if (fifo_wptr[PTR_WIDTH - 2:0] == DepthMinus1)
-				fifo_wptr_gray <= dec2gray({~fifo_wptr[PTR_WIDTH - 1], {PTR_WIDTH - 1 {1'b0}}});
-			else
-				fifo_wptr_gray <= dec2gray(fifo_wptr + {{PTR_WIDTH - 1 {1'b0}}, 1'b1});
-	prim_generic_flop_2sync #(.Width(PTR_WIDTH)) sync_wptr(
-		.clk_i(clk_rd_i),
-		.rst_ni(rst_rd_ni),
-		.d_i(fifo_wptr_gray),
-		.q_o(fifo_wptr_gray_sync)
-	);
-	function automatic [((PTR_WIDTH - 2) >= 0 ? PTR_WIDTH - 1 : 3 - PTR_WIDTH) - 1:0] sv2v_cast_F9964;
-		input reg [((PTR_WIDTH - 2) >= 0 ? PTR_WIDTH - 1 : 3 - PTR_WIDTH) - 1:0] inp;
-		sv2v_cast_F9964 = inp;
-	endfunction
-	function automatic [PTR_WIDTH - 1:0] gray2dec;
-		input reg [PTR_WIDTH - 1:0] grayval;
-		reg [PTR_WIDTH - 2:0] dec_tmp;
-		reg [PTR_WIDTH - 2:0] dec_tmp_sub;
-		reg unused_decsub_msb;
-		begin
-			dec_tmp[PTR_WIDTH - 2] = grayval[PTR_WIDTH - 2];
-			begin : sv2v_autoblock_106
-				reg signed [31:0] i;
-				for (i = PTR_WIDTH - 3; i >= 0; i = i - 1)
-					dec_tmp[i] = dec_tmp[i + 1] ^ grayval[i];
-			end
-			{unused_decsub_msb, dec_tmp_sub} = (sv2v_cast_F9964(Depth) - {1'b0, dec_tmp}) - 1'b1;
-			if (grayval[PTR_WIDTH - 1])
-				gray2dec = {1'b1, dec_tmp_sub};
-			else
-				gray2dec = {1'b0, dec_tmp};
-		end
-	endfunction
-	assign fifo_wptr_sync_combi = gray2dec(fifo_wptr_gray_sync);
-	always @(posedge clk_rd_i or negedge rst_rd_ni)
-		if (!rst_rd_ni)
-			fifo_rptr <= {PTR_WIDTH {1'sb0}};
-		else if (fifo_incr_rptr)
-			if (fifo_rptr[PTR_WIDTH - 2:0] == DepthMinus1)
-				fifo_rptr <= {~fifo_rptr[PTR_WIDTH - 1], {PTR_WIDTH - 1 {1'b0}}};
-			else
-				fifo_rptr <= fifo_rptr + {{PTR_WIDTH - 1 {1'b0}}, 1'b1};
-	always @(posedge clk_rd_i or negedge rst_rd_ni)
-		if (!rst_rd_ni)
-			fifo_rptr_gray <= {PTR_WIDTH {1'sb0}};
-		else if (fifo_incr_rptr)
-			if (fifo_rptr[PTR_WIDTH - 2:0] == DepthMinus1)
-				fifo_rptr_gray <= dec2gray({~fifo_rptr[PTR_WIDTH - 1], {PTR_WIDTH - 1 {1'b0}}});
-			else
-				fifo_rptr_gray <= dec2gray(fifo_rptr + {{PTR_WIDTH - 1 {1'b0}}, 1'b1});
-	prim_generic_flop_2sync #(.Width(PTR_WIDTH)) sync_rptr(
-		.clk_i(clk_wr_i),
-		.rst_ni(rst_wr_ni),
-		.d_i(fifo_rptr_gray),
-		.q_o(fifo_rptr_gray_sync)
-	);
-	always @(posedge clk_wr_i or negedge rst_wr_ni)
-		if (!rst_wr_ni)
-			fifo_rptr_sync <= {PTR_WIDTH {1'sb0}};
-		else
-			fifo_rptr_sync <= gray2dec(fifo_rptr_gray_sync);
-	assign full_wclk = fifo_wptr == (fifo_rptr_sync ^ {1'b1, {PTR_WIDTH - 1 {1'b0}}});
-	assign full_rclk = fifo_wptr_sync_combi == (fifo_rptr ^ {1'b1, {PTR_WIDTH - 1 {1'b0}}});
-	wire wptr_msb;
-	wire rptr_sync_msb;
-	wire [PTRV_W - 1:0] wptr_value;
-	wire [PTRV_W - 1:0] rptr_sync_value;
-	assign wptr_msb = fifo_wptr[PTR_WIDTH - 1];
-	assign rptr_sync_msb = fifo_rptr_sync[PTR_WIDTH - 1];
-	assign wptr_value = fifo_wptr[0+:PTRV_W];
-	assign rptr_sync_value = fifo_rptr_sync[0+:PTRV_W];
-	function automatic [DepthW - 1:0] sv2v_cast_703F8;
-		input reg [DepthW - 1:0] inp;
-		sv2v_cast_703F8 = inp;
-	endfunction
-	assign wdepth_o = (full_wclk ? sv2v_cast_703F8(Depth) : (wptr_msb == rptr_sync_msb ? sv2v_cast_703F8(wptr_value) - sv2v_cast_703F8(rptr_sync_value) : (sv2v_cast_703F8(Depth) - sv2v_cast_703F8(rptr_sync_value)) + sv2v_cast_703F8(wptr_value)));
-	assign empty = fifo_wptr_sync_combi == fifo_rptr;
-	wire rptr_msb;
-	wire wptr_sync_msb;
-	wire [PTRV_W - 1:0] rptr_value;
-	wire [PTRV_W - 1:0] wptr_sync_value;
-	assign wptr_sync_msb = fifo_wptr_sync_combi[PTR_WIDTH - 1];
-	assign rptr_msb = fifo_rptr[PTR_WIDTH - 1];
-	assign wptr_sync_value = fifo_wptr_sync_combi[0+:PTRV_W];
-	assign rptr_value = fifo_rptr[0+:PTRV_W];
-	assign rdepth_o = (full_rclk ? sv2v_cast_703F8(Depth) : (wptr_sync_msb == rptr_msb ? sv2v_cast_703F8(wptr_sync_value) - sv2v_cast_703F8(rptr_value) : (sv2v_cast_703F8(Depth) - sv2v_cast_703F8(rptr_value)) + sv2v_cast_703F8(wptr_sync_value)));
-	reg [Width - 1:0] storage [0:Depth - 1];
-	always @(posedge clk_wr_i)
-		if (~rst_wr_ni)
-			storage[fifo_wptr[PTR_WIDTH - 2:0]] <= {Width {1'sb0}};
-		else if (fifo_incr_wptr)
-			storage[fifo_wptr[PTR_WIDTH - 2:0]] <= wdata_i;
-	assign rdata_o = storage[fifo_rptr[PTR_WIDTH - 2:0]];
-endmodule
 module fifo_sync (
 	clk_i,
 	rst_ni,
@@ -17185,98 +17011,6 @@
 	assign NaN_b_SO = NaN_b_SP;
 	assign SNaN_SO = SNaN_SP;
 endmodule
-module prim_arbiter_ppc (
-	clk_i,
-	rst_ni,
-	req_i,
-	data_i,
-	gnt_o,
-	idx_o,
-	valid_o,
-	data_o,
-	ready_i
-);
-	parameter [31:0] N = 8;
-	parameter [31:0] DW = 32;
-	parameter [0:0] EnDataPort = 1;
-	parameter [0:0] EnReqStabA = 1;
-	localparam signed [31:0] IdxW = $clog2(N);
-	input wire clk_i;
-	input wire rst_ni;
-	input wire [N - 1:0] req_i;
-	input wire [(0 >= (N - 1) ? ((2 - N) * DW) + (((N - 1) * DW) - 1) : (N * DW) - 1):(0 >= (N - 1) ? (N - 1) * DW : 0)] data_i;
-	output wire [N - 1:0] gnt_o;
-	output reg [IdxW - 1:0] idx_o;
-	output wire valid_o;
-	output reg [DW - 1:0] data_o;
-	input wire ready_i;
-	generate
-		if (N == 1) begin : gen_degenerate_case
-			assign valid_o = req_i[0];
-			wire [DW:1] sv2v_tmp_10CA1;
-			assign sv2v_tmp_10CA1 = data_i[(0 >= (N - 1) ? 0 : N - 1) * DW+:DW];
-			always @(*) data_o = sv2v_tmp_10CA1;
-			assign gnt_o[0] = valid_o & ready_i;
-			wire [IdxW:1] sv2v_tmp_3D566;
-			assign sv2v_tmp_3D566 = {IdxW {1'sb0}};
-			always @(*) idx_o = sv2v_tmp_3D566;
-		end
-		else begin : gen_normal_case
-			wire [N - 1:0] masked_req;
-			reg [N - 1:0] ppc_out;
-			wire [N - 1:0] arb_req;
-			reg [N - 1:0] mask;
-			wire [N - 1:0] mask_next;
-			wire [N - 1:0] winner;
-			assign masked_req = mask & req_i;
-			assign arb_req = (|masked_req ? masked_req : req_i);
-			always @(*) begin
-				ppc_out[0] = arb_req[0];
-				begin : sv2v_autoblock_133
-					reg signed [31:0] i;
-					for (i = 1; i < N; i = i + 1)
-						ppc_out[i] = ppc_out[i - 1] | arb_req[i];
-				end
-			end
-			assign winner = ppc_out ^ {ppc_out[N - 2:0], 1'b0};
-			assign gnt_o = (ready_i ? winner : {N {1'sb0}});
-			assign valid_o = |req_i;
-			assign mask_next = {ppc_out[N - 2:0], 1'b0};
-			always @(posedge clk_i or negedge rst_ni)
-				if (!rst_ni)
-					mask <= {N {1'sb0}};
-				else if (valid_o && ready_i)
-					mask <= mask_next;
-				else if (valid_o && !ready_i)
-					mask <= ppc_out;
-			if (EnDataPort == 1) begin : gen_datapath
-				always @(*) begin
-					data_o = {DW {1'sb0}};
-					begin : sv2v_autoblock_134
-						reg signed [31:0] i;
-						for (i = 0; i < N; i = i + 1)
-							if (winner[i])
-								data_o = data_i[(0 >= (N - 1) ? i : (N - 1) - i) * DW+:DW];
-					end
-				end
-			end
-			else begin : gen_nodatapath
-				wire [DW:1] sv2v_tmp_546E1;
-				assign sv2v_tmp_546E1 = {DW {1'sb1}};
-				always @(*) data_o = sv2v_tmp_546E1;
-			end
-			always @(*) begin
-				idx_o = {IdxW {1'sb0}};
-				begin : sv2v_autoblock_135
-					reg [31:0] i;
-					for (i = 0; i < N; i = i + 1)
-						if (winner[i])
-							idx_o = i[IdxW - 1:0];
-				end
-			end
-		end
-	endgenerate
-endmodule
 module prim_clock_gating (
 	clk_i,
 	en_i,