From 39bb7ca23180e5c1c9ce315946d0cf7cb21d4807 Mon Sep 17 00:00:00 2001 From: Rejeesh Kutty Date: Wed, 13 Aug 2014 13:54:10 -0400 Subject: [PATCH] a5soc: fmcjesdadc1+hdmi version --- library/axi_hdmi_tx/axi_hdmi_tx_core.v | 4 +- projects/common/a5soc/a5soc_system_assign.tcl | 20 +++++---- projects/fmcjesdadc1/a5soc/system_bd.qsys | 43 ++++++++++++------- projects/fmcjesdadc1/a5soc/system_top.v | 24 ++++++++--- 4 files changed, 58 insertions(+), 33 deletions(-) diff --git a/library/axi_hdmi_tx/axi_hdmi_tx_core.v b/library/axi_hdmi_tx/axi_hdmi_tx_core.v index 0ff88b00f..4051d6c60 100644 --- a/library/axi_hdmi_tx/axi_hdmi_tx_core.v +++ b/library/axi_hdmi_tx/axi_hdmi_tx_core.v @@ -507,7 +507,7 @@ module axi_hdmi_tx_core ( end else if ((hdmi_full_range == 1'b0) && (hdmi_es_data_s[15:8] > 8'heb)) begin hdmi_es_data[15:8] <= 8'heb; - end else if ((hdmi_full_range == 1'b1) && + end else if ((hdmi_full_range == 1'b0) && (hdmi_es_data_s[15:8] < 8'h10)) begin hdmi_es_data[15:8] <= 8'h10; end else begin @@ -518,7 +518,7 @@ module axi_hdmi_tx_core ( end else if ((hdmi_full_range == 1'b0) && (hdmi_es_data_s[7:0] > 8'heb)) begin hdmi_es_data[7:0] <= 8'heb; - end else if ((hdmi_full_range == 1'b1) && + end else if ((hdmi_full_range == 1'b0) && (hdmi_es_data_s[7:0] < 8'h10)) begin hdmi_es_data[7:0] <= 8'h10; end else begin diff --git a/projects/common/a5soc/a5soc_system_assign.tcl b/projects/common/a5soc/a5soc_system_assign.tcl index 644567aa7..967d75b5b 100755 --- a/projects/common/a5soc/a5soc_system_assign.tcl +++ b/projects/common/a5soc/a5soc_system_assign.tcl @@ -15,7 +15,7 @@ set_instance_assignment -name IO_STANDARD "1.5 V" -to sys_clk # hdmi # data[6] (C23) and data[10] (C22) are not populated -# replacing with C19) and C18 for now +# replacing with C19 and C18 for now set_location_assignment PIN_A21 -to hdmi_out_clk set_location_assignment PIN_B25 -to hdmi_data[0] @@ -52,6 +52,17 @@ set_instance_assignment -name IO_STANDARD "2.5 V" -to hdmi_data[13] set_instance_assignment -name IO_STANDARD "2.5 V" -to hdmi_data[14] set_instance_assignment -name IO_STANDARD "2.5 V" -to hdmi_data[15] +# i2c (hdmi) + +set_location_assignment PIN_F26 -to hdmi_scl +set_location_assignment PIN_G26 -to hdmi_sda +set_location_assignment PIN_N23 -to hdmi_rstn +set_instance_assignment -name IO_STANDARD "2.5 V" -to hdmi_scl +set_instance_assignment -name IO_STANDARD "2.5 V" -to hdmi_sda +set_instance_assignment -name IO_STANDARD "2.5 V" -to hdmi_rstn +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to hdmi_scl +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to hdmi_sda + # led & switches set_location_assignment PIN_AD24 -to led[3] @@ -136,13 +147,6 @@ set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to eth1_rxd3 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to eth1_mdc set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to eth1_mdio -# i2c - -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to i2c0_scl -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to i2c0_sda -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i2c0_scl -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i2c0_sda - # ddr set_instance_assignment -name D5_DELAY 2 -to ddr3_ck_p diff --git a/projects/fmcjesdadc1/a5soc/system_bd.qsys b/projects/fmcjesdadc1/a5soc/system_bd.qsys index a2a0a8ae7..00ea3b89d 100755 --- a/projects/fmcjesdadc1/a5soc/system_bd.qsys +++ b/projects/fmcjesdadc1/a5soc/system_bd.qsys @@ -144,11 +144,11 @@ type = "String"; } } - element axi_hdmi_tx.s_axi + element axi_dmac_0.s_axi { datum baseAddress { - value = "0"; + value = "49152"; type = "String"; } } @@ -160,6 +160,14 @@ type = "String"; } } + element axi_hdmi_tx.s_axi + { + datum baseAddress + { + value = "0"; + type = "String"; + } + } element axi_dmac_1.s_axi { datum baseAddress @@ -168,14 +176,6 @@ type = "String"; } } - element axi_dmac_0.s_axi - { - datum baseAddress - { - value = "49152"; - type = "String"; - } - } element axi_ad9250_1.s_axi { datum baseAddress @@ -505,6 +505,17 @@ internal="axi_hdmi_tx.hdmi_if" type="conduit" dir="end" /> + + + @@ -949,8 +960,8 @@ - - + + @@ -997,7 +1008,7 @@ - + @@ -1411,9 +1422,9 @@ - + - + @@ -1423,7 +1434,7 @@ - + diff --git a/projects/fmcjesdadc1/a5soc/system_top.v b/projects/fmcjesdadc1/a5soc/system_top.v index a56c71a5d..97d810c5f 100755 --- a/projects/fmcjesdadc1/a5soc/system_top.v +++ b/projects/fmcjesdadc1/a5soc/system_top.v @@ -101,8 +101,6 @@ module system_top ( usb1_d7, uart0_rx, uart0_tx, - i2c0_scl, - i2c0_sda, // board gpio @@ -114,6 +112,9 @@ module system_top ( hdmi_out_clk, hdmi_data, + hdmi_scl, + hdmi_sda, + hdmi_rstn, // lane interface @@ -190,8 +191,6 @@ module system_top ( inout usb1_d7; input uart0_rx; output uart0_tx; - inout i2c0_scl; - inout i2c0_sda; // board gpio @@ -203,6 +202,9 @@ module system_top ( output hdmi_out_clk; output [ 15:0] hdmi_data; + inout hdmi_scl; + inout hdmi_sda; + output hdmi_rstn; // lane interface @@ -239,6 +241,8 @@ module system_top ( wire spi_mosi; wire spi_miso; + wire hdmi_scl_oe; + wire hdmi_sda_oe; wire adc0_enable_a_s; wire [ 31:0] adc0_data_a_s; wire adc0_enable_b_s; @@ -353,6 +357,10 @@ module system_top ( .spi_miso (spi_miso), .spi_sdio (spi_sdio)); + assign hdmi_rstn = 1'b1; + assign hdmi_scl = (hdmi_scl_oe == 1'b1) ? 1'b0 : 1'bz; + assign hdmi_sda = (hdmi_sda_oe == 1'b1) ? 1'b0 : 1'bz; + system_bd i_system_bd ( .sys_hps_memory_mem_a (ddr3_a), .sys_hps_memory_mem_ba (ddr3_ba), @@ -470,8 +478,6 @@ module system_top ( .sys_hps_io_hps_io_usb1_inst_NXT (usb1_nxt), .sys_hps_io_hps_io_uart0_inst_RX (uart0_rx), .sys_hps_io_hps_io_uart0_inst_TX (uart0_tx), - .sys_hps_io_hps_io_i2c0_inst_SDA (i2c0_sda), - .sys_hps_io_hps_io_i2c0_inst_SCL (i2c0_scl), .sys_hps_h2f_reset_reset_n (sys_resetn), .sys_gpio_external_connection_in_port ({rx_xcvr_status_s, 4'd0, push_buttons, 4'd0, dip_switches}), .sys_gpio_external_connection_out_port ({14'd0, rx_sw_rstn_s, rx_sysref_s, 12'd0, led}), @@ -488,7 +494,11 @@ module system_top ( .axi_hdmi_tx_0_hdmi_if_h36_hsync (), .axi_hdmi_tx_0_hdmi_if_h36_vsync (), .axi_hdmi_tx_0_hdmi_if_h36_data_e (), - .axi_hdmi_tx_0_hdmi_if_h36_data ()); + .axi_hdmi_tx_0_hdmi_if_h36_data (), + .sys_hps_i2c0_scl_in_clk (hdmi_scl), + .sys_hps_i2c0_clk_clk (hdmi_scl_oe), + .sys_hps_i2c0_out_data (hdmi_sda_oe), + .sys_hps_i2c0_sda (hdmi_sda)); endmodule