当前位置:首页 > zynq
  • Xilinx Zynq-7000 EPP为创新开启新时代

      赛灵思Zynq-7000 可扩展处理平台(EPP)将双 ARM Cortex-A9 MPCore 处理器系统与可编程逻辑和硬 IP 外设紧密集成在一起,提供了灵活性、可配置性和性能的完美组合。围绕其刚刚推出的可扩展处理平台(EPP), 赛灵思在今年3月发布了基于Zynq -7000新系列的首批器件。  采用 28 nm制造工艺, Zynq-7000嵌入式处理平台系列的每款产品均采用带有NEON及双精度浮点引擎的双核 ARM Cortex-A9 MPCore 处理系统,该系统通过硬连线完成了包括L1,L2 缓存、存储器控制器以及常用外设在内的全面集成。(图 1)。尽管 FPGA 厂商此前已推出过带硬核或软核处理器的器件,但 Zynq-7000 EPP 的独特之处在于它由ARM处理器系统而非可编程逻辑元件来进行控制。也就是说,处理系统能够在开机时引导(在 FPGA 逻辑之前)并运行各个独立于可编程逻辑之外的操作系统。这样设计人员就可对处理系统进行编程,根据需要来配置可编程逻辑。  利用这种方法,软件编程模式将与全功能标准 ARM 处理器片上系统(SoC)毫无二致。过去设计师需要对 FPGA 逻辑进行编程以运行片上处理器。那就意味着如果想要使用器件,必须得是 FPGA 设计师。但现在使用 Zynq-7000 EPP,则完全不必担心这一问题。图 1 —— 不同于以往在 FPGA 架构中嵌入 MPU ,赛灵思全新 Zynq-7000 EPP 系列使用 ARM 处理器而非可编程逻辑来进行控制。  图1中文字:  新产品系列消除了延迟和从头设计芯片的风险,这意味着系统设计团队可以利用其先进的高级软硬件编程多功能性简便快速创建创新型片上系统,而这是其他任何半导体器件都无法实现的。这样,Zynq -7000 EPP 能够为广大的创新者带来无法比拟的益处,无论是专业的硬件、软件、系统设计师或仅是单纯的“制造商”,他们都可以探讨处理能力与编程逻辑结合的可能性,进而创建出从未想象过的创新应用。  赛灵思处理平台副总裁 Larry Getman 表示:“从最根本的层次来说,Zynq-7000 EPP 应该算是一类全新的半导体产品。它既不是单纯的处理器,也不是单纯的 FPGA。我们的产品是两者的完美结合,正因如此我们才能够帮助您消除现有解决方案的局限性,尤其针对双芯片解决方案和 ASIC。  Getman 称当前大多数电子系统都是将一个FPGA和一个独立处理器或者一个带有片上处理器的ASIC在同一个PCB上配合使用。赛灵思的最新产品可支持使用这类双芯片解决方案的公司利用一个Zynq-7000 芯片来构建下一代系统,节省了物料成本和 PCB 空间,并且降低了总体功耗预算。由于处理器和FPGA 在相同的架构上,因此性能也得到了大幅提升。  Getman 表示 Zynq-7000 EPP 将会加快从 ASIC向 FPGA 的市场迁移。采用最新制造工艺实施 ASIC 过于昂贵并且对大多数应用来说风险太大。因此,越来越多的公司青睐于 FPGA。许多尝试坚守旧 ASIC 方法的公司采用旧的制造工艺来实施他们的设计,分析师称之为“价值认知型片上系统 ASIC”。然而 ASIC 依旧需要较长的设计周期并且存在重新设计(respin)的风险,这样一来费用将会非常昂贵并且可能还会延迟产品的上市时间。Getman 说:“与旧技术相比,借助采用 28 nm技术的 Zynq-7000 EPP,器件的可编程逻辑部分并不存在尺寸或性能损耗的问题,您还可在处理子系统中获得硬化 28 nm片上系统的附加优势。凭借不到 15 美元的起始售价,我们使设计那些产量并非很大的 ASIC 在成本和风险上都不再划算。您可以即刻让您的软硬件团队开工,而那些死守ASIC 的设计团队就很难做到这一点。”  Getman 表示自从赛灵思去年推出这款架构以来,市场对Zynq-7000 EPP的兴趣和需求非常强烈。经选择出的一部分早期试用客户(alpha customer)已开始对将使用 Zynq-7000 器件的系统进行原型设计。该技术非常令人兴奋。”  智能架构决策  在赛灵思处理解决方案副总裁 Vidya Rajagopalan 的领导下,Zynq-7000 EPP 设计团队专门针对这类新器件而推出了一款设计精良的架构。除了选择应用广泛且倍受欢迎的 ARM 处理器系统以外,设计团队的一个重要架构决策是在处理系统和可编程逻辑之间广泛使用高带宽 AMBA® 高级扩展接口(AXI™)互联。这样一来便能够以较低的功耗支持 ARM 双核 Cortex-A9 MPCore 处理子系统和可编程逻辑之间的多千兆位数据传输,进而消除了控制、数据、I/O 和内存所面临的性能瓶颈。  实际上,赛灵思一直与 ARM 保持紧密合作,力求让 ARM 架构更加适合于 FPGA 应用。Rajagopalan 称:“AXI4 拥有存储器访问版本和流数据访问版本。赛灵思推动着 ARM 的流定义,因为人们针对应用而开发的许多 IP (例如高带宽视频)均为流 IP。ARM 的产品没有这种流接口,因此他们选择与我们合作。”  Getman 称这款架构的另一个主要方面是赛灵思将一组有益的标准接口 IP 硬化到 Zynq-7000 EPP 芯片中。他说:“我们尽量选择应用更广泛的外设,例如 USB、以太网、SDIO、UART、SPI、I2C 和 GPIO 都是标准配置。但有一个例外,那就是我们还向该器件添加了 CAN。CAN 属于稍专业化的硬化核心之一,但它在以下两个主要目标市场中应用广泛:工业和汽车业。将其硬化在器件中只是 Zynq-7000 EPP 的又一个卖点。  在内存方面,Zynq-7000 器件提供了多达 512 KB 的二级缓存,由两个处理器共享。Getman 说:“Zynq-7000 EPP 器件具有 256 KB 的高速暂存区,这是处理器和 FPGA 都可以访问的共享内存。”  一个单独的多标准 DDR 控制器可支持三种类型的双倍数据速率内存。 Rajagopalan 表示:“大多数 ASSP 的目标是特定细分市场,而我们的目标是 LP DDR2、DDR2 和 DDR3,因此用户可以根据自身需求在功率和性能之间做出权衡。这是一种多标准 DDR 控制器,而我们是最早提供类似控制器的公司之一。”  Zynq-7000 EPP 不仅是一种新器件,也是赛灵思的最新设计平台, 它与开发板、软件、IP 和文档一起提供,可以帮助客户迅速上手和运行。此外,赛灵思还将在未来几年中不断推出针对特定垂直市场和特定应用的 Zynq-7000 EPP 设计平台(包括板卡或子卡、IP 和文档),以帮助设计团队加快产品上市速度(请参阅《Xcell 期刊》第 68 期封面故事,http://www.xilinx.com/pub-lications/archives/xcell/Xcell68.pdf)。  赛灵思联盟计划成员和 ARM 联盟也将为客户提供丰富的 Zynq-7000 EPP 资源,包括主流操作系统、调试程序、IP、参考设计及其它学习和开发资料等。  除了创造出色的芯片和配套工具,赛灵思还为 Zynq-7000 EPP 精心提供了简单易用的设计和编程流程。  以处理器为中心的开发流程  Zynq-7000 EPP 依赖于一种常见的工具流,嵌入式软件和硬件工程师可利用这一工具流来执行开发、调试和实施任务。其方法与现在非常相似,即采用通过 Xilinx® ISE® 设计套装和第三方工具提供的常见嵌入式设计方法(图 2)。Getman 注意到,软件应用工程师能使用与在之前的设计中采用的相同开发工具。赛灵思为嵌入式软件应用项目提供了软件开发工具包(SDK,一种基于 Eclipse 的工具套装)。工程师还可以使用第三方开发环境,例如 ARM Development Studio 5 (DS-5™)、ARM RealView Development Suite (RVDS™) 或任何其它来自 ARM 体系的开发工具。  Linux 应用开发人员可以充分利用 Zynq-7000 器件中的两个 Cortex-A9 CPU 内核,在对称多处理器模式下实现最高的性能。此外,他们还可以在单处理器或对称多处理器模式下运行的 Linux 系统(一种实时操作系统 (RTOS),包括 VxWorks 等)中设置 CPU 内核,也可以在二者中同时设置。为了支持快速开始软件开发,赛灵思为客户提供了开源的 Linux 驱动程序和裸机驱动程序,适用于所有外围处理设备(USB、以太网、SDIO、UART、CAN、SPI、I2C 和 GPIO)。赛灵思和 ARM 合作伙伴生态系统还提供了全面支持的 OS/RTOS 板卡支持套件,以及中间件和应用软件。  与此同时,ISE 设计套装中的硬件设计流程与嵌入式处理器设计流程相似,并为可扩展处理平台增加了一些新步骤。处理子系统是一个拥有整套通用外围设备的完整的双核系统。硬件设计师可以通过在可编程逻辑中为处理子系统连接更多软 IP 外围设备,来扩展其处理能力。硬件开发工具 Xilinx Platform Studio 实现了许多常用硬件开发步骤的自动化,还能协助设计师优化器件引脚。Getman 介绍说:“我们还为 ISE 增加了一些对硬件断点和交叉触发进行共同调试的功能。对我们来说,最重要的是要为软件开发人员和硬件设计师们提供舒适的开发环境。”  一种妥善的编程方法  在赛灵思的产品中,用户可以配置可编程逻辑,并通过 AXI “互连”模块将其连接到 ARM 内核,以扩展处理器系统的性能和功能范围。赛灵思和 ARM 合作伙伴生态系统提供了大量的软 AMBA 接口 IP 内核,供设计人员在 FPGA 可编程逻辑中使用。设计人员可以用它们来构建其目标应用所需的任何自定义功能。器件使用的是与 7 系列 FPGA 相同的常见可编程逻辑结构,所以设计人员可以加载一个或者多个配置文件,甚至采用部分可重配置技术,来支持器件按需即时对可编程逻辑功能进行重新编程。  器件两部分之间的互连操作对于设计人员在很大程度上是透明的。图 2 - Zynq-7000 EPP 采用的是一种常见工具流,供系统架构师、软件开发人员和硬件设计师等人员使用。  图中文字:  工具开发流程  主、从器件之间的相互访问是根据为每个从器件分配的地址范围,通过 AXI 互连来路由的。多个主器件可以同时访问多个副器件,并且每个 AXI 互连使用一个两级 (two-level) 仲裁机制解决争用问题。  做好准备,及早参与…  客户今天就可以通过参与早期试用计划,开始对 Zynq-7000 EPP 系列器件进行评测。首款芯片器件预计会在 2011 年下半年推出,工程样品将在 2012 年上半年推出。设计人员可以迅速直接使用支持 ARM 的工具和开发包来熟悉 Cortex-A9 MPCore 架构并开始移植代码。  根据容量和种类,这些器件的价格各不相同。根据之前的批量生产定价,Zynq-7000 EPP 系列高容量产品的起始价格将低于 15 美元。有兴趣的客户可以联系当地的赛灵思代表。如欲了解更多信息,请访问:www.xilinx.com/cn/zynq。

    时间:2018-09-06 关键词: Xilinx zynq epp 新时代

  • 采用 Zynq SoC 测试新型存储器技术芯片

    电子产业正在大力投资开发PRAM、MRAM和RRAM等新型存储器技术。新型存储器技术测试芯片的性能快速提高,但这种存储器要做到能与传统存储器全面抗衡乃至取代传统存储器还需要更多的努力。 通常说来,有了新型存储器技术的测试芯片,能够完成制造相关的基础测试,例如会检查固化故障、转换故障和地址解码故障等。同时还有一种测试也是必需的,那就是要进行性能相关的测试,了解芯片可靠存取的速度能有多快,以及芯片存取速度如何影响整个计算系统性能。 为了成功进行规划的性能测试,测试环境必须能够生成可配置的数字波形来存取芯片。同时还要创建整个计算环境来测量芯片存取速度的影响。创建或购买测试环境、满足上述需求有多种方法。我们在高通的团队决定采用赛灵思 Zynq?-7000 All Programmable SoC ZC706 评估套件来打造自己的环境。 存储器进出 DRAM、SRAM 和闪存等传统存储器技术用存储器单元中的电荷来存储 0 和 1。DRAM 广泛被 PC和移动计算设备用来运行程序和存储临时数据。SRAM 通常用作微处理器的高速缓存存储器和寄存器薄,同时也经常用于对功耗问题很敏感的嵌入式系统中。与 DRAM 和 SRAM 不同,闪存存储器在系统断电后仍能永久保存数据。闪存存储器的运行速度比其他存储器要慢,大量编程循环后可能会磨损。 相对于传统基于电荷的存储器技术而言,新型存储器技术基于存储元件的其他物理属性。举例来说,磁阻 RAM (MRAM) 的存储器元件由两个铁磁板组成,这两个铁磁板由一层薄薄的绝缘层隔离。每片铁磁板都能保有磁化属性,一个是永久性的,另一个可有外部场改变,从而存储数据。通过测量元件电阻即能读取存储的数据。MRAM 存取速度类似于 SRAM,密度类似于 DRAM。相比于闪存存储器,MRAM 运行速度更快,而且不会因编程而被磨损。 软件运行在 Zynq SoC 的 ARM A9 处理器上,而存储器控制器内核则用可编程逻辑创建。 要求分析 在设计 MRAM 测试芯片评估方案时,我们决定采用 Zynq SoC 方法,这主要出于以下考虑: ? ZC706 开发板的 FPGA 夹层卡 (FMC) 接口通过 FMC 子卡提供进出存储器测试芯片的高速信号发送功能。 ? Zynq SoC 的可编程逻辑 (PL) 部分能构建参数化存储器控制器内核。这对满足测试芯片差异化存取速度的要求很重要。 ? Zynq SoC 的处理系统 (PS) 包括两个 ARM? A9 内核,能通过软件修改测试芯片存取速度。 ? PS 也能构建完整的计算系统,这对满足测试系统在全面计算环境下测量芯片存取速度的影响的要求很重要。 硬件和系统架构 芯片测试环境的硬件架构如图 1 所示。软件运行在 Zynq SoC 的 ARM A9 处理器上,而存储器控制器内核用可编程逻辑创建。我们在 PS 和控制器内核之间建立 DMA 通道,以便在彼此之间能方便地移动大数据块。存储器测试芯片位于 FMC 子卡上,其通过 FMC 接口与存储器控制器内核通信。 系统架构如图 2 所示。底部三层为硬件层,顶部三层为软件层。我们选择 Linux 为操作系统,因为这是一种开源系统,源代码能根据需要修改。虽然目前开发阶段没有进行修改,但今后这种新型存储器芯片发挥独特属性优势时或许能用得上。

    时间:2018-06-28 关键词: SoC zynq 存储器技术芯片

  • 基于Zynq的OLED驱动设计

    基于Zynq的OLED驱动设计

    OLED具备自发光、不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异特性,被认为是下一代的平面显示器新兴应用技术。目前OLED的驱动大部分都是基于STM系列 ARM芯片和传统FPGA芯片。为适应Xilinx最新平台Zynq的人机交互需要,提出一种基于Zynq的OLED驱动设计方法。文章阐述了OLED的特性和SPI控制方式,给出了设计流程和硬件电路图。利用Zynq的PL部分完成了OLED驱动的IP核,利用Zynq的PS部分实现了OLED的驱动程序设计。通过AXI总线实现PL和PS的通信。最后通过测试程序,实现了字母、数字和点阵图像的实时显示。解决了基于Zynq器件在广电仪器和电力仪表仪器中人机交互的工程技术,具有集成度高、可移植性强和通用性好等优点。 1 引言 随着近几年嵌入式技术的飞速发展和广泛应用,人机交互成为嵌入式设备的迫切需要。为适应Xilinx最新平台Zynq的人机交互需要,提出一种基于Zynq的OLED驱动设计方法。 有机发光二极管(Organic Light-Emitting Diode,OLED)由于同时具备自发光、不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异特性,被认为是下一代的平面显示器新兴应用技术。 Xilinx最新平台Zynq将处理器的软件可编程能力与FPGA的硬件可编程能力实现完美结合,以低功耗和低成本等系统优势实现良好的系统性能、灵活性和可扩展性。 目前OLED的驱动大部分都是基于STM系列ARM芯片和传统FPGA芯片。在Zynq上,Xilinx提供了Linux演示实例,但无裸机源码,无法满足实时性比较强的工程实际需求。 文章详细阐述了基于Zynq的OLED驱动设计步骤和方法,并且在基于Zynq的开发板ZedBoard上实现了实时显示字母、数字和点阵图像,为Zynq在仪器仪表领域实现人机交互提供了技术支撑。 2 OLED驱动设计流程 Zynq是一个ARMPS+PL结构,其中PL部分就是传统意义的FPGA,可以方便地定制相关外设IP,也可以进行相关的算法设计,和使用普通FPGA完全一样。如果不使用PL,Zynq的PS部分和普通的ARM开发一样。Zynq最大的特点是可以利用PL部分灵活地定制外设,挂在PS上,而普通的ARM,外设是固定的。因此,Zynq的硬件外设是不固定的,这也是Zynq灵活性的一个表现。OLED在Zynq上是连接在PL上,因此需要把OLED对应引脚挂在PS的硬件上,然后设计OLED IP核,再通过SDK设计驱动程序,OLED驱动设计流程如图1所示。 ZedBozrd控制OLED的主要方法是:自行设计一个IP核,对OLED的6个控制信号和电源信号进行逻辑设计和引脚约束,通过AXI总线,把OLED的IP核和PS联系起来。在PS部分编写相应的驱动程序,即可实现对OLED的控制,如图2所示。 图1 OLED驱动设计流程 图2 OLED系统设计图 因此,要实现OLED显示功 能,主要做以下几个方面工作:设计Zynq硬件系统(PS部分)、设计自己的IP核和PS部分驱动程序设计。 3 建立Zynq硬件系统和OLED IP核 Zynq的开发板ZedBoard上使用Inteltronic/Wisechip公司的OLED显示模组UG-2832HSWEG04,分辨率为128×32,是一款单色被动式显示屏,驱动电路采用所罗门科技的SSD1306芯片。具体电路如图3所示。根据原理图可知,ZedBoard开发板使用的OLED采用SPI方式控制,SPI模式使用的信号线和电源线有如下几条: RST(RES):硬复位OLED; DC:命令/数据标志(0,读写命令;1,读写数据); SCLK:串行时钟线; SDIN:串行数据线; VDD:逻辑电路电源; VBAT:DC/DC转换电路电源。 在SPI模式下,每个数据长度均为8位,在SCLK的上升沿,数据从SDIN移入到SSD1306,并且是高位在前的。 图3 OLED原理图 Zynq的硬件系统是指在PL中配置相关外设,挂载到PS中,作为PS部分的外设使用。OLED驱动主要用到6个IO口,在生成硬件系统时,只需要利用Xilinx的嵌入式工具XPS生成最小硬件系统,然后把OLED的相关引脚添加到最小硬件系统中。主要过程如下: (1)根据芯片型号,根据XPS工具设计流程,生成Zynq的最小硬件系统。 (2)在最小硬件系统中,添加外设IPmy_oled,把OLED的SPI引脚添加到工程中。添加一个6位寄存器,每位和SPI引脚对应。 (3)my_oledIP核逻辑设计主要完成IP核引脚添加、端口映射和用户逻辑功能。首先要对设计的IP核添加引脚,在系统生成的MPD文件中,添加OLED的相关引脚端口和方向信息。 在MPD文件中,在PORT下添加OLED的相关引脚和方向信息,具体代码如下: PORTDC=“ ”,DIR=O PORTRES=“ ”,DIR=O PORTSCLK=“ ”,DIR=O PORTSDIN=“ ”,DIR=O PORTVBAT=“ ”,DIR=O PORTVDD=“ ”,DIR=O (4)在系统生成的my_oled.vhd文件中,用VHDL语言进行端口设计,主要进行以下两个设计。 声明IP和用户6个信号和电源的端口。代码如下: DC ∶outstd_logic; RES ∶outstd_logic; SCLK ∶outstd_logic; SDIN ∶outstd_logic; VBAT ∶outstd_logic; VDD ∶outstd_logic; 将用户端口和IP核端口进行映射,代码如下: DC =>DC, RES =>RES, SCLK =>SCLK, SDIN =>SDIN, VBAT =>VBAT, VDD =>VDD, (5)在系统生成的user_logic.v文件中,用Verilog语言进行逻辑设计,实现寄存器和SPI对应端口连接并实时读取,主要代码如下。其中slv_reg0为IP核寄存器,tmp为用户定义临时寄存器,tmp的每一位和IP端口一一对应。实现把slv_reg0寄存器低6位实时传给tmp寄存器,通过对寄存器slv_reg0的写操作达到控制6个引脚的时序。 always@(posedgeBus2IP_Clk) begin tmp<=slv_reg0[5:0]; end 4 OLED驱动程序设计 由于ZedBoard开发板上的OLED使用的是SPI协议,并且只支持写,不支持读,因此控制OLED就是在SCLK的时钟下,通过SDIN进行命令和数据的传输。OLED的控制需要经过初始化、传数据和命令以及对显存设置等操作实现。 4.1 初始化 驱动IC的初始化代码,可以参考厂家推荐的设置,但需要根据开发板上OLED实际参数进行一些修改。 根据SSD1306数据手册的初始化说明,具体步骤如图4所示。初始化的实现就是对SSD1306进行写命令。 图4 SSD1306初始化步骤 4.2 写数据和命令的实现 在SCLK时钟下,根据要写入的数据或者命令,设置SDIN引脚的电平,一位一位地把数据写入SSD1306.SSD1306每次传送的命令和数据均为一个字节,传送数据和命令的区别是通过Set_OLED_DC宏,设置该函数为写数据,通过Clr_OLED_DC宏,设置该函数为写命令。实现一个字节的数据传输代码如下: for(i=0;i<8;i++) { Clr_OLED_SCLK; if(data&0x80) Set_OLED_SDIN; else Clr_OLED_SDIN; Set_OLED_SCLK; data《=1; } 4.3 显存数据写入SSD1306存储器 我们采用的办法是在PS的内部建立一个OLED的GRAM(共128个字节),在每次修改的时候,只是修改PS上的GRAM(实际上就是SRAM),在修改完之后,一次性把PS上的GRAM写入到OLED的GRAM.具体代码如下: voidOLED_Refresh_Gram(void) { u8i,n; for(i=0;i<4;i++) { write_cmd(0xb0+i);//设置页地址 write_cmd(0x00);//设置显示位置-列低地址,偏移了2列 write_cmd(0x10);//设置显示位置-列高地址 for(n=0;n<128;n++)write_data(OLED_GRAM[n][i]); } } 4.4 显示结果 系统实现了OLED的字母、数字和点阵图形实时显示,如图5所示。 图5 OLED运行结果 5 结论 系统采用可软硬件协同设计的Zynq器件,定制硬件IP核,采用传统ARM程序设计方法设计OLED驱动程序和测试程序,实现了实时显示。解决了基于Zynq器件在广电仪器和电力仪表仪器中人机交互的工程技术,具有集成度高、可移植性强和通用性好等优点。0次

    时间:2018-06-05 关键词: 电路设计 OLED zynq

  • 基于Zynq的图形生成电路设计与实现

    基于Zynq的图形生成电路设计与实现

    导读:为了适应机载液晶显示器向低功耗、高集成度发展的趋势,提出了一种基于Zynq可扩展处理平台的图形生成电路实现方法。摘要:为了适应机载液晶显示器向低功耗、高集成度发展的趋势,提出了一种基于Zynq可扩展处理平台的图形生成电路实现方法。方法以Zynq为核心搭建硬件平台,使用Zynq集成的ARM 处理器执行图形生成算法运算,配合可编程逻辑资源,按照一种三缓冲机制对DDR3SDRAM 帧存数据进行缓冲处理,实现图形的实时生成.采用本设计可以生成多种分辨率的机载图形画面.实验结果表明,当生成分辨率为1024×768的EFIS电子飞行显示系统画面时,帧率可达74fps,能够满足机载液晶显示器高性能实时显示需求。1 引言在飞机座舱显示系统中图形显示占据重要地位[1].主显示器尺寸不断加大,分辨率不断提高,并日益朝着大屏幕化、综合化、信息化和智能化方向发展[2].随着分辨率的提高,要显示的信息量也大幅增加,座舱图形综合显示系统是一个对实时性要求很高的系统[3],军用飞机在做战术动作时,画面变换速度快,要求图形的更新速度也必须很快,至少要比帧或场的刷新速度快,才可以避免画面的断续[4G5].采用DSP+FPGA 的图形硬件加速架构,或者使用专用GPU 图形生成芯片,都可以生成高分辨的机载显示器图形,但随之而来的是产品成本的急剧增加以及功耗的不断上升[6].为机载图形显示系统配置更合理的硬件设计和软件架构变得尤为迫切。Xilinx最新平台Zynq将处理器的软件可编程能力与FPGA 的硬件可编程能力实现完美结合,以低功耗和低成本等系统优势实现良好的系统性能、灵活性和可扩展性[7].本文提出一种基于Zynq可扩展处理平台的实时图形生成电路,利用Zynq内部集成的ARM 处理器以及可编程逻辑资源,实现了机载显示器图形画面的实时生成与显示。  2 Zynq简介2.1 Zynq构成Zynq构架将内部结构分为处理器系统(ProcessingSystem,PS)与可编程逻辑(ProgrammableLogic,PL)两部分[8].PS部分包括双ARM CortexGA9内核、存储器接口以及通用外设接口等资源.PL部分也即常规的FPGA,通过PL生成的IP核可以作为ARM 内核的扩展外围设备或者ARM 内核的加速部件.Zynq器件内部结构图如图1所示。图1 Zynq内部结构图Zynq架构可以对PL和PS中运行的自定义逻辑和软件方便地进行管理和规划,PS和PL的单芯片综合使其在I/O 数据带宽、功能耦合、功耗预算等方面的性能表现大大超越了以往ASSP和FPGA 双芯片解决方案。PS和PL可以通过多种途径实现互联,包括GPIO端口、AXI总线端口、EMIO 端口、中断、DMA 等等.其中AXI总线是ARM 系统中连接各个模块的主要通道,各个功能部件通过AXI总线实现互联.在PL中可以通过工具自动生成带有AXI接口的IP 核,和PS 端进行高速数据交互。2.2 DDR Memory控制器Zynq内部集成的DDR memory控制器支持DDR2、DDR3、LPDDR2等多种存储器类型,包含了3个主要模块:AXI存储器端接口DDRI、带有传输调度机制的中央控制器DDRC 和物理层控制器DDRP[9].DDRmemory控制器框图如图2所示。图2 DDR Memory控制器框图DDRI端口符合AXI总线标准,包含4个64位的同步AXI接口,分别为S0、S1、S2、S3,用于接收多个AXI主端的访问请求,其中S0和S1端口接收PS部分CPU 的访问请求;S2和S3端口接收PL部分逻辑端的访问请求.DDRC对来自多个AXI主端的访问请求按照其调度策略进行裁决,裁决实施的依据是主控端访问的优先级、等待时长计数器和紧急信号.DDRP 处理来自于DDRC的读写请求,并将其转换成符合DDR 存储器时序要求的特定信号。2.3 AXI VDMAAXI VDMA 是Xilinx公司开发的一个软核IP,用于在系统存储器和支持AXI4-Stream 视频类型的目标IP之间提供一个高速的数据存取通道[10].AXI4-Stream 格式数据流不能直接用于驱动显示,还需要将数据流以视频使能信号为界进行分割,配合行场同步信号驱动视频终端显示。该IP 有两路AXI4-Stream 接口,分别为AXI Memory Map to Stream (MM2S)Stream Master 和AXI4-Stream to Memory Map(S2MM)Stream Slave,其中MM2S为主端口,用于输出转换成AXI4-Stream 格式视频流的系统存储器中数据.S2MM 为从端口,用于接收AXI4-Stream 格式视频流转换成存储器数据.MM2S和S2MM 彼此相互独立,可以并行同时工作.PS端的处理器可通过AXI4-Lite总线对其内部的寄存器进行访问以控制VDMA 工作模式、获取VDMA 工作状态。3 设计实现3.1 硬件设计3.1.1 硬件架构本文通过Zynq完成图形生成与显示功能,原理框图如图3所示,硬件模块主要包括Zynq、DDR3SDRAM、FLASH、双口RAM 等.正常工作时PS中的ARM 内核根据从双口RAM 中接收到的绘图指令和参数完成绘图算法,将图形数据写入DDR3SDRAM 存储器中.PL 从DDR3中读出图形数据进行显示,并对DDR3SDRAM中的图形数据进行清屏处理。图3 Zynq图形生成原理框图3.1.2 Zynq硬件平台设计本文通过Xilinx 的ISE14.2 软件集成的XPS开发环境完成Zynq图形生成电路的硬件平台设计.利用XPS可以快速地对Zynq系统内的各种硬件资源进行定制设计,包括存储器、外设、ARM 处理器、系统IP和用户IP等.Zynq硬件平台结构图见图4所示.图4 Zynq硬件结构图本文在Zynq中的PL 部分应用了VDMA、AXI2XSVI、XSVI2AXI、VTC等几个IP核,其中VDMA 用于从DDR3SDRAM 中读出图形数据,同时向DDR3SDRAM 中写入全零数据以达到清屏目的.AXI2XSVI用于将AXIGStream 数据流用行、场同步信号进行区隔,供外部显示模块进行显示.XSVI2AXI用于将带有行场同步信号的视频数据转换成AXIGStream 数据流.VTC 用于生成系统运行所需时序信号.对VTC根据显示时序进行修改,系统即可产生多种分辨率图形画面。3.1.3 图形缓冲设计本文中对DDR3SDRAM 帧存的操作包括3种类型:PS写入、PL读取、PL清零.清零从本质上说也是一种写入操作,写入的是全零数据.读取和写入请求通过DDR 控制器中的调度机制和仲裁策略分别在不同时刻得以响应,得益于DDR3SDRAM 的高速高带宽优势,外部可以同时进行多个通道的读写操作.针对本文中DDR3SDRAM 的3种操作类型,在DDR3帧存中设置了3个缓冲区,分别为buffer0,buffer1,buffer2,相应地,VDMA 中的framebuffer数目也设置为3.buffer的切换机制如表1所示.这种三缓冲切换机制保证了写入的都是已清零完成的buffer,清零的都是已读出完成的buffer,读出的都是已写入完成的buffer。根据buffer切换机制,VDMA 中的S2MM和MM2S通道分别以指定的buffer为操作对象.初始化状态下为每个buffer指定默认的操作模式,而后在每个帧周期内启动VDMA 切换buffer操作模式,从而不间断地输出图形数据。3.2 软件设计3.2.1 Zynq系统软件系统绘图时,根据双口RAM 提供的画面内容要求,启动绘图任务,并将绘图结果保存下来.显示工作完全由PL内部的显示逻辑负责,显示逻辑从显存中读取显示数据,按照标准时序送至显示接口.图形软件的接口关系如图5所示.图5 图形生成软件接口示意图3.2.2 画面显示软件画面显示软件主要包括初始化模块和主模块,结构如图6所示.初始化模块完成ARM 内核启动;外设初始化信息加载;DDR3SDRAM、UART等设备初始化;VDMA 寄存器配置等初始化工作.运算控制模块由双口RAM 读写模块;PS、PL 通信模块以及绘图模块3部分组成,其中双口RAM 读写模块主要负责从双口RAM中读取绘图指令数据,为绘图模块提供必要的绘图参数;PS、PL通信模块负责ARM 内核与VDMA的通信,切换缓存;绘图模块完成分配的绘图任务,并将相应的计算结果,也即对应的像素点信息写入DDR3SDRAM 中。图6 图形生成软件结构图  4 实验与对比4.1 实验过程在实验验证阶段,分别采用自主开发的Zynq图形生成模块和DSP图形生成模块作为实验和比较对象.其中,Zynq 图形生成模块采用的Zynq器件型号为XC7Z020,集成的ARM 处理器频率为667MHz,采用的DDR3SDRAM 器件型号为MICRO公司的MT41J128M16,时钟频率设置为533MHz.DSP图形生成模块采用的DSP器件型号为AD 公司TigerSHARC 系列的TS201,主频设置为520MHz。为了全面验证Zynq平台的图形生成性能,本文针对几种常规分辨率机载显示器,对两种平台的图形生成时间和帧率分别进行对比测试.机载显示器常规分辨率有640×480、600×600、1024×768等几种,每种分辨率下具体图形生成时间和帧率与图形内容和复杂度有关,本文选取常用的典型图形作为测试对象,每幅图形均包含了直线、圆弧、矩形、字符、数字、符号等内容,如图7所示。图7 测试图形以1024×768 分辨率的EFIS 画面为例,Zynq平台实时生成图形数据并送至外部监视器显示的示意图如图8所示.图8 Zynq平台1024×768分辨率图形生成示例4.2 实验结果针对3种分辨率典型图形画面,Zynq平台和DSP平台图形生成时间和帧率对比分别如图9和图10所示.图9 图形生成时间对比图10 图形生成帧率对比图形生成时间包括图形算法运算时间和图形数据写帧存时间.在进行图形运算处理时,针对Zynq平台的特点采取了一系列的优化算法,图形运算时间小于DSP平台.另外,Zynq平台采用的是DDR3SDRAM 帧存,操作速率远高于DSP平台采用的SRAM 帧存,因此写帧存时间远小于DSP平台.由图9和图10可见,在绘制分辨率相同的同一图形时,Zynq平台图形生成时间均小于DSP平台,帧率均高于DSP平台.在绘制多种分辨率图形画面,Zynq平台帧率均超越60 Hz,满足了机载显示器的实时显示要求。5 结论针对机载液晶显示器低功耗、小型化的应用需求,提出了一种基于Zynq的图形生成电路.运用Zynq器件集成的ARM CortexGA9内核作为核心绘图部件,外部高速DDR3存储器作为图形帧存,对帧存采取三缓冲机制进行数据缓冲处理,配合可编程逻辑资源,可完成多种分辨率图形的实时生成.对Zynq平台和DSP平台在多种分辨率下典型画面的图形生成时间和帧率进行了对比测试,测试结果表明,Zynq平台性能优于DSP平台.在生成1024×768分辨率的EFIS图形画面时,Zynq平台图形帧率可达74fps,满足机载显示器实时显示需求。0次

    时间:2018-06-01 关键词: 电路设计 图形 zynq

  • 揭开Zynq Z-7000 SoC从flash启动的秘密

    揭开Zynq Z-7000 SoC从flash启动的秘密

    各位在开发FPGA产品的时候,不仅需要熟知板子上的硬件,还要在硬件上运行代码,想要观测硬件上代码的运行是可以通过逻辑分析仪这种硬件调试仪器来进行的。内置有Xilinx Spartan-6 FPGA的Digital Discovery提供了高速的逻辑分析功能,能够让开发者观察和分析板子上的信号流,同时,今天给各位介绍另外一款Xilinx公司芯片的产品Zynq Z-7000 SoC,我们一起来揭开它从SPI接口挂载的flash启动的神秘面纱。 Zynq板从SPI端口的flash启动的过程,使用的仪器是Digilent公司的Digital Discovery。使用Digital Discovery而不是逻辑分析仪的原因有两个,首先,QSPI传输是在较高的时钟频率下进行的,在此案例中很可能就超过了100MHz,所以需要较高的采样率;其次,Digital Discovery有着512 MB的DDR,能够存储更多的采集过来的信号样本。那么,说了这么多的理论,各位是不是已经想知道怎么才能使Digital Discovery和Zynq连接到一起呢?具体的连接方式如图.1所示,将Digital Discovery的逻辑采样端口接到Zynq的falsh芯片的相应的引脚上,然后将Digital Discovery通过USB跟PC机相连接,用上位机Waveforms来进行信号的采集和处理。   图.1 用Digital Discovery逻辑分析仪捕获Zynq Z-7000 SoC的启动信号的连接方法 最大的QSPI时钟频率大约是100MHz,当启动的时候,整体的启动时间大约是700ms,这就需要很大的采样率,Digital Discovery能支持这样的频率,268万条指令在200MHz的传输条件下需要1.3秒的时间。设置在CS信号的下降沿触发采样,数据的采样需要占用大量的计算机内存,而且处理数据的时间也是相对较长的。图.2展示了整体的QSPI的传输波形图。注意在所获得波形的最左边时钟的频率从5.4MHz变到了25MHz。   图.2 Digilent公司的Digital Discovery逻辑分析仪捕获Zynq Z-7000启动的全过程 如果想要去理解数据传输所代表的意思,可以参考Zynq TRM和对应flash的数据手册。指令从Zynq传输到flash通常是通过SPI的D0引脚,第一个指令发送的是0x03 0x00 0x00 0x20(图.3的红色框框部分),此指令的意思是SPI READ,读的地址是0x20;相应的,收到的回复信号是经过SPI的D1引脚获得的,收到的信号为0x66 0x55 0x99 0xaa(图.3的蓝色框框部分所示),在Zynq TRM的170页到179页解释了收到的信号的意思是flash告诉Zynq此flash是支持QSPI的,通过观察发现,在读指令的地方SPI的时钟频率是5.405MHz,这个时钟的频率相对较低。在读指令之后,flash支持QSPI,所有的传输都会在四根QSPI数据线上进行。下一个指令是0x6b,紧跟着的是3byte的物理地址,如图.4红色框内所示,0x6b代表的是四次读写指令,flash回应的数据在8个时钟周期之后(图.4中绿色框内所示)能在QSPI信号线上被观察到,如图.4蓝色框内所示。   图.3 Zynq发送给flash的第一个读信号指令以及flash的反馈信号波形   图.4 Zynq的四次读写指令以及QSPI信号的相应 Zynq-7000 AP SoC集成了ARM处理器核和硬件可编程的FPGA于一身,集成了CPU,DSP,ASSP,混合信号处理装置等在一个芯片上,能够用于主要的数据分析和硬件加速上,有着很好的性能价格比。而Digital Discovery里面使用了Xilinx公司的Spartan-6 FPGA,有着较高的logic-to-pin比率,内置MicroBlaze软核,支持800Mb/s的DDR3,支持丰富的I/O协议,所以在性能上能够胜任逻辑分析仪的工作。 用逻辑分析仪来捕获处理器启动时候的信号波形不足为怪,但是在这个例子中是使用了Digital Discovery的逻辑分析仪功能,突出的地方就是Xilinx公司的两款芯片的交互,演绎了本次的启动信号揭秘之旅。Digital Discovery和Zynq SoC都是很出色的产品,一个是硬件开发者的便携式调试神奇,一个是硬件开发者的高性能开发板,是不是想自己亲手试一试了呢? 原文链接:https://forums.xilinx.com/t5/Xcell-Daily-Blog/Digilent-s-Digital-Discovery-high-speed-logic-analyzer-spies-on/ba-p/801655

    时间:2018-02-05 关键词: FPGA SoC Flash 技术前沿 zynq z-7000

  • 对于一款新的Zynq板卡来说,如何开挂启动程序

    对于一款新的Zynq板卡来说,如何开挂启动程序

        口袋式高速逻辑分析仪 当新入手一款Zynq开发板后,一般新手在串口输出一个hello world,实现功能就可以了。而对于一些对于Zynq有一定了解的老手而言,往往则会去尝试了解板上硬件的特性和时序,探究hello world输出背后整个系统是如何运作的。 事实上,对于一款新的Zynq板卡来说,在启动序列中QSPI传输的速度不是一个明显的规范,本文教程就将教你如何使用Digital Discovery口袋式高速逻辑分析仪来快速分析启动序列并确定时序。 01 硬件清单   Digital Discovery口袋式高速逻辑分析仪 带有flash的Zynq开发板(本文中使用Digilent Zybo作为被测对象) SOIC测试夹(若有最佳) 杜邦线 注:事实上,除了Digital Discovery之外,当然你也可以用经典的 Digilent Analog Discovery 2 来操作,后者同样带有逻辑分析仪功能。这里更为推荐使用Digital Discovery,有两个原因:一是由于QSPI时钟频率很高,超过100MHz,因此所选的仪器需要具有足够的采样率。二是Digital Discovery具有512 MB的DDR,可以完成大规模数据存储的要求。 02 连接Digital Discovery   连接关系如下: QSPI 信号QSPI/测试夹引脚Digital Discovery引脚 cs7DIO0 clk16DIO1 d015DIO2 d18DIO3 d29DIO4 d31DIO5 gnd10Gnd 在使用如上图所示的杜邦线进行连接时,要注意保证信号完整性,避免串扰。在某些时候,需要将某个信号和地线进行缠绕,如图中的蓝色cs信号就使用了接了地的黑线进行了缠绕。 03 QSPI脚本 为了将QSPI的信号转换成数据,在逻辑分析仪的WaveForm软件中增添了一个“定制”通道,并使用js语言编写了一个“解释器”。代码如下: // rgData: input, raw digital sample array// rgValue: output, decoded data array// rgFlag: output, decoded flag arrayvar c = rgData.length // c = number of raw samplesvar pClock = false; // previous cock signal levelvar iStart = 0; // used to keep track on word start indexvar cByte = 0; // byte count per transmissionvar cBits = 0; // bit countervar bValue = 0; // value variablevar fCmd = true;for(var i = 0; i < c; i++){ // for each sample var s = rgData[i]; // current sample var fSelect = 1&(s>>0); // pin0 is the select signal var fClock = 1&(s>>1); // pin1 is the clock signal var fData = 1&(s>>2); // pin2 is the data signal var fData4 = 0xF&(s>>2); // DIN 2-5 DQ 0-3 if(fSelect != 0){ // select active low // while select inactive reset our counters/variables iStart = i+1; // select might become active with next sample cByte = 0; cBits = 0; bValue = 0; pClock = false; fCmd = true; continue; } if(pClock == 0 && fClock != 0){ // sample on clock rising edge bValue <<= 4; // serial data bit, MSBit first bValue |= fData4; cBits++; if(cBits==2){ // when got the 8th bit of the word store it cByte++; // store rgValue/Flag from word start index to current sample position for(var j = iStart; j < i; j++){ // Flag change will be visible on plot even when data remains constant. // This is useful in case we get more consecutive equal values. rgFlag[j] = cByte; rgValue[j] = bValue; } iStart = i+1; // next word might start after this sample cBits = 0; // reset bit count for the next byte bValue = 0; // reset value variable } } pClock = fClock; // previous clock level} 除了使用定制的“解释器”外,我们还可以使用标准的SPI来分析那些没有通过QSPI发送到指令,例如第一条读取指令。 04 触发与采样 虽然QSPI的最高时钟频率是100MHz,但在启动过程中的最高频率仅为25MHz。此外,整个启动过程大概需要700ms。因此对于同时满足大量样本和高速采样率,这也正是选择Digital Discovery的原因——200MHz的采样速度可以在1.3s内采样268M的样本数据。 采样本身是十分浪费资源的,这个过程需要使用16GB的电脑内存,并且需要很长的时间来完成数据的处理。 触发设置在CS信号的下降沿。 下图是Waveforms中整个QSPI的传输过程。注意图中采样信号的短暂中断,从这个时候起时钟频率由5.4MHz变为了25MHz。   05 启动传输 想要明白所传输的数据含义需要阅读两个文档,一是Zynq技术参考手册(www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf),另一个是flash memory的数据手册(www.cypress.com/file/177966/download)。 Zynq与flash之间使用SPI协议进行通信,Zynq发送通过D0向flash发送指令。所发送的第一条指令是0x03 0x00 0x00 0x20,含义是SPI读,读起始地址是0x20。Flash通过D1接收0x66 0x55 0x99 0xaa。Flash读指令的含义在flash memeory的第85页做了解释。   [!--empirenews.page--] (点击可查看大图) 在Zynq技术参考手册的第170到179页解释了所回复指令的含义,简单说这组字节告诉了Zynq内存是支持QSPI的。还需要注意到,此时的SPI时钟是5.405MHz,是一个比较低的速度。 从这点上看,确定了Zynq的内存支持QSPI,并且所有的交互都将在这4条数据线上完成。例如,下一条指令是0x6b,跟在一个3个字节的地址的后面。0x6b表示一个quad读指令,在8个时钟周期后的QSPI解释器上看到响应,这是虚拟字节。   (点击可查看大图) 在本例中,地址是0x1d,读取7个字节。这些字节来自地址0x1d、0x1e、0x1f,它是中断表的一部分,然后从地址0x20开始读取4个字节,这是在第一个SPI读取时读取的相同字节。 Znqy将继续读取字节,地址逐渐增加,直到0x45,这是bootROM Header的结尾。 但是,由于我们无法访问BootROM的代码,其余的引导序列就不那么透明了。在某个时候,FSBL(第一阶段引导加载程序)将开始运行,最有可能的是当SPI时钟频率变化到25 MHz的时候,如下所示,也就是在引导过程开始后的84毫秒。   (点击可查看大图) 然后,FSBL将读取引导映像文件并分析它包含的不同分区,包括配置Zynq PL部分的bit文件,在ARM中运行的elf文件。

    时间:2018-01-19 关键词: 嵌入式开发 zynq 板卡 启动程序

  • 基于Zynq全新Z系列工业智能相机

    基于Zynq全新Z系列工业智能相机

    智能相机(Smart Camera)并不是一台简单的相机,而是一种高度集成化的微小型机器视觉系统。它将图像的采集、处理与通信功能集成于单一相机内,从而提供了具有多功能、模块化、高可靠性、易于实现的机器视觉解决方案。同时,由于应用了最新的DSP、FPGA及大容量存储技术,其智能化程度不断提高,可满足多种机器视觉的应用需求。  Vision Components公司是智能相机领域的卓越企业之一。在1995年推出了VC11智能相机,该智能相机是第一款适用工业应用的智能相机,将全新方法与机械电子性能出众的硬件结合起来,推出了Smart智能相机,并在随后的该领域发布越来越多卓越的产品。 全新Z系列工业智能相机: Vision Components发布全新Z系列工业智能相机,采用了Xilinx Zynq Z-7010 SoC,实现了摄像机本地可编程处理能力。nano Z相机系列可作为裸板成像平台(VCSBC系列)或全闭合相机(VC系列)。VSBC系列提供752x480像素(WVGA)、1280x1024像素(SXGA)、1600x1200像素或2048x1536像素传感器供选择。这些摄像机模块根据传感器不同的类型提供50-120帧/秒的视频采集速率。所有这四个模块也可提供远程传感器头(VCSBC nano Z-RH系列)达到简化系统集成的目的。Zynq SoC提供了视频处理功能的同时,还提供了双传感器、立体成像功能,称之为VCSBC nano Z-RH-2系列。     图1:Vision Components VCSBC nano Z-RH-2工业立体智能相机模块 Vision Components同样提供类似产品,具有坚固的外壳和镜头安装座的VC nano Z系列和VC pro Z系列。VC pro Z版本可以配备IR LED照明功能。     图2:Vision Components VC pro Z全封闭智能工业相机 Vision Components采用Xilinx Zynq SoC,实现一个平台创建十多个不同的可编程摄像机和摄像机模块的能力。摄像机采用Zynq SoC的双核ARM Cortex-A9 MPCore处理器运行Linux系统,广泛支持可各种编程软件工具(例如MVTech软件的Halcon Embedded等),设计者可以便捷的在PC端轻松开发应用程序,并适配智能相机。Zynq SoC的片上可编程逻辑能够执行大量视觉处理任务,如白光干涉测量,颜色转换和实时高速图像识别(如OCR、条形码读取和车牌识别)。 这些摄像机利用了Zynq SoC的广泛的标准I / O功能,包括高速以太网,I2C和串行I / O等,而Zynq SoC的可编程I / O提供了接口灵活性,在这个系列能提供四个图像传感器同步处理数据的功能,Vision Components未来也将在VC Z系列智能相机添加更多其他传感器。Vision Components业务发展总监Endre J.Toth认为,Zynq SoC的可编程功能为其公司创造了真正的竞争优势。 这是5分钟的视频,详细介绍了Smart相机的一些应用程序,有关这些智能相机的更多信息,可查看Vision Components官网。 Zynq Z-7010 SoC: ZYNQ系列是赛灵思推出的行业第一个可扩展处理平台,内部集成了单核或者双核ARM Cortex-A9 APU、1GB DDR3内存、可编程逻辑(PL)和多种外设控制器,所以可以完美的实现在ARM中的软件实现,并且还拥有云分析和云连接等功能,目前在机器视觉、多轴马达控制、多摄像头驾驶员辅助平台、基于以太网的回传解决方案、监视器和投影仪、多功能打印机、视频监视系统等领域应用非常广泛。     图3:Zynq Z-7000 SoC Zynq Z-7000 SoC本次致力于Z系列智能相机,实现了大量视觉处理的任务,如白光干涉测量,颜色转换和实时高速图像识别,Z系列智能摄像机因此具有了极高的竞争优势。 总结: 本次,Zynq系列产品又在工业智能相机展现了卓越性能,Vision Components采用Zynq系列设计全新Z系列智能相机在该领域具有卓越的性能和不可比拟的竞争优势。赛灵思FPGA系列板卡/芯片又一次将FPGA的灵活性、全面性、便捷性等功能展现的淋漓尽致,相信在物联网时代的进步,越来越多基于赛灵思FPGA系列的产品会大放光彩。

    时间:2017-03-09 关键词: Xilinx 相机 技术前沿 zynq

  • 面向Zynq IIoT应用电源解决方案参考设计解析

    面向Zynq IIoT应用电源解决方案参考设计解析

    Xilinx Zynq-7000全可编程SoC器件自从面向市场以来受到了很大欢迎,被应用到很多系统设计当中,是针对各类系统设计问题的最智能化解决方案,无与伦比的集成、高性能和低功耗等优势。与此同时这也给电源模块的设计带来了很大考验,美国芯源系统有限公司(Monolithic Power Systems, 简称MPS)为此设计了一个电源模块。采用了6个MPS电压转换校准芯片,分别是3个MPM3630 3A转换器、1个MPM3610 1A转换器和2个LDO转换器。(图1 MPS公司设计的Zynq-7000 SoC电源模块) 该电源模块共有12个电压通道输出,输出的电源电压分别包括0.75V、1.0V、1.5V、1.8V、2.5V和3.3V,完全满足Zynq SoC器件的电源需求。   图2 MPS公司Zynq电源解决方案设计模块图 参考地址: %20Design/MP... 除此之外,TI公司也专门定制了Zynq-7000电源模块,使用了多个LMZ3系列模块、多个LDO和一个DDR终端稳压器提供为FPGA供电时需要的所有电源,同时还具有一个用于加电和断电排序的LM3880。此电源模块还支持DDR3存储器件。重要的是此设计为模块设计方便调用。输入电源为12V,输出电流可高达3A,输出电压包括1V、1.2V、1.35V、1.5V、1.8V、2.5V、5V,也能够完全满足FPGA的使用。   图3 TI公司设计的Zynq-7000 SoC电源模块 该模块采用的电源管理器件包括: LM3880:电源序列发生器 LMZ31503:采用QFN封装具有4.5V-14.5V输入的3A SIMPLE SWITCHER电源模块 LMZ31520:20A SIMPLE SWITCHER电源模块 LP2998:DDR3终端稳压器 TPS560200:SOT23 封装的 4.5V 至 17V 输入、500mA 同步降压转换器 TPS7A3501DRV:正电压、低噪声(3.8?VRMS) LDO,可为 1A 负载供电,非常适合无噪声电源解决方案。

    时间:2017-02-19 关键词: 电路设计 电源 zynq iiot

  • Zynq系列器件通过JTAG口访问DDR

     在开发过程中硬件调试不免会遇到一种情况,就是可能SD卡、USB和网口都没有调通,但是需要一些少量数据对特定功能进行验证,这时通过JTAG接口Restore数据到DDR或从DDR Dump数据到PC机不失为一种有效选择。Xilinx SDK就支持这种功能,以下做一个简单的介绍: (1)步骤 1:在 SDK 下建立 System Debug 仿真,并选择当前的目标调试核; (2)步骤 2:点击“Debug”使程序运行到你设定的断点; (3)步骤 3:选择“Xilinx Tools→Dump/Restore Data File”,并勾选你需要进行的操作是“Dump Memory“还是”Restore Memory“,指定PC机目标文件路径,内存的起始地址及操作的数据长度; (4)配置目标处理器,Peers 选择为“Local”,Contexts 选择为APU当前正在被 Debug 的核; (5)点击OK进行”Dump“或”Restore“操作,直到SDK log打印操作完成(因JTAG口数据速率较低,所以传比较大的数据时可能会需要较多的时间)。  

    时间:2017-02-09 关键词: zynq jtag ddr

  • Xilinx Zynq UltraScale+ MPSoC技术概览

    Xilinx Zynq UltraScale+ MPSoC技术概览

    Zynq UltraScale+ MPSoC是Xilinx推出的第二代多处理SoC系统,在第一代Zynq-7000的基础上做了全面升级。 包括先进的multi-domain,multi-island电源管理系统;高密度片上UltraRAM静态存储器;单通道速率高达32Gbps的高速收发器;集成100GbE、PCIe Gen4、150Gbps Interlaken等I/O控制器;高性能UltraScale可编程逻辑。和Zynq-7000系列器件相比,加密、安全和电源管理都得到了显著增强。Zynq UltraScale+ MPSoC系统框图如下图1所示。 和第一代Zynq-7000 SoC一样,Zynq UltraScale+ MPSoC第一级初始化boot也是先从PS启动,支持RSA签名和AES认证。在初始化Boot确认整个器件的安全性之后再加载PL(可编程逻辑)配置。用户可以把Zynq UltraScale+ MPSoC的片上PL看成处理器的外设,可用于应用加速或其它差异化的处理。Zynq UltraScale+ MPSoC的各子系统和PL可以完全关电或进行动态电源管理按需开关。大多数的Zynq UltraScale+ MPSoC PS里面的处理器核均可独立供电。 Zynq UltraScale+ MPSoC的PS有以下主要特点: · 一个四核64位ARM Cortex-A53处理器,带L1和L2级缓存和ECC功能,可单独上电和关电; · Cache一致性互联单元为PS和PL提供双向Cache一致性保证; · SMMU(系统内存管理)单元用于PS和PL虚拟内存管理; · 双核ARM Cortex-R5F处理器(带浮点扩展),可运行在锁步模式或独立工作模式,包含Cache和带ECC的存储,可成对关电; · ARM Mali-400 MP2 GPU用于2D/3D图形显示,带支持一路或两路4Kp30视频流的DP接口; · H.265/264视频编解码器,10位像素深度下支持4Kp60编解码; · 基于三冗余处理器的配置和电源管理单元; · DDR控制器支持ECC功能的DDR3/4和LPDDR3/4 SDRAM,Zynq UltraScale+ MPSoC的PS和PL共享SDRAM空间; · 硬核外设包括:GigE、USB3.0、SATA3.0、SPI、IIC、CAN、UART和Flash控制器(QSPI-NOR、SD、eMMC、ONFI NAND)。 Zynq UltraScale+ MPSoC的PS由两个处理子系统构成:双核Cortex-R5F实时处理子系统,包括低功耗域的锁步RPU(实时处理单元);应用子系统含一个基于四核、64位 ARM Cortex-A53 处理器的RPU(应用处理单元),工作在全功耗域。Zynq UltraScale+ MPSoC使用一个独立的功耗域用于PL和电池供电域(安全秘钥和实时时钟)。 基于双核ARM Cortex-R5F处理器的RPU可工作在锁步和独立运行模式。锁步模式用于安全性要求严苛的场合,在锁步模式下,从处理器输入延时两拍提供时间分集。两个AMR Cortex-R5F处理器版图在物理上不同以提供物理分集,锁步检查逻辑也是冗余的。RPU有一个独立的低延时接口到PL,在全功耗域(包括APU)关电的情况下也可以访问。RPU可以低延时确定性访问片上内存来用于安全性要求严苛的实时服务。低功耗子系统(LPS)包括RPU支持ASIL-C和SIL3标准。全功耗子系统(FPS)包括APU支持 ASIL-B和SIL2标准。 APU、RPU和PL子系统共享内存,Zynq UltraScale+ MPSoC的SMMU提供内存保护并在Boot时为APU、RPU和PL子系统提供内存分割。片上的DDR控制器提供六个访问端口供片上多个Master设备共享访问。DDR控制器提供三种模式的交易:低延时(LL),高吞吐(BE)和实时(RT)。低延时(LL)交易具有最高优先级的仲裁,实时(RT)交易不能超过其延时要求,RT请求带时间戳和跟踪功能确保给定延时保证。如果RT交易延时保持在给定要求之下,它被当做高吞吐(BE)交易,当RT时间戳超出延时保证,内存控制器提高RT的优先级到最高级。 多端口的PS-PL互联支持高达1TB的带宽,每个Port可支持85Gbps,Port符合AMBA AXI4接口标准,支持128、64或32bit数据位宽访问。一致性端口符合AMBA ACE Cache一致性协议,提供单向或双向的Cache一致性保证。 Zynq UltraScale+ MPSoC可以从QSPI、ONFI NAND、SD卡或者eMMC启动,启动镜像和bit文件可以使用4096bit RSA秘钥签名(带384bit SHA-3)。同时还提供片上存储器用于多重RSA公共秘钥来支持秘钥撤回。安全boot支持256bit AES加密,AES秘钥可以存储在e-fuse或电池供电备份的RAM中。为了缓和DPAs,解密只在签名认证成功后进行。启动镜像(或bit文件)加密支持key rolling进一步缓和DPAs。篡解检测机制检测供电、片上温度、时钟频率和关键的内部和外部接口。如果检测到篡解事件,安全子系统清除并锁定系统,只能是再次冷启动才能恢复。 Zynq UltraScale+ MPSoC有多个电源域,然后更进一步分成多个power islands——on-die power-gated域。每一个APU处理器核都是独立的power-gated,RPU处理器是成对的power-gated。在FPD电源域上电的时候,每一个APU核都能够通过power-gate独立关电,APU L2和RPU紧密耦合内存也是可以独立关电的。每一个大型外设同样可以独立关电。标准的电源管理API允许PMU(电源管理单元)为APU和RPU提供电源管理服务。 Zynq UltraScale+ MPSoC支持四种电源模式: ① Full-power模式; ② Low-power模式,此时FPD是关闭的; ③ Sleep模式同时DRAM暂停; ④ Power-off模式同时DRAM暂停。

    时间:2016-08-02 关键词: Xilinx 技术前沿 zynq mpsoc ultrascale+

  • 神奇,用ZYNQ控制人体器官培植环境

    神奇,用ZYNQ控制人体器官培植环境

    使用可再生生物技术来培育重要的人体器官。器官培育在一个不产生排异现象的支架上完成,支架源自病人自己的干细胞。该技术被用来治疗各种危及生命的严重疾病,包括食道、支气管方面和气管肿瘤、气管创伤等当前治疗手段非常有限并且死亡率非常高的疾病。Biostage公司使用Cellframe技术在一个生物反应器中来培育替代器官,这个生物反应器NI(美国国家仪器)的RIO电路板和模组实时控制,并且借助了LabVIEW开发环境和LabVIEW FPGA软件。在一个旋转的生物反应器中培植若干天后,再生器官就可移植到病人身上。 BiostageCellframe技术运转流程 一份新的NI案例研究解释了Biostage的研究员将他们的硬件控制平台从2012年时使用NI的互联网连接式的CompactRIO底板升级到CompactRIO控制器,最后转到Single-Board RIO(sbRIO)控制器。从sbRIO-9626到sbRIO-9606(均基于Xilinx Spartan-6 LX45 FPGA),最后选择基于Zynq的sbRIO-9607。现在公司已经统一标准使用sbRIO-9627控制器和NI Linux实时操作系统。所有的这些硬件产品都得到NI LabVIEW的良好支持,也都支持LabVIEW FPGA,因为NI和Xilinx的支持,对Biostage而言,新的硬件更新换代也变得相对容易。当公司添加新特性到到Cellframe系统,它就可以顺利过渡到不同的平台来满足不断变化的需求。 NI的案例研究描述说: Biostage使用FPGA的性能处理解决方案中的冗余和时间敏感性控制,他们把FPGA视作一个可靠的硬件解决方案。一旦生物反应器的配置加载到FPGA中,FPGA就会独立的管理和生物反应器间的直接交互。FPGA也会通过监测实时应用来提供生命支持,一旦出现极端异常情况就会重新启动。sbRIO-9627上FPGA面积提升已经帮助他们增加新的特性进来,这使得他们的解决方案永不过时。

    时间:2016-08-02 关键词: FPGA 技术前沿 zynq 器官培育

  • Xylon推出基于Xilinx Zynq SoC的ADAS应用IP

    Xylon推出基于Xilinx Zynq SoC的ADAS应用IP

      目前现在各大科技公司都在开发自动驾驶汽车,如谷歌,SpaceX,奥迪都已经开发出汽车原型,能够在马路上自动变道,自动靠边停车,甚至还可以自动进入地库完成泊车等功能。要实现自动驾驶最重要的要属ADAS(高级驾驶辅助系统),它不仅要能够在汽车行驶过程中随时感应周围的环境,收集数据,进行静态,动态物体的辨识,侦测与追踪,进行系统的运算和分析,从而预先让驾驶者察觉到可能发生的危险。     图1 谷歌自动驾驶汽车 当 然ADAS还需要能够监测驾驶员的行为,要能够响应驾驶员的要求或者提醒驾驶员注意等。Xylon公司是一家专注于FPGA设计的电子公司,自1995年 成立以来已经发展成为嵌入式图形,视频和网络领域知识产权(IP)的杰出提供商。近期Xylon推出了基于Xilinx Zynq SoC的ADAS IP核——logiDROWSINE,这款IP核能够监测驾驶员疲倦状态以及面部一些注意力不集中的表情。这款IP核能够实时处理视频摄像机拍摄的画面, 实时分析驾驶员的眼睛,目光,眉毛,嘴唇和头部动作,打哈欠动作,并且能够持续追踪驾驶员的面部表情,分析驾驶员是否处于微睡眠状态。总之 logiDROWSINE IP能够识别驾驶员七种不同程度的困倦状态,当它判定驾驶员注意力不集中有困意时,它就会通知相关ADAS系统,采取相关措施,例如声音警报或者振动座椅 等。     图2 logiDROWSINE IP核应用于ADAS系统Demo

    时间:2016-04-18 关键词: Xilinx SoC adas zynq xylon

  • 基于Zynq压电陶瓷传感器的高精度采集系统设计

    基于Zynq压电陶瓷传感器的高精度采集系统设计

     引言 压电陶瓷(Piezoelectric,PZT)以其特有的体积小、响应快、精度高和微动作功能而成为近年来天文光学精密测量中广泛应用的材料之一。因此,其采集精度和实时性是其关键技术之一。本设计以Xilinx公司的Zynq-7000双核ARM处理器作为设计平台,实现对PZT的高速和高精度采集。Zynq是以ARM为核心、以FPGA作为可编程外设的全新架构处理器,其ARM核是由2个Cortex—A9 CPU组成的AMP系统。 目前,PZT的采集系统大多采用PC机下的采集卡或者类似于单片机的系统设计,由于PC机系统的实时性比较差,单片机的数据处理能力比较弱,很难满足类似于天文光学测量系统的实时性要求,采用Zynq的PL部分做数据采集,可以达到μs数量级。利用Zynq的PS部分实现数据存储、数据处理和通信,实时性也可以达到μs数量级。 1 数据采集和OLED显示IP核设计 1.1 OLED显示IP核设计 ZedBoard开发板上使用Inteltronic/Wisechip公司的OLED显示模组UG-2832HSWEG04,驱动电路采用所罗门科技的SSD1306芯片。OLED采用SPI方式控制,SPI模式使用的信号线和电源线如下: ①RST(RES):硬复位OLED。 ②DC:命令/数据标志。 ③SCLK:串行时钟线。 ④SDIN:串行数据线。 ⑤VDD:逻辑电路电源。 ⑥VBAT:DC/DC转换电路电源。 ⑦OLED显示IP核是指在PL中配置相关外设,挂到PS中,作为PS部分的外设使用。 只需要利用Xilinx的嵌入式工具XPS生成硬件系统。主要过程如下: ①根据XPS工具设计流程,生成Zynq的最小硬件系统。 ②在最小硬件系统中,添加外设IP my_oled,添加一个6位寄存器,每位和SPI引脚对应。 ③在系统生成的MPD文件中,设置相关引脚和方向信息。 ④在系统生成的my_oled.vhd文件中,用VHDL语言进行端口设计。 ⑤在系统生成的user_logic.v文件中,用Verilog语言进行逻辑设计,实现寄存器和SPI对应端口连接并实时读取。 1.2 数据采集IP核设计 由于压电陶瓷精度非常高,因此,采用高精度ADS1256转换芯片采集电压,ADS1256是多路复用的24位极低噪声△-∑ADC。其理论采样精度达到16 777 216分之一,测量电压范围为-5~+5 V,因此,其理论精度为1.6μV,实际测试达到10μV数量级。 ADS1256与zynq是通过SCLK、DIN、DOUT、组成的SPI串行接口,由于其不在ZedBoard开发板上,需要通过板子上的JA和JB接口连接上述6个引脚。 数据采集IP核设计,主要是完成6个引脚的连接,以及A/D转换过程的命令和数据传送、时钟设定,其设计过程和OLED显示IP核设计过程完全一致。 2 Zynq双核运行原理 Zynq是一个可扩展处理平台,它的启动流程也和FPGA完全不同,而与传统ARM处理器的类似。 系统上电启动后,第0阶段启动代码判断启动模式,将第一阶段启动代码amp_fsbl.elf下载到DDR中,并开始执行。FSBL会配置硬件比特流文件,加载CPU0可执行文件和CPU1可执行文件到DDR对应的链接地址。在这一阶段,所有代码在CPU0中执行,然后执行第一个可执行文件app_cpu0.elf,把CPU1上将要执行的应用程序执行地址写入OCM的0xFFFF FFF0地址,然后执行SEV汇编指令,激活CPU1。CPU1激活后,将会到OCM的0xFFFF FFF0地址读取其数值,其数值就是CPU1执行可执行程序的地址,CPU1应用程序将从该地址执行。 CPU0和CPU1相互之间通过OCM的0xFFFF 0000地址作为共享内存,进行通信。 Zynq是AMP体系架构,CPU0和CPU1各自占用独立的DDR空间,其中CPU0占用的DDR地址为0x00100000~0x001F FFFF,CPU1使用的地址空间为0x00200000~0x002F FFFF。双核运行原理如图1所示。 3 软件设计 软件设计主要包括CPU0应用程序和CPU1应用程序,其中CPU0部分主要实现系统初始化、启动CPU1、读取A/D转换后的数据和对数据进行初步处理。 FSBL加载完CPU0应用程序后,跳转到0x0010 0000处执行CPU0程序,首先配置MMU,关闭Cache,使OCM物理地址为0xFFFF 0000~0xFFFF FFFF和0x00000000~0x0002 FFFF。 关闭Cache后,CPU0执行SEV汇编指令,激活CPU1,CPU1到OCM的0xFFFF FFF0地址读取CPU1应用程序地址,开始执行CPU1的应用程序。 读取ADS1256转换后的数据,对前后2次ADS1256转换后的数值进行比较,如果大于0xFF,则认为压电陶瓷有异常,设置COM_VAL=1,等待CPU1把异常信息在OLED上显示出来。其流程图如图2所示: CPU1在激活后,将会从DDR的0x00200000地址开始执行应用程序,由于Zynq是AMP架构,各个CPU独立使用资源。因此,在CPU1里,仍需要设置MMU,关闭Cache。 关闭Cache后,CPU1读取共享内存COM_VAL变量,如果其值为0,表示压电陶瓷工作正常,在OLED上显示正确信息。如果COM_VAL=1,表示压电陶瓷工作异常,将在OLED显示异常信息。其流程图如图3所示。 4 实验结果 完成软硬件设计后,需要将硬件比特流配置到Zynq的PL部分,把软件部分下载到DDR中运行。使用Xilinx的BootGen工具,将FSBL文件、bit文件、CPU0文件和CPU1文件组合并添加到相关头部,生成能被Zynq识别的合法镜像BOOT.BIN文件。把BOOT.BIN拷贝到SD卡中,将ZedBoard设置成SD卡启动,将SD卡插入SD卡槽,上电后,会看到OLED显示压电陶瓷工作状态信息。 实验中,压电陶瓷在一固定位置,随机读取部分A/D采集到的数据,如表1所列,可以看出,其采集精度达到10μV数量级。 使用台式万用表进行测试,电压为2.5 V。实验结果表明,A/D采集精度高达10μV数量级,与高精度台式万用表测量结果一致,说明采集结果是正确的。 结语 利用高精度ADS1256转换器和Zynq高速处理平台,实现了双核ARM并行运行数据采集和实时显示功能。经过24小时不间断测试,系统运行稳定,能够满足高速和高精度压电陶瓷传感器采集系统的要求。

    时间:2015-11-24 关键词: 双核 数据采集 zynq 压电陶瓷

  • Xilnx提前交付16nm工艺MPSoC--Zynq® UltraScale+™

     21ic讯,赛灵思上周(美国时间9月30日)宣布比原定计划提前一个季度向客户提前交付业界首款 16nm 多处理器 SoC(MPSoC)。早期版本的 Zynq® UltraScale+™ MPSoC 能帮助赛灵思客户立即开始设计并提供基于 MPSoC 的系统。Zynq® UltraScale+™ MPSoC 采用台积公司 (TSMC) 的 16FF+ 工艺打造,支持新一代嵌入式视觉、ADAS、工业物联网 (I-IoT) 和通信系统的开发,并可为新一代系统提供 5 倍的系统级性能功耗比,以及兼具保密性与安全性的任意互连功能。 台积公司业务开发副总裁金平中(BJ Woo )博士指出:“台积公司与赛灵思的持续通力合作是今天这一世界级16nm FinFET多处理 SoC提前发货的重要基础。赛灵思与台积公司已经清楚地演示并交付了迄今为止所有供货的All Programmable 逻辑产品系列中领先业界的芯片性能,拥有最低功耗、最高系统集成度和智能化水平。” 赛灵思公司执行副总裁兼可编程产品部总经理 Victor Peng 指出:“提前交付16nm Zynq UltraScale+ MPSoC 器件延续了我们在整体执行和绝对高品质方面的出色表现。为此,我们一举获得了三连冠,即在 28nm、20nm 和 16nm 工艺节点上都是第一个向市场推出领先产品。” 关于Zynq UltraScale+ MPSoCs Zynq UltraScale+ MPSoC 是业界首款采用台积公司 16FF+ 工艺的异构多处理器 SoC(MPSoC)。这一最新系列支持开发灵活的标准化平台,可为新一代系统提供 5 倍的系统级性能功耗比,以及兼具保密性与安全性的任意互连功能。Zynq UltraScale+ MPSoC 集成了 7 个用户可编程处理器(包括 1 个四核 64 位 ARM® Cortex™-A53 应用处理单元、1 个双核 32 位ARM® Cortex™-R5 实时处理单元、1 个 ARM® Mali™-400 图形处理单元)。该系列还包括一系列集成外设、安全性与保密性和高级电源管理特性。结合 SDSoC™ 开发环境,Zynq UltraScale+ MPSoC 系列能实现同时具备软件定义和硬件优化功能的系统。 供货情况 All Programmable Zynq UltraScale+ MPSoC 器件的早期样片正在开始出货。更多样片将于 2016 年第一季度提供。 赛灵思将于 11 月 10 日至 12 日在加州圣克拉拉会议中心举行的 ARM 技术大会上演示All Programmable Zynq UltraScale+ MPSoC 器件,届时欢迎光临赛灵思 205 号展台。

    时间:2015-10-08 关键词: Xilinx zynq 16nm mpsoc

  • 采用Zynq SoC实现Power-Fingerprinting 网络安全性

    驱动工业物联网 (IIoT) 的“任意连接”实现了超高速增长,这不仅仅只是连接众多迥然不同的设备。这还与跨各种广泛应用收集、分析和操作的数据有关。IIoT 概念的关键点在于能够确保设备的安全性,以便能够收集和同化数据并向其他位置进行传输。 “任意连接”这一理念的超高速增长所引发的新漏洞远远快于公司可以实施的安全措施。通常最容易被忽略的漏洞之一就是资源受限制的硬件平台,例如,2010 年攻击伊朗核反应堆的震网 (Stuxnet) 病毒就引发了全球范围内的关注。 PFP Cybersecurity 是一家科技公司,其制定的独特方法能解决众多安全性问题,例如因资源受限制的硬件平台和网络安全威胁(如震网等病毒)的增长所导致的问题。iVeia 通过充分利用 赛灵思’s Zynq-7000 All Programmable SoC 来帮助 PFP Cybersecurity 面向 IIoT 应用实施新颖、高效的算法型网络安全解决方案。与 PFP 的基于 PC 的概念验证相比最终设计在体积和功耗方面均减少或降低了一个数量级。 在探讨我们两家公司如何在 Zynq SoC 上使用名为 Power Fingerprinting (PFP) 的专有技术来开发和商用化某个 IIoT 网络安全解决方案之前,我们首先来深入了解一下资源受限硬件平台不断增长的安全漏洞。 资源受限型硬件平台的漏洞 由于标准工业控制设备使用资源受限制的嵌入式平台,因而控制关键基础设施的大量系统几乎没有网络安全性规定。如今,这种系统级别漏洞正被认为是关键基础设施的严重威胁。在关键基础设施环境中,很多系统具备陈旧的处理器,使用唯一硬件,并且不支持典型网络安全措施所引入的性能降级,它们为入侵留下了后门。最近的一次是在 2014 年 11 月,调查人员发现控制美国电厂、电网、水处理工厂和石油天然气基础设施的系统感染了病毒。[1] 四年前,由于震网病毒感染了伊朗负责运行核离心机的可编程逻辑控制器 (PLC),从而导致了离心机的毁坏。[2] 平台过于僵化,就非常容易遭到入侵, PLC 就是其中的典范。PLC 很大程度上由嵌入式 MPU 组成,能自动对工业设备进行控制和监控。企业通常会建立其 PLC 平台网络,但却趋向于不为任何类型的安全监控或完整性评估提供资源。[3] 同时为了防范零日攻击(zero-day attack)或供应商未意识到的安全漏洞,他们也不会特别频繁地去更新这些平台。[4] POWER FINGERPRINTING:一种新颖且有效的安全方法 PFP Cybersecurity 开始寻求能解决这类问题的解决方案,其不仅是能与现有安装设备高效协作运行的非侵入式解决方案,同时也不需要安装任何重要的设备或产生大量软件更新。。该公司开发的 PFP 技术可作为完整性评估的创新方法。正如人类指纹是个人的唯一标识一样,相同的理念也适用于特定系统或芯片。PFP 使用物理侧通道(例如,功耗)来获取在处理器中全面执行协议栈内部执行状态的相关信息,并且这与平台或应用无关。PFP 技术将识别被系统认为正常运行的“指纹”。如果之后获取的某个指纹不匹配,则可能表明某些方面出错。 这可通过外部监控器来实现,该监控器在物理上与目标处理器分离,并且在网络攻击破坏了目标时能以极高的准确度进行检测。PFP 同时适用于新系统和原有系统,是现有网络安全性解决方案的补充,并且不需要在目标上安装任何软件或硬件。 PFP 可支持能捕获通道侧信号的各种传感器,并依赖于计算密集型信号处理算法进行功能抽取,而且依赖机器学习进行分类。能通过各种方法来完成感应侧通道,包括 AC 或 DC 电流或者在目标周围获取电场或磁场变化的电磁 (EM) 传感器。PFP 从捕获的信号中抽取唯一有差别特征,将其与一组基线参考进行比较并查找偏差。基线参考是“指纹”,可唯一识别的正常执行目标软件,并且是通过机器学习方法来抽取的。PFP 使用存储的参考来实时检测未经授权的执行偏差。 PFP Cybersecurity 成功开发了概念验证用的监控系统,并使用如下设备对该系统进行了演示:个人计算机 (PC) 、 具备高速模数转换器 (ADC)以及能将 EM 传感器与数据采集设备(如图 1 中所示)实现接口相连的定制模拟前端。PFP 算法引擎在 PC 上执行,并以从数据采集设备收集原始 ADC 数据为切入点。系统的前端处理在设计方面类似于众多多通道数字无线电接收器,即,在 ADC处收集可用于由多个数字调谐器进行处理(通常称为数字下变频,也可简称 DDC)的宽波段。这些 DDC 可调谐到更广波段中的更窄相关波段,然后对这些波段进行过滤和抽取。此方法能产生高得多的可管理数据带宽以进行后续跟踪处理,并可极大简化系统设计的模拟部分。 功能抽取和分类算法可处理 DDC 的输出,并将其与一组基线参考进行比较,所有这些都必须进行实时操作才能确保它们察觉到任何入侵。控制算法的并行运行能够确定ADC 采样率及相关波段的处理参数。此进程可在原始 ADC 样本的大型相邻模块上执行大量操作,其中包括快速傅里叶变换 (FFT)。 此方法可基于目标平台提供连续的 24/7 全天候完整性监控。 如果检测到入侵,FPP 监视器就会通过提醒操作人员、将事件数据记录到中央监控站和/或采取积极措施来根据特定于应用的策略进行响应。 基于 PC 的概念验证系统能够产生的出色的结果,但由于多种原因,无法作为能够在商业上广泛部署可行系统。PC 系统基本包含一个监视器节点,而每一个现实世界的安装都可能需要几百个监视器节点。对算法性能的要求标明 PC 需要拥有功能强大的高端处理器。因而,其通常将需要风扇散热、相对大型的机柜以及大功率电源。 为了最大限度降低系统的抗扰性,传感器信号的模数转换应在靠近目标的一端进行。目标处理器附近适当的物理空间和电源可用性因各个安装的不同而有所差异,并且对于大部分安装而言,PC 的大小与电源要求过于大型,而无法行得通。尽管 PC 的成本可能较低,但将其余组件与 PC 进行集成所带来的成本和复杂性反而会让导致难以承受的高昂成本。更不必说, PC 会使得监视节点自身更容易受到网络的攻击。 从架构方面而言,一种选择可能是将所有原始数字信息通过标准网络传输到中央处理器或服务器。但由于 ADC 极高的采样率,支持如此大量数据所需要的网络基础设施在安装时可能会不可用,并且购买和安装不仅复杂而且成本过高。[!--empirenews.page--] 因此,分布式计算架构是最理想的选择,因为每个传感器都具备一个计算节点。此外,分布式架构还能在同一单元中将传感器模拟前端和算法处理高度整合在一起,从而降低成本和复杂性。此外,对于大部分安装来说,现有的网络基础设施足以支持目前被认为是超低的数据速率。但是,在采用分布式处理处理的情况下,监控器节点的设计就变得更具挑战性,因为其自身必须满足传感器节点和监控器算法处理的综合要求。 因此监控器节点必须体积小、功耗低、成本低。其必须能够处理和缓冲来自于高速 ADC 的数据,并且还能够满足算法的计算需求。此单元必须足够小才能紧靠目标器件放置,进而不仅能限制线缆长度,而且还可提高传感器的抗扰度。大小和潜在的安装空间限制确定该单元可在无风扇的情况下运行;因而必须设计为低功耗。 由于在需要监控的既定安装中可能有数百个目标器件,因此该单元的成本必须非常低才能保持较低的总体安装成本低廉。很多嵌入式处理器都能够满足上述大部分条件,例如部分基于流行的 ARM® 架构的嵌入式处理器。除了大部分由 ARM 器件实现的低功耗和低成本之外,ARM 产品还拥有更多优势,例如对大型社区的支持、嵌入式操作系统和开发工具的可用性以及针对大部分器件的原生千兆以太网支持。 其中几乎所有器件都欠缺处理原始 ADC 数据的能力(速率高达 8 Gbps)。它们也不具备对该数据进行任何有意义操作的数字信号处理 (DSP) 功能。 充分利用 Zynq SoC 以实现 FFP Cybersecurity 这些更严格的要求使得 Zynq SoC 理想适用于该应用。Zynq SoC 可在单个全功能器件中将双核 ARM 处理系统与高性能可编程逻辑高度整合在一起。这种组合不但可提供能满足应用的处理需求的异构计算架构,同时还能简化基于 PC 系统的代码移植工作。 Zynq SoC 的处理系统能提供上述嵌入式 ARM 处理器的所有优势,而增加的可编程逻辑也拥有若干优势。它们包含与 ADC 的无缝连接,并且还能够处理 ADC 的全数据速率。此外,Zynq SoC 在可编程逻辑结构中包含几百个 DSP 模块和几万个逻辑模块,能够利用它们对检测和训练算法实现显著加速。Zynq SoC 还可全方位满足针对低功耗、低成本和小尺寸的要求。 通过采用 28 纳米可编程逻辑结构和 ARM 处理系统,器件可实现相对较低的功耗。由于 Zynq SoC 拥有极高的集成度,因而无需采用之前本来所必需的众多支持电路和外设,这不仅能缩小总体系统设计,同时还可降低成本。此外,为了降低风险并加速上市进程,理想的情况是在设计中添加基于 Zynq SoC 的小型模块级系统 (SoM)。 iVeia 公司推出的 Atlas-I-Z7e 理想适用于嵌入式监控器设计,因为其拥有如下优势:极高的性能功耗比(归功于低功耗 Zynq 7020 器件和 LPDDR2 内存);专用的可编程逻辑内存在无需处理器干预的情况下对 ADC 数据进行缓冲;以及能在工业环境中可靠运行。Atlas 高度灵活的无缝接口可简化基础板设计。此外,SoM 开发套件还包含具备参考设计的免版权信号处理 IP 资源库,其不仅能提供监控器应用代码的主要部分,而且还能快速提升设计功能。图 2 描述了的基于 Zynq SoC 的最终监控器设计。 如何执行计算密集型系统功能 一旦选定硬件,现在的重点将转变成为爸代码从基于 PC 的设计移植到基于 Zynq SoC 的嵌入式平台。由于对 PC 的计算负载具有重要意义,因此必须将 Zynq SoC 的可编程逻辑部分必须用于加速代码并且不能仅充当无缝逻辑。一种可能的方法是将 PC 代码移植到 ARM 处理器,对代码进行概要分析以确定计算瓶颈制定计划以将软件分组为要在可编程逻辑中加速的代码(对比于 ARM 处理器上运行的代码)。但是,在侧重加速上市进程的情况下,我们的最初方法是通过将这些具有等效、随时可用的 IP 核(并且已知为计算密集型)功能转移到可编程逻辑中,从而对设计进行分组。接下来,我们重构并移植了 PC 代码,然后对其余代码进行概要分析以确定是否还需要任何其他加速。图 3 对此方案进行了说明。 毋庸置疑,DDC 是可编程逻辑实现方式的理想之选,因为 DDC 内核被纳为 SoM 开发套件的一部分 ,并且 DDC 组的合并计算要求可超过 20 gigaflop。DDC 组是入侵检测算法的一部分,其必须实时运行才能避免错失入侵事件。DDC 组的抽取输出可传递到 ARM 处理器,以便在软件中进一步处理入侵算法。虽然输出速率可达 2 Gbps,但却能被高性能 AXI 端口轻松处理,这些端口可将 Zynq SoC 的可编程逻辑连接到 ARM 内存。 通过使用应用编程接口的通用型 AXI 总线从 ARM 处理器对 DDC 内核进行配置。API 允许在 ARM 上运行的软件动态更改 DDC 参数,以便中心频率、带宽和抽取速率方面的更新可以根据控制算法命令实时进行。 由于通过转移 DDC 负载而显著降低数据速率,因而以 766 MHz 频率运行的两个 ARM 中央处理单元 (CPU) 具有足够的性能来支持后续处理进程。由于该设计在对称多处理 (SMP) 模式中采用 Linux 操作系统,因而能分离两个 ARM CPU 内核之间的处理,一个处理入侵检测,而另一个处理控制算法以及可与中央监控站的通信接口。此外,Linux 还具备稳健可靠的网络支持和安全性,可允许进行远程网络管理(这正是大部分安装所必需的),同时禁用任何在不久的将来可能会出现漏洞的不必要特性。 控制处理需要原始 ADC 样本的大型相邻模块。一个需注意事项是将原始 ADC 样本通过高性能 AXI 端口从 ADC 接口逻辑直接串流到 ARM 内存。但是,为了保留处理器系统的内存带宽以用于处理算法,我们反而选择了将 ADC 数据缓冲在可编程逻辑专用的物理内存中。这种内存具有确定性的带宽并确保相邻 ADC 样本的大量集合,而不会干扰 ARM CPU 的操作。 可将从专用可编程逻辑内存中收集的数据通过其中一个高性能 AXI 端口传输到 ARM,以保持低延迟并最大限度降低 ARM CPU 的开销。我们使用多端口内存仲裁器提供了一个收集端口和一个检索端口。这种方法可提供在收集样本的同时并发检索样本所需的仲裁,从而进一步减少延迟。 在对新分区的设计进行分析时,控制算法不会足够频繁地运行来充分地保持检测精度。性能瓶颈在很大程度上归因于 16,000 点 FFT 运算。借助赛灵思的 Vivado® Design Suite 提供的 FFT IP 核,FFT 的性能将远远足够,因为其设计为实时运行。但是,对可编程逻辑的其他资源需求将强制设计利用更大的 Zynq 7030 器件。[!--empirenews.page--] 幸运的是,来自 Project Ne10 的开源 Ne10 库提供了专为 ARM 的 NEON 架构扩展优化的 FFT 功能,这加速了通用浮点和固定点数学运算。尽管来自 Ne10 库的 FFT 功能不会像赛灵思 IP 核那样实时运行,但其可充分地加速控制算法以保持检测精度。 最终的基于 Zynq SoC 的监控设计平台可与基于 PC 的原型相媲美,有时甚至略胜一筹。而且,最终的设计比基于 PC 的设计制造成本明显降低,并且消除了 PC 设计存在的尺寸大、功耗高这两大市场壁垒。相对来说,Zynq SoC 设计在尺寸和功耗方面几乎降低了一个数量级。 PFP Cybersecurity 开发了 Power Fingerprinting 技术来解决在关键设备中检测由于工业物联网趋势而暴增的网络攻击的复杂问题。借助业经验证的技术,出现了如何设计系统以实现技术并同时满足市场需求的问题。借助 Zynq SoC,PFP 技术可在复杂且计算强度大的处理能力需求与低成本、小尺寸、低功耗的市场需求之间取得最佳平衡,从而在商业上具有可行性。 参考 1.ABC 新闻“2011 年以来特洛伊木马病毒潜入美国重要的计算机中”,2014 年 11 月 2.Kushner, D,“震网病毒的真实故事”电气与电子工程师学会会刊,2013 年 3 月第 50 卷,编号 3,第 48 到 53 页。 3.S. Das, K. Kant 和 N. Zhang,保护网络物理关键基础设施手册:基础与挑战,Morgan Kaufmann (Waltham, Mass.),2012 4.J. Reeves、A. Ramaswamy、M. Locasto、S. Bratus、S. Smith“资源受限型嵌入式控制系统的轻量级入侵检测”,选自关键基础设施保护 V,作者 J. Butts 和 S. Shenoi (Eds.),Springer(德国海德堡),2011 年,第 31 到 46 页   图 1 – 基于 PC 的监控系统中的模块包含前端模拟、数据采集和处理系统功能。   图 2 – 基于 Zynq SoC 的监控系统是通过 iVeia 的 Atlas-I-Z7e 系统级模块构建的。   图 3 – 该图表显示了 Zynq SoC 的 PS 和 PL 模块(包含数据流)的功能分区。

    时间:2015-09-20 关键词: SoC zynq 驱动开发 power-fingerprinting 网络安全性

  • Xilinx宣布开放SDSoC开发环境 将Zynq SoC用户扩展至广大的系统和软件工程师社群

    Xilinx宣布开放SDSoC开发环境 将Zynq SoC用户扩展至广大的系统和软件工程师社群

    21ic讯 All Programmable技术和器件的全球领先企业赛灵思公司(Xilinx, Inc. (NASDAQ:XLNX))今天宣布推出正式版(Public Access Release)SDSoC™开发环境,将Zynq® SoC和MPSoC用户扩展至广泛的系统和软件工程师社群。SDSoC开发环境是赛灵思SDx™软件定义开发环境系列成员之一,包括扩展库、开发板、设计服务生态系统支持,可实现嵌入式C/C++语言应用开发。该SDSoC™开发环境正式版还强化了集成设计环境(IDE)的功能与特性,让编程和平台开发更加简便容易。 扩展库、开发板和服务生态系统支持 赛灵思于2015年3月推出SDSoC开发环境以来,又认证了一批新的开发板、系统级模块(SoM)、库和设计服务提供商联盟成员。目前已有超过15种认证质量级的开发板和SoM,应用范围包机器视觉、高级驾驶员辅助系统(ADAS)和软件定义无线电应用。此外赛灵思及其函数库合作伙伴还提供包括OpenCV、线性代数和信号处理在内的库函数。赛灵思还新增了八家认证设计服务联盟成员以扩展其生态系统,从而使世界各地的设计团队能够充分发挥All Programmable SoC和MPSoC的潜力进行设计。 SDSoC开发环境的增强功能 SDSoC开发环境2015.2版本在其IDE中支持增强型软硬件分区、系统连接探索、高准确度快速性能估测流程。该版本还增强了平台创建流程,使用户能够无缝地将现有Vivado®设计套件项目和针对定制开发板的运行时间软件项目转换成SDSoC定制平台。赛灵思高级IP联盟成员Xylon公司创始人兼首席执行官Davor Kovacec称:“赛灵思SDSoC开发环境让我们可以通过在单个熟悉的框架中结合我们基于HDL的logicBRICKS IP核和用C/C++语言实现的高级视觉处理算法,充分发挥赛灵思All Programmable SoC 和MPSoC 异构多处理功能的威力。现在我们能够为汽车和机器视觉应用领域不十分熟悉FPGA的客户提供近乎完整、可重用的SoC解决方案,使用户能够轻松快速地添加他们自己的代码,并对完整智能视觉系统系统进行配置、原型设计和优化。” DornerWorks首席运营官(COO)Steven H. VanderLeest则表示:“赛灵思SDSoC环境是一款高度集成的无缝C/C++语言级设计环境,可以让传统的C/C++语言嵌入式客户使用赛灵思Zynq SoC和MPSoC设计并部署新一代的异构系统。作为赛灵思高级设计服务联盟成员,DornerWorks看到无论在服务那些精通FPGA的客户采用C/C++设计方法,或者那些不熟悉FPGA的C/C++软件开发人员,都蕴含着巨大商机。凭借我们在FPGA、IP、嵌入式软件和和遵循业界规范认证等各方面的强大产品专业知识,这些因SDSoC技术开创的新的客户群让我们十分振奋。我们期待着为新老客户提供我们独特的增值服务与解决方案。” 赛灵思公司处理、系统、软件和应用副总裁Vidya Rajagopalan指出:“SDSoC开发环境不仅能显著提升现有Zynq用户的生产力,而且还能够通过完整的软件开发方法开创新的市场市场与商机。过去几年来我们一直在同众多早期试用客户和合作伙伴开展合作,现在我们希望通过这个正式版SDSoC开发环境来进一步扩大用户群。” 供货情况 Zynq All Programmable SoC的SDSoC开发环境2015.2版现已开始供货。如需购买SDSoC环境,并用该环境提供的开发板、库和设计服务立即启动开发工作,敬请访问: http://china.xilinx.com/sdsoc。

    时间:2015-07-22 关键词: Xilinx SoC zynq sdsoc 行业资讯

  • Xilinx联盟计划合作伙伴的最新最佳技术

    重点介绍了赛灵思联盟合作伙伴生态系统的最新技术更新 赛灵思联盟计划是指与赛灵思合作推动全可编程技术发展的认证公司组成的全球性生态系统。赛灵思创建了这个生态系统,旨在利用开放平台和标准以满足客户需求并致力于帮助它取得长期成功。包括IP提供商、EDA厂商、嵌入式软件提供商、系统集成商和硬件供应商等在内的赛灵思联盟成员助力提升您的设计生产力,同时最大限度地降低风险。下面为您分享一些精彩案例。 面向ZYNQ ULTRASCALE+ MPSOC的基于LINUX的多核框架 鉴于即将推出的赛灵思Zynq® Ultra-Scale+™ MPSoC具备更高的容量、性能和复杂度,因此应用开发人员需要采用新的改进的软件开发范式来有效管理并充分发挥该器件提供的异构处理能力。 Mentor Graphics的Mentor嵌入式多核框架作为一种支持基础结构可以管理计算资源的生命周期以及异构多处理环境中的处理器间通信。Mentor产品组合的初始集成展示了在管理生命周期和通信的四核ARM® Cortex™-A53上运行的SMP Linux。Nucleus RTOS运行于采用Mentor嵌入式多核框架的ARM Cortex-R5内核上。 Mentor的Sourcery Codebench工具可提供一种用来设计非对称多处理 (AMP) 系统的集成开发环境。开发人员在对异构内核上的异构软件环境进行调试和特性描述时需要面对特有的挑战。Mentor的嵌入式开发工具为用户避免了这些复杂问题,并使用户深入了解系统运行时间。这些工具包括如下: • 用于在AMP系统中进行资源分区的工具(今年晚些时候供货) • 用于构建和封装远程固件/应用程序的工具 • 用于调试AMP系统中出现的每个软件环境的IDE • 能对每个OS/应用环境进行特性描述并以统一的时间基准来分析数据的工具 如需了解更多信息,敬请访问网址 http://www.mentor.com/embedded-software/. MATHWORKS扩大对 ZYNQ-7000全可编程SOC的支持 赛灵思联盟计划成员MathWorks在2014b版本中扩大了对赛灵思Zynq-7000全可编程SoC的支持。最新版MATLAB®和Simulink®使工程师和科研人员能够在统一工具环境中利用基于模型的设计更自信地加快生产进度。 MathWorks与赛灵思一致保持密切合作,共同进行技术开发,成功向市场推出了这种创新型指导流程。该工作流程可借助自动生成的C语言代码和HDL代码,便于客户开发和仿真算法,迅速完成验证并部署到Zynq上。该方法充分利用Zynq SoC的双核ARM Cortex-A9处理器以及强大的可编程逻辑架构,使工程师和科研人员能够在单个芯片上设计并实现算法,从而减少最终系统的板级空间和功耗。 除了对于赛灵思ISE®设计套件和Zynq智能驱动套件的已有支持外,最新版本还能与赛灵思Vivado®设计套件和Zynq SDR开发平台进行集成。这样,工程师和科研人员就可在硬件开发平台上快速实现原型设计,然后用Vivado设计套件将生成的C和HDL代码整合到生产环境。 MATLAB 2014b版本现可立即提供对赛灵思SoC的扩展支持。 此外,MathWorks还提供为期两天的培训课程,以帮助工程师快速掌握和使用该技术。如需了解更多信息,敬请访问2014b版本亮点介绍页。 INTELLIPROP发布针对赛灵思7系列和ULTRASCALE FPGA的NVME IP核 赛灵思联盟成员IntelliProp与赛灵思协作推出行业标准NVMe主机接口和器件接口IP核。IntelliProp的NVMe Host (IPC-NV164-HI)和NVMe Device (IPC-NV163-DT) 内核使得与赛灵思FPGA上实现的PCIe®存储设计的通信成为可能。IntelliProp的NVMe IP核完全符合非易失性存储器Express行业规范。它们提供具有一个处理器接口的应用层,以实现对寄存器和存储器的访问。这两款IP核支持到系统总线的连接,能实现无缝的IP访问并可方便地与任何系统设计集成。它们充分发挥赛灵思7系列和UltraScale FPGA中硬PCIe模块的功能,并支持Verilog和VHDL语言。 IntelliProp的NVMe内核可集成到7系列和UltraScale FPGA中,以提供行业兼容型PCIe Gen1、Gen2或Gen3接口。NVMe Host IP核通过与NVMe兼容型主机应用集成,实现与NVMe驱动器连接,进而可以向系统存储器队列发送命令并与端点设备的寄存器组进行交互。NVMe Device IP核提供一个用以处理主机命令和执行PCIe数据管理任务的NVMe兼容型器件应用。两款IP核都用来实现主机系统存储器与PCIe 连接器件间的高效数据移动。 用户应用程序可通过Vivado设计套件创建,并针对IP Integrator来封装,利用参考设计实现快速开发。IntelliProp的IP核在定价上颇具竞争力,可立即订购。敬请访问http://www.intelliprop.com或info@intelliprop.com了解产品详情和订购选择。 TOPIC通过网上购物加速嵌入式开发 赛灵思高级合作伙伴Topic Embedded Solutions开了一个销售高质量嵌入式解决方案的网上商店。该公司提供集成解决方案的完整模块化产品组合,旨在显著缩短开发周期。 首先,基于Zynq SoC的Miami SoM是一款可直接编程和使用的工业级模块,标配有启动快速的完整主线Linux板支持包(BSP)。板支持包不断更新,可在线提供,确保客户保持最新的Linux软件开发。 完整的Florida载板系列可与Topic的SoM实现全系统集成。针对医疗和常规应用的专用载板提供丰富的现成功能,可满足开发、原型设计甚至生产需求。载板的完整原理图和布局图在购买时配套提供,以确保快速和成功地实现集成。 Topic刚刚还发布了一款新的PCIe版本Florida载板,理想适用于视频、信号或高速数据处理等数据加速应用。 越来越多的全集成开发套件可简化研究、原型设计和快速工程设计。这些套件包含触摸屏、专用I/O、所有相关线缆和参考设计。 您可通过Topic的全球分销合作伙伴,以及在Topic网上商店www.topicproducts.com上找到Topic嵌入式产品。

    时间:2015-04-14 关键词: SoC 赛灵思 zynq

  • 可最大程度地发挥Zynq SoC优势的双重方法

     赛灵思Zynq-7000全可编程 SoC的众多优势之一就是拥有两个ARM Cortex-A9板载处理器。不过,很多裸机应用和更为简单的操作系统只使用Zynq SoC处理系统(PS)中两个ARM内核中的一个,这种设计方案可能会限制系统性能。 根据所开发的应用类型不同,可能需要这两个处理器都运行裸机应用,或者需要在每个处理器上运行不同的操作系统。例如,其中一个处理器执行关键计算任务,从而运行裸机/RTOS应用,同时第二个处理器通过Linux提供HMI和通信功能。 什么是多处理? 这两种方案都属于多处理。简单定义:多处理就是在一个系统中使用一个以上的处理器。多处理架构可允许一次执行多个指令,但并非必须如此。 多核处理包括两种类型:对称和非对称。 对称多处理是通过将负载分配给多个内核,从而能够同时运行多个软件任务。而非对称多处理(AMP)则是使用专用处理器,或者针对特定应用或任务在相同处理器上执行应用。 根据定义,使用Zynq SoC上的两个内核执行裸机应用或不同操作系统都属于非对称多处理。Zynq SoC上的AMP可能涉及如下几种组合: • 在内核0和内核1上运行不同操作系统; • 在内核0上运行操作系统,在内核1上运行裸机应用(反之亦然); • 在两个内核上均运行裸机应用,执行不同程序。 当您决定在Zynq SoC上创建AMP系统时必须考虑一个实际问题,即ARM处理器内核同时包含必须进行正确寻址的私有资源和共享资源。这两个处理器都有私有的L1指令和数据高速缓存、定时器、监视时钟以及中断控制器(针对共享和私有中断)。另外还存在一些共享资源,常见的有I/O外设、片上存储器、中断控制器分配器、L2高速缓存和位于DDR存储器中的系统内存(见图1)。这些私有和共享资源均需要精心管理。 每个PS核都有自己的中断控制器,能够利用软件中断实现自身与一个或两个内核的中断。这些中断通过ARM的分布式中断控制器技术完成分配。 由于针对每个内核执行的程序都位于DDR存储器内,因此您必须特别注意以确保对这些应用进行正确分割。 建立AMP 建立AMP并使其运行在Zynq SoC上所需的关键因素是引导载入程序,该程序会在第一个应用载入到存储器后寻找第二个可执行文件。赛灵思在XAPP1079中提供了有用的应用指南和源代码。该文档包含修改后的第一阶段引导载入程序(FSBL)和独立OS,可用来创建AMP系统。 首先要做的是下载与应用说明配套提供的ZIP文件,再将FSBL和OS这两个要素解压到期望的工作目录。然后,必须给名为SRC“design”的文件夹重新命名。现在,非常重要的一点是一定要确保软件开发套件(SDK)知道这些新文件(修改后的FSBL和独立OS,两者兼备)的存在。因此,下一步需要更新您的SDK库,以便使其知道这些新文件的存在。 使用软件中断与硬件中断基本相似,区别只在于您如何触发它们。 这很容易实现。在SDK中赛灵思工具菜单下选择“库”,然后选择“新建”,随之导航到目录位置<您的工作目录>\ app1079\design\work\sdk_repo,如图2所示。 处理器间的通信 为AMP设计创建应用之前,您需要考虑应用如何进行通信(如有需要)。最简单的方法是使用片上存储器。Zynq SoC配备256KB的片上SRAM,可从以下四个源地址进行访问: • 利用侦测控制单元(SCU)从任意内核进行访问; • 利用SCU通过AXI加速器一致性端口(ACP)从可编程逻辑进行访问; • 利用片上存储器(OCM)互联通过高性能AXI端口从可编程逻辑进行访问; • 也是利用OCM从中央互联进行访问。 图1 – Zynq SoC处理系统,显示私有和共享资源 图2 — 将您的新文件添加到库 由于这些不同的访问源都能对片上存储器进行读写,因此尤为重要的一点是,在使用OCM之前一定要首先详细了解其的运行方式。 既然OCM有多个访问源,那么显然应该定义一个仲裁和优先级形式。由于侦测控制单元需要最低时延(SCU既可以是处理器内核也可以是AXI ACP接口),因此SCU从这些访问源的读操作就具有最高优先级,紧接着是SCU写操作,然后是OCM互联读/写操作。用户可通过将片上存储器控制寄存器中的SCU写操作的优先级设置为低来颠倒SCU写操作和OCM互联访问的优先级。 OCM本身结构为128位字,分成四个64KB分区,并位于PS地址空间的不同位置。初始配置下,前三个64KB区块布置在地址空间的起始位置,最后一个64KB区块置于地址空间的末尾(见图5)。 简单的片上存储器实例 您可使用赛灵思I/O函数访问OCM,以便从所选的存储器地址读取和写入数据。这些函数包含在Xil_IO.h中,可支持在CPU地址空间内存储和访问8位、16位或32位字符型、短整型或整型数据。使用这些函数时,只需知道您希望访问的地址以及想要在此存储的值即可。如果是写操作,方法如下, 使用该技术时要确保两个地址指向片上存储器中的相同位置,尤其是当不同人编写不同内核程序时更应如此,为此更好的方法是使用共同的头文件。该文件将包含针对特定传输的相关操作地址的宏定义,例如: 另一种备选方法是让两个程序都使用指示器来访问存储单元。您可以通过使用宏命令定义指向恒定地址的指示器(一般用C语言)来实现这一点: 此外,您还可以对地址再次进行宏定义,以确保该地址为两个应用程序的共用地址。这种方法无需使用赛灵思I/O库,而是通过指示器实现简单访问。 处理器间的中断 Zynq SoC中的每个内核都有16个软件生成的中断。如上文所提到的,每个内核都能实现自身与另一个内核或两个内核的中断。使用软件中断与使用硬件中断基本相似,区别只在于您如何触发它们。若使用软件中断,正在接收的应用就无需针对更新数据而对目标存储单元进行轮询。 就像使用任何硬件中断时一样,您需要对两个内核中的通用中断控制器进行配置。敬请参阅《赛灵思中国通讯》第87期的“如何在Zynq SoC上使用中断”以了解更多相关信息。 然后,您可以使用xscugic.h中提供的XScuGic_SoftwareIntr函数在正在更新的内核中触发软件中断。该命令将向该指定内核发出一个软件中断,再由该内核进行适当操作: 您必须为内核0和内核1应用对DDR存储器进行正确分段,否则会存在其中一个应用破坏另一个应用的风险。 创建应用 将文件添加到库之后,下个阶段就是生成AMP解决方案的三个重要部分:AMP第一阶段引导载入程序、内核0应用和内核1应用。您必须为每个部分生成一个不同的板支持包(BSP)。 您需要做的第一件事是用SDK创建一个新的FSBL。选择“新建应用项目”,创建一个支持AMP的FSBL项目。这与创建一般FSBL的过程没有什么不同。不过,这次您需要选择“Zynq FSBL for AMP”模板,如图3所示。 完成AMP FSBL创建之后,接下来需要为第一个内核创建应用。一定要选择内核0和您的首选操作系统,并允许其创建自己的BSP,如图4所示。 创建应用之后,您需要正确定义应用在DDR存储器中的位置(应用将从该位置执行)。为此,您需要编辑图5中的链接器脚本,以显示DDR的基地址和大小。这一点很重要,因为如果没有为内核0和内核1应用对DDR存储器进行正确分段,就会存在其中一个应用破坏另一个应用的风险。 完成分段之后,您现在可以编写希望在内核0上执行的应用,因为该内核是AMP系统中的主管。内核0必须启动内核1应用的执行。您需要将图6中的代码段包含在应用中。这段代码禁用片上存储器上的高速缓存,并将内核1程序的起始地址写到一个内核1将会访问的地址。一旦内核0执行Set Event(SEV)命令,内核1便开始执行其程序。 图3 – 为AMP设计选择第一阶段引导载入程序 图4 – 为内核0创建应用和BSP 下一步是为内核1创建BSP。一定要使用修改后的独立OS(standalone_amp,如图7所示),这一点很重要,因为它能防止PS侦测控制单元的重新初始化。就这一点而言,在创建项目时不要像对待内核0那样允许其自动生成BSP。必须确保在CPU选项中选择内核1。 既然您已经为内核1创建了BSP,那么接下来首先需要修改BSP的设置,才能继续创建您想要在内核1上运行的应用。这非常简单,只需要向BSP驱动器部分的配置中添加一个额外的编译器标志:–DUSE_AMP=1。 这一步完成后,您就可以任意为内核1创建应用了。务必选择内核1作为处理器,并使用您刚刚创建的BSP。创建新应用之后,您需要再次在DDR存储器中定义正确的存储单元,而内核1程序将从此处执行。您可按照之前的方法通过编辑内核1应用的链接器脚本来完成设定。与第一个内核一样,在该应用中同样要禁用片上存储器上的高速缓存——该高速缓存可用来在这两个处理器之间进行通信。 将所有组件完美整合 在创建应用和构建项目之后,您现在应已拥有以下组件: • AMP FSBL ELF; • 内核0 ELF; • 内核1 ELF; • BIT文件,用来为预期能够实现AMP的Zynq器件定义配置。 图5 – 内核0的DDR位置和大小 使用所提供的工具在Zynq SoC上创建非对称多处理应用可以变得非常简单。 图6 – 通过编码禁用片上存储器上的高速缓存 图7 – 为内核1创建BSP 为了使Zynq SoC从所选的配置存储器中引导,您需要一个.bin文件。要创建该文件,您还需要一个BIF文件。BIF文件规定了应使用哪些文件创建BIN文件以及它们的顺序。不要使用SDK中的“创建Zynq”引导映像,而应使用ISE®设计套件命令提示符和BAT文件(BAT文件是XAPP1079的一部分,位于下载目录\design\work\bootgen)。该目录包含一个BIF文件和一个cpu1_bootvec.bin,后者作为修改后的FSBL的一部分,用于阻止其查找和加载更多应用。 要生成BIN文件,您需要将生成的三个ELF文件复制到bootgen目录,并对BIF文件进行编辑以确保其中的ELF名称正确无误(如图8所示)。 现在您可打开一个ISE命令提示符,并导航至bootgen目录。在这里运行createboot.bat。该步骤将创建boot.bin文件(如图9所示)。 图8 – 修改BIF文件 图9 – 创建将在Zynq SoC上运行的boot.bin文件 然后,您可将该文件下载到Zynq SoC上的非易失性存储器中。该器件的引导将使两个内核启动并执行其各自的程序。 使用所提供的工具在Zynq SoC上创建非对称多处理应用可以变得非常简单。使用片上存储器或DDR分区可以很容易地实现两个内核之间的通信。

    时间:2015-04-14 关键词: SoC 赛灵思 zynq

  • 利用Xilinx Zynq SoC简化您的“热”测试

    本文介绍一种使用Zynq SoC和赛灵思IP核简化高速光学收发器模块热测试的方法。 随着数据中心内部光学收发器模块的传输速度提高到前所未有的高度,数据中心内每个机架的温度也在不断大幅上升。机架中有多个这种发热的高速模块堆叠在一起,加之有多个机架并排摆放,这样,温度倍增。温度的急剧上升可能会导致超过芯片的热限制,从而造成灾难性的芯片故障,继而对整个数据中心系统产生不利影响。因此,工程师在设计光学收发器模块时必须考虑到热属性。设计人员必须要将注意力集中在热源上,并尝试用模块级甚至机架级的高效冷却方法对热源加以控制。 工程师在测试光学模块的热属性时通常有两种选择。他们可以使用复杂的网络数据生成器来创建高速(10-Gbps)链路,然后对光学模块的热属性进行测试;或者充分利用具有可调预设电压和电流的“热等效”模块,这样无需使用真正的高速数据即可仿真模拟热学条件并评估热属性。 这两种方案都不够理想。第一种方案需要专业的高速网络数据生成器,因此操作起来成本很高;而第二种方法又太抽象。热等效模块无法完全反映物理交换行为所引起的温度变化。 不过,最近我的团队在爱尔兰阿尔卡特朗讯贝尔实验室通过使用赛灵思Zynq®-7000全可编程SoC 平台和赛灵思IP核完成光学模块的热属性测试工作,从根本上简化了这一过程。我们来仔细了解一下如何成功简化测试。 预设计分析 这种热测试的基本要求是不断用10Gbps数据激发XFP光收发器,同时使用IR摄相头跟踪和描述温度变化特性。 我选择赛灵思ZC706评估板作为开发主机,因为主器件——即Zynq-7000 SoC XC7Z045(速度等级-2)上的GTX收发器可以轻松达到10Gbps的单线数据传输速率。Zynq SoC器件包含一个采用ARM®内核的处理系统(PS)和一个Kintex®-7FPGA可编程逻辑(PL)架构。首先, PL晶片上的资源足以处理10Gbps双工数据传输。然后,我们可在日后需要的时候使用PS生成特定用户数据模式。 我们的热学团队将一块Finisar XFP评估板用作光学收发器的外壳。该FDB-1022评估板可作为功能强大的评估主板,能够很好地评估最先进的10Gbps XFP光学收发器。SMA连接器可用于差分数据输入和输出。该评估板经配置后可直接通过SMA连接器连接1/64时钟(即,156.25 MHz = 10 GHz/64),进而为模块提供时钟。 系统设计 在进行FPGA开发工作的七年时间里, 图1 – 所建议的系统的方框图,包含连接实例。 我发现尽可能多地使用赛灵思内核可以显著缩短设计周期。在本设计中,我采取了相同的策略,并从集成式误码率测试器(IBERT)内核开始着手。您可利用该内核进行数据模式的生成和验证,从而评估Zynq SoC上的GTX收发器。然后,为了对设计正确布线,我创建了一个基于混合模式时钟管理器(MMCM)内核的相位对齐时钟分布单元,可同时对FPGA架构上的GTX收发器和XFP评估板上的光学收发器提供时钟。图1为系统方框图。 针对该设计项目,我使用了赛灵思的老式工具ISE®设计套件,并分三步完成这项工作。 第一步,使用CORE Generator™工具创建IBERT内核。这里提供了一些针对该IBERT 7系列GTX(ChipScope™ Pro)IBERT内核的关键设置。在我的设计中,IBERT系统时钟来自开发板上的外部时钟源,即200MHz差分时钟,P引脚位置= H9,N引脚位置= G9。GTX时钟模式独立于QUAD 111;并且我将线路速率设置为最大速率= 10Gbps。我把GTX的参考时钟设置为 Refclk = 156.25 MHz,且Refclk时钟源= MGTREFCLK1 111。 第二步,我使用CORE Generator创建了一个MMCM内核。首先必须正确设置该工具的时钟向导。为此,我将时钟特性设置为频率综合和相位对齐。输入时钟必须与开发板上的系统时钟相同 (即200MHz)。我还将目标派生时钟设置为156.25MHz,占空比设置为50%。我使用两个额外信号(RESET和LOCKED)来控制和指明MMCM内核。 图2 – ChipScope Pro屏幕截图 第三步,用赛灵思工具对所有元素进行集成。在本项目中,我使用的是ISE设计套件14.4。以后我打算改用Vivado®设计套件,以便最大程度地提高芯片性能。 我首先在ISE中创建一个新的项目,然后将IBERT内核文件夹(example_ibert_gtx.vhd、ib- ert_gtx _top.ucf、ibert_core. ngc和icon_zynq.ngc)移动到ISE项目中。然后,从MMCM内核文件夹(步骤2)将mmcm_core. vhd添加到ISE项目。再然后,将example_ibert_gtx.vhd用作顶层模块,对mmcm_core进行实例化,并将三个新信号(CLK_ OUTPUT_P、CLK_OUTPUT_N和LED_REFCLK)添加到设计中,随后在ibert_gtx_top.ucf中进行相应的引脚分配。 系统测试 在生成.bit文件后,FPGA设计就可随时用于仿真具有10Gbps链路的XFP光学收发器。我把两块开发板连接起来(如图1所示),然后打开ChipScope Pro分析器,用新建的.bit文件配置器件。接下来,双击IBERT控制板,会弹出一个新的图形用户界面(如图2所示)。我们可以使用该界面对预定义的数据模式进行优化,例如Clk 2x (1010….),以及伪随机二进制序列(PRBS),进而彻底评估光学收发器的热性能。 通过将赛灵思内核与ZC706评估板结合起来使用,即可轻松构建用以评估高速光学收发器的测试平台。在本设计中,我们展示了对单个XFP模块的评估。不过,您可以直接应用这种设计方法来快速构建一个用来测试多个光学收发器模块的逻辑内核。

    时间:2015-04-14 关键词: SoC 赛灵思 zynq

  • 无线应用:Zynq All Programmable SoC的OS选择考虑因素

     随着无线数据吞吐量的爆炸式增长,数字信号处理技术和无线电设备在改进方面面临着巨大压力。目前的重点放在4G LTE。4G网络正在世界各地大规模部署。而且现在我们看到5G网络的早期研发工作也已经展开,其目标是在4G网络的基础上将数据容量再提升上千倍。这种新兴的技术发展给系统厂商提出了不断发展变化的新要求——他们必须提升系统集成度和系统性能,降低系统材料清单(BOM)成本,提高设计灵活性,并加速产品上市进程等。 传统ASIC器件支持的硬件解决方案虽然可以实现功耗和成本目标,但偶生工程成本(NRE)极高、灵活性差且产品上市进程非常缓慢。为了满足这些要求并应对这些挑战,赛灵思向行业推出了All Programmable SoC(APSoC)架构,并将其成功实现在Zynq-7000产品系列中。 Zynq-7000器件采用赛灵思APSoC架构并通过硬件、软件和I/O可重编程功能可实现更大的系统级差异化、更高的集成度和灵活性(图1)。Zynq-7000器件自2011年12月推出以来,已广泛应用于通信、数据中心、汽车、工业、航空航天与国防等众多市场领域。对通信市场(尤其是无线应用领域)而言,Zynq-7000带来了独特的优势:其集成式可编程逻辑(PL)专门针对数字信号处理进行了精心优化;其ARM Cortex A9处理子系统(PS)能够高效实现典型无线设备(例如远端射频单元和无线回程单元)的控制功能。 图1:Zynq-7000 All Programmable SoC架构 在构建基于Zynq APSoC器件的无线应用时,必须选择能满足应用需求的操作系统。为此,针对不同的无线应用,需要考虑几个关键因素: 1. 电信级运营能力:对电信级系统,一般要求系统可靠性达到99.999%。单元在正常工作时间可靠性必须达到这么高。从运营的角度讲,它代表对系统各项特性的支持,比如冷/热启动、故障监测、检测和处理以及冗余。 2. 实时处理:实时意味着可预测的响应时间,而不仅仅是“非常快”。远端射频单元与无线回程处理相比有不同的实时要求。无线电设备信号处理任务重,用于支持信号处理的处理器必须满足严格的时序预算要求。 3. 诊断:为支持现场诊断和事后诊断,需要采集和存储大量性能测量数据和日志数据。因此应具备跟踪和管理对无线应用具有重要意义的部分关键指标的能力,比如性能衡量与统计指标、CPU利用率和故障监控指标、OS任务切换指标和事件历史指标等。 4. 工具和协议集成:调试与诊断环境全面集成,加上部分OS厂商提供的一些特定的网络协议栈,有助于设计人员开发和维护有效的系统。 Zynq SoC集成有两个ARM Cortex A9内核。软件架构师需要在目前支持的两种多处理器架构之间做出选择:SMP(对称多处理)或AMP(非对称多处理)。如图2所示,在SMP系统架构中,两个或更多完全相同的处理器共享资源,运行一个OS实例。理论上,这种架构在同一OS实例下将平等对待所有处理器。与相反之,AMP架构会区别对待每个处理器,不管是否有OS实例,处理器之间也彼此隔离。没有运行OS的内核可能在运行一段被视为“裸机”实例的微代码。 一般来说,SMP为较高级应用提供统一的OS平台。软件架构师在OS之上构建应用时,无需考虑两个内核之间的资源共享和进程间通信。此外,对SMP而言存在性能开销,这会给时间要求严格的无线应用的性能造成不利影响。比较SMP和AMP,AMP在运行OS实例的情况下软件较简化,基本甚至完全没有开销问题,但需要精心定制的软件设计来实现处理器资源共享和处理器间通信。 图2:SMP与AMP比较 使用Zynq APSoC器件可非常高效率地实现多种关键的无线应用,其中包括射频和无线回程。每种无线应用有不同的性能要求,需要OS支持不同的特性。就Zynq用于实现涵盖全部数字前端和处理功能的全集成软硬件解决方案而言,射频应用就是一个很好的案例。 射频数字前端应用是4G网络典型远端射频单元(RRH)的一个主要组成部分。该应用的处理要求可划分为信号处理和控制处理。在信号处理领域,Zynq可用于实现用于数字上变频/下变频的高采样率滤波器、峰值因数抑制(CFR)和数字预失真(DPD)。DPD是个特例,它需要同时使用Zynq的PS和PL。 DPD处理可细分为高速数据路径和更新路径。更新路径用于定期更新滤波器组的系数,且非常适合于实现在ARM Cortex A9内核中。一般来说系数更新必须在几毫秒到几十毫秒内完成。鉴于计算的算术复杂性,可综合使用A9内核和嵌入式NEON SIMD向量计算单元来满足所需的高性能。此外,Zynq PL还支持为处理器时钟周期占用大的功能提供硬件加速,这样就可以协作使用Zynq PL、ARM A9内核和NEON协处理器。 无线电的控制处理侧一般用于初始无线电校准、配置、告警、调度和网络消息下传。这在无线电应用中一般不要求高性能,因此使用Zynq中的一个ARM A9内核就能够轻松管理。 为支持DPD应用和控制处理应用选择合适的架构非常重要,因为它决定着总体性能、可靠性和维护的简便性。 为无线射频应用选择的通用架构是AMP模式。在这种模式下,一个完整的ARM内核以裸机方式运行,专门用于DPD处理,为满足更新DPD系数的时间要求提供更大计算裕量。控制和OAM等其他应用运行在OS控制的第二个ARM A9核上。在这种架构中,由于OS只控制两个ARM内核中的一个,必须在运行于两个分离的内核上的应用之间建立处理器间通道,比如使用OCM(片上存储器)或共享存储器。这样做法对某些关键的控制应用非常重要,比如用于监控DPD模块健康状况的应用。这样进程间通信(IPC)解决方案是非标的,必须在AMP模式中单独开发。 SMP架构非常简单直观,使用单个OS实例同时控制两个ARM内核和,进而控制全部应用。IPC、调试、支持工具链都在同一OS下。为确保资源专门用于DPD应用,可在软件应用中使用“内核亲和(Core Affinity)”和“中断屏蔽”等专门技巧。在前一个案例中,DPD应用将只在一个内核上运行,也就是没有其他任务共享资源(除去OS调度器开销)。在后一个案例中,中断服务(除DPD应用触发的)被转到第二个内核上运行。这样资源就被DPD应用完全利用。 因此Zynq APSoC是支持AMP或SMP架构的理想平台。如图3所示,Zynq集成有双内核ARM处理器、12.5Gb/s 串行收发器(SerDes)、可靠性更高的500MHz+ DSP,并能提供完整的数字前端功能,诸如DPD、CFR、DUC/DDC和CPRI/JESD接口。该解决方案无需在处理器和单独FPGA之间提供接口,从而简化PCB设计。 从分立式多芯片解决方案移植到Zynq平台上的单芯片集成解决方案非常简单直观。赛灵思提供综合而全面的软硬件解决方案,有助于顺利移植到Zynq上。这其中包括用于DUC、DDC、CFR和DPD的数字信号处理IP库。此外,还支持多种OS解决方案,包括设备驱动程序、引导载入程序、BSP模板和常用工具。在成功移植到Zynq平台后,该解决方案能够显著地增强系统性能,节省总功耗,并降低材料清单(BOM)成本。 图3:从分立式解决方案移植到Zynq解决方案 在本文中,我们探讨了为无线应用选择操作系统应考虑的主要因素,无线应用的实现架构及其考虑因素(AMP与SMP对比)以及上述在赛灵思Zynq 7000器件上的直接应用。总之,赛灵思提供的这类先进器件能够帮助无线网络基础架构设计人员在实现软硬件完全可编程性的同时,改善性能,提高系统集成度,降低材料清单(BOM)总成本与系统总功耗,实现高可靠性并加速产品上市进程。设计人员现在不仅能更快开发设备,而且还能在设备部署完成很久之后继续提供现场更新,从而避免与ASSP和ASIC等器件有关的风险。

    时间:2015-03-31 关键词: 4g 无线应用 zynq

首页  上一页  1 2 3 4 下一页 尾页
发布文章

技术子站

更多

项目外包