aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel V. Shatov (Meister) <meisterpaul1@yandex.ru>2020-01-20 23:56:15 +0300
committerPavel V. Shatov (Meister) <meisterpaul1@yandex.ru>2020-01-20 23:56:15 +0300
commitb8c0536da225a146eece91c17082e279243380dc (patch)
treee8d05c407a643877dff9cd28769ef9e8dc1d9c61
parentb590661dcc2da8b3fea52a587369eebbf9fd59b0 (diff)
Updated uOP engine to match the changes made to the general worker module
(modular subtraction was split into three micro-operations instead of one).
-rw-r--r--rtl/modexpng_uop_engine.v14
1 files changed, 10 insertions, 4 deletions
diff --git a/rtl/modexpng_uop_engine.v b/rtl/modexpng_uop_engine.v
index 2046db7..e5e8daf 100644
--- a/rtl/modexpng_uop_engine.v
+++ b/rtl/modexpng_uop_engine.v
@@ -336,7 +336,9 @@ module modexpng_uop_engine
wire uop_opcode_is_wrk = (uop_data_opcode_dec == UOP_OPCODE_COPY_CRT_Y2X ) ||
(uop_data_opcode_dec == UOP_OPCODE_COPY_LADDERS_X2Y ) ||
(uop_data_opcode_dec == UOP_OPCODE_CROSS_LADDERS_X2Y ) ||
- (uop_data_opcode_dec == UOP_OPCODE_MODULAR_SUBTRACT ) ||
+ (uop_data_opcode_dec == UOP_OPCODE_MODULAR_SUBTRACT_X ) ||
+ (uop_data_opcode_dec == UOP_OPCODE_MODULAR_SUBTRACT_Y ) ||
+ (uop_data_opcode_dec == UOP_OPCODE_MODULAR_SUBTRACT_Z ) ||
(uop_data_opcode_dec == UOP_OPCODE_MODULAR_REDUCE_INIT ) ||
(uop_data_opcode_dec == UOP_OPCODE_PROPAGATE_CARRIES ) ||
(uop_data_opcode_dec == UOP_OPCODE_MERGE_LH ) ||
@@ -535,8 +537,10 @@ module modexpng_uop_engine
update_rdct_params(uop_data_sel_wide_out_dec, uop_data_sel_narrow_out_dec);
end
//
- UOP_OPCODE_MODULAR_SUBTRACT:
- update_wrk_params(BANK_DNC, uop_data_sel_narrow_in_dec, uop_data_sel_wide_out_dec, uop_data_sel_narrow_out_dec, uop_data_opcode_dec);
+ UOP_OPCODE_MODULAR_SUBTRACT_X,
+ UOP_OPCODE_MODULAR_SUBTRACT_Y,
+ UOP_OPCODE_MODULAR_SUBTRACT_Z:
+ update_wrk_params(uop_data_sel_wide_in_dec, uop_data_sel_narrow_in_dec, uop_data_sel_wide_out_dec, uop_data_sel_narrow_out_dec, uop_data_opcode_dec);
//
UOP_OPCODE_MODULAR_REDUCE_INIT:
update_wrk_params(BANK_DNC, uop_data_sel_narrow_in_dec, BANK_DNC, BANK_DNC, uop_data_opcode_dec);
@@ -627,7 +631,9 @@ module modexpng_uop_engine
update_rdct_length(word_index_last_mux);
end
//
- UOP_OPCODE_MODULAR_SUBTRACT:
+ UOP_OPCODE_MODULAR_SUBTRACT_X,
+ UOP_OPCODE_MODULAR_SUBTRACT_Y,
+ UOP_OPCODE_MODULAR_SUBTRACT_Z:
update_wrk_length(word_index_last_mux, OP_ADDR_DNC);
//
UOP_OPCODE_MODULAR_REDUCE_INIT: