xilinx的axi4-stream-slave接收数据模式

可编程逻辑

1333人已加入

描述

有人经常这么说不管新的fpga怎么变化,其实fpga工程师学习永远就是协议,定义。其实说白了,任何接口协议都是工程师必须熟悉。

zynq的平台推出最大的协议就是axi4的协议,包含axi4-full,axi4-lite,axi4-stream。三种协议内容。

其实axi4-full比axi4-lite最大的区别,axi4-full支持的位宽更宽,并且支持brust突发模式。而axi4-stream,就是没有地址信号,地址相关握手信息,

对于axi4-full编写代码,一般来说首先做好地址握手,然后再做数据握手,有人肯定问会不会同时。一般来说,及时同时地址和数据,地址也是优先模式,然后再数据。发送端可以等待确定。

然后对于axi4-stream,只有tdata信号,在很多pcie,srio,xaui的高速接口协议中,经常利用axi4-stream的协议。这个时候axi4-stream的vaild的第一次有效数据都是数据格式头部。接收ready信号握手valid的信号。

axi4-stream-slave 接收数据模式如下.

xilinx官方实例代码如下,其实大概意思就是一个高电平之后,变成低电平。然后再高电平,等待tlast信号再拉低。这样做的为了时序紧凑型,xilinx为了方便在第一个valid和ready信号得到头部信号,这个有个短暂的停留时间去分析头部数据。

FPGA

当然你可以写成状态机模式,上面代码,说实在我看得头疼。等待valid,输出一次高电平,然后得到头部数据,再拉低数据,然后再输出高电平得到数据段数据。最后根据last信号结束ready信号。

FPGA

对于发送数据来说。xilinx官方使用一个脉冲计算器来tdata数据切换不同的数据内容

FPGA

tlast信号,使用不同模式,输出不同的值,不过都是高电平一次,然后变低信号。tdata根据不同的长度来切换数据内容。

FPGA

这个代码我也看得头痛,其实也可以用状态机编写,首先是输出一个头部,然后等待一次,再输出额外的数据,在最后一个数据段,输出last信号。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分