MATLAB在FPGA开发中的 技术与应用 -...

26
MATLABFPGA开发中的 技术与应用 专题报告 徐欣 博士 副教授 国防科大电子科学与工程学院 嵌入式系统应用联合研究中心 面向二十一世纪的嵌入式系统设计前沿技术

Transcript of MATLAB在FPGA开发中的 技术与应用 -...

Page 1: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

MATLAB在FPGA开发中的技术与应用

专题报告

徐 欣 博士 副教授

国 防 科 大 电 子 科 学 与 工 程 学 院

嵌 入 式 系 统 应 用 联 合 研 究 中 心

面向二十一世纪的嵌入式系统设计前沿技术

Page 2: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

主要内容

基于Matlab的信号处理算法FPGA实现综述

Simulink与Xilinx System Generator 在数据采集预处理中的应用

Matlab 与Xilinx Accel DSP在数据分析中的方法与应用

信号处理算法的FPGA设计实现与调试技术

Matlab与FPGA设计技术总结与应用展望

Page 3: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

综述(一)为什么用FPGA来实现DSP算法

Reason 1: 复杂巨量的运算需求

1 GHz256 clock cycles

= 4 MSPS

500 MHz1 clock cycle

= 500 MSPS

Page 4: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

综述(一)为什么用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?

Page 5: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

×

×

×

× +

+

+

+

+

+

+D Q

×

×

+

+

+

+D Q

Parallel Semi-Parallel Serial

FPGAs allow Area (cost) / Performance tradeoffs

Optimized for?Speed Cost

Page 6: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

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算法

Page 7: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

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

Page 8: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

综述(三)FPGA实现DSP算法的途径

采用知识产权内核(IP Core)进行设计

采用硬件描述语言(HDL)的传统设计方法

通过工具把C语言、M语言( AccelDSP )和Simulink 模型(System Generator)编译到硬件中

Page 9: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(一)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公司)提供了系统建模与自动代码生成。

Page 10: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(二)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

Page 11: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(二)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

Page 12: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(二)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

Page 13: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(二)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

Page 14: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(三)Simulink与System Generator应用--在高速数据采集预处理中的应用

Simulink与Xilinx System Generator 及其应用

实现的功能:FFT、数字滤波(FIR)DDC、脉冲压缩等

成功案例:四通道高速数据采集卡,用于

某新型雷达(单站无源定位)信号处理算法验证平台,利用Xilinx FPGA XC2V1000与 SG实现预处理算法(FFT)

Page 15: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(一)Xilinx Accel DSP概述

Matlab 与Xilinx Accel DSP及其应用

AccelDSP Synthesis

• AccelDSP™ 综合工具是基于高级MATLAB®语言的工具,用于设计针对Xilinx FPGA 的DSP算法。工具可自动

地进行浮动或定点转换,生成可综合的VHDL或Verilog,并创建用于验证的测试平台。 您还可以生成定点C++模型或由MATLAB算法得到System Generator块。 AccelDSP综合工具是Xilinx XtremeDSP™ 解决方案的关键组成,集成了先进的FPGA、设计工具、知识产权核、合作伙伴以及设计与教育培训服务等。

Page 16: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(二)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

Page 17: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(三)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

Page 18: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(四)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

Page 19: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(五)测试向量的生成 --利用Matlab语言自动生成

Matlab 与Xilinx Accel DSP及其应用

Page 20: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(六)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

Page 21: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(七)Matlab与Accel DSP在高速数据分析中的应用

Matlab 与Xilinx Accel DSP及其应用

成功案例:

28通道多功能数据采集系统,用于阵列雷达信号采集系统算法验证,通过采集阵列雷达的视频,中频信号,利用AccelDSP与SG 共同实现 例如DDC,MTD等信号处理算法

Page 22: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(一)功能仿真

信号处理算法的FPGA设计实现与调试技术

在Simulink中对DSP系统模型进行功能仿真

利用Matlab对Accel DSP的系统模型进行浮点和定点仿真

在ISE中利用ModelSim实现对FPGA设计的功能仿真

Page 23: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(二)利用ChipScope片内逻辑分析仪进行在线调试

信号处理算法的FPGA设计实现与调试技术

Insert Chipscope block into Simulink designConfigure FPGA using JTAG interfacePerform in-system debug at near system speeds

Page 24: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

(三)实物系统联调验证

信号处理算法的FPGA设计实现与调试技术

利用 高速数据 总线 ,USB,PCI express将数据传输到PC,利用软件验证 (推荐 !终极调试方法)

Page 25: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

Matlab与FPGA设计技术总结与应用展望

利用Matlab进行FPGA设计可以大大提高设计的效率

Simulink与System GeneratorMatlab与Accel DSP

Matlab与FPGA的结合为DSP专用信号处理器提供了更高性能的保障和有益的补充,将在雷达、通信等高速信号处理领域发挥越来越重要的作用

Page 26: MATLAB在FPGA开发中的 技术与应用 - xilinx.eetrend.comxilinx.eetrend.com/.../3467-6823-matlabzai_fpgakai_fa_zhong_de_.pdf · MATLAB 在FPGA开发中的 ... BCH Enc / Dec Scrambler

谢谢!联系方式:

徐欣

TEL:13308491304E-mail:[email protected]