前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FPGA Xilinx Zynq 系列(三十一) IP 重用与集成

FPGA Xilinx Zynq 系列(三十一) IP 重用与集成

作者头像
FPGA技术江湖
发布2020-12-30 11:26:15
1.4K0
发布2020-12-30 11:26:15
举报
文章被收录于专栏:FPGA技术江湖
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来FPGA Xilinx Zynq 系列第三十一篇,开启十八章, 带来 IP 重用与集成等相关内容,本篇内容目录简介如下:

18. IP 重用与集成

18.1 概述

18.2 系统设计 — 系统级的方法

18.3 IP-XACT

18.4 IP 库

18.4.1 Vivado IP Catalog

18.4.2 第三方

18.4.3 定制 IP

18.5 可能的拓展

18.5.1 IP Integrator

18.5.2 IP Packager

18.6 本章回顾

18.7 参考文献

本系列分享来源于《The Zynq Book》,Louise H. Crockett, Ross A. Elliot,Martin A. Enderwitz, Robert W. Stewart. L. H. Crockett, R. A. Elliot, M. A. Enderwitz and R. W. Stewart, The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 All Programmable SoC, First Edition, Strathclyde Academic Media, 2016。

IP 重用与集成

Vivado Design Suite 提供了一个围绕 IP 包的设计流,能从众多不同设计来源引入 IP 包到你的设计中来 [6]。本章我们会探索 Vivado Design Suite 所表现出来的以 IP 为中心的系统设计方 法,抵近观察某些可用的 IP 库,也会介绍像 IP Packager 和 IP Integrator 这样的 IP 集成工具。

18.1 概述

图 18.1 给出了 Vivado Design Suite 能做的以 IP 为中心的设计流的概貌,这个设计流是围绕着一个叫做 IP Catalog 的中央 IP 仓库来实施的,这个仓库集合了 从各种来源来的 IP[16]:

  • Vivado Design Suite IP
  • 从像 Vivado HLS和 System Generator这样的外部 Xilinx设计工具来的模块
  • 第三方 IP 模块

IP Integrator 提供了基于包创建整个嵌入式系统设计的环境,通过它,各种形式的 IP 核可以被实例化、配置,以及交互地连接 [5]。

Vivado Design Suite 的以 IP 为中心的设计流围绕着 IP 设计、重用和集成的哲学展开,让我们可以创建自己的 IP 模块(见第 13 章),同时还能把自己的 IP 设计打包成可以重复使用和方便集成的第三方 IP。这就是在本章要探索的 IP 重用和集成的过程。

图 18.1: Vivado 的以 IP 为中心的设计流

18.2 系统设计 — 系统级的方法

Vivado Design Suite 提供了一个环境,让我们能方便地配置、实现、校验和集成 IP。IP 的形式可以是逻辑设计、软处理器核、基于 C 的算法设计和 DSP 模块任何一种。所有的 IP可以作为独立的模块或一个较大的系统级设计的一部分来配置和校验。在能用于 IP Catalog 之前,定制 IP 是按照 IP-XACT 标准打包起来在 Vivado Design Suite 中使用的。有一大批精选的支持 AXI4 互联标准的 Xilinx IP 使得系 统级别的互联易于实现。AXI 互联是在第 19 章中讨论的。

图 18.2 给出了 Vivado Design Suite 的系统级别设计流的概貌。

图 18.2: Vivado Design Suite 的系统级别设计流

18.3 IP-XACT

IP-XACT 标准是一个可扩展标记语言(eXtensible Markup Language,XML)的 架构,用于以人和机器都可理解的元数据来表达 IP[2],IP-XACT 还附有应用编程接口 (Application Programming Interface,API),让软件工具能访问其中所含有的元数据 [1]。支持 IP-XACT 的工具能解释、配置、实现和修改符合 IP 元数据描述的 IP 包 [1]。这样就给了标准化 IP 的所有用户 —— 无论是 IP 的提供者、EDA 厂 家或系统设计者 —— 一个一致的 IP 接口来实现 IP 的重用。

这个标准是由 SPIRIT 联合会 —— 一个 IP 提供者、电子设计、EDA 和半导体公司组成的小组开发的,现在由 Accellera Systems Initiative 管理。IP-XACT 还 提供了软件视图、文件列表、协议标准,并能为新的设计和流程数据而扩展这个架构 [1]。

IP-XACT 完全不会去描述 IP 的硬件功能,而是描述它的接口。因此它不是用来代替像 VHDL 或 Verilog 这样的 RTL 语言,也不是代替嵌入式软件或文档的,而是作为那些东西的补充:一个 IP-XACT 部件给出了这个 IP 的关键数据。

