IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 基于IP的设计学习1:ug896.一些基本概念 -> 正文阅读

[网络协议]基于IP的设计学习1:ug896.一些基本概念

1 IP-Centric设计流程

IP: intellectual property,知识产权。

IP catalog 包含XIlinx发布的 Plug-and-Play(即插即用)IP,即添加可用。
拓展IP catalog的四种方式:

  • matlab上的System Generator for DSP designs
  • Vivado High-Level synthesis(HLS)设计(C/C++ 算法)
  • 第三方IP
  • Vivado IP packager工具打包的设计

IP 术语:

  • IP Definition: IP定义。使用 IP-XACT 特性描述的IP。
  • IP Customization: IP定制。从IP Definition上定制IP,生成XCI文件。XCI文件存储用户指定的配置。
  • IP Location: IP位置。包含当前项目中的一个或多个自定义IP的目录。
  • IP Repository: IP库。添加到Xilinx IP catalog的IP Definition集合的统一视图。
  • IP Catalog: IP目录允许检索Xilinx Plug-and-Play知识产权(IP),以及第三方供应商提供的其他与IP-XACT兼容的IP。也可以包含自己打包的IP。
  • Output Products: 为IP Customization而生成的文件。他们包括HDL、约束条件和仿真目标。在生成输出产品期间,Vivado工具将IP定制存储在XCI文件中,并使用XCI文件生成综合和仿真期间使用的文件。
  • Global Synthesis: 将IP与top-level用户逻辑一起综合。
  • Out-Of-Context (OOC) Design Flow: OOC设计流程为生成的输出产品创建一个独立的综合设计run。这个默认流创建一个设计检查点文件(DCP)和一个Xilinx设计约束文件(_ooc.xdc)。
  • Hierarchical IP and Subsystem IP: 这些术语可以互换地用来描述一个IP,它是一个由多个IP组成的子系统,这些IP是作为块设计或RTL流的一部分的分层拓扑结构。
  • Sub-core IP: 指在另一个非Hierarchical (Subsystem) IP使用的IP。这可以是来自Vivado IP目录、用户定义的IP、第三方IP或IP核心库的IP。

IP-XACT:IP-XACT是一个标准的电子知识产权(IP)的说明。由SPIRIT联盟发布。它使IP提供商能够为组件和设计提供可读和可机器处理的IP的单一描述,并与其他所需的数据一起分享给IP用户。

2 基于IP设计

可以通过以下方式创建IP Customization:

  • 从IP catalog
  • 使用Manage IP project流创建一个独立的IP Customization,以便在当前项目和其他项目中使用。
  • 使用Tcl脚本。
  • 添加或创建block design(BD)

定制完成后,可以直接创建output product或在之后创建。

2.2 IP设置

在这里插入图片描述

  • Core Containers: 核容器功能。是否将IP和所有生成的输出文件包含在一个扩展名为XCIX的压缩二进制文件中。

  • Simulation:

    • 选择是否使用预编译好的库文件。
    • 是否自动生成IP的仿真脚本。
      为每个IP产生仿真脚本。Vivado把脚本放在.ip_user_files路径。
  • Upgrade IP
    在更新IP时产生ip_upgrade.log文件。日志文件存储在项目目录的根位置(项目XPR文件所在的位置)。

  • Default IP Location:可以使用它来设置创建和存储IP和输出产品的位置。默认放在.src/sources_1/ip路径。

  • IP Cache:定义Vivado如何为项目使用IP缓存。缓存选项包括:

    • Cache scope:disabled、local(默认设置)或remote。Local选项路径是默认的。remote为指定的路径。
    • Cache location:: 文件路径
    • Clear Cache:在Tcl控制台中执行以下命令:config_ip_cache,从磁盘中删除缓存文件:
      config_ip_cache -clear_output_repo

2.3 IP Cache的设置

在项目模式中使用OOC流程可以加速综合过程的output product。IP Cache是默认勾选的,此时Vivado产生综合output product(比如DCP和stub文件)以及一个cache entry。

一个cache entry包含两个硬盘路径:

  • :包含XCI、DCP、sim_netlist和stub文件。
  • .logs:包含综合log文件(runme.log)

在产生缓存后,当用相同的属性创建新的IP自定义时,产生IP的时候不会再次进行综合。相反,Vivado引用缓存并复制综合的输出。IP指的是已经完成综合的IP,消除了对相同定制的其他IP运行OOC合成的需要。

当生成一个启用缓存的IP时,如果没有缓存命中,Vivado工具将创建一个正常的设计运行。但是,如果有缓存命中,则综合结果(DCP和存根文件)从缓存目录复制到IP目录并重命名。没有创建设计运行,但是添加了一个报告缓存命中的条目,如下图所示。

在这里插入图片描述

2.3.1 为新项目配置IP cache

一个新项目默认使能 IP Cache 并配置路径为local。但是如果多人指向相同的cache路径可以减少硬盘的使用。每个用户不需要创建别人正在使用的相同的IP cache。

