MATLAB在FPGA开发中的
技术与应用
专题报告
徐 欣 博士 副教授
国 防 科 大 电 子 科 学 与 工 程 学 院
嵌 入 式 系 统 应 用 联 合 研 究 中 心
面向二十一世纪的嵌入式系统设计前沿技术
主要内容
基于Matlab的信号处理算法FPGA实现综述
Simulink与Xilinx System Generator 在数据
采集预处理中的应用
Matlab 与Xilinx Accel DSP在数据分析中的
方法与应用
信号处理算法的FPGA设计实现与调试技术
Matlab与FPGA设计技术
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
与应用展望
综述(一)为什么用FPGA来实现DSP算法
Reason 1: 复杂巨量的运算需求
1 GHz
256 clock cycles
= 4 MSPS
500 MHz
1 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
B
C
D
E
F
G
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
SDRAM
AFE
DSP
Card
Hundreds of
Termination Resistors
Po
w
er
PC
SDRAM
SSTL3
TranslatorsQuad
TRx
Quad
TRx
ASSP
Network
Card
SDRAM
A/DA/D
D/A D/A
ASSP
SDRAM
ACIC MACs Serial RapidIO
DUCs, DDCs, Logic
PowerPC
Reason 3: 通过高度集成降低DSP系统成本
DSP
Proc
ASIC
10 Gbps
综述(一)为什么用FPGA来实现DSP算法
C6416C6416100 MHz 100 kHz 100 kHz
FPGA as pre-processor
500 MHz 500 MHz
C6416C6416
FPGA as co-processor
综述(二)FPGA与DSP信号处理器的协同
Performance acceleration in the signal processing chain
FPGAs 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 mode
Select the target part
Set the FPGA Clock Period
Check Create Testbench
Generate the VHDL
Once complete, double-click
the System Generator token
(二)Simulink与System Generator设计流程
--对目标系统进行硬件在回路半实物仿真
Simulink与Xilinx System Generator 及其应用
HDL co-simulation
Hardware-in-the-loop
co-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™ 解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
的关键
组成,集成了先进的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 inversion
QR method
Cholesky method
Triangular inversion
Matrix factorization
QR method
Cholesky method
SVD
QRD-RLS
Matrix inversion
QR method
Cholesky method
Triangular inversion
Matrix factorization
QR method
Cholesky method
SVD
QRD-RLS
AccelWare Advanced
Math Toolkit
AccelWare 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 Toolkit
AccelWare 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及其应用
Project
Directory
Analyze In-Memory
Design
Design
Directives
Generate Fixed Point MATLAB
Fixed
Point
Model
Project
Verify Fixed Point
Fixed Point PlotExamine the
Coding Style
MATLAB
Floating
Point
Floating Point Plot
Verify Floating Point
Generate RTL
RTL
&
Testbench
RTL Synthesizer
XST
Synplify Pro
Precision RTL
Design Compiler FPGA
Synthesize RTLVerify RTL
HDL Simulator
Riviera
ModelSim
Others
Implement
P&R Tools
Xilinx ISE
Verify Gates
Generate Fixed Point MATLAB
Fixed
Point
Model
Verify Fixed Point
Fixed Point Plot
Evaluation
Boards
FPGAs
Gate-
level
design
Target
Architecture
AccelWare
Parametric
DSP Libraries
Models
Import
(四)Matlab到FPGA硬件的映射与实现
Matlab 与Xilinx Accel DSP及其应用
o
u
t
d
a
t
a
i
n
d
a
t
a
outdata_out
OutputAvail
OutputAck
hw_design
indata_in
InputAvail
InputReq
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 flow
Steps 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 design
Configure FPGA using
JTAG interface
Perform in-system
debug at near system
speeds
(三)实物系统联调验证
信号处理算法的FPGA设计实现与调试技术
利用 高速数据 总线 ,
USB,PCI express将数据
传输到PC,利用软件验
证 (推荐!终极调试方
法)
Matlab与FPGA设计技术总结与应用展望
利用Matlab进行FPGA设计可以
大大提高设计的效率
Simulink与System Generator
Matlab与Accel DSP
Matlab与FPGA的结合为DSP专用
信号处理器提供了更高性能的保
障和有益的补充,将在雷达、通
信等高速信号处理领域发挥越来
越重要的作用
谢谢!
联系方式:
徐欣
TEL:13308491304
E-mail:xuxin@nudt.edu.cn