diff --git a/pipelined/src/ieu/comparator.sv b/pipelined/src/ieu/comparator.sv index f1a668616..67fd476d9 100644 --- a/pipelined/src/ieu/comparator.sv +++ b/pipelined/src/ieu/comparator.sv @@ -52,6 +52,47 @@ module comparator #(parameter WIDTH=32) ( assign overflow = (a[WIDTH-1] ^ b[WIDTH-1]) & (a[WIDTH-1] ^ diff[WIDTH-1]); assign lt = neg ^ overflow; assign ltu = ~carry; - assign flags = {eq, lt, ltu}; +// assign flags = {eq, lt, ltu}; + + /* verilator lint_off UNOPTFLAT */ + + // prefix implementation + localparam levels=$clog2(WIDTH); + genvar i; + genvar level; + logic [WIDTH-1:0] ee[levels:0]; + logic [WIDTH-1:0] ll[levels:0]; + logic eq2, lt2, ltu2; + + + // Bitwise logic + for (i=0; i