From 6bb4cd1bca4856b283ecc1c1a715693da7a9db7b Mon Sep 17 00:00:00 2001 From: David Harris Date: Sun, 17 Apr 2022 21:53:11 +0000 Subject: [PATCH] Prefix comparator cleanup --- pipelined/src/ieu/comparator.sv | 40 ++++++++++++--------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/pipelined/src/ieu/comparator.sv b/pipelined/src/ieu/comparator.sv index 67fd476d9..26ea6d868 100644 --- a/pipelined/src/ieu/comparator.sv +++ b/pipelined/src/ieu/comparator.sv @@ -36,9 +36,8 @@ module comparator #(parameter WIDTH=32) ( logic [WIDTH-1:0] bbar, diff; logic carry, eq, neg, overflow, lt, ltu; - - // NOTE: This can be replaced by some faster logic optimized - // to just compute flags and not the difference. +/* + // Subtractor implementation // subtraction assign bbar = ~b; @@ -52,47 +51,36 @@ 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 [WIDTH-1:0] e[levels:0]; + logic [WIDTH-1:0] l[levels:0]; logic eq2, lt2, ltu2; - // Bitwise logic - for (i=0; i