diff options
author | Paul Selkirk <paul@psgd.org> | 2020-03-16 13:58:08 -0400 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2020-03-16 13:58:08 -0400 |
commit | 62495c597ca8b60f733682661afdad9e0d3e0e2d (patch) | |
tree | 9f48320d88c6ad75ff91b909b970d289eafab131 /rtl/modexpng_mmm_dual.v | |
parent | 465cdf0bcbbcd7f18c097beae1e9f85f9da0e04d (diff) |
Increase NUM_MULTS to 32.
This required finding and fixing every function that had a baked-in
assumption that NUM_MULTS=8.
Diffstat (limited to 'rtl/modexpng_mmm_dual.v')
-rw-r--r-- | rtl/modexpng_mmm_dual.v | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/rtl/modexpng_mmm_dual.v b/rtl/modexpng_mmm_dual.v index 9346a42..fd39943 100644 --- a/rtl/modexpng_mmm_dual.v +++ b/rtl/modexpng_mmm_dual.v @@ -829,18 +829,8 @@ module modexpng_mmm_dual input [NUM_MULTS_HALF_AUX-1:0] col_index_value; input [OP_ADDR_W -1:0] narrow_xy_addr_value; // - if (narrow_xy_addr_value[OP_ADDR_W-1:MAC_INDEX_W] == col_index_value) - case (narrow_xy_addr_value[MAC_INDEX_W-1:0]) - 3'b000: calc_mac_mode_z_square = {1'b1, 8'b11111110}; - 3'b001: calc_mac_mode_z_square = {1'b1, 8'b11111101}; - 3'b010: calc_mac_mode_z_square = {1'b1, 8'b11111011}; - 3'b011: calc_mac_mode_z_square = {1'b1, 8'b11110111}; - 3'b100: calc_mac_mode_z_square = {1'b1, 8'b11101111}; - 3'b101: calc_mac_mode_z_square = {1'b1, 8'b11011111}; - 3'b110: calc_mac_mode_z_square = {1'b1, 8'b10111111}; - 3'b111: calc_mac_mode_z_square = {1'b1, 8'b01111111}; - endcase - else calc_mac_mode_z_square = {1'b1, 8'b11111111}; + if (narrow_xy_addr_value[OP_ADDR_W-1:MAC_INDEX_W] == col_index_value) calc_mac_mode_z_square = ~({{NUM_MULTS_AUX-1{1'b0}}, 1'b1} << narrow_xy_addr_value[MAC_INDEX_W-1:0]); + else calc_mac_mode_z_square = {NUM_MULTS_AUX{1'b1}}; endfunction function [NUM_MULTS_AUX -1:0] calc_mac_mode_z_rectangle; @@ -848,20 +838,8 @@ module modexpng_mmm_dual input [NUM_MULTS_HALF_AUX -1:0] col_index_value; input [OP_ADDR_W -1:0] narrow_xy_addr_value; // - begin - if (narrow_xy_addr_value[OP_ADDR_W-1:MAC_INDEX_W] == col_index_value) - case (narrow_xy_addr_value[MAC_INDEX_W-1:0]) - 3'b000: calc_mac_mode_z_rectangle = {1'b1, 8'b11111110}; - 3'b001: calc_mac_mode_z_rectangle = {1'b1, 8'b11111101}; - 3'b010: calc_mac_mode_z_rectangle = {1'b1, 8'b11111011}; - 3'b011: calc_mac_mode_z_rectangle = {1'b1, 8'b11110111}; - 3'b100: calc_mac_mode_z_rectangle = {1'b1, 8'b11101111}; - 3'b101: calc_mac_mode_z_rectangle = {1'b1, 8'b11011111}; - 3'b110: calc_mac_mode_z_rectangle = {1'b1, 8'b10111111}; - 3'b111: calc_mac_mode_z_rectangle = {1'b1, 8'b01111111}; - endcase - else calc_mac_mode_z_rectangle = {1'b1, 8'b11111111}; - end + if (narrow_xy_addr_value[OP_ADDR_W-1:MAC_INDEX_W] == col_index_value) calc_mac_mode_z_rectangle = ~({{NUM_MULTS_AUX-1{1'b0}}, 1'b1} << narrow_xy_addr_value[MAC_INDEX_W-1:0]); + else calc_mac_mode_z_rectangle = {NUM_MULTS_AUX{1'b1}}; endfunction always @(posedge clk) |