SDSoC开发环境

介绍赛灵思SDSoC开发环境有关资讯、设计技巧和开发知识

SDSoC已经就绪,你自己的设计“秀”如何开场?

想必大家通过之前的SDSoC系列文章,已经了解到如何构建一个SDSoC开发平台,并熟悉了SDSoC便捷的开发流程,可以说舞台已经搭好,现在就该你去完成自己的设计开发大“秀”了!

我们还是通过一个应用范例,来看看SDSoC在实际的设计开发工作中是如何支持你的“表演”的。

由于SDSoC设计实施上的灵活性,它被作为视频处理的理想平台,通过它可以创建一个优化的视频处理系统,在处理性能、成本、功耗和开发时间等要素之间实现平衡。

具体地讲,你可以在设计中将那些像素级的、性能要求较高的处理工作可以放在PL(可编程逻辑)中完成,同时由PS(处理器系统)去担负那些非关键的、系统级的处理工作,比如文件处理和帧级的视频处理。

同时,SDSoC丰富的设计资源这时也会帮到你。OpenCV已经与SDSoC紧密地集成在一起,它可以提供丰富、强大的视频处理函数。

SDSoC开发流程探秘:简单背后的不简单

在上SDSoC系列文章的上一篇中,我们已经介绍了如何在SDSoC中构建硬件和软件平台,并使用SDSPFM工具生成客户应用开发平台(参见《SDSoC开发起步:构建硬件和软件平台》)。如果你已经完成了上述工作,恭喜你——现在你可以正式“起步”开始基于SDSoC在Zynq SoC上开发自己的应用了!

面向机器视觉应用的 SDSoC 开发环境

开发机器视觉系统通常需要大量的时间来设计能执行所有重要图像采集及处理功能的电子产品。通常需要两年多的时间,这会给摄像机及系统制造商的上市进程与产品规划带来不利影响。

Xilinx 的 SDSoC 开发环境可为机器视觉摄像机设计人员以及系统集成商提供强大的工具,帮助他们开发工厂自动化解决方案。系统开发人员现在可开发他们的 C/C++ 应用,可选择重要功能转移至硬件,并可为 Xilinx 器件直接获得最终软硬件设计。所带来的方法简单易用,可显著缩短开发时间,可快速部署机器视觉摄像机和集成系统解决方案,可快速修改所部署的系统(如果需要),并可在最终应用改变时迅速修改系统功能。

