aboutsummaryrefslogtreecommitdiff
path: root/src/rtl/modexpa7_systolic_multiplier_array.v
diff options
context:
space:
mode:
authorPavel V. Shatov (Meister) <meisterpaul1@yandex.ru>2017-08-11 02:37:40 +0300
committerPavel V. Shatov (Meister) <meisterpaul1@yandex.ru>2017-08-11 02:37:40 +0300
commitd6092c84f08118c093142b7d8c6f9a332774400f (patch)
treeb9c6afc20d7f5c2de6b23c1bdb86ce2a713683e8 /src/rtl/modexpa7_systolic_multiplier_array.v
parente48040122cddd4374d5600b24807ef8189f1c0c2 (diff)
CRT mode seems to work. Finally.
Strangely enough non-CRT mode continues to work fine(!). One does not simply add a feature without breaking something else. Very suspicious...
Diffstat (limited to 'src/rtl/modexpa7_systolic_multiplier_array.v')
-rw-r--r--src/rtl/modexpa7_systolic_multiplier_array.v5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/rtl/modexpa7_systolic_multiplier_array.v b/src/rtl/modexpa7_systolic_multiplier_array.v
index 3280010..9b2cd94 100644
--- a/src/rtl/modexpa7_systolic_multiplier_array.v
+++ b/src/rtl/modexpa7_systolic_multiplier_array.v
@@ -443,7 +443,7 @@ module modexpa7_systolic_multiplier_array #
always @(posedge clk)
//
if ((fsm_state == FSM_STATE_MULT_CRUNCH) && shreg_done_latency_dly)
- p_data_in <= pe_p[0];
+ p_data_in <= crt ? pe_a_wide[31:0] : pe_p[0];
/*
* Block Memory Address Control
@@ -457,7 +457,8 @@ module modexpa7_systolic_multiplier_array #
//
case (fsm_next_state)
FSM_STATE_MULT_START: a_addr <= bram_addr_zero;
- FSM_STATE_MULT_RELOAD: crt ? //a_addr <= !a_addr_done ? a_addr_next : a_addr;
+ FSM_STATE_MULT_RELOAD: if (crt) a_addr <= !a_addr_done_crt ? a_addr_next : a_addr;
+ else a_addr <= !a_addr_done ? a_addr_next : a_addr;
endcase
//
end