Xilinx可编程逻辑器件设计与开发(基础篇)连载24:Spartan
5.1.5 DSP 模块XtremeDSP
为了适应越来越复杂的DSP运算,Virtex-6中嵌入了功能更强大的DSP48E1 SLICE,简化的DSP48E1模块如图5-16所示。
图5-16 简化的DSP48E1模块
DSP48E1兼容Virtex-5的DSP48E,而且在两方面有所增强。
带D寄存器的25位预加器,增加A通道的能力。
在切换乘法(A*B)和加法(A:B)操作时,INMODE控制支持平衡流水线。
图5-16为简化的DSP48E1模块框图,从图中可以看出,算术部分包含一个25位预加器、一个25&TImes;18二进制补码乘法器、3个48位的多路复用器,跟随一个48位符号可扩展的加法器/减法器/累加器或者2输入逻辑单元。如果使用了2输入逻辑单元,则此乘法器不能再被使用。
DSP48E1的数据和控制输入连接到算术和逻辑部分。A和B输入通道上有两级流水线寄存器;D和AD(AD为预加器内的中间寄存器)输入通道上有一级流水线寄存器。其他数据和控制输入通道也有一级流水线寄存器。最高操作频率可达600MHz。
大部分情况下,加法器/减法器/逻辑单元的输出是其输入的函数。输入由MUX、进位选择逻辑和乘法器阵列驱动。对应公式如下所示。
Adder/Sub输出= (Z ± (X + Y + CIN))或(-Z + (X + Y + CIN) –1)
DSP48E1的内部结构如图5-17所示,主要由以下几部分组成。
图5-17 DSP48E1内部结构图
一、 输入端口
(1) 输入端口A、B、C和D。
每个DSP48 SLICE有4个输入数据口A、B、C和D,A口30位宽,B口18位宽,C口48位宽,D口25位宽。A口、D口和预加器的逻辑如图5-18所示;B口逻辑如图5-19所示。A口的25位和B口18位数据是25位&TImes;18位乘法器输入。每个DSP48E1能完成乘加、乘减等操作。A口和B口可以合并跳过乘法器作为多路选择器X的输入。
A口和B口可以合并成48位宽的数据和48位宽的C口一起实现48位的加法/减法。
DSP48E1 SLICE提供了两个级联数据输入通道(ACIN和BCIN),提供了相邻DSP48E1 SLICE之间的级联输入数据流。级联路径ACIN为30位宽,BCIN为18位宽。A、B、ACIN和BCIN数据通路上有0、1或2级流水线。数据端口寄存器可以通过延时提高时钟频率。属性AREG和BREG用于设置A口和B口的流水线级数。属性ACASCREG和BCASCREG用于设置ACOUT口和BCOUT口级联流水线级数。DSP48E1通过控制多路选择器的控制位设置数据流的通路、寄存器和级联输入。
图5-18 A、D和预加器逻辑
图5-19 B口逻辑
INMODE[3:0]是DSP48E1里新增的控制位,这些位控制A和D输入寄存器与预加器的函数。
48位的C口作为Y和Z多路选择器的输入,实现加法、减法、三输入加/减和逻辑函数。C输入也连到模式识别器上,实现函数取舍。
(2) OPMODE、ALUMODE和CARRYINSEL端口逻辑。
OPMODE、ALUMODE和CARRYINSEL端口逻辑支持输入控制信号的直通或者寄存器输入。通过多路选择器的配置位可以选择直通或通过寄存器。OPMODE、ALUMODE和CARRYINSEL端口逻辑如图5-20所示。
(3) X、Y和Z多路选择器。
OPMODE提供了动态改变DSP48E1功能的方法,OPMODE的控制位对应X、Y和Z多路选择器的输出。这3个多路选择器的输出成为后面加/减器的三个操作数。
图5-20 OPMODE、ALUMODE和CARRYINSEL端口逻辑
(4) ALUMODE输入。
4位ALUMODE控制第二级加/减/逻辑单元的行为,如表5-11所示。
表5-11 ALUMODE控制的DSP操作配置表
(5) 进位输入逻辑。
Virtex-6器件中进位输入逻辑是3位CARRYINSEL信号的函数。输入逻辑见图5-21。所有可能的进位输入在X、Y和Z多路选择器之前"会合"。
图5-21 CARRYINSEL信号逻辑
二、 输出端口
除ACOUT和BCOUT外的所有输出端口通过RSTP复位,CEP使能。ACOUT和BCOUT分别通过RSTA和RSTB复位。DSP48E1输出逻辑如图5-22所示。
图5-22 DSP48E1输出逻辑
(1) 输出端口P。
DSP48E1有一个48位输出端口P,这个输出口能通过PCOUT通路连接(级联)相邻的DSP48E1 SLICE。PCOUT连接到相邻DSP48E的Z多路选择器的输入口(PCIN)。该通路提供两个相邻DSP48E1的输出级联通路。
(2) CARRYCASCOUT和CARRYOUT口。
DSP48E1 SLICE的进位输出为4位宽,通过CARRYOUT输出到FPGA逻辑。CARRYOUT信号通过CARRYCASCOUT和相邻DSP48E1 SLICE级联。实现更大的加法、减法、累加、乘累加函数。
(3) MULTSIGNOUT端口逻辑。
乘法器输出的最高位通过MULTSIGNOUT口级联到下一个DSP48E1 SLICE,仅用于扩展96位的MACC。
(4) PATTERNDETECT和PATTERNBDETECT端口逻辑。
DSP48E1 SLICE的输出增加了一个序列检测器,用于检测
- 可编程逻辑控制器(PLC)基本操作及功能简介(03-07)
- 基于可编程逻辑器件的数字电路设计(10-16)
- 基于CPLD的机载雷达控保系统设计与实现(10-29)
- 德州仪器可编程逻辑和自动化控制器(PLC/PAC)解决方案(11-03)
- 基于Xilinx(赛灵思) CPLD的看门狗电路设计(10-09)
- 莱迪思技术专家分享:基于FPGA的视频监控时代(02-21)