主要内容

AXI4-Stream接口生成的模型设计

使用HDL编码器™软件,您可以在模型中实现简化的流式协议。该软件在IP核心中生成AXI4流接口。

简化的流媒体协议

要将测试(DUT)端口映射到Axi4-Stream接口的设计,请使用简化的AXI4-Stream协议。您不必为实际的AXI4流协议进行模拟,而是可以使用简化协议。当你运行时IP核心生成工作流程,生成的HDL代码包含包装器逻辑,可在简化协议和实际AXI4-Stream协议之间转换。简化协议需要更少的协议信号,简化有效和就绪信号之间的握手机制,并支持任意长度的突发。金宝app

对写和读事务使用简化的AXI4-Stream协议。当你想在你的IP核中生成一个AXI4-Stream接口时,在你的DUT接口中,实现以下信号:

  • 数据

  • 有效的

可选地,将Scalar DUT端口映射到AXI4-Stream接口时,可以绘制以下信号:

  • 准备好

  • 其他协议信号,如:

    • TSRTB

    • Theal.

    • Tlast.

    • t

    • t

    • Tuser.

数据和有效信号

当数据信号有效时,有效信号被置位。该图说明了根据简化的流式协议的数据和有效信号关系。当您运行IP核生成工作流时,HDL Coder在HDL IP核中添加了一个流接口模块,该模块将简化的协议转换为完整的axi4流协议。在该图中,时钟信号由CLK表示。

纸浆包建模

当您想要在DUT边界上将数据信号模拟为采样流时,请使用基于采样的模式建模。在基于样本的模式中,可以将数据信号建模为标量或矢量。如果将数据信号建模为向量,则将样本包装尺寸设置为All。在生成的HDL代码中,向量元素被打包在一起,整个向量被视为单个示例。属性可以指定数据如何打包包装方式.看样品包装尺寸

模型数据和有效信号金宝app

  1. 括起来使用已启用的子系统处理数据信号的算法。

  2. 使用有效信号控制启用子系统的启用端口。

例如,您可以直接将Valid信号连接到使能端口。

您还可以使用DUT中的控制器为已启用的子系统生成启用信号。

准备信号(可选)

下游组件使用背压来告诉上游组件它们还没有准备好接收数据。DUT中的AXI4-Stream接口可以选择包括Ready信号。使用就绪信号:

  • 在AXI4-Stream从接口上施加背压。例如,当下游组件还没有准备好接收数据时,放下Ready信号。

  • 在AXI4-Stream主接口中响应背压。例如,当下游组件Ready信号低时,停止发送数据。

当您使用单个流频道时,默认情况下,HDL编码器会生成就绪信号和逻辑以处理后压。背压逻辑将Ready信号与DUT使能信号连接。当输入主现出信号低时,DUT被禁用,输出从就绪信号被驱动为低电平。因此,HDL编码器产生后压逻辑和就绪信号,当您使用单个流频道时,就绪信号是可选的,您不必在DUT端口造型此信号。

框图视图说明自动生成的就绪信号和后压逻辑。

当您使用多个流通道时,HDL编码器生成一个就绪信号,而不生成背压逻辑。在具有多个流通道的DUT中:

  • 主通道忽略来自下游组件的就绪信号。

  • 从站就绪信号很高,导致上游组件继续发送数据。

没有背压逻辑可能导致数据丢失。为了避免数据丢失,并在从接口上施加背压或响应主接口的背压:

  • 为每个附加流接口模拟就绪信号。

  • 将建模的Ready信号映射到附加接口的DUT端口。

当您没有模拟准备信号时,设置目标接口任务显示警告,提供需要准备好端口的接口名称。如果您的设计不需要申请或响应背部压力,请忽略此警告。

如果在AXI4-Stream接口中对Ready信号建模,主接口将在取消断言Ready信号后的一个时钟周期内忽略Data和Valid信号。一旦就绪信号被断言,您就可以开始发送数据和有效信号。解除就绪信号断言后,可以再发送一个数据和有效信号。

如果不建模Ready信号,HDL编码器生成信号和相关的背压逻辑。这个图说明了根据简化的流协议,Data、Valid和Ready信号之间的关系。当您运行IP核生成工作流时,HDL Coder在HDL IP核中添加了一个流接口模块,该模块将简化的协议转换为完整的axi4流协议。在该图中,时钟信号由CLK表示。

例如,如果您在DUT中有先进先出(FIFO)来存储一帧数据,以便向上游组件施加反压力,则基于FIFO Full信号建模Ready信号。

笔记

如果启用延迟平衡,编码器将在就绪信号上插入一个或多个延迟。禁用就绪信号路径的延迟均衡。

其他协议信号(可选)

您可以选择模拟其他AXI4流协议信号。如果仅型号所需的数据和有效信号,则编码器生成TREEDY和TLAST和AXI4流协议信号。

如果您未绘制TLAST信号,则编码器在IP内核中生成可编程寄存器,以便您可以指定数据包大小。可编程数据包大小寄存器的细节位于IP核心生成报告中。

基于帧的建模

当您想在DUT边界上模拟数据信号作为帧时,基于帧模式的模型。在基于帧的模式下,将数据信号模拟为向量,并将样品打包维度设置为无。看样品包装尺寸

基于帧的模式对于建模和模拟硬件和软件之间的系统交互以及软件驱动程序的代码是有用的。

数据和有效的信号建模要求