IP-XACT 的标准化解决了 IP 重用的很多问题,并使得系统集成变得容易,还能在 IP 之间做自动的连接。所有这些合起来,就能极大地降低投放市场的时间,这正是一个日益受到重视的问题。IP-XACT 已经被开发成一个标准化的数据交换格式,它足够健壮来实现设计流程的自动化及自动验证,还能灵活地被多个 IP 设计者、厂家、EDA 厂家和最终用户使用。

18.4 IP 库

有大量的 IP 库,从开源的项目到商业的 IP 厂家以及个人或企业专用的内部 IP 库都有。这一节我们会深入探索各种 IP 的来源,包括所存在的局限性,并给出一些具体的例子。

18.4.1 Vivado IP Catalog

Vivado IP Catalog 实现了一个中央存储的仓库,来存放你的全部 IP 模块,包括 Xilinx 的、第三方的和定制的那些可以在多个最终用户之间共享的 IP,以实现高效的设计重用。Vivado IP Catalog 的关键特性包括 [6]:

  • 提供的所有 IP 都是基于 IP-XACT 标准的,实现了开放而且持久的 IP 接口。
  • 通过一个持久的接口来从一个普通的、易于访问的仓库中访问到所有的Xilinx IP。
  • 支持多重仓库位置,包括网络存储位置,使得外部或定制开发的 IP 有一个持久的 IP 部署环境。
  • 集成的 IP 设计例子,使得我们能在 Vivado 项目中作为一个实例化的源来评估IP。
  • IP 的全局 RTL 综合能用行为性仿真模型或可综合 RTL 来做仿真。
  • 具有按需输出仿真模型、HDL 例子设计和实例化模板的能力。
  • 具有迅速可用的选项来用 Vivado IDE 或 Tcl 自动脚本定制和产生 IP。

18.4.2 第三方

最近几年,出现了一些设计和许可 IP 核的公司,它们并不生产和销售实际的半导体产品。开发并许可形成 Zynq 平台中的一部分的 ARM 处理器的 ARM Holdings 正是其中的一个绝佳的例子。ARM Holdings 不生产任何实际的处理器芯片,而是以 IP 模块的形式将它的设计许可给他人。

第三方 IP 厂家从许可单个设计的个人一直到大型、几百万美元、提供几千个 IP 设计的公司都有。有的公司做的是为 Xilinx 芯片优化的 IP 核的许可,很多这样的公司是 Xilinx Alliance Program (Xilinx 联盟计划)的成员,这是一个全球的 合作公司的生态系统,与 Xilinx 一起推动全可编程技术的发展 [7]。来自联盟成员的 Xilinx 专用 IP 的例子包括存储器控制器、图像和视频编解码器、电机控制器和图形加速器。由于来自联盟成员的大多数 IP 都是为了在 Xilinx 芯片上使用而优化的,用他们的 IP 可以有助于性能最大化而资源利用最小化。不仅于此,大多数 IP还提供对 Xilinx 设计流的支持,使它能方便地集成进你的设计中。

还有很大一批 IP 厂家,他们是开发和许可通用 IP 模块的,是设计成不指定给特定的芯片厂家的。这样的通用 IP 核一般是打包成可综合的 RTL 的,不过某些情况下会提供门电路级别的网络表。当作为 RTL 提供时,最终用户能在一定程度内修改IP 设计,但是厂家对于修改后的设计是不做什么支持的。门电路级别的网络表就像计算机编程中的汇编代码程序一样,能给 IP 厂家一定程度的安全,避免他们的设计受到反向工程。

最近,开源社区开始开发 IP 核,并免费提供出来。总的来说,开源的 IP 核是以两种许可方式之一发布的:GNU Lesser General Public License ( 通用公共许 可证,LGPL) 或修改过的 BSD 许可。从发布的角度来说,开源 IP 通常是以通用可综 合 RTL 的形式提供的,而且很难见到开源 IP 核真的是厂家专用的。最值得注意的开源 IP 提供者是 OpenCores,这是世界上最大的开发开源 IP 核的社区 [3]。

使用厂家特定以及不特定的 IP 核都有很多优点和缺点。表 18.1 做出了总结。

表 18.1: IP 类型的优点和缺点

18.4.3 定制 IP

由第 13 章所描述的任何方法创建出来的定制 IP,可以方便地被集成进 Vivado IP Catalog 来丰富 Xilinx IP 的收藏。采用某种设计方法所做的 IP 可能是可以直接导入 IP Catalog 的。比如,用 System Generator 或 Vivado HLS 所创建的 IP, 就是以可以被导入 IP Catalog 的格式打包的。对于用其他的,诸如 HDL 设计和 HDL 编码器做的定制 IP,就必须得要经由 IP Packager 处理过,才能放进 IP Catalog 里去。

关于 IP Packager 的进一步信息,请参考 18.5.2 节。

