xcvr updates- board procedure

main
Rejeesh Kutty 2016-11-22 14:43:36 -05:00
parent b1a9bd96f1
commit 8f562fd069
3 changed files with 93 additions and 55 deletions

View File

@ -131,12 +131,14 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 0) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 0)} \
[ipx::get_ports cpll_ref_clk_0 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_0 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_0 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 0) or \
(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 0)} \
[ipx::get_ports qpll_ref_clk_0 -of_objects [ipx::current_core]]
[ipx::get_ports qpll_ref_clk_0 -of_objects [ipx::current_core]] \
[ipx::get_ports up_qpll_rst_0 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 0) or \
@ -167,7 +169,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 1) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 1)} \
[ipx::get_ports cpll_ref_clk_1 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_1 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_1 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 2} \
[ipx::get_bus_interfaces up_es_2 -of_objects [ipx::current_core]]
@ -193,7 +196,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 2) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 2)} \
[ipx::get_ports cpll_ref_clk_2 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_2 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_2 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 3} \
[ipx::get_bus_interfaces up_es_3 -of_objects [ipx::current_core]]
@ -219,7 +223,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 3) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 3)} \
[ipx::get_ports cpll_ref_clk_3 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_3 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_3 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 4} \
[ipx::get_bus_interfaces up_es_4 -of_objects [ipx::current_core]]
@ -245,12 +250,14 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 4) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 4)} \
[ipx::get_ports cpll_ref_clk_4 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_4 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_4 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 4) or \
(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 4)} \
[ipx::get_ports qpll_ref_clk_4 -of_objects [ipx::current_core]]
[ipx::get_ports qpll_ref_clk_4 -of_objects [ipx::current_core]] \
[ipx::get_ports up_qpll_rst_4 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 4) or \
@ -281,7 +288,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 5) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 5)} \
[ipx::get_ports cpll_ref_clk_5 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_5 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_5 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 6} \
[ipx::get_bus_interfaces up_es_6 -of_objects [ipx::current_core]]
@ -307,7 +315,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 6) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 6)} \
[ipx::get_ports cpll_ref_clk_6 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_6 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_6 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 7} \
[ipx::get_bus_interfaces up_es_7 -of_objects [ipx::current_core]]
@ -333,7 +342,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 7) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 7)} \
[ipx::get_ports cpll_ref_clk_7 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_7 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_7 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 8} \
[ipx::get_bus_interfaces up_es_8 -of_objects [ipx::current_core]]
@ -359,12 +369,14 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 8) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 8)} \
[ipx::get_ports cpll_ref_clk_8 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_8 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_8 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 8) or \
(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 8)} \
[ipx::get_ports qpll_ref_clk_8 -of_objects [ipx::current_core]]
[ipx::get_ports qpll_ref_clk_8 -of_objects [ipx::current_core]] \
[ipx::get_ports up_qpll_rst_8 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 8) or \
@ -395,7 +407,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 9) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 9)} \
[ipx::get_ports cpll_ref_clk_9 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_9 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_9 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 10} \
[ipx::get_bus_interfaces up_es_10 -of_objects [ipx::current_core]]
@ -421,7 +434,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 10) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 10)} \
[ipx::get_ports cpll_ref_clk_10 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_10 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_10 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 11} \
[ipx::get_bus_interfaces up_es_11 -of_objects [ipx::current_core]]
@ -447,7 +461,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 11) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 11)} \
[ipx::get_ports cpll_ref_clk_11 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_11 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_11 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 12} \
[ipx::get_bus_interfaces up_es_12 -of_objects [ipx::current_core]]
@ -473,12 +488,14 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 12) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 12)} \
[ipx::get_ports cpll_ref_clk_12 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_12 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_12 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 12) or \
(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 12)} \
[ipx::get_ports qpll_ref_clk_12 -of_objects [ipx::current_core]]
[ipx::get_ports qpll_ref_clk_12 -of_objects [ipx::current_core]] \
[ipx::get_ports up_qpll_rst_12 -of_objects [ipx::current_core]]
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 12) or \
@ -509,7 +526,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 13) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 13)} \
[ipx::get_ports cpll_ref_clk_13 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_13 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_13 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 14} \
[ipx::get_bus_interfaces up_es_14 -of_objects [ipx::current_core]]
@ -535,7 +553,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 14) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 14)} \
[ipx::get_ports cpll_ref_clk_14 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_14 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_14 -of_objects [ipx::current_core]]
set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 15} \
[ipx::get_bus_interfaces up_es_15 -of_objects [ipx::current_core]]
@ -561,7 +580,8 @@ set_property enablement_dependency {spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF
set_property enablement_dependency \
{(spirit:decode(id('MODELPARAM_VALUE.TX_NUM_OF_LANES')) > 15) or \
(spirit:decode(id('MODELPARAM_VALUE.RX_NUM_OF_LANES')) > 15)} \
[ipx::get_ports cpll_ref_clk_15 -of_objects [ipx::current_core]]
[ipx::get_ports cpll_ref_clk_15 -of_objects [ipx::current_core]] \
[ipx::get_ports up_cpll_rst_15 -of_objects [ipx::current_core]]
ipx::save_core [ipx::current_core]

View File

@ -39,12 +39,20 @@ set_property -dict [list CONFIG.NUM_OF_CHANNELS {4}] $axi_ad9680_cpack
set util_fmcadc4_xcvr [create_bd_cell -type ip -vlnv analog.com:user:util_adxcvr:1.0 util_fmcadc4_xcvr]
set_property -dict [list CONFIG.RX_NUM_OF_LANES {8}] $util_fmcadc4_xcvr
set_property -dict [list CONFIG.TX_NUM_OF_LANES {0}] $util_fmcadc4_xcvr
set_property -dict [list CONFIG.CPLL_TX_OR_RX_N {1}] $util_fmcadc4_xcvr
create_bd_cell -type ip -vlnv analog.com:user:util_bsplit:1.0 util_bsplit_rx_data
set_property -dict [list CONFIG.CHANNEL_DATA_WIDTH {128}] [get_bd_cells util_bsplit_rx_data]
set_property -dict [list CONFIG.NUM_OF_CHANNELS {2}] [get_bd_cells util_bsplit_rx_data]
# reference clocks & resets
create_bd_port -dir I rx_ref_clk_0
ad_xcvrpll rx_ref_clk_0 util_fmcadc4_xcvr/qpll_ref_clk_*
ad_xcvrpll rx_ref_clk_0 util_fmcadc4_xcvr/cpll_ref_clk_*
ad_xcvrpll axi_ad9680_xcvr/up_pll_rst util_fmcadc4_xcvr/up_qpll_rst_*
ad_xcvrpll axi_ad9680_xcvr/up_pll_rst util_fmcadc4_xcvr/up_cpll_rst_*
# connections (gt)
ad_xcvrcon util_fmcadc4_xcvr axi_ad9680_xcvr axi_ad9680_jesd

View File

@ -100,6 +100,43 @@ proc ad_connect {p_name_1 p_name_2} {
}
}
proc ad_disconnect {p_name_1 p_name_2} {
set m_name_1 [ad_connect_type $p_name_1]
set m_name_2 [ad_connect_type $p_name_2]
if {[get_property CLASS $m_name_1] eq "bd_net"} {
disconnect_bd_net $m_name_1 $m_name_2
return
}
}
proc ad_reconct {p_name_1 p_name_2} {
set m_name_1 [ad_connect_type $p_name_1]
set m_name_2 [ad_connect_type $p_name_2]
if {[get_property CLASS $m_name_1] eq "bd_pin"} {
delete_bd_objs -quiet [get_bd_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_1]]
delete_bd_objs -quiet [get_bd_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_2]]
}
if {[get_property CLASS $m_name_1] eq "bd_intf_pin"} {
delete_bd_objs -quiet [get_bd_intf_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_1]]
delete_bd_objs -quiet [get_bd_intf_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_2]]
}
ad_connect $p_name_1 $p_name_2
}
###################################################################################################
###################################################################################################
proc ad_xcvrcon {u_xcvr a_xcvr a_jesd} {
global xcvr_tx_index
@ -166,38 +203,11 @@ proc ad_xcvrcon {u_xcvr a_xcvr a_jesd} {
}
}
proc ad_disconnect {p_name_1 p_name_2} {
proc ad_xcvrpll {m_src m_dst} {
set m_name_1 [ad_connect_type $p_name_1]
set m_name_2 [ad_connect_type $p_name_2]
if {[get_property CLASS $m_name_1] eq "bd_net"} {
disconnect_bd_net $m_name_1 $m_name_2
return
foreach p_dst [get_bd_pins -quiet $m_dst] {
connect_bd_net [ad_connect_type $m_src] $p_dst
}
}
proc ad_reconct {p_name_1 p_name_2} {
set m_name_1 [ad_connect_type $p_name_1]
set m_name_2 [ad_connect_type $p_name_2]
if {[get_property CLASS $m_name_1] eq "bd_pin"} {
delete_bd_objs -quiet [get_bd_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_1]]
delete_bd_objs -quiet [get_bd_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_2]]
}
if {[get_property CLASS $m_name_1] eq "bd_intf_pin"} {
delete_bd_objs -quiet [get_bd_intf_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_1]]
delete_bd_objs -quiet [get_bd_intf_nets -quiet -of_objects \
[find_bd_objs -relation connected_to $m_name_2]]
}
ad_connect $p_name_1 $p_name_2
}
###################################################################################################