Primitive: 48-bit Multi-Functional Arithmetic Block
Introduction
This design element is a scalable dedicated block in 7 series devices that lets you create compact, high-speed, arithmetic-intensive operations such as those seen for many DSP algorithms. Functions that the block is capable of include multiplication, addition, subtraction, accumulation, shifting, logical operations, and pattern detection.
Port Descriptions
Port | Direction | Width | Function |
---|---|---|---|
A<29:0> | Input | 30 | Data input for pre-adder, multiplier, adder/subtracter/accumulator, ALU, or
concatenation operations.
|
ACIN<29:0> | Input | 30 | Cascaded data input from ACOUT of previous DSP48E1 slice (multiplexed with A). If not used, tie port to all zeros. |
ACOUT<29:0> | Output | 30 | Cascaded data output to ACIN of next DSP48E1 slice. If not used, leave unconnected. |
ALUMODE<3:0> | Input | 4 | Controls the selection of the logic function in the DSP48E1 slice. |
B<17:0> | Input | 18 | The B input of the multiplier. B[17:0] are the least significant bits (LSBs) of the A:B concatenated input to the second-stage adder/subtracter or logic function. |
BCIN<17:0> | Input | 18 | Cascaded data input from BCOUT of previous DSP48E1 slice (muxed with B). If not used, tie port to all zeros. |
BCOUT<17:0> | Output | 18 | Cascaded data output to BCIN of next DSP48E1 slice. If not used, leave unconnected. |
C<47:0> | Input | 48 | Data input to the second-stage adder/subtracter, pattern detector, or logic function. |
CARRYCASCIN | Input | 1 | Cascaded carry input from CARRYCASCOUT of previous DSP48E1 slice. |
CARRYCASCOUT | Output | 1 | Cascaded carry output to CARRYCASCIN of next DSP48E1 slice. This signal is internally fed back into the CARRYINSEL multiplexer input of the same DSP48E1 slice. |
CARRYIN | Input | 1 | Carry input from the FPGA logic. |
CARRYINSEL <2:0> | Input | 3 | Selects the carry source:
|
CARRYOUT<3:0> | Output | 4 | 4-bit carry output from each 12-bit field of the accumulate/adder/logic unit. Normal 48-bit operation uses only CARRYOUT3. SIMD operation can use four carry out bits (CARRYOUT[3:0]). |
CEAD | Input | 1 | Active-High clock enable for the pre-adder output AD pipeline register. Tie to logic one if not used and ADREG=1. Tie to logic zero if ADREG=0. |
CEALUMODE | Input | 1 | Active-High clock enable for ALUMODE (control inputs) registers (ALUMODEREG=1). Tie to logic one if not used. |
CEA1 | Input | 1 | Active-High clock enable for the first A (input) register. This port is only used if AREG=2 or INMODE0 = 1. Tie to logic one if not used and AREG=2. Tie to logic zero if AREG=0 or 1. When two registers are used, this is the first sequentially. When Dynamic AB Access is used, this clock enable is applied for INMODE[0]=1. |
CEA2 | Input | 1 | Active-High clock enable for the second A (input) register. This port is only used if AREG=1 or 2. Tie to logic one if not used and AREG=1 or 2. Tie to logic zero if AREG=0. When two registers are used, this is the second sequentially. When one register is used (AREG=1), CEA2 is the clock enable. |
CEB1 | Input | 1 | Active-High, Clock enable for the first B (input) register. This port is only used if BREG=2 or INMODE4=1. Tie to logic one if not used and BREG=2. Tie to logic zero if BREG=0 or 1. When two registers are used, this is the first sequentially. When Dynamic AB Access is used, this clock enable is applied for INMODE[4]=1. |
CEB2 | Input | 1 | Active-High clock enable for the second B (input) register. This port is only used if BREG=1 or 2. Tie to logic one if not used and BREG=1 or 2. Tie to logic zero if BREG=0. When two registers are used, this is the second sequentially. When one register is used (BREG=1), CEB2 is the clock enable. |
CEC | Input | 1 | Active-High clock enable for the C (input) register (CREG=1). Tie to logic one if not used. |
CECARRYIN | Input | 1 | Active-High clock enable for the CARRYIN (input from fabric) register (CARRYINREG=1). Tie to logic one if not used. |
CECTRL | Input | 1 | Active-High clock enable for the OPMODE and CARRYINSEL (control inputs) registers (OPMODEREG=1 or CARRYINSELREG=1). Tie to logic one if not used. |
CED | Input | 1 | Active-High Clock enable for the D (input) registers (DREG=1). Tie to logic one if not used. |
CEINMODE | Input | 1 | Active-High clock enable for the INMODE control input registers (INMODEREG=1). Tie to logic one if not used. |
CEM | Input | 1 | Active-High Clock enable for the post-multiply M (pipeline) register and the internal multiply round CARRYIN register (MREG=1). Tie to logic one if not used. |
CEP | Input | 1 | Active-High clock enable for the P (output) register (PREG=1). Tie to logic one if not used. |
CLK | Input | 1 | The DSP48E1 input clock common to all internal registers and flip-flops. |
D<24:0> | Input | 25 | 25-bit data input to the pre-adder or alternative input to the multiplier. The pre-adder implements D + A as determined by the INMODE3 signal. |
INMODE<4:0> | Input | 5 | These five control bits select the functionality of the pre-adder, the A, B, and D inputs, and the input registers. These bits should be tied to all zeros if not used. |
MULTSIGNIN | Input | 1 | Sign of the multiplied result from the previous DSP48E1 slice for MACC extension. Either connect to the MULTSIGNOUT of another DSP block or tie to ground if not used. |
MULTSIGNOUT | Output | 1 | Sign of the multiplied result cascaded to the next DSP48E1 slice for MACC extension. Either connect to the MULTSIGNIN of another DSP block or tie to ground if not used. |
OPMODE<6:0> | Input | 7 | Controls the input to the X, Y, and Z multiplexers in the DSP48E1 slice dictating the operation or function of the DSP slice. |
OVERFLOW | Output | 1 | Active-High Overflow indicator when used with the appropriate setting of the pattern detector and PREG=1. |
P<47:0> | Output | 48 | Data output from second stage adder/subtracter or logic function. |
PATTERNBDETECT | Output | 1 | Active-High match indicator between P[47:0] and the pattern bar. |
PATTERNDETECT | Output | 1 | Active-High Match indicator between P[47:0] and the pattern gated by the MASK. Result arrives on the same cycle as P. |
PCIN<47:0> | Input | 48 | Cascaded data input from PCOUT of previous DSP48E1 slice to adder. If used, connect to PCOUT of upstream cascaded DSP slice. If not used, tie port to all zeros. |
PCOUT<47:0> | Output | 48 | Cascaded data output to PCIN of next DSP48E1 slice. If used, connect to PCIN of downstream cascaded DSP slice. If not used, leave unconnected. |
RSTA | Input | 1 | Active-High synchronous Reset for both A (input) registers (AREG=1 or 2). Tie to logic zero if not used. |
RSTALLCARRYIN | Input | 1 | Active-High, synchronous reset for the Carry (internal path) and the CARRYIN registers (CARRYINREG=1). Tie to logic zero if not used. |
RSTALUMODE | Input | 1 | Active-High synchronous Reset for ALUMODE (control inputs) registers (ALUMODEREG=1). Tie to logic zero if not used. |
RSTB | Input | 1 | Active-High, synchronous Reset for both B (input) registers (BREG=1 or 2). Tie to logic zero if not used. |
RSTC | Input | 1 | Active-High synchronous reset for the C (input) registers (CREG=1). Tie to logic zero if not used. |
RSTCTRL | Input | 1 | Active-High synchronous reset for OPMODE and CARRYINSEL (control inputs) registers (OPMODEREG=1 and/or CARRYINSELREG=1). Tie to logic zero if not used. |
RSTD | Input | 1 | Active-High synchronous reset for the D (input) register and for the pre-adder (output) AD pipeline register (DREG=1 and/or ADREG=1). Tie to logic zero if not used. |
RSTINMODE | Input | 1 | Active-High synchronous reset for the INMODE (control input) registers (INMODEREG=1). Tie to logic zero if not used. |
RSTM | Input | 1 | Active-High synchronous reset for the M (pipeline) registers (MREG=1). Tie to logic zero if not used. |
RSTP | Input | 1 | Active-High, synchronous reset for the P (output) registers (PREG=1). Tie to logic zero if not used. |
UNDERFLOW | Output | 1 | Active-High underflow indicator when used with the appropriate setting of the pattern detector and PREG=1. |
Design Entry Method
Instantiation | Yes |
Inference | Recommended |
IP Catalog | Yes |
Macro support | Yes |
Available Attributes
Attribute | Type | Allowed Values | Default | Description |
---|---|---|---|---|
ACASCREG | DECIMAL | 1, 0, 2 | 1 | In conjunction with AREG, selects the number of A input registers on the A
cascade path, ACOUT. This attribute must be equal to or one less
than the AREG value:
|
ADREG | DECIMAL | 1, 0 | 1 | Selects the number of AD pipeline registers. Set to 1 to use the AD pipeline registers. |
A_INPUT | STRING | "DIRECT", "CASCADE" | "DIRECT" | Selects the input to the A port between parallel input ("DIRECT") or the cascaded input from the previous slice ("CASCADE"). |
ALUMODEREG | DECIMAL | 1, 0 | 1 | Selects the number of ALUMODE input registers. Set to 1 to register the ALUMODE inputs. |
AREG | DECIMAL | 1, 0, 2 | 1 | Selects the number of A input pipeline registers. |
AUTORESET _PATDET | STRING | "NO_RESET", "RESET_MATCH", "RESET_NOT _MATCH" | "NO_RESET" | Automatically resets the P Register (accumulated value or counter value) on
the next clock cycle, if a pattern detect event has occurred on this
clock cycle. The "RESET_MATCH" and "RESET_NOT_MATCH" settings distinguish between whether the DSP48E1 slice should cause an auto reset of the P Register on the next cycle:
|
BCASCREG | DECIMAL | 1, 0, 2 | 1 | In conjunction with BREG, selects the number of B input registers on the B
cascade path, BCOUT. This attribute must be equal to or one less
than the BREG value:
|
B_INPUT | STRING | "DIRECT", "CASCADE" | "DIRECT" | Selects the input to the B port between parallel input ("DIRECT") or the cascaded input from the previous slice ("CASCADE"). |
BREG | DECIMAL | 1, 0, 2 | 1 | Selects the number of B input registers. |
CARRYINREG | DECIMAL | 1, 0 | 1 | Selects the number of CARRYIN input registers. Set to 1 to register the CARRYIN inputs. |
CARRYINSELREG | DECIMAL | 1, 0 | 1 | Selects the number of CARRYINSEL input registers. Set to 1 to register the CARRYINSEL inputs. |
CREG | DECIMAL | 1, 0 | 1 | Selects the number of C input registers. Set to 1 to register the C inputs. |
DREG | DECIMAL | 1, 0 | 1 | Selects the number of D input registers. Set to 1 to register the D inputs. |
INMODEREG | DECIMAL | 1, 0 | 1 | Selects the number of INMODE input registers. Set to 1 to register the INMODE inputs. |
MASK | HEX | 48-bit HEX | All ones | This 48-bit value is used to mask out certain bits during a pattern detection.
|
MREG | DECIMAL | 1, 0 | 1 | Selects the number of multiplier output (M) pipeline register stages. Set to 1 to use the M pipeline registers. |
OPMODEREG | DECIMAL | 1, 0 | 1 | Selects the number of OPMODE input registers. Set to 1 to register the OPMODE inputs. |
PATTERN | HEX | 48-bit HEX | All zeros | This 48-bit value is used in the pattern detector. |
PREG | DECIMAL | 1, 0 | 1 | Selects the number of P output registers. Set to 1 to register the P
outputs. The registered outputs will include:
|
SEL_MASK | STRING | "MASK", "C", "ROUNDING _MODE1", "ROUNDING _MODE2" | "MASK" | Selects the mask to be used for the pattern detector. The C and MASK settings are for standard uses of the pattern detector (counter, overflow detection, etc.). ROUNDING_MODE1 (Cbar left shifted by 1) and ROUNDING_MODE2 (C-bar left shifted by 2) select special masks based off of the optionally registered C port. These rounding modes can be used to implement convergent rounding in the DSP48E1 slice using the pattern detector. |
SEL_PATTERN | STRING | "PATTERN", "C" | "PATTERN" | Selects the input source for the pattern field. The input source can either be a 48-bit dynamic C input or a 48-bit static PATTERN attribute field. |
USE_DPORT | BOOLEAN | FALSE, TRUE | FALSE | Determines whether the pre-adder and the D Port are used or not. |
USE_MULT | STRING | "MULTIPLY", "DYNAMIC", "NONE" | "MULTIPLY" | Selects usage of the multiplier. Set to "NONE" to save power when using only the Adder/Logic Unit. The "DYNAMIC" setting indicates that the user is switching between A*B and A:B operations on the fly and therefore needs to get the worst-case timing of the two paths. |
USE_PATTERN _DETECT | STRING | "NO_PATDET", "PATDET" | "NO_PATDET" | Selects whether the pattern detector and related features are used ("PATDET") or not used ("NO_PATDET"). This attribute is used for speed specification and Simulation Model purposes only. |
USE_SIMD | STRING | "ONE48", "FOUR12", "TWO24" | "ONE48" | Selects the mode of operation for the adder/subtracter. The attribute setting can be one 48-bit adder mode ("ONE48"), two 24- bit adder mode ("TWO24"), or four 12-bit adder mode ("FOUR12"). Selecting "ONE48" mode is compatible with Virtex-5 DSP48 operation and is not actually a true SIMD mode. Typical Multiply-Add operations are supported when the mode is set to "ONE48". When either "TWO24" or "FOUR12" mode is selected, the multiplier must not be used, and USE_MULT must be set to "NONE". |
VHDL Instantiation Template
Unless they already exist, copy the following
two statements and paste them before the entity declaration.
Library UNISIM;
use UNISIM.vcomponents.all;
-- DSP48E1: 48-bit Multi-Functional Arithmetic Block
-- 7 Series
-- Xilinx HDL Language Template, version 2022.1
DSP48E1_inst : DSP48E1
generic map (
-- Feature Control Attributes: Data Path Selection
A_INPUT => "DIRECT", -- Selects A input source, "DIRECT" (A port) or "CASCADE" (ACIN port)
B_INPUT => "DIRECT", -- Selects B input source, "DIRECT" (B port) or "CASCADE" (BCIN port)
USE_DPORT => FALSE, -- Select D port usage (TRUE or FALSE)
USE_MULT => "MULTIPLY", -- Select multiplier usage ("MULTIPLY", "DYNAMIC", or "NONE")
USE_SIMD => "ONE48", -- SIMD selection ("ONE48", "TWO24", "FOUR12")
-- Pattern Detector Attributes: Pattern Detection Configuration
AUTORESET_PATDET => "NO_RESET", -- "NO_RESET", "RESET_MATCH", "RESET_NOT_MATCH"
MASK => X"3fffffffffff", -- 48-bit mask value for pattern detect (1=ignore)
PATTERN => X"000000000000", -- 48-bit pattern match for pattern detect
SEL_MASK => "MASK", -- "C", "MASK", "ROUNDING_MODE1", "ROUNDING_MODE2"
SEL_PATTERN => "PATTERN", -- Select pattern value ("PATTERN" or "C")
USE_PATTERN_DETECT => "NO_PATDET", -- Enable pattern detect ("PATDET" or "NO_PATDET")
-- Register Control Attributes: Pipeline Register Configuration
ACASCREG => 1, -- Number of pipeline stages between A/ACIN and ACOUT (0, 1 or 2)
ADREG => 1, -- Number of pipeline stages for pre-adder (0 or 1)
ALUMODEREG => 1, -- Number of pipeline stages for ALUMODE (0 or 1)
AREG => 1, -- Number of pipeline stages for A (0, 1 or 2)
BCASCREG => 1, -- Number of pipeline stages between B/BCIN and BCOUT (0, 1 or 2)
BREG => 1, -- Number of pipeline stages for B (0, 1 or 2)
CARRYINREG => 1, -- Number of pipeline stages for CARRYIN (0 or 1)
CARRYINSELREG => 1, -- Number of pipeline stages for CARRYINSEL (0 or 1)
CREG => 1, -- Number of pipeline stages for C (0 or 1)
DREG => 1, -- Number of pipeline stages for D (0 or 1)
INMODEREG => 1, -- Number of pipeline stages for INMODE (0 or 1)
MREG => 1, -- Number of multiplier pipeline stages (0 or 1)
OPMODEREG => 1, -- Number of pipeline stages for OPMODE (0 or 1)
PREG => 1 -- Number of pipeline stages for P (0 or 1)
)
port map (
-- Cascade: 30-bit (each) output: Cascade Ports
ACOUT => ACOUT, -- 30-bit output: A port cascade output
BCOUT => BCOUT, -- 18-bit output: B port cascade output
CARRYCASCOUT => CARRYCASCOUT, -- 1-bit output: Cascade carry output
MULTSIGNOUT => MULTSIGNOUT, -- 1-bit output: Multiplier sign cascade output
PCOUT => PCOUT, -- 48-bit output: Cascade output
-- Control: 1-bit (each) output: Control Inputs/Status Bits
OVERFLOW => OVERFLOW, -- 1-bit output: Overflow in add/acc output
PATTERNBDETECT => PATTERNBDETECT, -- 1-bit output: Pattern bar detect output
PATTERNDETECT => PATTERNDETECT, -- 1-bit output: Pattern detect output
UNDERFLOW => UNDERFLOW, -- 1-bit output: Underflow in add/acc output
-- Data: 4-bit (each) output: Data Ports
CARRYOUT => CARRYOUT, -- 4-bit output: Carry output
P => P, -- 48-bit output: Primary data output
-- Cascade: 30-bit (each) input: Cascade Ports
ACIN => ACIN, -- 30-bit input: A cascade data input
BCIN => BCIN, -- 18-bit input: B cascade input
CARRYCASCIN => CARRYCASCIN, -- 1-bit input: Cascade carry input
MULTSIGNIN => MULTSIGNIN, -- 1-bit input: Multiplier sign input
PCIN => PCIN, -- 48-bit input: P cascade input
-- Control: 4-bit (each) input: Control Inputs/Status Bits
ALUMODE => ALUMODE, -- 4-bit input: ALU control input
CARRYINSEL => CARRYINSEL, -- 3-bit input: Carry select input
CLK => CLK, -- 1-bit input: Clock input
INMODE => INMODE, -- 5-bit input: INMODE control input
OPMODE => OPMODE, -- 7-bit input: Operation mode input
-- Data: 30-bit (each) input: Data Ports
A => A, -- 30-bit input: A data input
B => B, -- 18-bit input: B data input
C => C, -- 48-bit input: C data input
CARRYIN => CARRYIN, -- 1-bit input: Carry input signal
D => D, -- 25-bit input: D data input
-- Reset/Clock Enable: 1-bit (each) input: Reset/Clock Enable Inputs
CEA1 => CEA1, -- 1-bit input: Clock enable input for 1st stage AREG
CEA2 => CEA2, -- 1-bit input: Clock enable input for 2nd stage AREG
CEAD => CEAD, -- 1-bit input: Clock enable input for ADREG
CEALUMODE => CEALUMODE, -- 1-bit input: Clock enable input for ALUMODE
CEB1 => CEB1, -- 1-bit input: Clock enable input for 1st stage BREG
CEB2 => CEB2, -- 1-bit input: Clock enable input for 2nd stage BREG
CEC => CEC, -- 1-bit input: Clock enable input for CREG
CECARRYIN => CECARRYIN, -- 1-bit input: Clock enable input for CARRYINREG
CECTRL => CECTRL, -- 1-bit input: Clock enable input for OPMODEREG and CARRYINSELREG
CED => CED, -- 1-bit input: Clock enable input for DREG
CEINMODE => CEINMODE, -- 1-bit input: Clock enable input for INMODEREG
CEM => CEM, -- 1-bit input: Clock enable input for MREG
CEP => CEP, -- 1-bit input: Clock enable input for PREG
RSTA => RSTA, -- 1-bit input: Reset input for AREG
RSTALLCARRYIN => RSTALLCARRYIN, -- 1-bit input: Reset input for CARRYINREG
RSTALUMODE => RSTALUMODE, -- 1-bit input: Reset input for ALUMODEREG
RSTB => RSTB, -- 1-bit input: Reset input for BREG
RSTC => RSTC, -- 1-bit input: Reset input for CREG
RSTCTRL => RSTCTRL, -- 1-bit input: Reset input for OPMODEREG and CARRYINSELREG
RSTD => RSTD, -- 1-bit input: Reset input for DREG and ADREG
RSTINMODE => RSTINMODE, -- 1-bit input: Reset input for INMODEREG
RSTM => RSTM, -- 1-bit input: Reset input for MREG
RSTP => RSTP -- 1-bit input: Reset input for PREG
);
-- End of DSP48E1_inst instantiation
Verilog Instantiation Template
// DSP48E1: 48-bit Multi-Functional Arithmetic Block
// 7 Series
// Xilinx HDL Language Template, version 2022.1
DSP48E1 #(
// Feature Control Attributes: Data Path Selection
.A_INPUT("DIRECT"), // Selects A input source, "DIRECT" (A port) or "CASCADE" (ACIN port)
.B_INPUT("DIRECT"), // Selects B input source, "DIRECT" (B port) or "CASCADE" (BCIN port)
.USE_DPORT("FALSE"), // Select D port usage (TRUE or FALSE)
.USE_MULT("MULTIPLY"), // Select multiplier usage ("MULTIPLY", "DYNAMIC", or "NONE")
.USE_SIMD("ONE48"), // SIMD selection ("ONE48", "TWO24", "FOUR12")
// Pattern Detector Attributes: Pattern Detection Configuration
.AUTORESET_PATDET("NO_RESET"), // "NO_RESET", "RESET_MATCH", "RESET_NOT_MATCH"
.MASK(48'h3fffffffffff), // 48-bit mask value for pattern detect (1=ignore)
.PATTERN(48'h000000000000), // 48-bit pattern match for pattern detect
.SEL_MASK("MASK"), // "C", "MASK", "ROUNDING_MODE1", "ROUNDING_MODE2"
.SEL_PATTERN("PATTERN"), // Select pattern value ("PATTERN" or "C")
.USE_PATTERN_DETECT("NO_PATDET"), // Enable pattern detect ("PATDET" or "NO_PATDET")
// Register Control Attributes: Pipeline Register Configuration
.ACASCREG(1), // Number of pipeline stages between A/ACIN and ACOUT (0, 1 or 2)
.ADREG(1), // Number of pipeline stages for pre-adder (0 or 1)
.ALUMODEREG(1), // Number of pipeline stages for ALUMODE (0 or 1)
.AREG(1), // Number of pipeline stages for A (0, 1 or 2)
.BCASCREG(1), // Number of pipeline stages between B/BCIN and BCOUT (0, 1 or 2)
.BREG(1), // Number of pipeline stages for B (0, 1 or 2)
.CARRYINREG(1), // Number of pipeline stages for CARRYIN (0 or 1)
.CARRYINSELREG(1), // Number of pipeline stages for CARRYINSEL (0 or 1)
.CREG(1), // Number of pipeline stages for C (0 or 1)
.DREG(1), // Number of pipeline stages for D (0 or 1)
.INMODEREG(1), // Number of pipeline stages for INMODE (0 or 1)
.MREG(1), // Number of multiplier pipeline stages (0 or 1)
.OPMODEREG(1), // Number of pipeline stages for OPMODE (0 or 1)
.PREG(1) // Number of pipeline stages for P (0 or 1)
)
DSP48E1_inst (
// Cascade: 30-bit (each) output: Cascade Ports
.ACOUT(ACOUT), // 30-bit output: A port cascade output
.BCOUT(BCOUT), // 18-bit output: B port cascade output
.CARRYCASCOUT(CARRYCASCOUT), // 1-bit output: Cascade carry output
.MULTSIGNOUT(MULTSIGNOUT), // 1-bit output: Multiplier sign cascade output
.PCOUT(PCOUT), // 48-bit output: Cascade output
// Control: 1-bit (each) output: Control Inputs/Status Bits
.OVERFLOW(OVERFLOW), // 1-bit output: Overflow in add/acc output
.PATTERNBDETECT(PATTERNBDETECT), // 1-bit output: Pattern bar detect output
.PATTERNDETECT(PATTERNDETECT), // 1-bit output: Pattern detect output
.UNDERFLOW(UNDERFLOW), // 1-bit output: Underflow in add/acc output
// Data: 4-bit (each) output: Data Ports
.CARRYOUT(CARRYOUT), // 4-bit output: Carry output
.P(P), // 48-bit output: Primary data output
// Cascade: 30-bit (each) input: Cascade Ports
.ACIN(ACIN), // 30-bit input: A cascade data input
.BCIN(BCIN), // 18-bit input: B cascade input
.CARRYCASCIN(CARRYCASCIN), // 1-bit input: Cascade carry input
.MULTSIGNIN(MULTSIGNIN), // 1-bit input: Multiplier sign input
.PCIN(PCIN), // 48-bit input: P cascade input
// Control: 4-bit (each) input: Control Inputs/Status Bits
.ALUMODE(ALUMODE), // 4-bit input: ALU control input
.CARRYINSEL(CARRYINSEL), // 3-bit input: Carry select input
.CLK(CLK), // 1-bit input: Clock input
.INMODE(INMODE), // 5-bit input: INMODE control input
.OPMODE(OPMODE), // 7-bit input: Operation mode input
// Data: 30-bit (each) input: Data Ports
.A(A), // 30-bit input: A data input
.B(B), // 18-bit input: B data input
.C(C), // 48-bit input: C data input
.CARRYIN(CARRYIN), // 1-bit input: Carry input signal
.D(D), // 25-bit input: D data input
// Reset/Clock Enable: 1-bit (each) input: Reset/Clock Enable Inputs
.CEA1(CEA1), // 1-bit input: Clock enable input for 1st stage AREG
.CEA2(CEA2), // 1-bit input: Clock enable input for 2nd stage AREG
.CEAD(CEAD), // 1-bit input: Clock enable input for ADREG
.CEALUMODE(CEALUMODE), // 1-bit input: Clock enable input for ALUMODE
.CEB1(CEB1), // 1-bit input: Clock enable input for 1st stage BREG
.CEB2(CEB2), // 1-bit input: Clock enable input for 2nd stage BREG
.CEC(CEC), // 1-bit input: Clock enable input for CREG
.CECARRYIN(CECARRYIN), // 1-bit input: Clock enable input for CARRYINREG
.CECTRL(CECTRL), // 1-bit input: Clock enable input for OPMODEREG and CARRYINSELREG
.CED(CED), // 1-bit input: Clock enable input for DREG
.CEINMODE(CEINMODE), // 1-bit input: Clock enable input for INMODEREG
.CEM(CEM), // 1-bit input: Clock enable input for MREG
.CEP(CEP), // 1-bit input: Clock enable input for PREG
.RSTA(RSTA), // 1-bit input: Reset input for AREG
.RSTALLCARRYIN(RSTALLCARRYIN), // 1-bit input: Reset input for CARRYINREG
.RSTALUMODE(RSTALUMODE), // 1-bit input: Reset input for ALUMODEREG
.RSTB(RSTB), // 1-bit input: Reset input for BREG
.RSTC(RSTC), // 1-bit input: Reset input for CREG
.RSTCTRL(RSTCTRL), // 1-bit input: Reset input for OPMODEREG and CARRYINSELREG
.RSTD(RSTD), // 1-bit input: Reset input for DREG and ADREG
.RSTINMODE(RSTINMODE), // 1-bit input: Reset input for INMODEREG
.RSTM(RSTM), // 1-bit input: Reset input for MREG
.RSTP(RSTP) // 1-bit input: Reset input for PREG
);
// End of DSP48E1_inst instantiation
Related Information
- See the 7 Series DSP43E1 Slice User Guide (UG479).