
www.farsight.com.cn
内容安排
}DSP的应用
}用FPGA 实现DSP的优势
}基本的FPGA资源
}内嵌DSP48的介绍
}基于System Generator的DSP设计
DSP的应用
}无线通信领域,如软件无线电(SDR) }视频图像处理领域,如高清数字电视(HDTV)
}军事和航空航天领域,如雷达声纳
无线接收机
DSP 处理器
ALU contains a fixed set of operations and multiple operations (cycles) required
to achieve desired effect
processors
Cycles expended making decisions Program must be stored in ROM
and many instructions do not directly one or a few can be used at one time 算法要用固定的结构来实现
串行系统了系统性能
Sample Rate (MSamples/s)
2 4 6 8 16 24 32 40 48 56 72 80 88 96 104
单引擎乘加器\nv 串行处理了数据的吞吐量\n\nØ 时分复用的 MAC 单元 Ø 高时钟频率使系统设计比较困难\nv 256 抽头的FIR滤波器\n\nData In\n\nReg\n\nØ 256 乘和累加(MAC)操作每采样 数据 Ø 每256个时钟输出一个结果\n\nLoop Algorithm 256 times\n\nMAC unit\nData Out\n\nwww.farsight.com.cn\n\n\r\n
多引擎乘加器\nv 并行处理使数据的吞吐量最大 Ø 支持任何层次的并行 Ø 最佳的性能/成本的折中 v 256抽头的FIR滤波器 Ø 256 个乘加器 (MAC) 每采样数 据 Ø 每个时钟输出一个结果 v 灵活的结构 Ø 分布的DSP资源 (LUT, registers, multipliers, & memory)\n\nData In\n\nReg0 C1\n\nReg1 C2\n\nReg2\n\nReg255\n\nC0\n\n.... C255\n\nAll 256 MAC operations in one clock cycle\n\nData Out\n\nwww.farsight.com.cn\n\n\r\n
FPGA能做大运算量的处理\n利用并行结构来加速FIR滤波器 Programmable DSP - Sequential\nData In Data In\nC0\n\nFPGA - Fully Parallel Implementation\nReg Reg Reg Reg Reg Reg Reg\n\nCoefficients 256 clock cycles needed\n\nX\n\nX\n\nC1\n\nC0 X\n\nC2\n\nX\n\nC3\n\nX … C255\n\nX\n\n+\nReg\n\nMAC Unit 256 operations in 1 clock cycle\n\n+\nData Out\n\nData Out\n\n1 GHz 256 clock cycles\n\n= 4 MSPS\n\n500 MHz 1 clock cycle\n\n= 500 MSPS\n\nwww.farsight.com.cn\n\n\r\n
FPGA是多通道DSP设计的理想器件\n能实现多通道并行处理或使用时分复用\n20MHz Samples LPF LPF LPF LPF ch1 ch2 LPF ch3 ch4 Multi Channel Filter 80MHz Samples\n\n}\n\n很多低采样率的通道能在FPGA中使用较高的频率,利用时 分复用(TDM)的方式进行处理。\n\nwww.farsight.com.cn\n\n\r\n
可定制结构来满足需求\nFPGAs 可在成本和性能之间进行折中\nParallel Semi-Parallel Serial\n\n×+ + × ×+ + ×\nSpeed\n\n+ +\n\n×+ ×+\n\n+\nDQ\n\n+\nDQ\n\n+\n\n×+\nCost\n\nOptimized for?\n\nwww.farsight.com.cn\n\n\r\n
可通过集成来降低成本\nA/D AFE A/D DDC DDC DDC DDC\n\nSDRAM\nDSP MACs Procs. DDC Control Control DDC MACs DDC DDC DUC DUC DUC DUC\n\nHundreds of Termination Resistors\n\nQuad TRx\nP\n\now\n\ner\n\nPC\n\nSSTL3 Translators\n\nASSP\n\nFPGA\n\nD/A DUC DUC D/A DUC DUC\n\nFPGA\n\nSDRAM\nDSP Card\n\nQuad Network TRx\n\nCard\n\nA/D A/D\n\nSDRAM\nPowerPC PowerPC\n\nControl\n\nPL4\n\nASSP\n3.125 Gbps\n\nD/A D/A\n\nMACs, DUCs, DDCs, Logic\nPowerPC PowerPC\n\nControl\n\nCORBA\n\nSDRAM\n\nwww.farsight.com.cn\n\n\r\n
FPGA简介
}所有的Xilinx FPGAs 包含了相同的基本资源}Slices 组成可编程逻辑块(CLBs)
}包含组合逻辑和寄存器资源
}输入与输出(IOBs)
}FPGA与外围电路的接口
}可编程的内部连接
}别的资源
}存储器
}乘法器
}全局时钟缓冲器
}边界扫描逻辑
FPGA的基本结构
Programmable
Interconnect
I/O Blocks (IOBs) Configurable
Logic Blocks (CLBs)
Virtex-II 的结构
Block SelectRAM ™resource
CLBs 和Slices Array }每个CLB 包含4个slices
}本地的布线提供在同一个
CLB内的slices之间的反馈,
并且提供到临近的CLBs
布线
}一个开关矩阵提供访问通
用资源的能力
Local Routing
Slice 资源
}每个slice包含两个:
输入的查找表
分布SelectRAM
移位寄存器
每个寄存器:
— D 触发器
—锁存器
专用逻辑:
—开关(Muxes)
—算数逻辑
—MULT_AND
—进位链
Register
LUT CY
G MUXF5
MUXFx
查找表
SRL16E 模块
16 SRAM 单元组成一个移位寄存器
–使用CE 和clock, 往第一个寄存器写数据就实现了右移一位–
因为是可预测的操作,不需要写地址
SRL16E 很合适实现一些DSP 功能
–非常有效的实现采样数据的延时–
高速移位和扫描采样值
A
Q CE
D Q
D Q15SRLC16
E Cascadable
D CE
内嵌的高性能DSP
位于块RAM 和CLB 阵列之间,这样能产生高性能的乘-累加操作乘法器速度的大幅提高,使FPGA 的DSP 处理能力和性能大幅提高
P
CE REG
D Q
A
BCIN
B
18
36
18
Virtex-II 使用了18x18 乘法器
DSP48E 模块
在最低速的器件中也能达到450 MHz 的速度
36OpMode
748
A:B
48
00
72Y
36X
17-bit shift 17-bit shift
PCIN
48
25
18
CE M REG
D
Q
CE P REG
D
Q
A
18
BCIN 01
48
ALUMode
CarryIn
48
Z CE C REG
D
Q
ACIN 01
14
=
C or MC
25
48
CE A REG
D Q 2-Deep
CE B REG
D 2-Deep
Q
DSP48E 的功能
v 允许DSP 的时分复用v 超过40种的模式
v 每一个模块都能控制v 在一个时钟周期内改变操作
v
控制功能可由逻辑,存储器或处理器来产生
6
543210Zero 0000000+/- Cin
Hold P 0000010+/- (P + Cin)A:B Select 0000011+/- (A:B + Cin)Multiply 0000101+/- (A * B + Cin)C Select 0001100+/- (C + Cin)Feedback Add 0001110+/- (C + P + Cin)36-Bit Adder 0001111+/- (A:B + C + Cin)P Cascade Select 0010000PCIN +/- Cin
P Cascade Feedback Add 0010010PCIN +/- (P + Cin)P Cascade Add 0010011PCIN +/- (A:B + Cin)P Cascade Multiply Add 0010101PCIN +/- (A * B + Cin)P Cascade Add 0011100PCIN +/- (C + Cin)P Cascade Feedback Add Add0011110PCIN +/- (C + P + Cin)P Cascade Add Add 0011111PCIN +/- (A:B + C + Cin)Hold P 0100000P +/- Cin
Double Feedback Add 0100010P +/- (P + Cin)Feedback Add 0100011P +/- (A:B + Cin)Multiply-Accumulate 0100101P +/- (A * B + Cin)Feedback Add 0101100P +/- (C + Cin)Double Feedback Add 0101110P +/- (C + P + Cin)Feedback Add Add 0101111P +/- (A:B + C + Cin)C Select 0110000C +/- Cin
Feedback Add 0110010C +/- (P + Cin)36-Bit Adder 0110011C +/- (A:B + Cin)Multiply-Add 0110101C +/- (A * B + Cin)Double 0111100C +/- (C + Cin)Double Add Feedback Add 0111110C +/- (C + P + Cin)Double Add 0
1
1
1111
C +/- (A:B + C + Cin)
OpMode
Output
X Y Z
动态可编程的DSP 操作模式
XtremeDSP 块的优势
Fabric and Routing May Reduce Performance
}
32 抽头的滤波器实现将要消耗1,461个逻辑资源
+
Consumes Logic to Implement Adders
Variable
Latency
的优势
XtremeDSP块
使用XtremeDSP块, 并行的加法树将不消耗逻辑资源
32 抽头的滤波器完全用XtremeDSP块来实现
System Generator的DSP设计平台
ISIM
System Generator概述
v FPGA的工业标准的系统级的设计环境(IDE)
Ø集成的设计流程从Simulink™软件到BIT文件
Ø整合了现存的技术
üMATLAB , Simulink
üHDL的综合
üIP核的库
üFPGA实现工具
v Simulink的算数,逻辑操作及DSP函数(Xilinx blockset)库Ø满足FPGA实现所需的精度和时序要求
v算法提取
Ø任意精度的定点,包括量化和溢出
Ø能进行双精度浮点和定点的仿真
System Generator概述
}能生成VHDL和Verilog的代码
}硬件的展开和映射
}可综合的VHDL和Verilog代码,并保留模块的层次结构
}VHDL/Verilog的混合语言支持
}自动启动CORE Generator™软件来使用IP核
}ISE的项目生成可简化设计流程
}HDL的测试文件和测试向量的生成
}约束文件(XCF), 仿真DO文件的生成
}HDL的协同仿真
}通过硬件协同仿真能极大的提高验证的速度(可通过并口电缆,USB下载线及网口线与硬件相连)
基于图形模块的设计环境
基于图形模型设计的优势
MATLAB
}MathWorks MATLAB 提供了一个系统级别的快速的算法解决方案
}大量的数学公式库,DSP库和通讯库等
等
}直观: 各种图形化的方式来显示整个系统或设计的输出
Simulink
}MathWorks Simulink 提供了图形化的设计环境来设计可执行的动态系统
}完全集成了MATLAB的引擎
}图形化的编辑器
}事件驱动的仿真器
}模块之间是并行的
}大量的参数可变的函数库
}Simulink模块集: 数学, 显示和数
据源
}DSP模块集: 滤波器等
}通讯模块集: 调制
等
直观的数据流工具
SysGen的设计流程
v使用Simulink来设计可执行的设计规范(SPEC)
v使用System generator来细化硬件算法
Ø验证硬件算法和可执行的设计规范(SPEC)的差别
SysGen的设计流程
SysGen的集成
FIR滤波器的生成
v FIR编译器能快速生成性能优化的FIR滤波器
Ø自动实现DSP48的模块以便在V5的芯片中达到550MHz的
运算性能
Ø支持多采样率,过采样,多信道和系数优化等
v MathWorks的FDA工具提供了图形化的设计界面和系数生成
嵌入式处理器设计
v DSP系统能被快速地集成到嵌入式处理器设计中
Ø集成到Xilinx Platform Studio
Ø通过一个共享的存储器来简化接口
硬件协同仿真
v自动化的硬件协同仿真
Ø1000倍以上的仿真性能的提高
v能在超过20块的验证板上运行
Q&A
38
39
