在AXI频道中,没有。单个突发中的数据传输被称为节拍。
尺寸[2:0] - 没有。在一个节拍中传输的字节数。 但这里的实际总线尺寸= 2 ^尺寸
例如: - 如果size = 100(二进制) 总线大小= 2 ^ 4 = 16。
我也有byte_count [15:0] - 总数没有。在整个传输过程中传输的字节数。
现在我有问题如何计算突发长度而不是。将要发布的爆发。 爆发长度不是。节拍转移一次。 公式是
没有。 of beats = byte_count / size
没有。要发布的爆发=没有。 of beats / 16
16 - 因为在1 AXI爆发中,你最多只能有16次节拍。
我在verilog中进行编码。 这适用于AXI Master,不支持未对齐的传输。 任何硬件设计或公式都是可以接受的。
答案 0 :(得分:2)
对你所拥有的一些评论,假设这是一个大师:
当你可能不需要时,你正在计算突发数量。通常,您将仅跟踪剩余的字节数/字数,以便在事务完成时进行传输和减少。请记住,您不能突破某些地址边界,这可能需要您拆分转移。
您的计算基于使用16拍连拍(最大LENGTH),但您可能无法假设这一点。虽然AXI要求从站响应所有传输,但并不要求它们接受所有传输。例如,FIFO接口的AXI从器件可以拒绝未对齐的传输。如果目标系统可能包含您不知道其功能的从站或总线结构,则需要处理一些可编程值。