summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_ctz.sv
blob: f1075d7de9f30d7c45232bc67a82fa808689636b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Count trailing zeros (ctz), clz al revés
module gfx_ctz
#(int WIDTH = 0)
(
	input  logic                  clk,

	input  logic[WIDTH - 1:0]     value,
	output logic[$clog2(WIDTH):0] ctz
);

	logic[WIDTH - 1:0] value_rev;

	gfx_clz #(WIDTH) clz
	(
		.clk,
		.value(value_rev),
		.clz(ctz)
	);

	always_comb
		for (int i = 0; i < $bits(value); ++i)
			value_rev[i] = value[$bits(value) - i - 1];

endmodule