通过给 Vivado_init.tcl 添加 project.defaultIPCacheSetting 参数的控制来实现新项目关闭cache或者配置一个remote location。

2.7 管理IP约束

2.7.1 更改IP综合运行属性

IP目录中的大多数IP基于用户自定义产生特定于IP的XDC约束。IP提供的约束使用默认的综合设置进行优化。

推荐:不要为任何IP设计运行更改这些设置,因为在应用约束时可能会遇到问题。如果必须更改IP OOC运行的综合设置,可以在Tcl控制台中使用以下set_property命令:
<synthesis_option> [get_runs <IP_Name>_synth_1]
例子:set_property STEPS.SYNTH.DESIGN.ARGS.FSM_EXTRACTION sequential [get_runs my_IP_synth_1]

2.7.2 约束文件处理顺序

默认情况下,IP XDC约束的PROCESSING_ORDER值为EARLY。用户约束标记为NORMAL。这样,后面处理的约束可以覆盖前面处理的同一对象上的约束。

处理IP XDC文件的顺序如下:

  • 设置为EARLY的用户XDC
  • 设置为EARLY的IP XDC
  • 设置为NORMAL的用户XDC(默认)
  • 设置为LATE的IP XDC
  • 设置为LATE的用户XDC

通过这种方法,可以在IP XDC 之前或之后运行一个用户XDC。

Vivado IP可以生成多个XDC约束文件。默认情况下,IP约束优先于用户约束,原因如下:

  • IP可能会产生一个时钟,它必须对终端用户的约束是可用的。
  • 如果IP提供物理约束,终端用户可以在必要时覆盖它们。

使用report_compile_order Tcl命令报告约束编译顺序的示例如下:
report_compile_order -constraints

IP交付的一些约束可能依赖于来自终端用户或其他IP的时钟对象。这些约束在一个单独的XDC文件中提供,并在终端用户约束之后进行处理。

  • <ip_name>.xdc
    通常,IP提供一个core XDC文件,该文件可以包含时钟创建命令以及不依赖外部时钟的命令。约束文件名为<ip_name>.xdc,称为core xdc文件。
  • <ip_name>_clocks.xdc
    IP还可以包含另一个XDC文件,该文件包含依赖时钟的命令。
    因为顶层时钟可以来自其他约束,或者来自具有依赖关系的其他IP,所以需要 预先定义这些时钟 的任何约束都应该放在<ip_name>_clocks.xdc中。默认情况下,Vivado IDE在用户约束和其他IP核心xdc文件后处理<ip_name>_clocks.xdc。
  • <ip_name>_OOC.xdc
    大多数IP也产生一个OOC XDC文件(<ip_name>_OOC.xdc)。该文件包含IP输入时钟的默认顶层定义。此文件仅在使用推荐的默认流(将IP综合为顶层设计的OOC)时在DCP创建中使用。当Vivado综合顶层设计的IP OOC时,由终端用户或其他IP创建的时钟是不可用的;因此,这个文件对于提供综合IP的时钟定义是必要的。就是OOC过程中暂时使用的一个时钟约束。
    用户逻辑implementation期间不需要<ip_name>_ooc.xdc,因为在应用约束之前,所有的网络列表都是链接在一起的。此时,任何需要时钟的IP都可以使用用户创建的时钟或IP创建的时钟。
  • 额外的XDC
    有些IP可以产生额外的XDC文件。这可能是因为它们产生了仅在综合或实现期间使用的约束。

当创建一个以平台板而不是目标部件为目标的项目时,该板在IP自定义期间是可用的,允许指定在连接到IP时使用板上的哪些连接。这将生成一个<ip_name>_board.xdc文件,其中包含PACKAGE_PIN、IOSTANDARD和其他物理约束。
Vivado Design Suite User Guide: Using Constraints (UG903)

Vivado 处理IP时产生的一些约束文件:

  • dont_touch.xdc
    Vivado工具使用dont_touch.xdc以在综合IP时在IP顶层设置DONT_TOUCH属性。这样可以防止接口端口被移除。
    可以在综合日志文件中看到这个约束文件正在被处理,或者是在使用OOC(默认流)综合IP时,或者是在使用 end-user RTL综合IP时,在全局综合日志文件中。
  • in_context.xdc
    默认情况下,IP在顶层综合期间被视为黑盒,因为它是使用OOC综合的。在创建IP DCP的过程中,在以下情况下,会创建<ip_name>_in_context.xdc文件并保存在IP DCP文件中:
    • 该IP产生一个时钟,可以在IP边界上引用
    • 该IP具有任何I/O缓冲的实例
      如果存在,则在综合用户逻辑时,在end-user约束之前处理<ip_name>_in_context.XDC文件。在实现过程中不需要这个文件,因为IP不再是一个黑盒。
      如果创建了时钟,它们被放置在IP黑盒子单元的边界pin上。时钟可以有以下几种类型:
    • IP输入端口上的主时钟(例如时钟向导IP)
    • IP输出端口上的主时钟
    • 在IP的输出端口上产生的时钟,主时钟是输入时钟(例如时钟向导IP)
      只有在IP包含input buffer的情况下,才会在IP的输入端口上创建时钟。默认情况下,时钟向导是这样配置的。这个时钟在顶层用户逻辑综合期间接到顶层端口。
      如果一个用户约束必须引用一个IP产生的时钟,它应该通过引用产生时钟的IP的pin来间接完成,例如在get_clocks命令中:
      get_clocks –of_objects [get_pins <IP_clock_pin>]
      如果有I/O buffer,对于有I/O buffer的接口引脚,IO_BUFFER_TYPE属性被设置为NONE。设置此属性可防止在顶层综合期间插入额外的I/O buffer。

