• 検索結果がありません。

"MASK" パターン検出器で使用されるマスクを指定します。

C および MASK は、パターン検出器を標準的に 使用する際の設定です (カウンター、オーバーフ ロー検出など)。 ROUNDING_MODE1 (C バー 1 つ 左にシフト) および ROUNDING_MODE2 (C バー 2 つ左にシフト) では、オプションでレジスタを付け た C ポートに基づき、特別マスクが選択されます。

これらの丸めモードは、パターン検出器を使用し

て DSP48E1 スライスに収束丸めをインプリメント

するのに使用できます。

属性 タイプ 値 デフォルト 説明

SEL_PATTERN 文字列 "PATTERN"、"C" "PATTERN" パターン フィールドの入力ソースを選択します。 入 力ソースは、48 ビットのダイナミック C 入力または 48 ビットのスタティック PATTERN 属性フィール ドにできます。

USE_DPORT ブール代数 FALSE、TRUE FALSE 前置加算器および D ポートの使用の有無を選択 します。

USE_MULT 文字列 "MULTIPLY"、

"DYNAMIC"、

"NONE"

"MULTIPLY" 乗算器の使用方法を選択します。 "NONE" に設定 すると、加算器/ロジック ユニットのみを使用すると きに消費電力を節約できます。 "DYNAMIC" は、

ユーザーが A*B と A:B をダイナミックに切り替えて いて、この 2 つのパスのワーストケース タイミングを 取得することが必要であることを示します。

USE_PATTERN_DETECT 文字列 "NO_PATDET"、

"PATDET"

"NO_PATDET" パターン検出器および関連機能を使用するか ("PATDET")、使用しないか ("NO_PATDET") 選択 します。 この属性は、スピード仕様およびシミュレー ション モデルの用途のみに使用します。

USE_SIMD 文字列 "ONE48" 、

"FOUR12" 、

"TWO24"

"ONE48" 加減算器の動作モードを選択します。 1 つの 48 ビット加算器モードにするには "ONE48"、2 つの 24 ビット加算器モードにするには "TWO24"、4 つ の 12 ビット加算器モードにするには "FOUR12" を 指定します。 ONE48 モードは、Virtex-5 DSP48 動 作と互換性があり、本来の SIMD モードではありま せん。 通常の乗算/加算操作は、"ONE48" が設定 されているときにサポートされています。 "TWO24"

または "FOUR12" モードを選択する場合は、乗算 器は使用せず、USE_MULT を "NONE" に設定す る必要があります。

VHDL 記述 (インスタンシエーション)

次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。

Library UNISIM;

use UNISIM.vcomponents.all;

-- DSP48E1: 48-bit Multi-Functional Arithmetic Block

-- 7 Series

-- Xilinx HDL Libraries Guide, version 13.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") -- 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) USE_SIMD => "ONE48" -- SIMD selection ("ONE48", "TWO24", "FOUR12") )

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

CEINMODE => CEINMODE, -- 1-bit input: Clock enable input for INMODEREG

CLK => CLK, -- 1-bit input: Clock input

INMODE => INMODE, -- 5-bit input: INMODE control input OPMODE => OPMODE, -- 7-bit input: Operation mode input RSTINMODE => RSTINMODE, -- 1-bit input: Reset input for INMODEREG -- 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 ALUMODERE 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

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

RSTM => RSTM, -- 1-bit input: Reset input for MREG RSTP => RSTP -- 1-bit input: Reset input for PREG );

-- End of DSP48E1_inst instantiation

Verilog 記述 (インスタンシエーション)

// DSP48E1: 48-bit Multi-Functional Arithmetic Block

// 7 Series

// Xilinx HDL Libraries Guide, version 13.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") // 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)

.USE_SIMD("ONE48") // SIMD selection ("ONE48", "TWO24", "FOUR12") )

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

.CEINMODE(CEINMODE), // 1-bit input: Clock enable input for INMODEREG

.CLK(CLK), // 1-bit input: Clock input

.INMODE(INMODE), // 5-bit input: INMODE control input .OPMODE(OPMODE), // 7-bit input: Operation mode input .RSTINMODE(RSTINMODE), // 1-bit input: Reset input for INMODEREG // 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 ALUMODERE .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

.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

.RSTM(RSTM), // 1-bit input: Reset input for MREG .RSTP(RSTP) // 1-bit input: Reset input for PREG );

// End of DSP48E1_inst instantiation

詳細情報

7 シリーズ FPGA の資料 (ユーザー ガイドおよびデータシート)