Verilog AXI突发计算

Verilog AXI突发计算,verilog,Verilog,在AXI信道中,单个突发中的数据传输数称为拍数 大小[2:0]-一拍中要传输的字节数。 但这里实际的巴士大小=2^大小 例如:-如果大小=100(二进制) 总线大小=2^4=16 我还有byte_count[15:0]——在整个传输过程中要传输的字节总数 现在我有一个问题,如何计算突发长度和要发出的突发数。 突发长度是在一个突发中传输的拍数。 公式是 拍数=字节计数/大小 要发出的脉冲数=拍数/16 16-因为在1个AXI突发中,您最多只能有16次跳动 我正在用verilog进行编码。 这适用于

在AXI信道中,单个突发中的数据传输数称为拍数

大小[2:0]-一拍中要传输的字节数。 但这里实际的巴士大小=2^大小

例如:-如果大小=100(二进制) 总线大小=2^4=16

我还有byte_count[15:0]——在整个传输过程中要传输的字节总数

现在我有一个问题,如何计算突发长度和要发出的突发数。 突发长度是在一个突发中传输的拍数。 公式是

拍数=字节计数/大小

要发出的脉冲数=拍数/16

16-因为在1个AXI突发中,您最多只能有16次跳动

我正在用verilog进行编码。 这适用于AXI主机,不支持未对齐的传输。
任何硬件设计或公式都是可以接受的。

假设这是一个主程序,请对您所拥有的内容发表一些评论:

您正在计算可能不需要的突发次数。通常,您只会跟踪剩余的要传输的字节/字,并在事务完成时递减。请记住,您不能跨越某些可能需要拆分传输的地址边界

您使用16拍突发(最大长度)进行计算,但您可能无法假设这一点。虽然AXI要求从属服务器响应所有传输,但它并不要求从属服务器接受所有传输。例如,FIFO接口的AXI从设备可能会拒绝未对齐的传输。如果目标系统可能包括您不知道其功能的从属系统或总线结构,则需要处理一些可编程值