【读书】基于FPGA的数字信号处理 [高亚军 编著]

基于FPGA的数字信号处理 [高亚军 编著]

第一章 现场可编程门阵列技术分析
1.1 FPGA 内部结构分析
1.2 FPGA 设计流程分析
1.3 FPGA 调试方法分析



前言

目前半导体工艺已达到28nm 甚至更小的尺寸,Xilinx公司在推出堆叠的3D封装全可编程FPGA和嵌入双核ARM CortexA9的全可编程SOC之后,又推出具有ASIC级别优势的 UltraSCALE FPGA和 UtraSCALE MPSOC等器件这些器件内的逻辑单元可达到4万个,DSP 模块的数量最多达到 11904 个,最高的性能达到 21213 GMAC,这极大地提高了DSP 的处理能力,所以FPGA 是名副其实的并行处理引擎。而另一方面,FPGA 又具备现场可编程的特性,可以节省产品投资的成本,缩短了产品的上市时间,加快了适应不同用户需求的步伐,使之成为ASIC的有力竞争对手。.
半导体业界发生了三次具有里程碑意义的事件:Xilinx 公司推出了第一代3D 芯片,使得 FPGA 内部逻辑规模达到了 2M;Xilinx 公司推出了入双核ARM Cortex-A9 的全新一代片上可编程(SoC)FPGA,进一步提升了 FPGA 的功能和集成度,有助于 PCB的小型化:Xilinx 公司推出了新一代开发工具 Vivado,有力支持 7系列FPGA,提高了生产效率。此外,Xilinx 公司还推出了高层次综合工具 Vivado HLS,实现了从C/C++到 RTL 的转换,有利于复杂算法的 FPGA 实现。无论是 FPGA 的工艺水平还是其开发工具,都有了长足的发展,这为以 FPGA 为平台的数字信号处理系统的开发提供了强大的支持,也加速了数字信号处理系统架构的变革,同时也使得FPGA 在更多的领域获得应用。


1.1FPGA内部结分析

由于半导体技术的飞跃发展,数字系统的应用经历了分立元件、小规模集成SSI(Small Scale Integration)电路中规模集成MSI(Medium Scale Integration)电路、大规模集成 LSI (Large Scale Integration)电路和超大规模集成VLSI(Very Large Scale Integration)电路的发展历程,数字系统应用的基本特征也由中小规模集成度的标准通用集成电路向设计师定制的专用集成电路过渡。
数字ASIC分类
传统的 FPGA内部通常由三大功能单元构成:逻辑单元布线资源和 IO单元,随着微电子工艺水平的发展,FPGA 内部被入了更多的功能单元,以 Xilinx 7系列kFPGA为例,除了逻辑单元(Configurable Logic Block CLB)外,还有存储单元 BlockRAM、乘加运算单元 DSP48E1、时钟发生器 MMCM、高速收发器 GTX 和 IO逻辑单元等。
Xilinx7系列内部结构

  • 每个CLB由两个Slice 构成,每个Slice包含4个6输入查找表(LUT)、数据选择器(MUX)和进位链(Carry Chain)。

查找表LUT与逻辑单元规模LC的关系式

  • DSP的性能以GMACS(Giga Multiply-Accumulates per Second)来表示。GMACS 表征了DSP48
    每秒执行的乘加次数。

SOCFPGA内部结构分析

PS 和 PL 两者不是孤立的,而是通过 AXI 互联实现数据通信,共有9个通信接口。其中包括4个32/64位高性能AXI从接口、2个通用32位AX主接口、2个通用32位AXI从接口和1个64位AXI ACP (Accelerator Coherency Port)接口。除此之外,PS 还可以通过EMIO将数据传送给PL部分进行处理。
PL部分,Z-7010Z-7015和 Z-7020 的性能与Artix-7 一致:Z-7030Z-7035Z-7045和Z-7100的性能与Kintex-7一致。此处不再赘述。Zynq 作为新一代SOC FPGA,与之前的入 PowerPC 的 FPGA 以及可生成软核MicroBlaze 的 FPGA 相比,性能有了很大的提升,功能有了很大的扩展。从系统角度看,Zynq 的 PL 部分可看作是 PS 的外部设备,起到协处理器或者预处理器的作用,用于处理高速的数据密集型算法,以实现算法的硬件加速:PS 部分可看作是系统的核心,用于对系统进行管理和调度。SoC FPGA 将硬件与软件整合在一起,提供了一种单芯片系统解决方案。

