summaryrefslogtreecommitdiff
path: root/rtl/fpu/lzc/lzc_4.sv
blob: 0d5182c31676a0dde4eefca182e7c218ef06c639 (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
25
26
27
28
29
30
31
32
33
module lzc_4 (
    input [3:0] a,
    output [1:0] c,
    output v
);

  logic a0;
  logic a1;
  logic a2;
  logic a3;

  logic s0;
  logic s1;
  logic s2;
  logic s3;
  logic s4;

  assign a0 = a[0];
  assign a1 = a[1];
  assign a2 = a[2];
  assign a3 = a[3];

  assign s0 = a3 | a2;
  assign s1 = a1 | a0;
  assign s2 = s1 | s0;
  assign s3 = (~s0) & a1;
  assign s4 = a3 | s3;

  assign v = s2;
  assign c[0] = s4;
  assign c[1] = s0;

endmodule