From 73478865267ead00de4388fa0c14a69bf96656c8 Mon Sep 17 00:00:00 2001 From: "Travis F. Collins" Date: Wed, 4 Dec 2024 19:41:44 -0700 Subject: [PATCH] Fix system_top.v for FFH ADRV9364 demo Signed-off-by: Travis F. Collins --- .../ccbob_lvds_hop/system_top.v | 275 +++--------------- 1 file changed, 44 insertions(+), 231 deletions(-) diff --git a/trx_examples/targeting/frequency-hopping/ccbob_lvds_hop/system_top.v b/trx_examples/targeting/frequency-hopping/ccbob_lvds_hop/system_top.v index 2c6d1f79..b0ea92f3 100644 --- a/trx_examples/targeting/frequency-hopping/ccbob_lvds_hop/system_top.v +++ b/trx_examples/targeting/frequency-hopping/ccbob_lvds_hop/system_top.v @@ -53,15 +53,6 @@ module system_top ( inout ddr_reset_n, inout ddr_we_n, - output eth1_mdc, - inout eth1_mdio, - input eth1_rgmii_rxclk, - input eth1_rgmii_rxctl, - input [ 3:0] eth1_rgmii_rxdata, - output eth1_rgmii_txclk, - output eth1_rgmii_txctl, - output [ 3:0] eth1_rgmii_txdata, - inout fixed_io_ddr_vrn, inout fixed_io_ddr_vrp, inout [53:0] fixed_io_mio, @@ -69,55 +60,10 @@ module system_top ( inout fixed_io_ps_porb, inout fixed_io_ps_srstb, - output hdmi_out_clk, - output hdmi_vsync, - output hdmi_hsync, - output hdmi_data_e, - output [15:0] hdmi_data, - output hdmi_pd, - input hdmi_intn, - - output spdif, - input spdif_in, - - output i2s_mclk, - output i2s_bclk, - output i2s_lrclk, - output i2s_sdata_out, - input i2s_sdata_in, - inout iic_scl, inout iic_sda, - inout [20:0] gpio_bd, - - output fan_pwm, - input fan_tach, - - input clk_0_p, - input clk_0_n, - input clk_1_p, - input clk_1_n, - output [53:0] gp_out, - input [53:0] gp_in, - - input gt_ref_clk_0_p, - input gt_ref_clk_0_n, - input gt_ref_clk_1_p, - input gt_ref_clk_1_n, - output [ 1:0] gt_tx_p, - output [ 1:0] gt_tx_n, - input [ 1:0] gt_rx_p, - input [ 1:0] gt_rx_n, - - output ad9517_csn, - output ad9517_clk, - output ad9517_mosi, - input ad9517_miso, - inout ad9517_pdn, - inout ad9517_ref_sel, - inout ad9517_ld, - inout ad9517_status, + inout [10:0] gpio_bd, input rx_clk_in_p, input rx_clk_in_n, @@ -135,186 +81,82 @@ module system_top ( output enable, output txnrx, input clkout_in, - inout tdd_sync, + output clkout_out, - inout gpio_rf0, - output gpio_rf1, - output gpio_rf2, - input gpio_rf3, - input gpio_rf4, - inout gpio_rf5, inout gpio_clksel, inout gpio_resetb, inout gpio_sync, - inout gpio_en_agc, + output gpio_en_agc, output [ 3:0] gpio_ctl, input [ 7:0] gpio_status, output spi_csn, output spi_clk, output spi_mosi, - input spi_miso + input spi_miso, + + output [27:0] gp_out, + input [27:0] gp_in ); // internal signals - wire [ 1:0] spi_csn_s; - wire spi_clk_s; - wire spi_mosi_s; - wire spi_miso_s; - wire sys_cpu_clk; - wire clk_0; - wire clk_1; - wire gt_ref_clk_1; - wire gt_ref_clk_0; - wire [63:0] gp_out_s; - wire [63:0] gp_in_s; + wire [31:0] gp_out_s; + wire [31:0] gp_in_s; wire [63:0] gpio_i; wire [63:0] gpio_o; wire [63:0] gpio_t; - wire tdd_sync_i; - wire tdd_sync_o; - wire tdd_sync_t; // assignments - assign fan_pwm = 1'b1; - assign hdmi_pd = 1'b0; - assign spi_csn = spi_csn_s[0]; - assign spi_clk = spi_clk_s; - assign spi_mosi = spi_mosi_s; - assign ad9517_csn = spi_csn_s[1]; - assign ad9517_clk = spi_clk_s; - assign ad9517_mosi = spi_mosi_s; - assign spi_miso_s = (~spi_csn_s[0] & spi_miso) | (~spi_csn_s[1] & ad9517_miso); - - // loopback signals - - assign gp_out[53:0] = gp_out_s[53:0]; - assign gp_in_s[63:54] = gp_out_s[63:54]; - assign gp_in_s[53:0] = gp_in[53:0]; - - // instantiations - - IBUFDS i_ibufds_clk_0 ( - .I (clk_0_p), - .IB (clk_0_n), - .O (clk_0)); - - IBUFDS i_ibufds_clk_1 ( - .I (clk_1_p), - .IB (clk_1_n), - .O (clk_1)); - - IBUFDS_GTE2 i_ibufds_gt_ref_clk_0 ( - .CEB (1'd0), - .I (gt_ref_clk_0_p), - .IB (gt_ref_clk_0_n), - .O (gt_ref_clk_0), - .ODIV2 ()); - - IBUFDS_GTE2 i_ibufds_gt_ref_clk_1 ( - .CEB (1'd0), - .I (gt_ref_clk_1_p), - .IB (gt_ref_clk_1_n), - .O (gt_ref_clk_1), - .ODIV2 ()); - - ad_iobuf #( - .DATA_WIDTH(1) - ) i_iobuf_tdd_sync ( - .dio_t (tdd_sync_t), - .dio_i (tdd_sync_o), - .dio_o (tdd_sync_i), - .dio_p (tdd_sync)); + assign clkout_out = clkout_in; + assign gp_out[27:0] = gp_out_s[27:0]; + assign gp_in_s[31:28] = gp_out_s[31:28]; + assign gp_in_s[27: 0] = gp_in[27:0]; // board gpio - 31-0 - assign gpio_i[31:21] = gpio_o[31:21]; + assign gpio_i[31:11] = gpio_o[31:11]; ad_iobuf #( - .DATA_WIDTH(21) + .DATA_WIDTH(11) ) i_iobuf_bd ( - .dio_t (gpio_t[20:0]), - .dio_i (gpio_o[20:0]), - .dio_o (gpio_i[20:0]), + .dio_t (gpio_t[10:0]), + .dio_i (gpio_o[10:0]), + .dio_o (gpio_i[10:0]), .dio_p (gpio_bd)); - // unused gpio - 63-61 - - assign gpio_i[63:61] = gpio_o[63:61]; - - // rf & ad9517 gpio - 60:56 - - ad_iobuf #( - .DATA_WIDTH(5) - ) i_iobuf ( - .dio_t (gpio_t[60:56]), - .dio_i (gpio_o[60:56]), - .dio_o (gpio_i[60:56]), - .dio_p ({ ad9517_pdn, // 60:60 - ad9517_ref_sel, // 59:59 - ad9517_ld, // 58:58 - ad9517_status, // 57:57 - gpio_rf0})); // 56:56 - - // unused gpio - 55:53 - - assign gpio_i[55:53] = gpio_o[55:53]; - - // rf & clock-select gpio - 52:51 - - ad_iobuf #( - .DATA_WIDTH(2) - ) i_iobuf_rf_1 ( - .dio_t (gpio_t[52:51]), - .dio_i (gpio_o[52:51]), - .dio_o (gpio_i[52:51]), - .dio_p ({ gpio_rf5, // 52:52 - gpio_clksel})); // 51:51 - - // unused gpio - 50:47 + // ad9361 gpio - 63-32 + assign gpio_i[63:52] = gpio_o[63:52]; assign gpio_i[50:47] = gpio_o[50:47]; - // ad9361 gpio - 46:32 - // ad_iobuf #( - // .DATA_WIDTH(15) - // ) i_iobuf_ad9361 ( - // .dio_t (gpio_t[46:32]), - // .dio_i (gpio_o[46:32]), - // .dio_o (gpio_i[46:32]), - // .dio_p ({ gpio_resetb, // 46:46 + // .DATA_WIDTH(16) + // ) i_iobuf ( + // .dio_t ({gpio_t[51], gpio_t[46:32]}), + // .dio_i ({gpio_o[51], gpio_o[46:32]}), + // .dio_o ({gpio_i[51], gpio_i[46:32]}), + // .dio_p ({ gpio_clksel, // 51:51 + // gpio_resetb, // 46:46 // gpio_sync, // 45:45 // gpio_en_agc, // 44:44 // gpio_ctl, // 43:40 // gpio_status})); // 39:32 - ad_iobuf #(.DATA_WIDTH(2)) i_iobuf_ad9361 ( - .dio_t ({gpio_t[46:45]}), - .dio_i ({gpio_o[46:45]}), - .dio_o ({gpio_i[46:45]}), - .dio_p ({ gpio_resetb, // 46:46 - gpio_sync })); // 45:45 - - // ad9361 input protection - - ad_adl5904_rst i_adl5904_rst_a ( - .sys_cpu_clk (sys_cpu_clk), - .rf_peak_det_n (gpio_rf4), - .rf_peak_rst (gpio_rf2)); - - ad_adl5904_rst i_adl5904_rst_b ( - .sys_cpu_clk (sys_cpu_clk), - .rf_peak_det_n (gpio_rf3), - .rf_peak_rst (gpio_rf1)); + ad_iobuf #( + .DATA_WIDTH(16) + ) i_iobuf ( + .dio_t ({gpio_t[51], gpio_t[46:45]}), + .dio_i ({gpio_o[51], gpio_o[46:45]}), + .dio_o ({gpio_i[51], gpio_i[46:45]}), + .dio_p ({ gpio_clksel, // 51:51 + gpio_resetb, // 46:46 + gpio_sync})); // 45:45 // instantiations system_wrapper i_system_wrapper ( - .clk_0 (clk_0), - .clk_1 (clk_1), .ddr_addr (ddr_addr), .ddr_ba (ddr_ba), .ddr_cas_n (ddr_cas_n), @@ -331,15 +173,6 @@ module system_top ( .ddr_reset_n (ddr_reset_n), .ddr_we_n (ddr_we_n), .enable (enable), - .eth1_intn (1'b1), - .eth1_mdio_mdc (eth1_mdc), - .eth1_mdio_mdio_io (eth1_mdio), - .eth1_rgmii_rd (eth1_rgmii_rxdata), - .eth1_rgmii_rx_ctl (eth1_rgmii_rxctl), - .eth1_rgmii_rxc (eth1_rgmii_rxclk), - .eth1_rgmii_td (eth1_rgmii_txdata), - .eth1_rgmii_tx_ctl (eth1_rgmii_txctl), - .eth1_rgmii_txc (eth1_rgmii_txclk), .fixed_io_ddr_vrn (fixed_io_ddr_vrn), .fixed_io_ddr_vrp (fixed_io_ddr_vrp), .fixed_io_mio (fixed_io_mio), @@ -347,29 +180,11 @@ module system_top ( .fixed_io_ps_porb (fixed_io_ps_porb), .fixed_io_ps_srstb (fixed_io_ps_srstb), .gp_in_0 (gp_in_s[31:0]), - .gp_in_1 (gp_in_s[63:32]), .gp_out_0 (gp_out_s[31:0]), - .gp_out_1 (gp_out_s[63:32]), .gpio_i (gpio_i), .gpio_o (gpio_o), .gpio_t (gpio_t), .gps_pps (1'b0), - .gt_ref_clk_0 (gt_ref_clk_0), - .gt_ref_clk_1 (gt_ref_clk_1), - .gt_rx_n (gt_rx_n), - .gt_rx_p (gt_rx_p), - .gt_tx_n (gt_tx_n), - .gt_tx_p (gt_tx_p), - .hdmi_data (hdmi_data), - .hdmi_data_e (hdmi_data_e), - .hdmi_hsync (hdmi_hsync), - .hdmi_out_clk (hdmi_out_clk), - .hdmi_vsync (hdmi_vsync), - .i2s_bclk (i2s_bclk), - .i2s_lrclk (i2s_lrclk), - .i2s_mclk (i2s_mclk), - .i2s_sdata_in (i2s_sdata_in), - .i2s_sdata_out (i2s_sdata_out), .iic_main_scl_io (iic_scl), .iic_main_sda_io (iic_sda), .otg_vbusoc (1'b0), @@ -379,16 +194,15 @@ module system_top ( .rx_data_in_p (rx_data_in_p), .rx_frame_in_n (rx_frame_in_n), .rx_frame_in_p (rx_frame_in_p), - .spdif (spdif), .spi0_clk_i (1'b0), - .spi0_clk_o (spi_clk_s), - .spi0_csn_0_o (spi_csn_s[0]), - .spi0_csn_1_o (spi_csn_s[1]), + .spi0_clk_o (spi_clk), + .spi0_csn_0_o (spi_csn), + .spi0_csn_1_o (), .spi0_csn_2_o (), .spi0_csn_i (1'b1), - .spi0_sdi_i (spi_miso_s), + .spi0_sdi_i (spi_miso), .spi0_sdo_i (1'b0), - .spi0_sdo_o (spi_mosi_s), + .spi0_sdo_o (spi_mosi), .spi1_clk_i (1'b0), .spi1_clk_o (), .spi1_csn_0_o (), @@ -398,10 +212,9 @@ module system_top ( .spi1_sdi_i (1'b0), .spi1_sdo_i (1'b0), .spi1_sdo_o (), - .sys_cpu_clk_out (sys_cpu_clk), - .tdd_sync_i (tdd_sync_i), - .tdd_sync_o (tdd_sync_o), - .tdd_sync_t (tdd_sync_t), + .tdd_sync_i (1'b0), + .tdd_sync_o (), + .tdd_sync_t (), .tx_clk_out_n (tx_clk_out_n), .tx_clk_out_p (tx_clk_out_p), .tx_data_out_n (tx_data_out_n),