模式10 AD9176 延迟1* 1的是7 4 ,1 4的没有
单link 8lane 1 4* 最大datarate=3080M
L=8 M=2 F=1 S=2 N=16 K=32
组帧 每个时钟32bit 其中I路8个点 Q路8个点
时钟 预定是150M 本振1800M 带宽1000M 2.4倍采样
data_rate=1200M dac_rate=1200*4=4800M
lane_rate=6000M core_clk=6000/40=150M
ch4=2400M N=2 M=4
ch5=ch7=9.375M ch6=150M
3200
mode1 单通道 采样率6400M
dev clk=3200M sysref clk=2.5M
lanerate=6400M core clk=160M refclk0=refclk1=160M
hmc7044 ch4=3200M ch5=2.5M ch6=160M ch7=2.5M ch8=160M
//-----------
M_JesdCtrl jesd204_i (
.gt0_rxdata(gt0_rxdata), // input wire [31 : 0] gt0_rxdata
.gt0_rxcharisk(gt0_rxcharisk), // input wire [3 : 0] gt0_rxcharisk
.gt0_rxdisperr(gt0_rxdisperr), // input wire [3 : 0] gt0_rxdisperr
.gt0_rxnotintable(gt0_rxnotintable), // input wire [3 : 0] gt0_rxnotintable
.gt1_rxdata(gt1_rxdata), // input wire [31 : 0] gt1_rxdata
.gt1_rxcharisk(gt1_rxcharisk), // input wire [3 : 0] gt1_rxcharisk
.gt1_rxdisperr(gt1_rxdisperr), // input wire [3 : 0] gt1_rxdisperr
.gt1_rxnotintable(gt1_rxnotintable), // input wire [3 : 0] gt1_rxnotintable
.gt2_rxdata(gt2_rxdata), // input wire [31 : 0] gt2_rxdata
.gt2_rxcharisk(gt2_rxcharisk), // input wire [3 : 0] gt2_rxcharisk
.gt2_rxdisperr(gt2_rxdisperr), // input wire [3 : 0] gt2_rxdisperr
.gt2_rxnotintable(gt2_rxnotintable), // input wire [3 : 0] gt2_rxnotintable
.gt3_rxdata(gt3_rxdata), // input wire [31 : 0] gt3_rxdata
.gt3_rxcharisk(gt3_rxcharisk), // input wire [3 : 0] gt3_rxcharisk
.gt3_rxdisperr(gt3_rxdisperr), // input wire [3 : 0] gt3_rxdisperr
.gt3_rxnotintable(gt3_rxnotintable), // input wire [3 : 0] gt3_rxnotintable
.rx_reset_done(rx_reset_done), // input wire rx_reset_done
.rxencommaalign_out(rxencommaalign_i), // output wire rxencommaalign_out
.rx_reset_gt(rx_reset_gt), // output wire rx_reset_gt
.rx_core_clk(rx_core_clk), // input wire rx_core_clk
.s_axi_aclk(s_axi_aclk), // input wire s_axi_aclk
.s_axi_aresetn(s_axi_aresetn), // input wire s_axi_aresetn
.s_axi_awaddr(s_axi_awaddr), // input wire [11 : 0] s_axi_awaddr
.s_axi_awvalid(s_axi_awvalid), // input wire s_axi_awvalid
.s_axi_awready(s_axi_awready), // output wire s_axi_awready
.s_axi_wdata(s_axi_wdata), // input wire [31 : 0] s_axi_wdata
.s_axi_wstrb(s_axi_wstrb), // input wire [3 : 0] s_axi_wstrb
.s_axi_wvalid(s_axi_wvalid), // input wire s_axi_wvalid
.s_axi_wready(s_axi_wready), // output wire s_axi_wready
.s_axi_bresp(s_axi_bresp), // output wire [1 : 0] s_axi_bresp
.s_axi_bvalid(s_axi_bvalid), // output wire s_axi_bvalid
.s_axi_bready(s_axi_bready), // input wire s_axi_bready
.s_axi_araddr(s_axi_araddr), // input wire [11 : 0] s_axi_araddr
.s_axi_arvalid(s_axi_arvalid), // input wire s_axi_arvalid
.s_axi_arready(s_axi_arready), // output wire s_axi_arready
.s_axi_rdata(s_axi_rdata), // output wire [31 : 0] s_axi_rdata
.s_axi_rresp(s_axi_rresp), // output wire [1 : 0] s_axi_rresp
.s_axi_rvalid(s_axi_rvalid), // output wire s_axi_rvalid
.s_axi_rready(s_axi_rready), // input wire s_axi_rready
.rx_reset(rx_reset_gt), // input wire rx_reset
.rx_aresetn(rx_aresetn), // output wire rx_aresetn
.rx_tdata(rx_tdata), // output wire [127 : 0] rx_tdata
.rx_tvalid(rx_tvalid), // output wire rx_tvalid
.rx_start_of_frame(rx_start_of_frame), // output wire [3 : 0] rx_start_of_frame
.rx_end_of_frame(rx_end_of_frame), // output wire [3 : 0] rx_end_of_frame
.rx_start_of_multiframe(rx_start_of_multiframe), // output wire [3 : 0] rx_start_of_multiframe
.rx_end_of_multiframe(rx_end_of_multiframe), // output wire [3 : 0] rx_end_of_multiframe
.rx_frame_error(rx_frame_error), // output wire [15 : 0] rx_frame_error
.rx_sysref(rx_sysref), // input wire rx_sysref
.rx_sync(rx_sync) // output wire rx_sync
);
//-----------
M_JesdCtrl_phy i_jesd204_phy (
.qpll_refclk(refclk), // input wire qpll_refclk
.drpclk(drpclk), // input wire drpclk
.tx_reset_gt(rx_reset_gt), // input wire tx_reset_gt
.rx_reset_gt(rx_reset_gt), // input wire rx_reset_gt
.tx_sys_reset(rx_reset), // input wire tx_sys_reset
.rx_sys_reset(rx_reset), // input wire rx_sys_reset
.txp_out(), // output wire [3 : 0] txp_out
.txn_out(), // output wire [3 : 0] txn_out
.rxp_in(rxp), // input wire [3 : 0] rxp_in
.rxn_in(rxn), // input wire [3 : 0] rxn_in
.tx_core_clk(rx_core_clk), // input wire tx_core_clk
.rx_core_clk(rx_core_clk), // input wire rx_core_clk
.txoutclk(txoutclk), // output wire txoutclk
.rxoutclk(rxoutclk), // output wire rxoutclk
.gt_prbssel(3’b000), // input wire [2 : 0] gt_prbssel
.gt0_txdata(32’d0), // input wire [31 : 0] gt0_txdata
.gt0_txcharisk(4’d0), // input wire [3 : 0] gt0_txcharisk
.gt1_txdata(32’d0), // input wire [31 : 0] gt1_txdata
.gt1_txcharisk(4’d0), // input wire [3 : 0] gt1_txcharisk
.gt2_txdata(32’d0), // input wire [31 : 0] gt2_txdata
.gt2_txcharisk(4’d0), // input wire [3 : 0] gt2_txcharisk
.gt3_txdata(32’d0), // input wire [31 : 0] gt3_txdata
.gt3_txcharisk(4’d0), // input wire [3 : 0] gt3_txcharisk
.tx_reset_done(tx_reset_done), // output wire tx_reset_done
.gt0_rxdata(gt0_rxdata), // output wire [31 : 0] gt0_rxdata
.gt0_rxcharisk(gt0_rxcharisk), // output wire [3 : 0] gt0_rxcharisk
.gt0_rxdisperr(gt0_rxdisperr), // output wire [3 : 0] gt0_rxdisperr
.gt0_rxnotintable(gt0_rxnotintable), // output wire [3 : 0] gt0_rxnotintable
.gt1_rxdata(gt1_rxdata), // output wire [31 : 0] gt1_rxdata
.gt1_rxcharisk(gt1_rxcharisk), // output wire [3 : 0] gt1_rxcharisk
.gt1_rxdisperr(gt1_rxdisperr), // output wire [3 : 0] gt1_rxdisperr
.gt1_rxnotintable(gt1_rxnotintable), // output wire [3 : 0] gt1_rxnotintable
.gt2_rxdata(gt2_rxdata), // output wire [31 : 0] gt2_rxdata
.gt2_rxcharisk(gt2_rxcharisk), // output wire [3 : 0] gt2_rxcharisk
.gt2_rxdisperr(gt2_rxdisperr), // output wire [3 : 0] gt2_rxdisperr
.gt2_rxnotintable(gt2_rxnotintable), // output wire [3 : 0] gt2_rxnotintable
.gt3_rxdata(gt3_rxdata), // output wire [31 : 0] gt3_rxdata
.gt3_rxcharisk(gt3_rxcharisk), // output wire [3 : 0] gt3_rxcharisk
.gt3_rxdisperr(gt3_rxdisperr), // output wire [3 : 0] gt3_rxdisperr
.gt3_rxnotintable(gt3_rxnotintable), // output wire [3 : 0] gt3_rxnotintable
.rx_reset_done(rx_reset_done), // output wire rx_reset_done
.rxencommaalign(rxencommaalign_i), // input wire rxencommaalign
.common0_qpll_clk_out(common0_qpll_clk_out), // output wire common0_qpll_clk_out
.common0_qpll_refclk_out(common0_qpll_refclk_out), // output wire common0_qpll_refclk_out
.common0_qpll_lock_out(common0_qpll_lock_out) // output wire common0_qpll_lock_out
);