aboutsummaryrefslogtreecommitdiffstats
path: root/fpga/usrp3/top/x400/x4xx.v
diff options
context:
space:
mode:
Diffstat (limited to 'fpga/usrp3/top/x400/x4xx.v')
-rw-r--r--fpga/usrp3/top/x400/x4xx.v38
1 files changed, 32 insertions, 6 deletions
diff --git a/fpga/usrp3/top/x400/x4xx.v b/fpga/usrp3/top/x400/x4xx.v
index 4cc97b974..8338149f5 100644
--- a/fpga/usrp3/top/x400/x4xx.v
+++ b/fpga/usrp3/top/x400/x4xx.v
@@ -557,8 +557,9 @@ module x4xx (
wire [3:0] eth0_link_up, eth0_activity;
wire [3:0] eth1_link_up, eth1_activity;
- wire [31:0] gpio_0_tri_i;
- wire [31:0] gpio_0_tri_o;
+ wire [63:0] gpio_0_tri_i;
+ wire [63:0] gpio_0_tri_o;
+ wire [63:0] gpio_0_tri_t;
// RFDC AXI4-Stream interfaces
//
@@ -707,8 +708,20 @@ module x4xx (
assign pl_ps_irq1[6] = eth1_rx_irq[0] || eth1_rx_irq[1] || eth1_rx_irq[2] || eth1_rx_irq[3];
assign pl_ps_irq1[7] = eth1_tx_irq[0] || eth1_tx_irq[1] || eth1_tx_irq[2] || eth1_tx_irq[3];
- // GPIO inputs (assigned from 31 decreasing)
+ // BD DIO signals
+ wire [11:0] ps_gpio_out_a;
+ wire [11:0] ps_gpio_in_a;
+ wire [11:0] ps_gpio_ddr_a;
+ wire [11:0] ps_gpio_out_b;
+ wire [11:0] ps_gpio_in_b;
+ wire [11:0] ps_gpio_ddr_b;
+
+ // GPIO inputs (assigned from 63 decreasing)
//
+ // DIO Control
+ assign gpio_0_tri_i[63:56] = 8'b0;
+ assign gpio_0_tri_i[55:44] = ps_gpio_in_b;
+ assign gpio_0_tri_i[43:32] = ps_gpio_in_a;
// Make the current PPS signal available to the PS.
assign gpio_0_tri_i[31] = pps_refclk;
assign gpio_0_tri_i[30] = 0; //unused
@@ -738,6 +751,13 @@ module x4xx (
// Drive the CPLD JTAG enable line (active high) with GPIO[1] from the PS.
assign PL_CPLD_JTAGEN = gpio_0_tri_o[1];
+ // propagate db GPIO direction and output control
+ assign ps_gpio_ddr_a = gpio_0_tri_t[43:32];
+ assign ps_gpio_out_a = gpio_0_tri_o[43:32];
+
+ assign ps_gpio_ddr_b = gpio_0_tri_t[55:44];
+ assign ps_gpio_out_b = gpio_0_tri_o[55:44];
+
x4xx_ps_rfdc_bd x4xx_ps_rfdc_bd_i (
.adc_data_out_resetn_dclk (adc_data_out_resetn_dclk),
.adc_enable_data_rclk (adc_enable_data_rclk),
@@ -943,7 +963,7 @@ module x4xx (
.dac1_clk_clk_p (DAC_CLK_P[1]),
.gpio_0_tri_i (gpio_0_tri_i),
.gpio_0_tri_o (gpio_0_tri_o),
- .gpio_0_tri_t (),
+ .gpio_0_tri_t (gpio_0_tri_t),
.m_axi_eth_internal_awaddr (axi_eth_internal_awaddr),
.m_axi_eth_internal_awprot (),
.m_axi_eth_internal_awvalid (axi_eth_internal_awvalid),
@@ -2099,6 +2119,12 @@ module x4xx (
.gpio_out_b (gpio_out_b),
.gpio_en_a (gpio_en_a),
.gpio_en_b (gpio_en_b),
+ .ps_gpio_out_a (ps_gpio_out_a),
+ .ps_gpio_in_a (ps_gpio_in_a),
+ .ps_gpio_ddr_a (ps_gpio_ddr_a),
+ .ps_gpio_out_b (ps_gpio_out_b),
+ .ps_gpio_in_b (ps_gpio_in_b),
+ .ps_gpio_ddr_b (ps_gpio_ddr_b),
.qsfp_port_0_0_info (qsfp_port_0_0_info),
.qsfp_port_0_1_info (qsfp_port_0_1_info),
.qsfp_port_0_2_info (qsfp_port_0_2_info),
@@ -2220,12 +2246,12 @@ endmodule
// <li> Version last modified: @.VERSIONING_REGS_REGMAP..VERSION_LAST_MODIFIED
// </info>
// <value name="FPGA_CURRENT_VERSION_MAJOR" integer="7"/>
-// <value name="FPGA_CURRENT_VERSION_MINOR" integer="4"/>
+// <value name="FPGA_CURRENT_VERSION_MINOR" integer="5"/>
// <value name="FPGA_CURRENT_VERSION_BUILD" integer="0"/>
// <value name="FPGA_OLDEST_COMPATIBLE_VERSION_MAJOR" integer="7"/>
// <value name="FPGA_OLDEST_COMPATIBLE_VERSION_MINOR" integer="0"/>
// <value name="FPGA_OLDEST_COMPATIBLE_VERSION_BUILD" integer="0"/>
-// <value name="FPGA_VERSION_LAST_MODIFIED_TIME" integer="0x21091513"/>
+// <value name="FPGA_VERSION_LAST_MODIFIED_TIME" integer="0x21111210"/>
// </enumeratedtype>
// </group>
//</regmap>