Xilinx Blockset Gateway In 和Gateway out模块使用及参数配置

目录

  • [一、Gateway In](#一、Gateway In)
    • [Simulink数据到System Generator数据的转换](#Simulink数据到System Generator数据的转换)
    • [Gateway Blocks](#Gateway Blocks)
    • [Block Parameters(模块参数)](#Block Parameters(模块参数))
  • [二、Gateway Out](#二、Gateway Out)

一、Gateway In

该块在以下Xilinx Blockset库中列出:Basic Elements, Data Types, FloatingPoint, and Index。

Xilinx Gateway In模块是您的Simulink®设计的Xilinx部分的输入。这些模块将Simulink®整数、双精度和定点数据类型转换为System Generator定点类型。每个模块在HDL设计中定义一个由System Generator生成的顶层输入端口或接口。

Simulink数据到System Generator数据的转换

Gateway In的输入支持许多不同的Simulink数据类型。支持的数据类型包括:int8、uint8、int16、uint16、in32、uint32、single、double和Simulink定点数据类型(如果有Simulink定点数据类型license)。在所有原因中,输入数据被转换为网关内部的double类型,然后转换为网关In块上指定的目标数据类型(定点,浮点或布尔值)。当从内部double表示转换为固定点时,量化和溢出将按照Block GUI中指定的方式进一步处理。对于溢出,选项是饱和到最大的正值/最小的负值,包装(例如,丢弃最重要的可表示位左侧的位),或者在模拟期间将溢出标记为Simulink错误。对于量化,选项是舍入到最接近的可表示值(或者如果有两个等距的最接近的可表示值,则取离零最远的值),或者截断(例如,丢弃最不重要的可表示位右侧的位)。重要的是要认识到转换、溢出和量化并不发生在硬件中,它们只发生在模块的仿真模型中。

Gateway Blocks

如下所列,Xilinx Gateway In块用于提供许多功能:

  • 在Simulink仿真期间,将数据从Simulink整数、双精度和定点类型转换为System Generator定点类型。
  • 定义由System Generator生成的HDL设计中的顶层输入端口或接口。
  • 在System Generator中选中"Create Testbench架"复选框时定义测试台架。在这种情况下,在HDL代码生成期间,在Simulink仿真期间发生的块输入被记录为数据文件中的逻辑向量。在HDL仿真期间,插入到顶层测试台中的实体根据预期结果检查该向量和Gateway Out块产生的相应向量。
  • 在顶级HDL实体中命名相应的端口。

Block Parameters(模块参数)

可以通过双击Simulink模型中的图标来调用块参数对话框。

Basic选项卡参数

"Basic"选项卡的具体参数如下。

  • Output Type:指定输出数据类型。可以是布尔型、定点型或浮点型。
  • Arithmetic Type:如果输出类型指定为定点,则可以选择Signed (2 's comp)或Unsigned作为算术类型。
  • Fixed-point Precision
    • Number of bits:指定块输出数据位数。
    • Binary point:指定二进制点的位位置,其中位0是最低有效位
  • Floating-point Precision:
    • Single:指定单精度(32位)。
    • Double:指定双精度(64位)。
    • Custom:激活下面的字段,以便您可以指定指数宽度和分数宽度。
      • Exponent Width:指定指数宽度。
      • Fraction Width:指定分数宽度。
  • Quantization:当小数位数的数量不足以表示一个值的小数部分时,就会出现量化错误。选项是截断(Truncate)(例如,丢弃可表示的最低有效位右侧的位),或四舍五入(无偏置:+/- inf)(Round(unbiased: +/- inf))或(Round (unbiased: even values))(无偏:偶数值)。
    • Round(unbiased: +/- inf):也被称为Symmetric Round (towards +/- inf)或Symmetric Round (away fromzero)。这类似于MATLAB®round()函数。该方法将值舍入到离零最近的所需位,当两个可能的舍入值之间的中点存在值时,将选择幅度较大的值。例如,将01.0110四舍五入为Fix_4_2,将得到01.10,因为01.0110正好在01.01和01.10之间,而后者离零更远。
  • Overflow:当值位于可表示范围之外时,会发生溢出错误。对于溢出,选项是饱和(Saturate)到最大的正值/最小的负值,包裹(Wrap)(例如,丢弃最重要的可表示位左侧的位),或在模拟期间标记为错误(作为Simulink®错误的溢出)。错误标志(Flag as error)是一个模拟特性。生成的硬件与选择Wrap时相同。

Implementation选项卡参数

Implementation选项卡的参数如下所示。

  • Interface Options:
    • Interface:
      • None:意味着在HDL网表生成过程中,这个网关In将被转换为顶层的输入端口。
      • AXI4-Lite:这意味着在生成HDL Netlist期间,将创建一个AXI4- lite接口,并将此Gateway In映射到AXI4-Lite接口中的一个寄存器。
    • Auto assign address offset:如果Gateway In被配置为一个AXI4-Lite接口,该选项允许将地址偏移量自动分配给Gateway In映射到的AXI4-Lite接口中的寄存器。
    • Address offset:如果未选中"Auto assign address offset",则此输入框允许显式指定要使用的地址偏移量。必须是4的倍数。
    • Interface Name:如果网关接口配置为AX4-Lite接口,则为该接口分配唯一的名称。此名称可用于区分多个设计中的AXI4-Lite接口。当使用IP Catalog流时,您可以期望在System Generator使用该名称创建的IP中看到名为< design_name > _ < interface_name > _ s_axi的接口。注意:接口名称只能由字母数字(小写字母)或下划线(_)组成,且必须以小写字母开头。axi4_lite1是可以接受的,而1Axi4-Lite则不行。
    • Description:关于此Gateway In的其他设计内容注释在接口文档中捕获。
  • Constraints:
    • IOB Timing Constraint:在硬件中,Gateway In被实现为一组输入/输出缓冲区(IOBs)。有三种方法可以限制IOBs的时间:None,Data Rate和Data Rate, Set 'FAST' Attribute。
      • 如果选择None,则不会在System Generator生成的用户约束文件中放置IOBs的时间约束。这意味着从iIOB到同步元素的路径不受约束。
      • 如果选择"Data Rate",IOB将被约束在IOB运行的数据速率上。速率由System Generator令牌提供的"System Clock Period"和和网关相对于设计中其他采样周期的采样率共同决定。
      • 如果选择Data Rate, Set 'FAST'属性,则产生上述约束。此外,为每个IOB生成一个FAST转换率属性。这减少了延迟,但增加了噪音和功耗。
    • Specify IOB location constraints:检查此选项允许指定IOB位置约束和I/O标准。
    • IOB pad locations, e.g. {'MSB', ..., 'LSB'}:IOB引脚位置可以在此编辑框中指定为字符串的单元格数组。这些位置是特定于包的。
    • IO Standards, e.g. {'MSB', ..., 'LSB'}:可以将I/O标准指定为此编辑框中的字符串单元格数组。这些位置是特定封装的。

二、Gateway Out

该块在以下Xilinx® Blockset库中列出:Basic Elements, Data Types, FloatingPoint, and Index.。

Xilinx Gateway Out模块是Simulink®设计中Xilinx部分的输出。该块将System Generator的定点或浮点数据类型转换为Simulink的整数、单、双或定点数据类型。

根据其配置,Gateway Out块既可以定义由System Generator生成的HDL顶层设计的输出端口,也可以简单地用作从硬件表示中裁剪出来的测试点。

Gateway Blocks

如下所示,Xilinx Gateway Out模块用于提供以下功能:

  • 将来自System Generator定点或浮点数据类型的数据转换为Simulink整数、单、双或定点数据类型。
  • 定义由System Generator生成的HDL顶层设计的I/O端口。一个Gateway Out块定义了一个顶级输出端口。
  • 当选中"Create Testbench"复选框时,定义测试工作台结果向量。在这种情况下,在HDL代码生成期间,在Simulink仿真期间发生的块输出作为逻辑向量记录在数据文件中。对于每个顶级端口HDL组件被插入到顶层测试台中,该测试台在HDL模拟期间根据预期结果检查此向量。
  • 在顶级HDL实体上命名相应的输出端口。

Block Parameters(模块参数)

Basic选项卡参数

"Basic"选项卡的具体参数如下:

  • Propagate data type to output:这个选项在实例化System Generator设计作为子系统纳入Simulink设计时很有用。默认情况下,System Generator数据类型不是使用Simulink double作为输出数据类型,而是根据下表将其传播为适当的Simulink数据类型:
  • Translate into Output Port:选中此框可以防止网关在转换为硬件时成为实际的输出端口。默认情况下,此复选框处于打开状态,启用输出端口。如果不选择此选项,则仅在调试期间使用Gateway Out块,其目的是与Simulink Sink块通信,以探测设计的部分。在这种情况下,Gateway Out块将变为灰色,表明网关不会被转换为输出端口。

Implementation选项卡参数

  • Interface Options:
    • Interface:
      • None:在HDL Netlist生成过程中,此Gateway Out将被转换为顶层的输出端口。
      • AXI4-Lite:在生成HDL网表期间,将创建一个AXI4-Lite接口,并将Gateway Out映射到AXI4-Lite接口中的一个寄存器。
      • Interrupt:在IP Catalog生成期间,此网关输出将被标记为当System Generator设计被打包成可包含在Vivado®IP目录中的IP模块时,中断输出端口。
    • Auto assign address offset:如果将Gateway Out配置为AXI4-Lite接口,则该选项允许将地址偏移量自动分配给Gateway Out映射到的AXI4-Lite接口中的寄存器。
    • Address offset:如果未选中"Auto assign address offset",则此输入框允许显式指定要使用的地址偏移量。必须是4的倍数。
    • Interface Name:如果Gateway Out配置为AX4-Lite接口,则为该接口分配唯一的名称。此名称可用于区分多个设计中的AXI4-Lite接口。当使用IP Catalog流时,您可以期望在System Generator使用该名称创建的IP中看到名为< design_name > _ < interface_name > _ s_axi的接口。注意:接口名称只能由字母数字(小写字母)或下划线(_)组成,且必须以小写字母开头。axi4_lite1是可以接受的,而1Axi4-Lite则不行。
    • Description:关于此Gateway In的其他设计内容注释在接口文档中捕获。
  • Constraints:
    • IOB Timing Constraint:在硬件中,Gateway Out被实现为一组输入/输出缓冲区(IOBs)。有三种方法可以限制IOBs的时间:None,Data Rate和Data Rate, Set 'FAST' Attribute。
      • 如果选择None,则不会在System Generator生成的用户约束文件中放置IOBs的时间约束。这意味着从iIOB到同步元素的路径不受约束。
      • 如果选择"Data Rate",IOB将被约束在IOB运行的数据速率上。速率由System Generator令牌提供的"System Clock Period"和和网关相对于设计中其他采样周期的采样率共同决定。例如,以下OFFSET = OUT约束是为一个名为"Dout"的网关输出生成的,该网关输出在系统周期为10 ns的情况下运行:
      • 如果选择Data Rate, Set 'FAST'属性,则产生上述约束。此外,为每个IOB生成一个FAST转换率属性。这减少了延迟,但增加了噪音和功耗。对于前面的示例,将以下附加属性添加到约束文件中。
    • Specify IOB Location Constraints:选中此选项允许指定IOB位置约束。
    • IOB Pad Locations, e.g. {'MSB', ..., 'LSB'}:IOB引脚位置可以在此编辑框中指定为字符串的单元格数组。这些位置是特定封装的。
相关推荐
南檐巷上学5 小时前
基于FPGA的正弦信号发生器、滤波器的设计(DAC输出点数受限条件下的完整正弦波产生器)
fpga开发·数字信号处理·dsp·dds
aini_lovee7 小时前
MATLAB基于小波技术的图像融合实现
开发语言·人工智能·matlab
3GPP仿真实验室8 小时前
【Matlab源码】6G候选波形:OFDM-IM 增强仿真平台 DM、CI
开发语言·matlab·ci/cd
嵌入式-老费9 小时前
Linux Camera驱动开发(fpga + csi rx/csi tx)
fpga开发
rit843249911 小时前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
我找到地球的支点啦12 小时前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
ALINX技术博客1 天前
【202601芯动态】全球 FPGA 异构热潮,ALINX 高性能异构新品预告
人工智能·fpga开发·gpu算力·fpga
Dev7z1 天前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab
fengfuyao9851 天前
基于MATLAB的表面织构油润滑轴承故障频率提取(改进VMD算法)
人工智能·算法·matlab
机器学习之心1 天前
基于随机森林模型的轴承剩余寿命预测MATLAB实现!
算法·随机森林·matlab