一、简介
J204B接口布线简单,传输速率快。正逐渐代替LVDS和CMOS接口,成为新一代的采样数据的传输接口。FPGA可以通过JESD204这一IP核进行使用J204B接口。
JESD204在进行使用前需要利用AXI总线对其进行配置后,IP核才能正常工作下面利用Verilog代码通过状态机配置其寄存器, 可以通过不同的需求进行修改。
读写操作利用状态机实现。
二、写状态机:
awready=1代表从机准备好接收地址,wready=1代表从机准备好接收数据,bvaild=1代表本次的写数据有效
三、读状态机:
arready=1代表从机准备好接收地址,rvaild=1代表本次的读数据有效。
四、 读写时序
1、写时序
2、读时序
五、通道握手信号之间的依赖性:
单箭头指向的信号能在箭头起点信号之前或之后断言;双箭头指向的信号必须在箭头起点信号断言之后断言
1、读握手依赖关系
2、写握手依赖关系
六、注意事项:
虽然 J204B接口布线简单,但是JESD204这一IP核的时钟网络复杂,要注意时钟的分配,还有复位,以及利用AXI总线配置J204B寄存器。
AXI总线配置J204B寄存器要在收发器的时钟来到之后进行配置,这样才能成功建立数据通路。
七、代码实现
1、写操作
module axi_write(
input s_axi_aclk , //时钟
input s_axi_aresetn , //低电平复位
input s_axi_awready , //写入地址就绪
input s_axi_wready , //写入数据就绪
input s_axi_bvalid , //写入响应有效
input [1:0] s_axi_bresp , //写入响应
output reg [31:0] s_axi_awaddr , //写入地址
output reg s_axi_awvalid , //写入地址有效
output reg [31:0] s_axi_wdata , //写入数据
output reg s_axi_wvalid , //写入数据有效
output reg s_axi_bready , //写入数据就绪
output reg axi_write_done //数据全部写入
);
//*******************数据链路层的参数配置**********************
localparam pLanes = 1 ; //lane数
// F = 1 K = 20 //BUFF的值
localparam [2:0] pF = 2-1 ; //F
localparam [8:0] pK = 32-1 ; //K
// Setup the link configuration parameters.
localparam [7:0] pDID = 8'h55 ; //Device ID 设备ID
localparam [3:0] pADJCNT = 4'h0 ; //ADJCNT (Phase Adjust Request) [Subclass 2 Only]. Binary value.
localparam [3:0] pBID = 4'hA ; //Bank ID
localparam pADJDIR = 1'b0 ; //ADJDIR (Adjust Direction) [Subclass 2 Only]. Binary value.
localparam pPHADJ = 1'b0 ; //PHADJ (Phase Adjust Request) [Subclass 2 Only]. Binary value.
localparam pSCR = 1'b0 ; //Scrambling Enable
localparam [4:0] pL = (pLanes-1) ; //L lane数
localparam [7:0] pM = 2 ; //M 转换器数
localparam [1:0] pCS = 2'd0