FPGA软硬协同设计学习笔记及基础知识
Posted Paul安
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA软硬协同设计学习笔记及基础知识相关的知识,希望对你有一定的参考价值。
一、FPGA软件硬件协同定义:
软件:一般以软件语言来描述,类似ARM处理器的嵌入式设计。硬件定义如FPGA,里面资源有限但可重配置性有许多优点,新的有动态可充配置技术。
Xilinx开发了部分动态可重配置技术,它可以只针对需要变化的FPGA逻辑完成重配置而保持其他部分FPGA正常工作。在汽车电子应用中,汽车安全辅助驾驶功能越来越被重视,其中高级倒车后视、自动泊车和行车时离道报警两个功能都可以用摄像头完成。这两个功能的图像采集处理逻辑是一致的,但是其图像处理的算法却不同,如果专门设计一个SoC芯片的话,需要这两部分独立的IP核,或者为了降低成本尽量将算法全部在处理器中实现。而用了Zynq,因为两部分的功能并不是同时需要的,我们可以保持处理器部分代码执行不变,FPGA中图像采集模块不变,在倒车时通过部分可重配置技术加载倒车时的图像处理算法硬件,而在开车时,自动加载离道报警算法硬件。这样就可以利用同样一块逻辑单元实现两部分的硬件功能。提高并加强了实时响应的速度。
二、“硬件加速”定义?
硬件加速(Hardware acceleration)就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。硬件加速通常比软件算法的效率要高。
硬件加速时CPU调度GPU运行,内存占用率也会升高。
三、软件与硬件协同调试如何完成?
硬件主要采用仿真工具,在线逻辑分析仪chipscope。
四、概括Zynq-7000在SOC嵌入式应用的优势?
Zynq-7000 采用可扩展式处理平台架构(Extensible Processing Platform、EPP),是 Xilinx 用 28nm HKMG工艺制成的低功耗,高性能,高扩展性的新型芯片,这款新品里面集成了ARM CORTEX-A9 MPSOC 硬核以及相应的SOC系统。
PS: 处理系统(Processing System),与FPGA无关的ARM的SOC的部分。
PL: 可编程逻辑 (Progarmmable Logic),FPGA部分。
APU: 应用处理器单元(Application Processor Unit)。位于PS里面的中心位置。
SCU: Snoop Control Unit,用来保持双核之间的数据Cache的一致性。也就是说,第一个A9 处理器写存储时,只是写在了缓存里,没有进主存,如果第二个A9读操作,涉及到第一个写脏了的数据段,SCU要保证第二个A9的缓存里是最新的数据。如果第二个A9写同样数据段的数据,需要在第一个中体现出写的内容。SCU的存在,才使得两个核成互相联系的 “双核”,才能成为MPsoc。
1、正确规划单板上 FPGA 的定向并将信号分配给特定的引脚,这样可以显著改进系统整体性能、功耗和设计周期。可视化 FPGA 器件与印刷电路板 (PCB) 之间的物理和逻辑互动方式,使您可以优化通过器件的数据流。未正确规划 I/O 配置则可能导致系统性能下降和设计收敛时间延长。单板上 FPGA 器件的布局与其它组件的互动会对 I/O 规划产生巨大影响。
2、首先应确定 FPGA 器件在 PCB 上的定向。还要考虑固定 PCB 组件的位置,以及内部 FPGA 资源。例如,使 FPGA 封装的 GT 接口尽量靠近在 PCB 上与其连接的组件,这样可以缩短 PCB 走线长度,同时减少 PCB 过孔数量。
3、赛灵思建议您设计时首先选择时钟资源,然后再选择管脚。您的时钟选择不仅可以确定特定的管脚,而且还可以支配逻辑布局。正确的时钟选择可以产生非常好的效果。
4、赛灵思 7 系列器件包含 32 个全局时钟缓冲器 (BUFG)。其中 16 个全局时钟缓冲器位于 FPGA 器件水平方向中心的上半部分,而另外 16 个则位于水平方向中心的下半部分。芯片上半部的 PLL 和 MMCM只能连接到水平方向中心以上的 16 个 BUFG 上。而芯片下半部的PLL 和 MMCM 只能连接到水平方向中心以下的 16 个 BUFG 上。选择 PLL 或 MMCM 时,请尽量使用 PLL,因为其具有更严格的抖动控制。在如下情况下也可以使用 MMCM :(1) PLL 已用尽 ; (2)MMCM 可提供所需的高级功能,但 PLL 则不能。
BUFG 组件可以满足设计的大多数时钟要求,但对以下要求不高 :
? 时钟数量
? 设计性能
BUFG 组件易于通过综合调用,并且限制较少,支持大多数普通时钟。
5、使用存储器接口生成器 (MIG) 生成管脚。
千兆位收发器 (GT) 具有特定的管脚要求。假如 GT 采用相同或邻近的 quads,则您可以在多个 GT之间共享参考时钟。赛灵思建议您使用 GT 向导生成内核。有关管脚建议,敬请参阅产品指南。
HP(高性能)和 HR(大范围)Bank在收发信号的速度上存在差异。根据所需的 I/O 速度,在 HP或 HR Bank 间做出选择。
6、从加电到断电,FPGA 器件要经过多个电源阶段,并伴有不同的功率需求 :
? 加电功率
加电功率是 FPGA 器件首次加电时发生的瞬时峰值电流。电压不同时,该电流强度也会发生变化且电流强度取决于 FPGA 器件的结构、电源上升到额定电压的能力,以及器件的工作条件(比如温度以及不同电源之间的排序)。在新型 FPGA 器件架构中,不用担心峰值电流的问题,因为它遵循了适用的上电顺序指南。
? 配置功率
配置功率是指在器件配置期间所需的功率。配置功率通常低于有效功率,因此,除非您的使用过程功耗极低,否则该瞬态不会影响供电需求
? 待机功率
待机功率(又称“设计静态功率”)是器件按设计配置后未对其施加任何外部活动或者未产生任何内部活动时提供的功率。待机功率是设计运行时电源应提供的最小连续功率。
? 有功功率
有功功率(又称“设计动态功率”)是器件运行应用程序时所需功率。有功功率包括待机功率(全部静态功率)以及因设计活动(设计动态功率)产生的功率。有功功率是瞬时发生的,且根据输入数据模式以及设计内部活动的不同每个时钟周期变化一次。
7、配置指的是将特定应用数据加载到 FPGA 器件的内部存储器的过程。
赛灵思 FPGA 配置数据储存在 CMOS 配置锁存(CCL)中,因此配置数据很不稳定,且在每次FPGA 器件断电后都必须重新加载。赛灵思 FPGA 器件可通过来自外部非易失性存储器件的配置引脚自行加载配置数据。而且还可以用外部智能源配置器件。赛灵思 FPGA 配置模式接口涵盖从带有2 引脚的基础串行模式接口到带有50 引脚的高性能主 BPI(同步)模式接口。
以上是关于FPGA软硬协同设计学习笔记及基础知识的主要内容,如果未能解决你的问题,请参考以下文章
深度学习FPGA实现基础知识5(网友一致认可的----Deep Learning(深度学习)学习笔记整理及完整版下载)