Xilinx Zynq UltraScale+ MPSoC应用专栏系列连载[第一篇]写在前面

一、写在前面

       FPGA 是可编程芯片,因此 FPGA 的设计方法包括硬件设计和软件设计两部分。硬件包括 FPGA 芯片电路、存储器、输入输出接口电路以及其他设备;软件即是相应的 HDL 程序以及最新非常流行的基于高层次综合的程序方法,如Xilinx的一系列工具HLS、SDSoC和Altera的SoC EDS等。

(1)选择FPGA(SoC)的若干理由

a) FPGA具有现场可编程能力,即使产品已经投入市场,也可根据特殊应用重新配置硬件;

b)FPGA具有强大的并行处理能力;

c) FPGA具有比ASIC设计更短的设计周期和更低设计成本;

d) FPGA比较易用; 

e) 随着半导体技术的突飞猛进, FPGA 越来越成为一种融合处理、HBM存储、接口于一体的超级芯片。

(2)设计提醒

        强烈推荐FPGA设计遵循自顶向下的设计流程,也就是说从系统级设计开始,划分为若干个二级单元,然后再把各个二级单元划分为下一层次的基本单元,一直下去,直到能够使用基本模块或者 IP 核直接实现为止。

       需要特别提醒的是,大规模逻辑设计必须先有完整明确的需求和实现方案后再启动硬件平台和软件设计。否则,任何一个小的改动都可能导致极大的纠正成本甚至整个系统全盘推翻重来。

二、设计小Tips

 (1)明确FPGA设计需求

       和所有的设计一样,FPGA设计过程是一个迭代过程,首先是有一个系统的想法,然后将这一想法细化到具体交易中。

                                                                                             图1 需求评估拓扑

(2)如何选型

        FPGA的硬件设计选型主要考虑如下因素:

 1)器件的供货渠道和开发工具支持

 2)器件的硬件资源

      a)逻辑资源;

      b) IO资源(FPGA负荷过重、发热,影响速度、稳定性和寿命);

      c) 布线资源(影响速度);

      d) DSP(乘法器、矢量浮点加速器)资源;

      e)存储器资源(内部RAM块和内部和外部的DDR/SRAM)等;

      f) 时钟资源;

      g) 串行收发器;

      h) 硬核及集成块。

 3)器件的电气接口特性

 4) 器件的速度等级

 5) 器件的封装和价格等

(3)嵌入式设计流程

                                                                                                 图2 设计流程

       这个流程看上去有点像操作系统的层次结构,硬件就是FPGA逻辑和底层单元;中间件就是平台相关的可以重复利用的标准协议和接口;应用层执行产品的核心功能。这三个层级是向下验证的,最后实现系统的集成和验证。

       更为具体的,针对某种器件,嵌入式工程师的主要工作如下:

                                                                                                图三 设计内容

三、FPGA的几种典型应用

a)运动控制。需要高性能的工业设计领域;

b)电视广播。SDI接口已经图像流的优化重构和压缩;

c)通信领域。处理通信过程中的海量并行数据流;

d)汽车辅助驾驶。属于对图像处理、图形、控制的集大成应用;

e)高性能计算。数据库、金融市场加速、地震和医学成像、矩阵数学、AI、云计算、机器学习应用等;

f)高端服务器;

g)IO和总线扩展、桥接。

        随着半导体技术的飞速发展,器件的集成度越来越高,集成的硬核和功能块也越来越丰富。FPGA各厂商面向不同层次的应用也在不断的拓展,FPGA必将褪下它贵族的脸孔走入寻常百姓家。

                                                                                             图4 ADAS应用

                                                                                           图5 云级应用

 

 

                                                                                      图6 软件无线电系统

 

                                                                                           图7 控制系统与无线通信

 

      感兴趣的同行欢迎扫描以下二维码关注微信公众号或QQ讨论群进一步交流。

  • 11
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本书是使用Zynq MPSoC的开发人员的实用指南,同样也是希望熟悉器件及其相关设计方法的技术人员的有效参考。 Zynq MPSoC(多处理器片上系统)是Xilinx公司推出的第二代SoC系列产品,集成了复杂的处理系统,包括ARM Cortex-A53应用程序处理器和ARM Cortex-R5实时处理器,以及FPGA可编程逻辑。 来自苏格兰斯特拉斯克莱德大学(University of Strathclyde)的Louise Crockett团队基于这一平台的软件和硬件结构,撰了Exploring Zynq MPSoC: With PYNQ and Machine Learning Applications,综合且全面地介绍了软件堆栈、多处理器处理系统以及可编程硬件阵列等问题。 程序员可以学会如何使用简单的软件界面和框架来快速实现他们的机器学习算法,系统设计师可以利用它来获取系统的最高性能。 内容导读 器件的架构 与Zynq7000相比,Zynq MPSoC 进一步整合了处理器系统中可选择的处理器数量和性能,最多可配备四个ARM Cortex-A53处理器内核和两个ARM Cortex-R5实时处理器内核。此外,该架构进一步拓展了可编程逻辑门阵列中的DSP切片和分布式存储器的规模。在开发当今新兴的AI应用程序时,全新的MPSoC架构将实现繁琐的算术计算和数据移动的过程变得十分轻松有趣。 设计工具和方法 SoC系统将包括硬件设计和软件设计两个方面。硬件设计会映射到SoC设备上的FPGA逻辑资源,而软件则运行在一个或多个系统内部署的处理器上。在此设计流程中,硬件和软件开发可以在很大程度上独立进行,然后整合。工程师使用他们选择的工具生成硬件系统的元素,并使用Xilinx Vivado开发环境实现系统集成和实现目标设备。软件开发人员可以使用Xilinx软件开发工具包(SDK)进行开发。这是传统的软硬件协同设计方法Xilinx的SDx开发环境则是一种更高级的开发方式。在Xilinx SDx工具中可以完全使用软件代码对整个系统进行描述,然后对各种计算进行资源分配(在用户指导下)。这使得面向软件的软硬件协同设计已经发生了相当大的转变。本书的第4章中更详细地讨论了关于SDx设计方法。 更先进的应用实现 本书还讨论了Zynq上许多应用程序的实现,包括FINN-R开源框架的有效性神经网络的实现、基于Python的Zynq设备框架和机器学习应用程序。我们可以预见到一些基于Zynq的更为优秀的产品,包括高级驾驶员辅助系统(ADAS),计算机视觉,“大数据”分析等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_Hello_Panda_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值