2.8 设置目标时钟周期

默认情况下,IP是独立综合的,而OOC与设计的其余部分分离。

  • 在用户逻辑的综合过程中,IP被视为一个黑盒子。
  • 在实现过程中,IP网表与其他IP网表或用户网表进行链接。

因为IP独立于顶层综合,Vivado工具在OOC完成为IP提供时钟定义后创建_ooc.xdc。
如果不指定目标周期,则使用默认的时钟周期。当用于独立IP的周期与合成顶级IP时所看到的周期不同时,这可能会导致警告:
在这里插入图片描述

该警告通知,如果使用了全局综合,将使用与综合OOC IP时不同的时钟周期来综合IP。也就是说在OOC看到这个警告,如果我们确定给IP的时钟在外部约束过了,就可以忽略,因为在全局综合的时候会使用我们自己约束的时钟周期。

IP有多种时钟选项:

  • IP可能在定制GUI中有选项来设置在OOC合成期间使用的目标频率/周期。您可以使用Tcl控制台查询和设置IP的配置选项。
  • IP可能有一个标签为“时钟”的标签,它允许您为IP设置目标频率。
  • IP可能将目标设置与其他设置混在一起。通常,有一个工具提示来解释设置。
  • IP不提供GUI选项自定义目标时钟频率或周期必须依赖其他时钟源的频率

IP的时钟端口有一个以FREQ_HZ结尾的属性。改变这些属性会导致_ooc.xdc文件用于在为IP生成输出产品时使用这些值。

2.8.1 使用Tcl命令设置目标时钟周期

名为char_fifo的FIFO生成器IP设置目标时钟的步骤示例,它在Wave generator示例设计中使用。IP被定制为在读写端口和本机接口上使用公共时钟:

  1. 使用report_property命令报告IP可用的属性。
    report_property [get_ips char_fifo]
  2. 从输出中,可以看到这个IP有5个以FREQ_HZ结尾的属性:
    • CONFIG.core_clk.FREQ_HZ:适用于使用普通时钟时(本例)
    • CONFIG.read_clk.FREQ_HZ: 适用于使用独立时钟时
    • CONFIG.write_clk.FREQ_HZ:适用于使用独立时钟时
    • CONFIG.slave_aclk.FREQ_HZ:适用于使用AXI
    • CONFIG.master_aclk.FREQ_HZ: 适用于使用AXI
      只有第一个输出适用于具有公共时钟的本机接口。CONFIG.core_clk。FREQ_HZ默认设置为100000000或100MHz。
      如果已经生成了IP,可以查看char_fifo_ooc.XDC文件并查看以下行:
      create_clock -period 10 -name clk [get_ports clk]
  3. 对于本例,需要的时钟频率为250MHZ,设置如下:
    set_property CONFIG.core_clk.FREQ_HZ 250000000 [get_ips char_fifo]
  4. 设置属性后,生成IP。这将导致OOC运行(如果存在)被重置并重新运行。
    综合完成后,char_fifo_ooc.XDC可以看到:
    create_clock -period 4 -name clk [get_ports clk]

2.14 关于核容器

什么是核容器

核容器特性通过提供IP的单一文件表示。这个可选特性选择将IP和所有生成的输出文件包含在一个扩展名为XCIX的压缩二进制文件中。这个扩展类似于用于IP定制文件的XCI文件,并以类似的方式工作。

在添加或读取IP时,需要指定XCI文件,在启用了核心容器的情况下,需要添加或读取XCIX文件。

当为现有IP启用核心容器特性时,XCIX文件将替换IP目录和输出产品。当禁用IP的核心容器特性时,
XCIX文件被转换为包含XCI文件在内的所有输出产品的IP目录。

为IP启用核心容器会改变该IP实例的磁盘表示;在Vivado中,IP的内部表示保持不变。

在Vivado Sources视图中,这两个IP看起来是相同的,都列出了输出产品,所有这些产品都可以在Vivado IDE中打开查看

在磁盘上,有一个用于clk_core的文件夹和一个用于char_fifo IP的XCIX文件。
当IP使用Core Container时,Vivado工具从这个XCIX文件中读取合成和实现所需的IP源文件。文件不会被解压缩到临时目录中,而是直接从二进制文件中读取。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:45:58  更:2021-11-10 12:48:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/1 21:36:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码