aboutsummaryrefslogtreecommitdiff
path: root/rtl/modexpng_mmm_dual.v
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2020-03-16 13:58:08 -0400
committerPaul Selkirk <paul@psgd.org>2020-03-16 13:58:08 -0400
commit62495c597ca8b60f733682661afdad9e0d3e0e2d (patch)
tree9f48320d88c6ad75ff91b909b970d289eafab131 /rtl/modexpng_mmm_dual.v
parent465cdf0bcbbcd7f18c097beae1e9f85f9da0e04d (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.v30
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)