diff options
author | Pavel V. Shatov (Meister) <meisterpaul1@yandex.ru> | 2019-10-21 15:13:01 +0300 |
---|---|---|
committer | Pavel V. Shatov (Meister) <meisterpaul1@yandex.ru> | 2019-10-21 15:13:01 +0300 |
commit | 584393ac5fc9bbe80887702ec2fc97bee999c5e7 (patch) | |
tree | ffda0852ba561ca13ee07ef6147225a38d809151 /rtl/modexpng_mmm_dual_fsm.vh | |
parent | 69b5d9f65cf49adbc1c1850fa2c4757199008717 (diff) |
Further work:
- added core wrapper
- fixed module resets across entire core (all the resets are now consistently
active-low)
- continued refactoring
Diffstat (limited to 'rtl/modexpng_mmm_dual_fsm.vh')
-rw-r--r-- | rtl/modexpng_mmm_dual_fsm.vh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/rtl/modexpng_mmm_dual_fsm.vh b/rtl/modexpng_mmm_dual_fsm.vh new file mode 100644 index 0000000..a0e5efc --- /dev/null +++ b/rtl/modexpng_mmm_dual_fsm.vh @@ -0,0 +1,47 @@ +`define MMM_FSM_STATE_W_DEF 6 + +localparam MMM_FSM_STATE_W = `MMM_FSM_STATE_W_DEF; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_IDLE = `MMM_FSM_STATE_W_DEF'd00; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_LOAD_T1T2_1 = `MMM_FSM_STATE_W_DEF'd01; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_LOAD_T1T2_2 = `MMM_FSM_STATE_W_DEF'd02; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_LOAD_T1T2_3 = `MMM_FSM_STATE_W_DEF'd03; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_LOAD_NN_COEFF_1 = `MMM_FSM_STATE_W_DEF'd04; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_LOAD_NN_COEFF_2 = `MMM_FSM_STATE_W_DEF'd05; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_LOAD_NN_COEFF_3 = `MMM_FSM_STATE_W_DEF'd06; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_SQUARE_COL_0_INIT = `MMM_FSM_STATE_W_DEF'd11; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_SQUARE_COL_0_TRIG = `MMM_FSM_STATE_W_DEF'd12; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_SQUARE_COL_0_BUSY = `MMM_FSM_STATE_W_DEF'd13; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_SQUARE_COL_N_INIT = `MMM_FSM_STATE_W_DEF'd14; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_SQUARE_COL_N_TRIG = `MMM_FSM_STATE_W_DEF'd15; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_SQUARE_COL_N_BUSY = `MMM_FSM_STATE_W_DEF'd16; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_SQUARE_HOLDOFF = `MMM_FSM_STATE_W_DEF'd17; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_TRIANGLE_COL_0_INIT = `MMM_FSM_STATE_W_DEF'd21; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_TRIANGLE_COL_0_TRIG = `MMM_FSM_STATE_W_DEF'd22; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_TRIANGLE_COL_0_BUSY = `MMM_FSM_STATE_W_DEF'd23; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_TRIANGLE_COL_N_INIT = `MMM_FSM_STATE_W_DEF'd24; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_TRIANGLE_COL_N_TRIG = `MMM_FSM_STATE_W_DEF'd25; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_TRIANGLE_COL_N_BUSY = `MMM_FSM_STATE_W_DEF'd26; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_TRIANGLE_HOLDOFF = `MMM_FSM_STATE_W_DEF'd27; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_RECTANGLE_COL_0_INIT = `MMM_FSM_STATE_W_DEF'd31; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_RECTANGLE_COL_0_TRIG = `MMM_FSM_STATE_W_DEF'd32; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_RECTANGLE_COL_0_BUSY = `MMM_FSM_STATE_W_DEF'd33; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_RECTANGLE_COL_N_INIT = `MMM_FSM_STATE_W_DEF'd34; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_RECTANGLE_COL_N_TRIG = `MMM_FSM_STATE_W_DEF'd35; +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_RECTANGLE_COL_N_BUSY = `MMM_FSM_STATE_W_DEF'd36; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_MULT_RECTANGLE_HOLDOFF = `MMM_FSM_STATE_W_DEF'd37; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_WAIT_REDUCTOR = `MMM_FSM_STATE_W_DEF'd41; + +localparam [MMM_FSM_STATE_W-1:0] MMM_FSM_STATE_STOP = `MMM_FSM_STATE_W_DEF'd51; |