《基于FPGA的数字信号处理 》第二章跨越鸿沟:从算法到硬件实现

跨越鸿沟:从算法到硬件实现

2.1数字信号处理系统架构分析;
2.2数字信号处理系统设计方法;2.2.1传统的RTL设计方法2.2.2基于模型的设计方法·2.2.3高层次综合设计方法2.2.4三种设计方法的融合
2.3FPGA设计性能描述指标:
2.4FPGA设计中的数据格式;2.41 浮点数基础知识.;2.4.2 定点数基础知识;2.4.3浮点数与定点数的比较;2.4.4 浮点数到定点数的转换·。
2.5Xilinx开发工具对浮点数与定点数的支持: 2.5.1SystemGenerator对浮点数与定点数的支持;2.5.2VivadoHLS对浮点数与定点数的支持。



前言

信号处理关注的是信号及其所包含信息的表示、变换和运算。例如,希望分开两个或多个混叠在一起的信号,或者增强某些信号分量或一个信号模型中的某些参量。


一、2.1数字信号处理系统架构分析

  • 数字滤波和傅里叶变换(DFT)是数字信号处理领域最为常见的的两种处理方式。数字信号处理系练的性能取决于三个因素:采样频率(Sample Frequencu)、架构(Architecture)和字长(Word length,也称位宽)。这三个因素对系统性能如系统速度、系统带宽、系统功耗以及系统资源等起着决定性的作用。
  • 数字信号处理单元是数字信号处理系统的核心部件。目前,主流的处理单元可分为三类:指令集处理单元、硬连线结构处理单元和可重构处理单元。
  • ZYNQ有大量的MAC(Multiply-Accumulator硬线,可以在全流水模式下高速运行)和BLock_RAM可提供2622GMACS的算力 (GMACS表征了DSP48每秒执行的乘加次数)。

Xilinx7系列中DSPE1中的性能对比
FPGA中实现乘累加运算的三种架构

  • 综上所述,对于性能要求极高的应用,可将复杂算法划分为底层部分和顶层部分,结合DSP 处理器和
    FPGA各自的结构和功能特点,将算法的各部分映射到不同的硬件模块上,在系统功能上实现互补。底层部分用于数据处理量大、速度要求高、但是算法结构相对比较简单的算法,适宜于用 FPGA 硬件的高度并行性实现,可同时兼顾速度及灵活性,如一定长度的 FFT/IFFT、FIR 滤波等算法。顶层部分处理的特点是所处理的数据量较底层部分少,但算法的控制结构复杂,适宜于运算速度高、寻址方式灵活、通信机制强大的 DSP 处理器或ARM处理器。FPGA+DSPs 处理器、FPGA+ARM处理器以及 SOC FPGA 的架构是目前高性能数字信号处理系统的主流方式。这种结构非常灵活,有较强的通用性,适于模块化设计,有利于提高算法效率,缩短开发周期,并易于维护和扩展。
    FPGA+DSPs+ARM的数字信号处理系统

二、2.2数字信号处理系统设计方法

2.2.1 传统方法

  • 需求分析;
  • 算法仿真;
  • 算法分解到软硬件的实施(FPGA适合高速数据处理的算法);
  • 算法实现;
  • 系统集成,验证和联调;
    自顶向下的数字系统设计流程
    基于FPGA的自顶向下的设计流程

2.2.1 基于模型的设计方法&高层次综合设计方法