将矢量端口映射到Axi4-Stream接口时:

  • 将每个DUT输入向量数据端口连接到aserializer1d.堵塞。

    serializer1d.块必须有一个ValidOut端口,并且Ratio设置为向量位宽。

  • 将每个DUT输出矢量数据端口连接到Deserializer1D堵塞。

    Deserializer1D块必须具有有效端口和设置为向量位宽的比率。

  • 将每个标量端口连接到AXI4-Lite接口到A率过渡堵塞。

    这个比率率过渡块必须与比率匹配serializer1d.Deserializer1D块。

  • 每个映射到外部端口的标量端口必须具有与流算法子系统相同的采样时间。

流算法子系统遵循与将标量端口映射到AXI4-Stream接口的模式相同的Data和Valid信号建模模式。看在Simulink中建模数据和有效信号金宝app

例子

要将向量端口映射到AXI4-Stream接口,请打开hdlcoder_sfir_fixed_vector.slx.模型。在hdlcoder_sfir_fixed_vector.slx.模型,Symmetric_FIR块是流算法子系统。

多流通道模型设计

当你运行时IP核心生成工作流程,您可以将多个Scalar DUT端口映射到AXI4-Stream Master和Axi4-Stream从频道。使用矢量端口时,可以将端口映射到大多数AXI4-Stream Master通道和一个AXI4流从通道。

笔记

如果使用多个流频道,HDL编码器会生成就绪信号,但不会生成后压逻辑。如果您希望您的设计来处理背部压力,请在设计中模拟READY信号。

想要了解更多,请看生成带有多个AXI4流和AXI4主接口的HDL IP核

具有多种采样率的模型设计

运行IP核心生成工作流程时,请使用HDL编码器软件进行具有多个采样率的设计。将接口端口映射到AXI4-Stream Master或Axi4-Stream从属接口时,使用多个采样率,将DUT端口映射到这些AXI4接口以最快的设计速率或比设计更慢的速度运行速度。

HDL编码器运行映射到AXI4-Stream Master的DUT端口,并在速率慢于模型设计率时的从属界面:

  • 将AXI4-Stream Master通道的有效信号设置为高在第一个周期时的高度时钟周期。例如,如果设计速率比慢速速率DUT端口快八倍,则每个八个时钟周期的第一个时钟周期的有效信号很高。

  • 断言AXI4流从接口上的背部压力,以确保以每n个时钟周期的一个数据帧的速率流式传输到传入数据。例如,如果设计速率比慢速速率DUT端口快八倍,则第一帧在时钟周期,第二帧处于时钟周期九个,等等。

将AXI4-Stream Interface DUT端口映射到设计中最快的速率时,有效信号很高,始终确保AXI4流从接口上没有背部压力。

当设计具有多个采样率的模型时,所有AXI4-Stream主接口映射的DUT端口必须以相同的速率运行。所有AXI4-Stream从接口映射的DUT端口必须以相同的速率运行。

想要了解更多,请看多速率IP核生成

AXI4流向量数据的接口选项

当您在具有矢量数据的模型上运行IP Core Generation工作流时,您可以通过使用样品包装尺寸.当向量数据被视为样本时,可以指定矢量元素如何通过使用载体元素包装方式选择。

样品包装尺寸

指定向量数据是否被视为样本或作为帧。

  • 没有任何。这是默认值。当您指定None时,向量被视为帧和向量元素之后的传输元素。例如,当输入是第一时钟周期中的六逐向量时,第一向量元素被流,第二向量元素,在第二时钟周期中,等等。该模型必须包含用于输入的输入和Deserializer块的序列化器块,用于输出以使用此模式。这包装方式不可用样品包装尺寸设置为无。

  • 所有人。当您指定All时,向量被打包在一起并在单个时钟周期中流化。例如,当输入是一个6乘1的向量时,所有向量元素都打包在一起,并在单个时钟周期中进行流处理。在这种情况下,可以使用包装方式选择。

包装方式

指定如何将矢量元素包装在一起样品包装尺寸被设置为所有。包装模式适用于AXI4流从站和主信道。在主信道上,使用2对齐格式的位对齐或功率打包数据。在从属通道上,数据基于主信道包装格式未包装。

  • 对齐。在这种模式下,向量元素直接挨在一起。如果打包的位宽小于AXI4-Stream通道宽度,那么打包的数据将用零填充以匹配通道宽度。

    例如:

    • AXI4流频道宽度为256位。

    • 向量是30位长,有4个向量帧。总的数据宽度是120位。

    当打包模式设置为位对齐时,AXI4-Stream数据的打包如图所示

    零填充位对齐矢量数据

  • 2的幂排列。在这种模式下,向量元素首先用零填充到两个边界的最接近的幂次。然后,将填充元素打包在一起。如果打包的向量位宽小于AXI4-Stream通道宽度,则打包数据将被填充以匹配通道宽度。

    例如:

    • AXI4流频道宽度为256位。

    • 向量是30位长,有4个向量帧。总的数据宽度是120位。

    当打包模式设置为2对齐的功率时,Axi4-Stream数据被打包,如本图所示:

    2包装矢量数据的力量

    钻头宽度30的每个向量元素用位宽2的零填充,将其扩展到32,是两个边界的最接近的功率。

限制

将标量或向量DUT端口映射到AXI4-Stream接口时:

  • Xilinx.®Zynq®-7000或英特尔®古怪®素数必须是您的目标平台。

  • Xilinx Vivado®或英特尔Quartus Prime必须是您的合成工具。

  • 处理器/ FPGA同步一定是自由奔跑。

使用基于帧的建模时,无法使用除数据以外的协议信号并有效。例如,不支持READY和TLAST。金宝app

相关的话题

相关的话题