From 2500312ba55ed31c1a4c49c5797d13220d2925cc Mon Sep 17 00:00:00 2001 From: "Pavel V. Shatov (Meister)" Date: Mon, 3 Feb 2020 22:41:22 +0300 Subject: Added new DSP slice OPMODEs for the new recombination algorithm. --- rtl/modexpng_dsp48e1.vh | 16 +++++++++++----- 1 file 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; -- cgit v1.2.3