Upload
dinhthuy
View
276
Download
13
Embed Size (px)
Citation preview
MATLAB在FPGA开发中的技术与应用
专题报告
徐 欣 博士 副教授
国 防 科 大 电 子 科 学 与 工 程 学 院
嵌 入 式 系 统 应 用 联 合 研 究 中 心
面向二十一世纪的嵌入式系统设计前沿技术
主要内容
基于Matlab的信号处理算法FPGA实现综述
Simulink与Xilinx System Generator 在数据采集预处理中的应用
Matlab 与Xilinx Accel DSP在数据分析中的方法与应用
信号处理算法的FPGA设计实现与调试技术
Matlab与FPGA设计技术总结与应用展望
综述(一)为什么用FPGA来实现DSP算法
Reason 1: 复杂巨量的运算需求
1 GHz256 clock cycles
= 4 MSPS
500 MHz1 clock cycle
= 500 MSPS
综述(一)为什么用FPGA来实现DSP算法
Q = (A x B) + (C x D) + (E x F) + (G x H)
can be implemented in parallel
×
×
×
× +
+
+
+
+
+
A
BC
DE
FG
H
Q
Reason 2: FPGA实现并行设计的灵活性
But is this the only way in the FPGA?
×
×
×
× +
+
+
+
+
+×
+
+D Q
×
×
+
+
+
+D Q
Parallel Semi-Parallel Serial
FPGAs allow Area (cost) / Performance tradeoffs
Optimized for?Speed Cost
DDCDDC
A/D
A/D
D/A
D/A
DSP ProcDDCDDC
DUCDUC
DUCDUC
DUCDUC
DUCDUC
DDCDDC DDCDDC
SDRAMAFE
DSP Card
Hundreds of Termination Resistors
PowerP
C
SDRAM
SSTL3TranslatorsQuad
TRx
QuadTRx
ASSP
NetworkCard
SDRAM
A/DA/D
D/A D/A
ASSP
SDRAM
ACIC MACs Serial RapidIO
DUCs, DDCs, LogicPowerPC
Reason 3: 通过高度集成降低DSP系统成本
DSPProc
ASIC
10 Gbps
综述(一)为什么用FPGA来实现DSP算法
C6416C6416100 MHz 100 kHz 100 kHz
FPGA as pre-processor500 MHz 500 MHz
C6416C6416
FPGA as co-processor
综述(二)FPGA与DSP信号处理器的协同
Performance acceleration in the signal processing chainFPGAs also enable
System logic muxing and consolidation New peripheral or bus interface implementation
综述(三)FPGA实现DSP算法的途径
采用知识产权内核(IP Core)进行设计
采用硬件描述语言(HDL)的传统设计方法
通过工具把C语言、M语言( AccelDSP )和Simulink 模型(System Generator)编译到硬件中
(一)System Generator应用框架
Import HDL Modules
(co-simulation)
ModelSim
MATLAB
High-bandwidth, Hardware in the Loop
(co-simulation)
ISE
Simulink
DSP functions for MicroBlaze& PowerPC Picture of
V4 LX board
Chipscope Pro
Debug at System Speed
Simulink与Xilinx System Generator 及其应用
System Generator™ for DSP 是业内领先的高
级工具,适于利用FPGA设计高性能DSP系统。工具的提取功
能使您能利用业内最高级的FPGA开发高度并行的系统,Simulink与MATLAB (MathWorks公司)提供了系统建模与自动代码生成。
(二)Simulink与System Generator设计流程--生成DSP系统的Simulink模型
Simulink与Xilinx System Generator 及其应用
SysGen blocks realizable in hardware
I/O blocks are used as interface between the Xilinx Blockset and other Simulink™ blocks
Simulink sources
(二)Simulink与System Generator设计流程--在Simulink中对模型进行仿真和功能验证
Simulink与Xilinx System Generator 及其应用
Push play to simulate the design. Go to Simulation Parameters, under the Simulation menu, to control the length of the simulations
(二)Simulink与System Generator设计流程--在利用xilinx插件生成FPGA网表并实现
Simulink与Xilinx System Generator 及其应用
Select HDL Netlist as the compilation modeSelect the target partSet the FPGA Clock PeriodCheck Create TestbenchGenerate the VHDL
Once complete, double-click the System Generator token
(二)Simulink与System Generator设计流程--对目标系统进行硬件在回路半实物仿真
Simulink与Xilinx System Generator 及其应用
HDL co-simulation
Hardware-in-the-loopco-simulation
The System Generator extends Simulink™to support external simulation engines• Hardware acceleration• Mixed-mode HDL/data flow
(三)Simulink与System Generator应用--在高速数据采集预处理中的应用
Simulink与Xilinx System Generator 及其应用
实现的功能:FFT、数字滤波(FIR)DDC、脉冲压缩等
成功案例:四通道高速数据采集卡,用于
某新型雷达(单站无源定位)信号处理算法验证平台,利用Xilinx FPGA XC2V1000与 SG实现预处理算法(FFT)
(一)Xilinx Accel DSP概述
Matlab 与Xilinx Accel DSP及其应用
AccelDSP Synthesis
• AccelDSP™ 综合工具是基于高级MATLAB®语言的工具,用于设计针对Xilinx FPGA 的DSP算法。工具可自动
地进行浮动或定点转换,生成可综合的VHDL或Verilog,并创建用于验证的测试平台。 您还可以生成定点C++模型或由MATLAB算法得到System Generator块。 AccelDSP综合工具是Xilinx XtremeDSP™ 解决方案的关键组成,集成了先进的FPGA、设计工具、知识产权核、合作伙伴以及设计与教育培训服务等。
(二)Xilinx Accel DSP提供的DSP算法库
Matlab 与Xilinx Accel DSP及其应用
Each IP module provides multiple silicon architectures that are fully parameterized to meet market-specific needs
Matrix inversionQR methodCholesky methodTriangular inversion
Matrix factorizationQR methodCholesky methodSVDQRD-RLS
Matrix inversionQR methodCholesky methodTriangular inversion
Matrix factorizationQR methodCholesky methodSVDQRD-RLS
AccelWare Advanced Math ToolkitAccelWare Advanced Math Toolkit
CIC Decimator / Interpolator
Decimating FIR filter
FFT, IFFT
FIR Filter
Half-Band FIR Filter
Polynomial Evaluation
Polyphase FIR Filter
CIC Decimator / Interpolator
Decimating FIR filter
FFT, IFFT
FIR Filter
Half-Band FIR Filter
Polynomial Evaluation
Polyphase FIR Filter
AccelWare Signal Processing ToolkitAccelWare Signal Processing Toolkit
A/D Sinc Compensation Filter
Convolutional Interleaver / Deinterleaver
Convolutional Encoder
Direct Digital Synthesizer
Reed-Solomon Enc / Dec
Root-raised Cosine Filter
Viterbi Decoder
BCH Enc / Dec
Scrambler / Descrambler
Direct Digital Synthesizer
A/D Sinc Compensation Filter
Convolutional Interleaver / Deinterleaver
Convolutional Encoder
Direct Digital Synthesizer
Reed-Solomon Enc / Dec
Root-raised Cosine Filter
Viterbi Decoder
BCH Enc / Dec
Scrambler / Descrambler
Direct Digital Synthesizer
AccelWare Communications Toolkit
AccelWare Communications Toolkit
(三)Xilinx Accel DSP与Matlab的应用框架
Matlab 与Xilinx Accel DSP及其应用
ProjectDirectory
Analyze In-MemoryDesign
DesignDirectives
Generate Fixed Point MATLABFixedPointModel
Project
Verify Fixed Point
Fixed Point PlotExamine theCoding Style
MATLABFloating
Point
Floating Point Plot
Verify Floating Point
Generate RTL
RTL&
Testbench
RTL Synthesizer
XSTSynplify Pro
Precision RTLDesign Compiler FPGA
Synthesize RTLVerify RTL
HDL Simulator
RivieraModelSim
Others
ImplementP&R Tools
Xilinx ISE
Verify Gates
Generate Fixed Point MATLABFixedPointModel
Verify Fixed Point
Fixed Point Plot
EvaluationBoards
FPGAs
Gate-level
design
TargetArchitecture
AccelWare
ParametricDSP Libraries
ModelsImport
(四)Matlab到FPGA硬件的映射与实现
Matlab 与Xilinx Accel DSP及其应用
outd
ata
inda
ta outdata_outOutputAvailOutputAck
hw_designindata_in
InputAvailInputReq
input stimulus
optional verification constructs
for n = 1:NUMSAMPLES
outdata( n ) = hw_design( indata( n ) );
end
Script File
Hardware Environment
(五)测试向量的生成 --利用Matlab语言自动生成
Matlab 与Xilinx Accel DSP及其应用
(六)Accel DSP设计流程与工具栏导航
Matlab 与Xilinx Accel DSP及其应用
Presents a push-button way to execute the design flowSteps are presented in the correct order using “progressive disclosure”Project “restore” feature returns you to the step where you last exited the tool
(七)Matlab与Accel DSP在高速数据分析中的应用
Matlab 与Xilinx Accel DSP及其应用
成功案例:
28通道多功能数据采集系统,用于阵列雷达信号采集系统算法验证,通过采集阵列雷达的视频,中频信号,利用AccelDSP与SG 共同实现 例如DDC,MTD等信号处理算法
(一)功能仿真
信号处理算法的FPGA设计实现与调试技术
在Simulink中对DSP系统模型进行功能仿真
利用Matlab对Accel DSP的系统模型进行浮点和定点仿真
在ISE中利用ModelSim实现对FPGA设计的功能仿真
(二)利用ChipScope片内逻辑分析仪进行在线调试
信号处理算法的FPGA设计实现与调试技术
Insert Chipscope block into Simulink designConfigure FPGA using JTAG interfacePerform in-system debug at near system speeds
(三)实物系统联调验证
信号处理算法的FPGA设计实现与调试技术
利用 高速数据 总线 ,USB,PCI express将数据传输到PC,利用软件验证 (推荐 !终极调试方法)
Matlab与FPGA设计技术总结与应用展望
利用Matlab进行FPGA设计可以大大提高设计的效率
Simulink与System GeneratorMatlab与Accel DSP
Matlab与FPGA的结合为DSP专用信号处理器提供了更高性能的保障和有益的补充,将在雷达、通信等高速信号处理领域发挥越来越重要的作用