Chapter 2: XtremeDSP Design Considerations
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Architecture Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Number of DSP48 Slices Per Virtex-4 Device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
DSP48 Slice Primitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
DSP48 Slice Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Attributes in VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Attributes in Verilog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
DSP48 Tile and Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Simplified DSP48 Slice Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Timing Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
A, B, C, and P Port Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
OPMODE, SUBTRACT, and CARRYINSEL Port Logic . . . . . . . . . . . . . . . . . . . . . . . . 20
Two’s Complement Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
X, Y, and Z Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Three-Input Adder/Subtracter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Carry Input Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Symmetric Rounding Supported by Carry Logic. . . . . . . . . . . . . . . . . . . . . . . . . . 26
Forming Larger Multipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
FIR Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Basic FIR Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Multi-Channel FIR Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Creating FIR Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Adder Cascade vs. Adder Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
DSP48 Slice Functional Use Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Single Slice, Multi-Cycle, Functional Use Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Single Slice, 35 x 18 Multiplier Use Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Single Slice, 35 x 35 Multiplier Use Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Fully Pipelined Functional Use Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Fully Pipelined, 35 x 18 Multiplier Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Fully Pipelined, 35 x 35 Multiplier Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
vi • Xilinx
Fully Pipelined, Complex, 18 x 18 Multiplier Use Model . . . . . . . . . . . . . . . . . . . . . . . . 41
Fully Pipelined, Complex, 18 x 18 MAC Use Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Fully Pipelined, Complex, 35 x 18 Multiplier Usage Model. . . . . . . . . . . . . . . . . . . . . . . 46
Miscellaneous Functional Use Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Dynamic, 18-bit Circular Barrel Shifter Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
VHDL and Verilog Instantiation Templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
VHDL Instantiation Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Verilog Instantiation Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
|