SDSoC 开发环境可提供巨大的优势,包括:

  • 从 C/C++ 生成全面的软硬件系统
  • 自动系统级剖析
  • 全系统优化编译器
  • 自动生成硬件连接及软件驱动程序
  • 其原有 C/C++ 设计的可移植性可充分利用 Xilinx 器件的固有优势
  • SDSoC开发起步:构建硬件和软件平台

    在理解了SDSoC“平台”的概念之后(详见《SDSoC上手必读:什么是SDSoC平台?》),现在我们就可以开始使用SDSoC进行开发工作了。

    在下载并安装了SDSoC之后,细心的人会在文件目录中发现Vivado、Vivado_HLS和SDK等开发工具子目录。熟悉Zynq FPGA SoC开发流程的工程师对这几个工具肯定不陌生:

  • Vivado是硬件开发工具,可为设计团队提供实现基于C的设计、重用优化、IP子系统复用、集成自动化以及设计收敛加速所需的工具和方法,可帮助设计人员以高层次抽象形式开展工作,加速高层次设计、验证和实现。
  • 作为Vivado的一个子集,Vivado HLS是连接高级抽象语言与底层硬件描述语言的高阶综合工具。
  • SDK是软件开发工具,用来完成应用程序的创建、开发、调试等工作,它集成了丰富的工具和软件包,可以与硬件平台设计工具Vivado无缝结合。
  • SDSoC上手必读:什么是SDSoC平台?

    在《FPGA SoC入门难?SDSoC帮你跨“门槛儿”》这篇文章中,我们介绍了SDSoC开发环境革命性的定位,及其在提升开发效率方面体现出来的巨大优势。想必读过之后,很多以前在Zynq这个FPGA SoC平台外徘徊、不得其门而入的开发者,都会跃跃欲试。

    不过在迈入SDSoC的大门之前,一些基础性的概念还是有必要预先了解一下的。首要的,就是要搞懂SDSoC“平台”这个名词。

    一个SDSoC设计项目是建立在一个“平台”之上的。所谓“平台”包含硬件平台和软件平台两个部分,是一个设计开发可以复用的基础性系统。

    平台是利用标准的Vivado、SDK和OS工具创建的。硬件平台(HPFM)定义了诸如处理系统(PS,Processing System)、I/O子系统、存储器接口等,这些工作都基于一个定义明确的端口接口(AXI、AXI-S,、时钟、复位、中断)。软件平台(SPFM)定义了OS、设备驱动、启动加载程序(boot loaders)、文件系统、库等。

    基于C/C++源代码的定制和专用硬件和软件,用户可以扩展平台。

    SDSoC将平台作为独立的解决方案空间,基于平台提供的资源去生成用于解决方案的IP。每个解决方案都是为一个平台裁剪而成的。

    一个扩展名为xpfm的文件包含了硬件描述符XML文件(HPFM)和软件描述符XML文件(SPFM)位置的参考。

    SDSoC:面向SoC和MPSoC 的软件定义开发环境

    类似嵌入式 C/C++/OpenCL 应用开发的体验

    SDSoC 开发环境可为异构 Zynq SoC 及 MPSoC 部署提供类似嵌入式 C/C++/OpenCL 应用的开发体验,其中包括简单易用的 Eclipse IDE 和综合设计环境。SDSoC 提供业界首款 C/C++/OpenCL 全系统优化编译器,可实现系统级的特性描述、可编程逻辑中的自动软件加速、自动系统连接生成以及可加速编程的各种库。此外,它还可帮助最终用户及第三方平台开发人员快速定义、集成和验证系统级解决方案,为其最终用户实现定制化编程环境。

  • Xilinx OpenCV 库现已推出,包含 50 多项硬件优化 OpenCV 功能,包括 Gausian、 Median、Bilateral、Harris corner、 Canny edge detection、HoG、ORB、SVM、LK Optical Flow 及更多;
  • 简单易用的 Eclipse IDE 可用于开发支持嵌入式 C/C++/OpenCL 应用的完整 Zynq SoC 和 MPSoC;
  • 只需一点按钮,就可对可编程逻辑 (PL) 中的功能进行加速;
  • 支持作为目标 OS 的裸机、Linux 与 FreeRTOS。
  • FPGA SoC入门难?SDSoC帮你跨“门槛儿”

    作者:安富利

    该用什么硬件平台去做 Design-In?这是电子工程师在设计开发之初绕不过去的问题。专用芯片ASIC性能强但开发成本越来越高,通用的处理器灵活性好又不免会遭遇性能瓶颈……所以越来越多的人将目光转向了FPGA这种可由开发者自己“定义”硬件功能的可编程逻辑器件。

    近年来,随着采用“ARM内核+可编程逻辑”这种异构FPGA SoC器件(如Xiinx Zynq系列)的问世,更是为开发者提供了一种高性能和灵活性完美结合的新平台,让人不免技痒。

    使用系统优化编译器加速汽车电子产品设计

    作者:Giles Peckham 和 Adam Taylor

    得益于摩尔定律,汽车电气系统经历了快速的技术增长。现代化的汽车已获得长足发展,不再是耦合了 AM 无线电的简单发动机电气系统。如今现代化的汽车搭载了多种高级电子系统,能够执行发动机控制、高级驾驶员辅助系统 (ADAS)、牵引力与稳定性控制、信息娱乐等功能,此外还针对某些尖端应用提供了自主操作能力。

    这种汽车内电子系统部署的显著增长也带来了几个必须由设计人员解决的挑战:
    ● 性能 – 需要实时、低时延与高确定性的性能以实现例如 ADAS、ECU、牵引力与稳定性控制等多种车载功能。
    ● 安全 – 汽车电子系统实现关键功能,故障会导致受伤或死亡。因此,系统必须实现信息安全保障与防篡改技术,以防止未授权的修改。
    ● 安全性 – 必须符合 ISO26262 规定的汽车安全完整性水平。
    ● 接口 – 必须能够连接多种传感器、驱动器与其他制动器。
    ● 功率效率 – 必须在有限的功耗预算内高效运行。
    ● 软件定义 – 具备高灵活性以适应多种市场中的不同标准与条件。

    作为地球上最具性价比的嵌入式视觉应用开发平台,Digilent Zybo-Z7 去年一经推出,就凭借华丽丽升级的Zynq器件与各种板载外设接口,俘获了众多Zynq爱好者的芳心。这还不算这一业界标杆性的入门级Zynq-7000平台还免费附赠SDSoC Vochuer!

    这一赠可谓激起千层浪,对于垂涎SDSoC已久的Digilent社区用户而言,识货者此等福利当然不会错过。然,作为版主,在下也因此收到了不少关于SDSoC开发的问题。继上一篇我们聊了聊“如何在Zynq开发板上入门SDSoC开发工具”,为响应Digilent开源社区用户的需求,今天我们就再来一发「SDSoC勾搭OpenCV指南」,教你如何用Zybo-Z7创建一个基于OpenCV的SDSoC项目。

    在开篇之前提醒一下:
    1. 在本教程中,使用的SDSoC版本是2015.4。
    2. OpenCV要求Linux易于使用,因为它会使用到许多库,例如pthread...本文中不会介绍任何裸机配置方面的内容。

    1. 软硬件清单
    ● SDSoC
    ● Zybo Z7
    ● 包含Linux内核+根文件系统的平台
    ● 装有Linux系统的计算机

    2. 获取OpenCV

    在Arty Z7上入门Xilinx SDSoC开发工具

    作者:阿Q 来源:开源硬件创客坊微信公众号

    细心的小伙伴们可能早已留意到,在Digilent今年全新出品的Zynq评估板中,无论是第二代经典入门级的Zynq™ Board - ZYBO Z7,还是创客最爱的ARTY Z7,都全面支持Xilinx SDSoC开发环境。意味着如果你是一名系统或软件工程师,现在无需深度的硬件专业知识,就能广泛地利用Zynq® SoC,畅享超过100倍的软件性能加速。

    本篇干货教程中,我们就将带你入门了解如何使用Xilinx SDSoC工具来创建嵌入式C/C++/OpenCL应用开发,并实现直接在ARTY Z7嵌入式视觉开发平台的器件上进行软件设计。

    SDSoC软硬协同设计与其开发流程

    由于集成了ARM处理器内核与可编程逻辑,对于众多应用开发而言,Zynq 非常的灵活。这意味着开发人员可以将设计按不同的元素来优化划分,例如将其中那些高层次决策的部分放入ARM内核(PS端),并将诸如图像处理流水线等需要加速的部分用可编程逻辑(PL端)来实现。

    当然,传统的Zynq开发流程会将Vivado和SDK分离开来,这种方法很难在可编程逻辑(PL)和处理系统(PS)之间分配功能,因此无法获得最优的系统性能。

    同步内容