1.2 FPGA 设计流程分析

Vivado下FPGA设计流程

针对SOCFPGA的开发,Xilinx在Vivado中专门设置了一个工具IP Integrator4],该工具直接集成于 Vivado 中,取代了原有的ISE下的XPS(Xilinx PlatformStudio),但IPIntegrator 的功能不止于此
IP Integrator 作为IP 集成工具,以图形化、模块化的方式在设计中添加IP、连接端口,,这种方式更为直观和便捷。

  • Zyng 中的 PS 以IP 的方式存在于 Catalog下,可以快捷地添加到IPImtegrator 的图形设计窗口中。

整个设计流程并不难理解,软件编程需要依托硬件平台,在硬件平台上实现应用,因此硬件编程的目的就是完成处理器和外围设备的配置。硬件编程在 Vivado 中完成,首先需要利用IPIntegrator 完成PS 的配置,可理解为对 IP进行参数配置,需要设置PS 和PL之间的接口、外围设备接口 (MIO和EMIO)PS和PL的时钟DDR控制器、静态存储控制器(Static Memory Controller,SMC)和中断:然后生成相应的HDL文件,从而使PS 部分成为一个实体(Entity/Module),可以在顶层文件中例化。至此,就可以执行传统的FPGA 设计流程如综合、实现。
SOC FPGA设计流程

  • 硬件编程可采用 Vivado完成,软件编程可采用 SDK完成

1.3 FPGA 调试方法分析

在FPGA 调试阶段,传统的信号分析手段是用逻辑分析仪分析信号和时序,设计时要求 FPGA和 PCB 设计人员保留一定数量的 FPGA 管脚作为测试管脚,编写 FPGA 代码时需要将观察的信号作为模块的输出信号,在综合实现时再把这些输出信号锁定到测试管脚上,然后连接逻辑分析仪的探头到这些测试管脚,设定触发条件,进行观测。

扫描二维码关注公众号,回复: 17137291 查看本文章
  • 基本原理是利用 FPGA 中未使用的 Block RAM,根据用户设定的触发条件将信号实时地保存到这些Block RAM 中,然后通过JTAG口传送到计算机并在计算机屏幕上显示出时序波形。

ILA

在FPGA设计中,有两种方法调用ILA。
(1)在综合后的网表中插入 ILA。

将Vivado切换至Debug 模式,通过“Set Up Debug Wizard”插入ILA。
利用XDC命令插入ILA。

(2)在HDL代码中例化ILA。

VIO

VIO有三类管脚:时钟管脚 (clk探针输入管脚(probe in)和探针输出管脚(probe out),如图 1.34 所示。probe in 用于监测 FPGA 内部信号,类似于 LED 灯,以亮灭表示信号状态;probe out 将 VIO产生的激励作用于FPGA内部信号,类于电路板上的开关按键。


总结

Xilinx的FPGA采用了统一的面向应用的ASMBL 架构和堆叠硅片互联技术进一步提升了FPGA的容量和集成度。这一章也展示了FPGA与Soc直接的区别和联系,在Soc中PS 以IP 的方式存在于 Catalog下,可以快捷地添加到IPImtegrator 的图形设计窗口中。在设计开发Soc中硬件编程可采用 Vivado完成,软件编程可采用 SDK完成。

猜你喜欢

转载自blog.csdn.net/qq_41403946/article/details/133696402