xcvr updates- board procedure
parent
b1a9bd96f1
commit
8f562fd069
|
@ -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]
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
###################################################################################################
|
||||
|
|
Loading…
Reference in New Issue