1、基于模型的设计方法
sysGen模型
众所周知,Matlab 是业内广泛使用的反映较好的算法开发和验证软件,过去长时间主要应用于系统级的算法仿真和建模。SysGen 实现了 FPGA 与 Matlab的无缝链接,使 Matlab 这一系统设计工具与 FPGA 设计融为一体直接变为 FPGA 设计中的顶层设计工具。SysGen 不但接受设计师们习惯的 Matlab、Simulink、Verilog 或 VHDL语言,还支持混合使用这些语言或工具进行设计工作,这一点对团队开发尤为重要。
1)高效而丰富的IP模块:模块之间用gateway_in和gateway_out来过渡。
sysgen系统模型
2)按位对齐和按周期对齐:FPGA 实现的硬件系统则是通过各模型的时钟周期建立的,两者实质是一致的,只是硬件系统工作在绝对的时钟频率下,Simulink 系统则工作在相对的时钟关系下。SysGen是按位对齐建模的,SysGen使在Simulink中搭建的模型与硬件实现之间保持按周期对齐。
利用SysGen 进行数字信号处理系统开发的流程如图所示。系统建模、系统级功能仿真和HDL协同仿真都可在 Simulink 下完成。在系统建模阶段,可以利用 Xilinx Blockset下的模块,也可以利用已有的HDL代码通过 BlackBox模块导入到Simulink 工程文件slx中(HDL代码要符合 BlackBox 模块的要求),还可以利用已有的 Matlab 代码通过 MCode 模块导入到Simulink 工程文件slx中(Matlab 代码要符合MCode模块的要求)。
sysgen信号处理的开发流程
2、高层次综合设计方法
HLS文件构成

  • VivadoHLS对C代码的转换过程可分为时序安排(Scheduling)、资源规划(Binding和控制逻辑提取(Control Logic Extraction)三个阶段。控制逻辑提取用于产生有限状态机 (Finite State Machine,FSM),以控制数据路径的操作顺序。

vivado_HLS工作原理
基于高层次HLS综合设计流程
Vivado中导出结果
SysGen、VivadoHLS和Vivado 之间的关系
系统设计方法

三、2.3FPGA设计性能描述指标

流水线是 FPGA设计中很常用的一种提高系统时钟频率的方法:流水寄存器(本质为 D触发器)
流水线原理

两点之间的延迟=每个操作或者模块所需要的周期总和
数据吞吐量为3,延迟为6
数据率

2.4 FPGA设计中的数据格式

一般S位的0表示正数,“1”表示负数。

定义单精度浮点数格式
1.第一类定点数:整数
N 位二进制数所能表示的无符号整数范围是[0,2"-1],所能表示的有符号整数范围是[-2N-1,2N-1 -1]。
常用取反加一
2、定点数:
三位有符号定点纯小数
三位无符号定点纯小数
3.定点带小数:
定点数常规格式

2.5xilinx开发工具对浮点数与定点数的支持

  1. 该IP 既可在 Vivado IP Catalog 中调用,也可在SysGen中以模块化的方式调用。
    Xilinx浮点IP所支持的运算
  2. 在 SysGen 中,有符号定点数以 Fix_w_wf 来显示,无符号定点数以 UFix_w_wf 来显示。其中 w为字长,wf 为小数部分字长。

总结

system generator相当于IP核一样帮助开发者实现算法验证和开发。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
FPGA数字信号处理权威指南:从HDL到模型和C的描述》是一本关于FPGA数字信号处理的权威指南,内容涵盖了从HDL(硬件描述语言)到模型和C的描述。下面我将用300字简要回答这本书的下载。 首先,这本指南对于想要深入了解和实践FPGA数字信号处理的人来说是一个非常宝贵的资源。它通过详细介绍HDL,如Verilog和VHDL,帮助读者理解FPGA的基本原理和设计方法。同时,该书还介绍了模型的概念和使用方法,使读者可以更好地进行仿真和调试。 其次,书中对C语言在FPGA数字信号处理中的应用也进行了广泛的讨论。C语言作为一种高级编程语言,可以方便地进行算法设计和模块化开发。这本指南帮助读者理解如何将C代码转换为FPGA上的硬件加速实现,并通过实例演示了不同的优化技巧和工具的使用。 此外,该书还涵盖了一些常见的FPGA数字信号处理应用领域,如音频处理、图像处理和通信系统等。对于从事相关工作或有兴趣进入该领域的读者来说,这些实际案例的介绍将帮助他们理解不同应用场景下FPGA的设计和实现方法。 最后,这本指南还包括了大量的练习题和实验案例,读者可以通过这些练习来巩固所学知识,并提升实践能力。此外,书中还提供了丰富的参考资料和扩展阅读,以帮助读者深入学习和研究自己感兴趣的领域。 总之,通过《FPGA数字信号处理权威指南:从HDL到模型和C的描述》的下载,读者可以获取到一份全面而权威的关于FPGA数字信号处理的指南。它将帮助读者系统地了解FPGA的基础知识、实践方法和应用领域,提升他们在该领域的技术能力和创新能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的信号里没有噪声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值