JESD204B的AXI4-Lite时序分析(对比SRIO的AXI4-Lite时序分析)

时间:2024-03-24 15:53:05

JESD204B的AXI4-Lite时序分析

1.前言

        本人在写JESD204B的AXI4-Lite配置接口时,发现对端口时序的理解和常规的理解不一样,因此写这篇文章以作记录,具体如下。

1.1写时序异常

          按常规理解的时序图(参照SRIO)写出来的代码,ready是因,valid是果。在仿真时发现在时钟复位配置好后,ready信号并没有按想象中一样,会先拉高来等待输入数据。ready信号是一直为0的。

         检查配置情况发现配置没有错误,然后对比JESD204B ip核的demo文件仿真图,发现ready信号要先等valid信号有效后才会输出一个时钟的有效信号。这成了valid是因,ready是果。因果和常规理解的是反着的。

      具体的情况见第3节。

1.2读时序异常

       按常规理解的时序为,ready准备好后,输入读取的地址并且valid有效时,ready会拉低去处理内部信号,在输出对应地址数据后,再次拉高等待下一次读取。

       但是JESD204B的ip中AXI4-Lite配置接口的读aready是隔一段时间输出一个固定的2个时钟高ready。即使是在availd拉高后aready也不会根据availd拉低,依然是输出固定的2个时钟高信号。这导致我们在需要连续读取内部数据时,不能单纯的把aready当成读取下一个地址准备好的依据。

      具体情况见第4节。


 2.JESD204B的AXI4-Lite接口功能

     AXI4-Lite部分的接口是用于配置JESD204 core 的寄存器,其中有一些关键参数是必须要配置的,比如:

  1. )M:(converters/device):AD/DA器件的转换通道数
  2. )L:(Lanes per Link):接的通道线数量,即占用GTX线数
  3. )LR:(Line Rate):单根线(通道)的速率,LR=(M*S*N’*10/8*FC)/L,FC为采样率;
  4. )F:(octets per frame):每帧包含的字节数,F=(M*S*N’)/(8*L);
  5. )K:(frames per multiframe):一个多帧包含多少个帧,根据AD/DA手册填写,一般是32;
  6. )N:转换器的分辨率;
  7. )N’:word的长度,4的倍数,N’=N+CS+T,CS是控制位,T是尾码;
  8. )S:(samples):S表示每一个转换器每一帧中的采样次数。一般情况下,S都是1,。S必须是整数。协议中允许S大于1,但是S等于1的时候开业保证帧时钟和采样时钟相等。比如S=1,则一个500MSPS的转换器,帧时钟也是500M。

       因此配置JESD204B的AXI4-Lite接口是必须的。下面谈谈我对JESD204B的AXI4-Lite接口时序的理解,仅做参考。


3.写时序

        srio中的时序为常规理解的时序图,demo中时序情况为JESD204B的ip核时序情况。

3.1 srio中的写时序说明

        由于JESD204B的ip核手册《pg066》上没有这一部分的时序讲解,因此我参照srio的ip核手册《pg007》上的写时序写了第一版程序。Srio中的写时序如下图所示。

JESD204B的AXI4-Lite时序分析(对比SRIO的AXI4-Lite时序分析)

        下面1)~3)是客户端需要处理的,4)是ip核内部处理的。

 

3.2 demo中的写时序情况

  1. )写地址awaddr:在写地址准备好信号awready==1时有效(awvalid=1),在awready==0时无效;
  2. )写数据wdata:在写数据准备好信号wready==1时有效(wvalid=1),在wready==0时无效;
  3. )写响应准备好信号bready:在写地址、写数据有效时变高,在写响应有效指示信号bvalid==1时,变低。
  4. )写地址准备好信号awready、写数据准备好信号wready:在无写响应时变高,在写地址、写数据有效时变低。

        demo中的写时序情况为写数据有效为因,写数据准备好信号为果。具体如下:

JESD204B的AXI4-Lite时序分析(对比SRIO的AXI4-Lite时序分析)

 

 4. 读时序 

 4.1srio中的读序说明

  1. )写数据时序:在一个时刻先写入写数据wdata,wvalid拉高,等待wready有效后再把写数据有效信号wvalid拉低;
  2. )写地址时序:在写入数据有效的同时,写入地址awaddr,awvalid拉高,等待awready有效后再把awvalid拉低。
  3.  

        常规的读理解为在读准备好时输入需要读取的地址,给入读取的地址有效后,准备信号就会拉低,去处理内部数据。如下图的srio读时序图:

JESD204B的AXI4-Lite时序分析(对比SRIO的AXI4-Lite时序分析)

        srio读时序理解为:

  1. )读地址写入情况:在读地址准备好信号arready为高时输入需要读取的地址araddr,同时arvalid为高即可。arvalid保持一个时钟,在arready为低时也为低;
  2. )读相应准备好信号:在arready为低时拉高,在读响应信号rvalid拉高后拉低。

4.2demo中的读时序

        demo中的读时序如下图所示:

JESD204B的AXI4-Lite时序分析(对比SRIO的AXI4-Lite时序分析)

  1. )读地址准备好信号arready:每隔一个固定的时间段会输出固定的两个时钟高信号,准备接收读地址。经验证并不是看到arvalid拉高后主动拉低的;
  2. )可接收下一个读地址的条件:虽然一次性会输出两个时钟的arready信号,但是一次却只能接收一个读地址。需要在读响应后rvalid拉高一个时钟后才能再次接收下一个读地址。