18.5 可能的拓展

Vivado Design Suite 提供了集成 IP 用的所有工具,同时支持把 Xilinx 或第三方的 IP 集成进你的 Zynq 系统设计中。下面的部分来介绍其中的两个功能:IPIntegrator 和 IP Packager。

18.5.1 IP Integrator

Vivado IP Integrator 是一个既有图形界面也支持基于 Tcl 的脚本的 IP 和以系统为中心的设计开发环境,实现了 “ 自动建构校正 ” 的自动化开发流程 [4]。这个位于 Vivado Design Suite 内的功能,提供了一个对平台和芯片识别的环境, 能自动地连接基础的 IP 接口,同时也支持一键 IP 子系统生成、实时 DRC 和强大的debug 能力 [4]。

IP integrator 让设计者在接口层级工作,以加速 Vivado 中的复杂系统的创建,确保设计和 IP 被正确地配置。芯片驱动程序和地址的自动化生成,配合各个IP 模块的自动化接口,把设计的组合过程流水化了,使得整个过程比以往更快更便捷 [4]。

18.5.2 IP Packager

Vivado IP Packager 让第三方 IP 开发者能快速地准备用于集成进 Vivado IP Catalog 的 IP,让他们能把任何定制的 IP 放进 Vivado Design Suite 设计中。IP Packager 的流程确保最终的 IP 用户使用 Vivado IP Catalog 中的 IP 时,无论是 Xilinx 的、第三方的还是定制开发的 IP,始终能获得一致的用户体验。

以图 18.3 中的 IP 打包和使用流程为例,已有的 IP 用 IP Packager 打包,它把 IP 源和数据文件打包进一个 ZIP 文件。ZIP 文件然后可以被集成进 Vivado Design Suite IP Catalog。一旦在一个 Vivado 项目中选择了这个 IP,这个 IP 就会像 IP Catalog 中的任何其他 IP 模块一样被处理,让用户可以通过参数选择来定制这个IP,然后用这些参数来生成这个 IP 的一个实例。

图 18.3: IP 打包和使用的流程

IP Packager 的主要输出是一个 IP-XACT 部件文件,可以和默认的 GUI 文件及再生和报告文件一起组合进那个 ZIP 文件中 [6]。

使用 IP Packager 的核心价值之一,是把定制的 IP 用 IP-XACT 标准打包,而不需要完全理解 IP-XACT 编码架构的细节。关于 IP-XACT 的某些背景知识可以在本章找到,不过应该要说明的是使用 IP Packager 并不需要事先掌握 IP-XACT 的知识。IP Packager 的目的就是处理好底下的 IP-XACT XML 编码,让用户专注于 IP 功能的 创建

18.6 本章回顾

本章介绍了 IP 重用和集成的概念,给出了 Vivado 的以 IP 为中心的设计流和设计的系统层级方法的概述。对各种获取 IP,包括厂家特定的、通用的和开源的 IP的方法做了讨论,并讨论了各种方法的优缺点。

介绍了 Vivado Design Suite 中用于 IP 重用和集成的工具,特别关注的是以 IP 为中心的设计流。讨论了 IP Integrator 和 IP Packager 的功能,也讨论了 IPXACT 这个在 IP 设计、半导体和 EDA 系统设计业界广泛接受的 IP 元数据文档标准。

18.7 参考文献

说明:所有的 URL 最后访问是在 2014 年 6 月。

[1] “IEEE Standard for IP-XACT, Standard Structure for Packaging, Integrating, and Reusing IP within Tool Flows”, IEEE Standard 1685-2009, February 2010.

[2] M.v. Hintum and P. Williams, “The Value of High Quality IP-XACT XML”. 位于 : http://www.design-reuse.com/articles/19895/ip-xact-xml.html

[3] OpenCores, 网页 . 位于 : http://opencores.org/

[4] Xilinx, Inc, “Vivado Integration - Vivado IP Integrator”, 网页 .位于 : http://www.xilinx.com/products/design-tools/vivado/integration/index.htm

[5] Xilinx, Inc, “Vivado Design Suite User Guide: Design Flows Overview”, UG892, v2014.2, April 2014.位于 : http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_2/ug892-vivado-design-flowsoverview.pdf

[6] Xilinx, Inc, “Vivado Design Suite User Guide: Designing with IP”, UG896, v2014.1, May 2014.位于 : http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_2/ug896-vivado-ip.pdf

[7] Xilinx, Inc, “Xilinx Alliance Program”, 网页 . 位于 : http://www.xilinx.com/alliance/

第三十一篇到此结束,下一篇将带来第三十二篇,开启第十九章,带来AXI 接口等相关内容。欢迎各位大侠一起交流学习,共同进步。

END

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档