aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel V. Shatov (Meister) <meisterpaul1@yandex.ru>2020-02-03 22:41:22 +0300
committerPavel V. Shatov (Meister) <meisterpaul1@yandex.ru>2020-02-03 22:41:22 +0300
commit2500312ba55ed31c1a4c49c5797d13220d2925cc (patch)
treed04d7ecf107b0c184b02b5f97ee6c1c3e88b1406
parentc5d210149af3e40170fcd01047d3b844ed65871c (diff)
Added new DSP slice OPMODEs for the new recombination algorithm.
-rw-r--r--rtl/modexpng_dsp48e1.vh16
1 files changed, 11 insertions, 5 deletions
diff --git a/rtl/modexpng_dsp48e1.vh b/rtl/modexpng_dsp48e1.vh
index 8140917..304e8d9 100644
--- a/rtl/modexpng_dsp48e1.vh
+++ b/rtl/modexpng_dsp48e1.vh
@@ -51,6 +51,7 @@ localparam DSP48E1_OPMODE_Y_C = 2'b11;
localparam DSP48E1_OPMODE_Z_DNC = 3'bXXX;
localparam DSP48E1_OPMODE_Z_0 = 3'b000;
+localparam DSP48E1_OPMODE_Z_PCIN = 3'b001;
localparam DSP48E1_OPMODE_Z_P17 = 3'b110;
localparam DSP48E1_OPMODE_Z_PCIN17 = 3'b101;
localparam DSP48E1_OPMODE_Z_P = 3'b010;
@@ -58,14 +59,19 @@ localparam DSP48E1_OPMODE_Z_C = 3'b011;
localparam DSP48E1_OPMODE_DNC = {DSP48E1_OPMODE_Z_DNC, DSP48E1_OPMODE_Y_DNC, DSP48E1_OPMODE_X_DNC};
+localparam DSP48E1_OPMODE_Z0_YC_X0 = {DSP48E1_OPMODE_Z_0, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_0};
+localparam DSP48E1_OPMODE_Z0_Y0_XAB = {DSP48E1_OPMODE_Z_0, DSP48E1_OPMODE_Y_0, DSP48E1_OPMODE_X_AB};
localparam DSP48E1_OPMODE_Z0_YC_XAB = {DSP48E1_OPMODE_Z_0, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_AB};
+localparam DSP48E1_OPMODE_ZC_Y0_XAB = {DSP48E1_OPMODE_Z_C, DSP48E1_OPMODE_Y_0, DSP48E1_OPMODE_X_AB};
+localparam DSP48E1_OPMODE_ZP_Y0_XAB = {DSP48E1_OPMODE_Z_P, DSP48E1_OPMODE_Y_0, DSP48E1_OPMODE_X_AB};
+localparam DSP48E1_OPMODE_ZP_YC_X0 = {DSP48E1_OPMODE_Z_P, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_0};
+localparam DSP48E1_OPMODE_ZP_YC_XAB = {DSP48E1_OPMODE_Z_P, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_AB};
+localparam DSP48E1_OPMODE_ZP17_Y0_XAB = {DSP48E1_OPMODE_Z_P17, DSP48E1_OPMODE_Y_0, DSP48E1_OPMODE_X_AB};
localparam DSP48E1_OPMODE_ZP17_YC_XAB = {DSP48E1_OPMODE_Z_P17, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_AB};
-localparam DSP48E1_OPMODE_Z0_Y0_XAB = {DSP48E1_OPMODE_Z_0, DSP48E1_OPMODE_Y_0, DSP48E1_OPMODE_X_AB};
-localparam DSP48E1_OPMODE_ZPCIN17_YC_XAB = {DSP48E1_OPMODE_Z_PCIN17, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_AB};
-localparam DSP48E1_OPMODE_Z0_YC_X0 = {DSP48E1_OPMODE_Z_0, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_0};
localparam DSP48E1_OPMODE_ZP17_YC_X0 = {DSP48E1_OPMODE_Z_P17, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_0};
-localparam DSP48E1_OPMODE_ZP_YC_X0 = {DSP48E1_OPMODE_Z_P, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_0};
-localparam DSP48E1_OPMODE_ZC_Y0_XAB = {DSP48E1_OPMODE_Z_C, DSP48E1_OPMODE_Y_0, DSP48E1_OPMODE_X_AB};
+localparam DSP48E1_OPMODE_ZPCIN17_YC_XAB = {DSP48E1_OPMODE_Z_PCIN17, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_AB};
+localparam DSP48E1_OPMODE_ZPCIN_Y0_XAB = {DSP48E1_OPMODE_Z_PCIN, DSP48E1_OPMODE_Y_0, DSP48E1_OPMODE_X_AB};
+localparam DSP48E1_OPMODE_ZPCIN_YC_XAB = {DSP48E1_OPMODE_Z_PCIN, DSP48E1_OPMODE_Y_C, DSP48E1_OPMODE_X_AB};
localparam DSP48E1_CARRYINSEL_DNC = 3'bXXX;
localparam DSP48E1_CARRYINSEL_CARRYIN = 3'b000;