目录
- 一、Gateway In
- Simulink数据到System Generator数据的转换
- Gateway Blocks
- Block Parameters(模块参数)
- Basic选项卡参数
- Implementation选项卡参数
- 二、Gateway Out
- Gateway Blocks
- Block Parameters(模块参数)
- Basic选项卡参数
- Implementation选项卡参数
一、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的其他设计内容注释在接口文档中捕获。
- Interface:
- 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标准指定为此编辑框中的字符串单元格数组。这些位置是特定封装的。
- IOB Timing Constraint:在硬件中,Gateway In被实现为一组输入/输出缓冲区(IOBs)。有三种方法可以限制IOBs的时间:None,Data Rate和Data Rate, Set ‘FAST’ Attribute。
二、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的其他设计内容注释在接口文档中捕获。
- Interface:
- 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引脚位置可以在此编辑框中指定为字符串的单元格数组。这些位置是特定封装的。
- IOB Timing Constraint:在硬件中,Gateway Out被实现为一组输入/输出缓冲区(IOBs)。有三种方法可以限制IOBs的时间:None,Data Rate和Data Rate, Set ‘FAST’ Attribute。