diff --git a/.gitignore b/.gitignore index c06aa8e5216ea042be44e7bab0fc42ddc5736f9d..b8631ee5e8a1bf40facae30e3366ae7e56e3875e 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,6 @@ simulation/UVVMtests/_Alert.txt simulation/UVVMtests/_Log.txt simulation/UVVMtests/vsim.wlf simulation/samples/ + +# python venv +scripts/helper/.venv diff --git a/.gitmodules b/.gitmodules index c8ed106d77618189204caca01d235d24e56db5ba..69e03336c99fadc3386fdba2718561de78d60ad6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -24,3 +24,6 @@ [submodule "simulation/VUnit/xpm_vhdl"] path = simulation/VUnit/xpm_vhdl url = https://github.com/fransschreuder/xpm_vhdl.git +[submodule "sources/templates/yaml/regmap"] + path = sources/templates/yaml/regmap + url = ../regmap.git diff --git a/scripts/FELIX_top/FELIX_import_sigasi.tcl b/scripts/FELIX_top/FELIX_import_sigasi.tcl index 728a594383a3211590e672f7a21273d7cfa3fbb8..575b05164f6936a1d38a192f0188f84d51380c52 100755 --- a/scripts/FELIX_top/FELIX_import_sigasi.tcl +++ b/scripts/FELIX_top/FELIX_import_sigasi.tcl @@ -53,8 +53,10 @@ source ../filesets/64b66b_fileset.tcl source ../filesets/core1990_interlaken_fileset.tcl source ../filesets/itk_strips_fileset.tcl source ../filesets/bcm_fileset.tcl -#source ../filesets/fmemu_fileset.tcl -#source ../filesets/fmemu_top_fileset.tcl +source ../filesets/fmemu_fileset.tcl +source ../filesets/fmemu_top_fileset.tcl +source ../filesets/felig_fileset.tcl +source ../filesets/lpgbt_fe_core_fileset.tcl #Actually execute all the filesets source ../helper/sigasi_import_generic.tcl diff --git a/scripts/filesets/felig_fileset.tcl b/scripts/filesets/felig_fileset.tcl index 210e3a2994e9e4a4036ce3a6073e9b2dace64c46..e85054bba048a2aacbb96fedd546462fd3179d0e 100644 --- a/scripts/filesets/felig_fileset.tcl +++ b/scripts/filesets/felig_fileset.tcl @@ -37,10 +37,10 @@ set VHDL_FILES [concat $VHDL_FILES \ FELIG/packages/type_lib.vhd \ FELIG/templates/LaneRegisterRemapper.vhd \ FELIG/checkers/gbtword_checker.vhd \ - FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core.vhd \ - FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper.vhd \ + FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core_felig.vhd \ + FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper_felig.vhd \ FELIG/PRandomDGen/randomd_gen.vhd \ - FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap.vhd \ + FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap_felig.vhd \ ttc/ttc_decoder/TTC_hamming_decoder_alme.vhd \ FELIG/housekeeping/housekeeping_module_FELIG.vhd \ FELIG/data_generator/elink_printer_v2.vhd \ @@ -114,16 +114,15 @@ set XCI_FILES_KU [concat $XCI_FILES_KU \ Distr_LUT_felig.xci \ fifo_GBT2CR.xci \ fifo_generator_fe.xci \ - rxclkgen.xci \ - ila_0.xci \ - ila_link_frame.xci \ - ila_downlink.xci \ - ila_header.xci \ - ila_lmk_signals.xci \ - ila_signals_to_LMK.xci \ - ila_tx128.xci \ - ila_SM_LMK.xci \ - ] + rxclkgen.xci] + #ila_link_frame.xci \ + #ila_downlink.xci \ + #ila_header.xci \ + #ila_lmk_signals.xci \ + #ila_signals_to_LMK.xci \ + #ila_tx128.xci \ + #ila_SM_LMK.xci \ + #] set XDC_FILES_BNL712 [concat $XDC_FILES_BNL712 \ felix_top_BNL712.xdc \ diff --git a/scripts/filesets/fmemu_fileset.tcl b/scripts/filesets/fmemu_fileset.tcl index 711d0a7223cdaf63738aa40a6cf35219916d5df0..1377ec1e648cd9bb64fa8e1fb050607f46a95573 100644 --- a/scripts/filesets/fmemu_fileset.tcl +++ b/scripts/filesets/fmemu_fileset.tcl @@ -31,9 +31,9 @@ set VHDL_FILES [concat $VHDL_FILES \ CRC32/CRC32_v2.vhd \ CRC20/crc.vhd \ FullModeTransmitter/FMchannelTXctrl_emu.vhd \ - PRandomDGen/randomd_gen.vhd \ - Xoff_decoder/8b10_dec.vhd \ - Xoff_decoder/8b10_dec_wrap.vhd \ + PRandomDGen/randomd_gen_fmemu.vhd \ + Xoff_decoder/8b10_dec_fmemu.vhd \ + Xoff_decoder/8b10_dec_wrap_fmemu.vhd \ Xoff_decoder/InputShifterNb.vhd \ GBT/gbt_code/FELIX_gbt_wrapper_no_gth.vhd \ felixUserSupport/packages/FMTransceiverPackage.vhd \ diff --git a/scripts/filesets/housekeeping_felig_fileset.tcl b/scripts/filesets/housekeeping_felig_fileset.tcl deleted file mode 100644 index d50313e729f66cf75fea1fcb39c1dd678f9ffd0f..0000000000000000000000000000000000000000 --- a/scripts/filesets/housekeeping_felig_fileset.tcl +++ /dev/null @@ -1,67 +0,0 @@ - -# This file is part of the FELIX firmware distribution (https://gitlab.cern.ch/atlas-tdaq-felix/firmware/). -# Copyright (C) 2001-2021 CERN for the benefit of the ATLAS collaboration. -# Authors: -# mtrovato -# Frans Schreuder -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set VHDL_FILES [concat $VHDL_FILES \ - shared/card_type_specific_ios.vhd \ - shared/xadc_drp.vhd \ - shared/dna.vhd \ - housekeeping/housekeeping_module.vhd \ - housekeeping/i2c_interface.vhd \ - housekeeping/clock_and_reset.vhd \ - housekeeping/debug_port_module.vhd \ - housekeeping/GenericConstantsToRegs.vhd \ - housekeeping/gc_multichannel_frequency_meter.vhd \ - housekeeping/gc_pulse_synchronizer.vhd \ - housekeeping/gc_pulse_synchronizer2.vhd \ - housekeeping/gc_sync_ffs.vhd \ - i2c_master/i2c.vhd] - -set VHDL_FILES_V7 [concat $VHDL_FILES_V7 \ - flash/flash_wrapper_stub.vhd] - -set VHDL_FILES_KU [concat $VHDL_FILES_KU \ - i2c_master/I2C_Master_PEX.vhd \ - FELIG/felix_modified/spi/LMK03200_spi.vhd \ - FELIG/felix_modified/spi/LMK03200_wrapper.vhd \ - shared/pex_init.vhd \ - flash/flash_wrapper.vhd \ - flash/flash_ipcore_bnl.vhd] - -set XCI_FILES [concat $XCI_FILES \ - I2C_RDFifo.xci \ - I2C_WRFifo.xci \ - clk_wiz_40_0.xci \ - clk_wiz_200_0.xci \ - clk_wiz_156_0.xci \ - clk_wiz_100_0.xci \ - clk_wiz_250.xci] - -#Kintex ultrascale only -set XCI_FILES_KU [concat $XCI_FILES_KU \ - system_management_wiz_0.xci] - -set VHDL_FILES_KU [concat $VHDL_FILES_KU \ - ip_cores/kintexUltrascale/xadc_wiz_0_stub.vhdl] - -#Virtex 7 only -set XCI_FILES_V7 [concat $XCI_FILES_V7 \ - xadc_wiz_0.xci] - -set VHDL_FILES_V7 [concat $VHDL_FILES_V7 \ - ip_cores/virtex7/system_management_wiz_0_stub.vhdl] diff --git a/scripts/helper/do_implementation_finish.tcl b/scripts/helper/do_implementation_finish.tcl index 8d9e69a17edb961f4ef60ca3362316d0f80dd650..bbcb970ea881c45266c31bc3012b6cc762aa606a 100644 --- a/scripts/helper/do_implementation_finish.tcl +++ b/scripts/helper/do_implementation_finish.tcl @@ -169,7 +169,13 @@ cd $HDLDIR/output/ set pass [expr {[get_property SLACK [get_timing_paths -delay_type min_max]] >= 0}] set report [report_timing -slack_lesser_than 0 -return_string -nworst 10] set check_timing_report [check_timing -return_string] -report_utilization -name ${FileName} -spreadsheet_table "Hierarchy" -spreadsheet_file ${HDLDIR}/output/${FileName}.xlsx -spreadsheet_depth 8 +# report_utilization -name ${FileName} -spreadsheet_table "Hierarchy" -spreadsheet_file ${HDLDIR}/output/${FileName}.xlsx -spreadsheet_depth 8 +report_utilization -hierarchical -hierarchical_depth 8 -file ${HDLDIR}/output/${FileName}_util.txt +if {[catch {exec $scriptdir/../helper/generate_util_xlsx_wrapper.sh ${HDLDIR}/output/${FileName}_util.txt}] != 0} { + puts "Error generating Excel utilization report. Keeping the text report." +} else { + file delete ${HDLDIR}/output/${FileName}_util.txt +} set util [report_utilization -return_string] set power [report_power -return_string] set slack [get_property SLACK [get_timing_paths -delay_type min_max]] diff --git a/scripts/helper/do_implementation_pre.tcl b/scripts/helper/do_implementation_pre.tcl index 2983476f5382319fdbba1cbc2ba827160cde2bc3..4938b119e2e7fa9f31cec9e0e4685189aa25dd75 100644 --- a/scripts/helper/do_implementation_pre.tcl +++ b/scripts/helper/do_implementation_pre.tcl @@ -6,6 +6,7 @@ # Elena Zhivun # Thei Wijnen # Frans Schreuder +# Marius Wensing # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -36,8 +37,6 @@ if { [file exists ../../.git/hooks] == 1 } { puts "no git hooks directory found, omitting creation of symbolic link" } - - set FIRMWARE_MODE_GBT 0 set FIRMWARE_MODE_FULL 1 set FIRMWARE_MODE_LTDB 2 diff --git a/scripts/helper/generate_util_xlsx.py b/scripts/helper/generate_util_xlsx.py new file mode 100644 index 0000000000000000000000000000000000000000..df4a12e581bd5068ea653f51bdf6970f4c40a609 --- /dev/null +++ b/scripts/helper/generate_util_xlsx.py @@ -0,0 +1,99 @@ +# This file is part of the FELIX firmware distribution (https://gitlab.cern.ch/atlas-tdaq-felix/firmware/). +# Copyright (C) 2001-2024 CERN for the benefit of the ATLAS collaboration. +# Authors: +# Marius Wensing +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import xlsxwriter +import itertools +import os + +def usage(): + print("usage:") + print(" generate_util_xlsx.py <filename>") + print() + print(" <filename> is the path to the Vivado utilization report") + print(" (generated with generate_utilization -hierarchical -hierarchical_depth 8 -file <filename>)") + +def main(argv): + # check if no argument has been supplied + if len(argv) == 0: + usage() + return 1 + + # check for --help/-h + if any(arg in argv[0] for arg in ["-h", "-help"]): + usage() + return 0 + + # get the filenames + txtfilename = argv[0] + xlsxfilename = os.path.splitext(txtfilename)[0] + ".xlsx" + + with open(txtfilename, "r") as f: + workbook = xlsxwriter.Workbook(xlsxfilename) + worksheet = workbook.add_worksheet("Utilization") + worksheet.outline_settings(True, False, False, False) + + # read line by line + skip = 2 + row = 0 + while True: + line = f.readline() + + if not line: + break + + # scan for beginning of table + if line.startswith('+'): + skip = skip - 1 + + # skip header lines or lines without pipe (|) + if (skip > 1) or not ('|' in line): + continue + + fields = line.split('|')[1:-1] + + if skip == 1: + bold = workbook.add_format({"bold": 1}) + + # we have the header row here + for (col, field) in enumerate(fields): + worksheet.write(row, col, field.strip(), bold) + else: + # we have a regular row here + # let's try to find out our hierarchy level + hier_level = int((sum(1 for _ in itertools.takewhile(str.isspace, fields[0]))-1) / 2) + hidden = hier_level > 1 + for (col, field) in enumerate(fields): + indent = workbook.add_format({"indent": hier_level}) + if col == 0: + worksheet.write(row, col, field.strip(), indent) + else: + worksheet.write(row, col, field.strip()) + + #worksheet.set_row(row, None, None, {"level": hier_level, "collapsed": True, "hidden": hidden}) + worksheet.set_row(row, None, None, {"level": hier_level, "hidden": hidden}) + + # next row + row = row + 1 + + worksheet.autofit() + workbook.close() + + return 0 + +if __name__ == "__main__": + sys.exit(main(sys.argv[1:])) diff --git a/scripts/helper/generate_util_xlsx_wrapper.sh b/scripts/helper/generate_util_xlsx_wrapper.sh new file mode 100755 index 0000000000000000000000000000000000000000..161d14934f9e8e17b1a25b963228fae2913448d7 --- /dev/null +++ b/scripts/helper/generate_util_xlsx_wrapper.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# get script directory +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +# use virtual environment +VENV_DIR=${SCRIPT_DIR}/.venv + +# check if virtual environment exists +if ! [ -d ${VENV_DIR} ]; then + python -m venv ${VENV_DIR} +fi + +# activate virtual environment +source ${VENV_DIR}/bin/activate + +# install xlsxwriter +pip install xlsxwriter + +# run the python script +python ${SCRIPT_DIR}/generate_util_xlsx.py $* diff --git a/simulation/FELIG/felig_sim_64b66b_decoding.vhd b/simulation/FELIG/felig_sim_64b66b_decoding.vhd index 96d2bbfd7a281a6adb22dfe5ad4e9ce1f4c521fa..256dcbf622fa50af396a23cda77c30b557ddfd5e 100644 --- a/simulation/FELIG/felig_sim_64b66b_decoding.vhd +++ b/simulation/FELIG/felig_sim_64b66b_decoding.vhd @@ -41,13 +41,13 @@ architecture Behavioral of felig_sim_64b66b_decoding is signal clk40 : std_logic:= '0'; --input signal reset : std_logic_vector(4 downto 0) := (others => '0'); --input - signal lpGBT_UPLINK_USER_DATA_FOSEL : txrx224b_type(0 to 0); --input - signal LinkAligned_FOSEL : std_logic_vector(0 downto 0); --input - signal DecoderAligned : std_logic_vector(STREAMS_TOHOST-3 downto 0); --out - signal m_axis : axis_32_array_type(0 to STREAMS_TOHOST-1); --out - signal m_axis_tready : axis_tready_array_type(0 to STREAMS_TOHOST-1); --input + signal lpGBT_UPLINK_USER_DATA_FOSEL : txrx224b_type(0 to 1); --input + signal LinkAligned_FOSEL : std_logic_vector(0 to 1); --input + signal DecoderAligned : std_logic_vector(2*STREAMS_TOHOST-4-1 downto 0); --out -- @suppress "signal DecoderAligned is never read" + signal m_axis : axis_32_2d_array_type(0 to 1, 0 to STREAMS_TOHOST-3); --out + signal m_axis_tready : axis_tready_2d_array_type(0 to 1, 0 to STREAMS_TOHOST-3); --input signal aclk : std_logic:= '0'; --input - signal m_axis_prog_empty : axis_tready_array_type(0 to STREAMS_TOHOST-1); --out + signal m_axis_prog_empty : axis_tready_2d_array_type(0 to 1, 0 to STREAMS_TOHOST-3); --out signal register_map_control : register_map_control_type; --input -- signal PCIE_ENDPOINT : integer := 0; @@ -137,7 +137,7 @@ begin --clock clk40 <= clk40_in; - aclk_tmp_b <= not aclk_tmp_b after 3.125ns; + aclk_tmp_b <= not aclk_tmp_b after 3.125 ns; aclk <= aclk_tmp; rst_proc: process(clk40) @@ -254,43 +254,49 @@ begin BLOCKSIZE => 1024, SIMU => 1, STREAMS_TOHOST => STREAMS_TOHOST, - Link => LINK + Link => (LINK, LINK), + VERSAL => false ) port map( clk40 => clk40,--: in std_logic; --BC clock for DataIn - reset => '0',--reset(4),--: in std_logic; --Acitve high reset + --reset => '0',--reset(4),--: in std_logic; --Acitve high reset MsbFirst => MSB,--: in std_logic; --Default 1, make 0 to reverse the bit order - LinkData => lpGBT_UPLINK_USER_DATA_FOSEL(0), --LinkData, --to create 223 downto 0 - LinkAligned => LinkAligned_FOSEL(0), --1 --LinkAligned, + LinkData => lpGBT_UPLINK_USER_DATA_FOSEL(0 to 1), --LinkData, --to create 223 downto 0 + LinkAligned => LinkAligned_FOSEL(0) & LinkAligned_FOSEL(1), --1 --LinkAligned, DecoderAligned_out => DecoderAligned, - m_axis => m_axis(0 to STREAMS_TOHOST-3),--: out axis_32_type; --FIFO read port (axi stream) - m_axis_tready => m_axis_tready(0 to STREAMS_TOHOST-3), --x"FE00000",--: in std_logic; --FIFO read tready (axi stream) + m_axis => m_axis,--: out axis_32_type; --FIFO read port (axi stream) + m_axis_tready => m_axis_tready, --x"FE00000",--: in std_logic; --FIFO read tready (axi stream) m_axis_aclk => aclk,--: in std_logic; --FIFO read clock (axi stream) - m_axis_prog_empty => m_axis_prog_empty(0 to STREAMS_TOHOST-3), --: out std_logic - register_map_control => register_map_control + m_axis_prog_empty => m_axis_prog_empty, --: out std_logic + register_map_control => register_map_control, + clk160 => aclk, + daq_reset => '0', + daq_fifo_flush => '0', + rx_soft_err_rst => "00" ); --axis stuff - m_axis(STREAMS_TOHOST-2).tvalid <= '0'; - m_axis(STREAMS_TOHOST-2).tdata <= (others => '0'); - m_axis(STREAMS_TOHOST-2).tlast <= '0'; - m_axis(STREAMS_TOHOST-2).tkeep <= (others => '0'); - m_axis(STREAMS_TOHOST-2).tuser <= (others => '0'); - m_axis_prog_empty(STREAMS_TOHOST-2) <= '1'; - m_axis(STREAMS_TOHOST-1).tvalid <= '0'; - m_axis(STREAMS_TOHOST-1).tdata <= (others => '0'); - m_axis(STREAMS_TOHOST-1).tlast <= '0'; - m_axis(STREAMS_TOHOST-1).tkeep <= (others => '0'); - m_axis(STREAMS_TOHOST-1).tuser <= (others => '0'); - m_axis_prog_empty(STREAMS_TOHOST-1) <= '1'; - - s_axis <= m_axis; - m_axis_tready <= s_axis_tready; - s_axis_prog_empty <= m_axis_prog_empty; + m_axis(0,STREAMS_TOHOST-2).tvalid <= '0'; + m_axis(0,STREAMS_TOHOST-2).tdata <= (others => '0'); + m_axis(0,STREAMS_TOHOST-2).tlast <= '0'; + m_axis(0,STREAMS_TOHOST-2).tkeep <= (others => '0'); + m_axis(0,STREAMS_TOHOST-2).tuser <= (others => '0'); + m_axis_prog_empty(0,STREAMS_TOHOST-2) <= '1'; + m_axis(0,STREAMS_TOHOST-1).tvalid <= '0'; + m_axis(0,STREAMS_TOHOST-1).tdata <= (others => '0'); + m_axis(0,STREAMS_TOHOST-1).tlast <= '0'; + m_axis(0,STREAMS_TOHOST-1).tkeep <= (others => '0'); + m_axis(0,STREAMS_TOHOST-1).tuser <= (others => '0'); + m_axis_prog_empty(0,STREAMS_TOHOST-1) <= '1'; + g_axis_connect: for i in 0 to STREAMS_TOHOST-3 generate + s_axis(i) <= m_axis(0,i); + m_axis_tready(0,i) <= s_axis_tready(i); + s_axis_prog_empty(i) <= m_axis_prog_empty(0,i); + end generate; aresetn <= not reset(4); chStreamController: entity work.ToHostAxiStreamController @@ -298,19 +304,22 @@ begin FMCHid => LINK, toHostTimeoutBitn => toHostTimeoutBitn, BLOCKSIZE => 1024, --BLOCKSIZE, - CHUNK_TRAILER_32B => false,--;CHUNK_TRAILER_32B, - STREAMS_TOHOST => STREAMS_TOHOST + --CHUNK_TRAILER_32B => false,--;CHUNK_TRAILER_32B, + STREAMS_TOHOST => STREAMS_TOHOST, + ACLK_FREQ => 160 --debug -- PCIE_ENDPOINT => PCIE_ENDPOINT ) port map ( aclk => aclk, - aresetn => aresetn, + daq_reset => reset(4), + --aresetn => aresetn, s_axis_in => s_axis, s_axis_tready_out => s_axis_tready, s_axis_prog_empty_in => s_axis_prog_empty, timeOutEna_i => timeCnt_ena, timeCnt_max => timeCnt_max, + instant_timeout_enable => (others => '0'), prog_full_in => '0', --ch_prog_full, -- in, downstream wm fifo is full or main , can't happen in normal operation word32out => chFIFO_din32, -- to chFIFO word32out_valid => chFIFO_din32_valid -- to chFIFO diff --git a/simulation/ItkStrip/tb_playback_controller.do b/simulation/ItkStrip/tb_playback_controller.do new file mode 100644 index 0000000000000000000000000000000000000000..bc69a9411d29ba81113f7ef67ec5b384d2e40ead --- /dev/null +++ b/simulation/ItkStrip/tb_playback_controller.do @@ -0,0 +1,71 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/clk +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/rst +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/readout_active_o +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/data_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/valid_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/ready_o +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/set_write_addr_pulse_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/write_addr_start_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/read_addr_start_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/data_o +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/valid_o +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/wea +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/readout_active_reg +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/ready_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/valid_reg +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/ready_reg +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/data_reg +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/state +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/start_pulse_i +add wave -noupdate -radix unsigned /tb_playback_controller_vunit/uut_tb/DUT/addra +add wave -noupdate -radix unsigned /tb_playback_controller_vunit/uut_tb/DUT/read_addr_stop_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/loop_active +add wave -noupdate -radix unsigned /tb_playback_controller_vunit/uut_tb/DUT/loop_counter +add wave -noupdate /tb_playback_controller_vunit/uut_tb/DUT/trickle_loops_i +add wave -noupdate -divider {New Divider} +add wave -noupdate /tb_playback_controller_vunit/uut_tb/uvvm_completed +add wave -noupdate /tb_playback_controller_vunit/uut_tb/trickle_loops +add wave -noupdate /tb_playback_controller_vunit/uut_tb/clk +add wave -noupdate /tb_playback_controller_vunit/uut_tb/rst +add wave -noupdate /tb_playback_controller_vunit/uut_tb/start_pulse_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/readout_active_o +add wave -noupdate /tb_playback_controller_vunit/uut_tb/set_write_addr_pulse_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/write_addr_start_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/read_addr_start_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/read_addr_stop_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/data_o +add wave -noupdate /tb_playback_controller_vunit/uut_tb/valid_o +add wave -noupdate /tb_playback_controller_vunit/uut_tb/ready_i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/data_in +add wave -noupdate /tb_playback_controller_vunit/uut_tb/verify_data_en +add wave -noupdate /tb_playback_controller_vunit/uut_tb/verify_data_done +add wave -noupdate /tb_playback_controller_vunit/uut_tb/verify_data_ack +add wave -noupdate /tb_playback_controller_vunit/uut_tb/valid_word_count +add wave -noupdate /tb_playback_controller_vunit/uut_tb/valid_word_count_rst +add wave -noupdate -divider {New Divider} +add wave -noupdate /tb_playback_controller_vunit/uut_tb/data_checker/data_expected_count +add wave -noupdate /tb_playback_controller_vunit/uut_tb/data_checker/loops_hack +add wave -noupdate /tb_playback_controller_vunit/uut_tb/data_checker/read_delay_clk_cycles +add wave -noupdate -radix unsigned /tb_playback_controller_vunit/uut_tb/data_checker/i +add wave -noupdate /tb_playback_controller_vunit/uut_tb/data_checker/loopy +add wave -noupdate -divider {New Divider} +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {1163323 ps} 0} +quietly wave cursor active 1 +configure wave -namecolwidth 210 +configure wave -valuecolwidth 181 +configure wave -justifyvalue left +configure wave -signalnamewidth 1 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits ns +update +WaveRestoreZoom {0 ps} {1220625 ps} diff --git a/simulation/ItkStrip/tb_playback_controller.vhd b/simulation/ItkStrip/tb_playback_controller.vhd index 92a64ea613189aca285e6e6754703e1071a0d244..74b8e670db5a46201e1ce76c6dcd9abb65c4cda6 100644 --- a/simulation/ItkStrip/tb_playback_controller.vhd +++ b/simulation/ItkStrip/tb_playback_controller.vhd @@ -36,20 +36,20 @@ library bitvis_vip_clock_generator; entity tb_playback_controller is generic( - use_vunit: boolean := false -- @suppress "Unused generic: use_vunit is not used in work.tb_playback_controller(RTL)" + use_vunit : boolean := false -- @suppress "Unused generic: use_vunit is not used in work.tb_playback_controller(RTL)" ); port( - uvvm_completed: out std_logic := '0' + uvvm_completed : out std_logic := '0' ); end entity tb_playback_controller; architecture RTL of tb_playback_controller is - signal clk : std_logic; -- 40 MHz BC clock + signal clk : std_logic; -- 40 MHz BC clock signal rst : std_logic; - signal start_pulse_i : std_logic := '0'; -- toggle this input to initiate the readout - signal readout_active_o : std_logic; -- '1' when the readout is in progress + signal start_pulse_i : std_logic := '0'; -- toggle this input to initiate the readout + signal readout_active_o : std_logic; -- '1' when the readout is in progress - subtype t_data is std_logic_vector(playback_controller_data'range); -- 8 bit wide + subtype t_data is std_logic_vector(playback_controller_data'range); -- 8 bit wide subtype t_addr is std_logic_vector(playback_controller_address'range); type t_data_array is array (natural range <>) of t_data; @@ -68,29 +68,29 @@ architecture RTL of tb_playback_controller is signal read_addr_stop_i : t_addr := (others => '0'); -- output interface - signal data_o : std_logic_vector(playback_controller_data'range); -- data read out from BRAM - signal valid_o : std_logic; -- indicates data_o is valid this clk cycle - signal ready_i : std_logic := '0'; -- the receiving side indicates it's ready for more data + signal data_o : std_logic_vector(playback_controller_data'range); -- data read out from BRAM + signal valid_o : std_logic; -- indicates data_o is valid this clk cycle + signal ready_i : std_logic := '0'; -- the receiving side indicates it's ready for more data - constant C_CLK_PERIOD : time := 25 ns; - constant C_CYCLES_RST : integer := 3; + constant C_CLK_PERIOD : time := 25 ns; + constant C_CYCLES_RST : integer := 3; --constant C_STABLE_PERIODS : integer := 10; --constant C_MAX_CYCLES_PER_BYTE : integer := 4; - constant C_USER_WIDTH : integer := 1; - constant C_ID_WIDTH : integer := 1; - constant C_DEST_WIDTH : integer := 1; - constant C_DATA_WIDTH : integer := playback_controller_data'length; + constant C_USER_WIDTH : integer := 1; + constant C_ID_WIDTH : integer := 1; + constant C_DEST_WIDTH : integer := 1; + constant C_DATA_WIDTH : integer := playback_controller_data'length; --constant C_FRAME_WIDTH : integer := 16; -- input interface - signal data_in : t_axistream_if(tdata(C_DATA_WIDTH - 1 downto 0),--@suppress - tkeep((C_DATA_WIDTH / 8) - 1 downto 0), - tuser(C_USER_WIDTH - 1 downto 0), - tstrb((C_DATA_WIDTH / 8) - 1 downto 0), - tid(C_ID_WIDTH - 1 downto 0), - tdest(C_DEST_WIDTH - 1 downto 0) - ); + signal data_in : t_axistream_if(tdata(C_DATA_WIDTH - 1 downto 0), --@suppress + tkeep((C_DATA_WIDTH / 8) - 1 downto 0), + tuser(C_USER_WIDTH - 1 downto 0), + tstrb((C_DATA_WIDTH / 8) - 1 downto 0), + tid(C_ID_WIDTH - 1 downto 0), + tdest(C_DEST_WIDTH - 1 downto 0) + ); constant max_data_legth : natural := 256; @@ -98,16 +98,18 @@ architecture RTL of tb_playback_controller is constant zero_data : t_data := (others => '0'); -- shared variables to control readout verification - shared variable data_expected : t_data_array(0 to 1024) := (others => zero_data); - shared variable data_expected_count : natural := 0; - shared variable read_delay_clk_cycles : natural := 0; + shared variable data_expected : t_data_array(0 to 1024) := (others => zero_data); + shared variable data_expected_count : natural := 0; + shared variable read_delay_clk_cycles : natural := 0; signal verify_data_en, verify_data_done : boolean := false; - signal verify_data_ack : std_logic := '0'; + signal verify_data_ack : std_logic := '0'; -- count number of valid words presented by the FIFO - signal valid_word_count : natural := 0; + signal valid_word_count : natural := 0; signal valid_word_count_rst : std_logic := '0'; + signal playback_loops_i : std_logic_vector(15 downto 0) := x"0000"; + shared variable loops_prime : natural := 0; begin @@ -145,8 +147,8 @@ begin verify_data_en <= true; start_readout; await_value(verify_data_done, true, 0 ns, - (3 + delay_clk_cycles) * data_expected_count * C_CLK_PERIOD, - ERROR, "Waiting for the data verification to complete"); + (3 + delay_clk_cycles) * data_expected_count * C_CLK_PERIOD * loops_prime, + ERROR, "Waiting for the data verification to complete"); verify_data_en <= false; verify_data_ack <= '1'; @@ -165,6 +167,15 @@ begin wait_num_rising_edge(clk, duration); end; + -- set loop counter + procedure set_loop_counter( + loops : natural + ) is + begin + playback_loops_i <= std_logic_vector(to_unsigned(loops, 16)); + loops_prime := 1 when (loops = 0) else loops; + end; + -- moves the BRAM write pointer to addr procedure set_write_pointer( addr : t_addr @@ -185,12 +196,12 @@ begin ) is variable delay : time; begin - axistream_transmit(AXISTREAM_VVCT, 2, std_logic_vector'(data),--@suppress - "Writing " & to_hstring(data)); + axistream_transmit(AXISTREAM_VVCT, 2, std_logic_vector'(data), --@suppress + "Writing " & to_hstring(data)); if delay_clk_cycles > 0 then delay := delay_clk_cycles * C_CLK_PERIOD; - insert_delay(AXISTREAM_VVCT, 2, delay, "Inserting " &--@suppress - to_string(delay) & " delay", C_SCOPE); + insert_delay(AXISTREAM_VVCT, 2, delay, "Inserting " & --@suppress + to_string(delay) & " delay", C_SCOPE); end if; end; @@ -230,8 +241,8 @@ begin make_random_data(byte_count); data := random_data(0 to byte_count - 1); write_array(data => data, delay_clk_cycles => write_delay_clk_cycles); - await_completion(AXISTREAM_VVCT, 2, byte_count * (5 + write_delay_clk_cycles ) * C_CLK_PERIOD,--@suppress - "Waiting for the transmission to finish"); + await_completion(AXISTREAM_VVCT, 2, byte_count * (5 + write_delay_clk_cycles) * C_CLK_PERIOD, --@suppress + "Waiting for the transmission to finish"); verify_data(data_exp => data, delay_clk_cycles => read_delay_clk_cycles); end; @@ -240,13 +251,13 @@ begin ------------------------------------------------ begin await_uvvm_initialization(VOID); - start_clock(CLOCK_GENERATOR_VVCT, 1, "Start clock generator");--@suppress + start_clock(CLOCK_GENERATOR_VVCT, 1, "Start clock generator"); --@suppress disable_log_msg(ALL_MESSAGES); enable_log_msg(ID_LOG_HDR); enable_log_msg(ID_SEQUENCER); - disable_log_msg(CLOCK_GENERATOR_VVCT, 1, ALL_MESSAGES);--@suppress - disable_log_msg(AXISTREAM_VVCT, 2, ALL_MESSAGES);--@suppress + disable_log_msg(CLOCK_GENERATOR_VVCT, 1, ALL_MESSAGES); --@suppress + disable_log_msg(AXISTREAM_VVCT, 2, ALL_MESSAGES); --@suppress log(ID_LOG_HDR, "Checking behavior when rst = 1", C_SCOPE); set_rst('1'); @@ -256,25 +267,52 @@ begin check_value(data_in.tready, '1', ERROR, "tready = 1 when rst = 1"); set_rst('0'); - log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (fast)", C_SCOPE); + set_loop_counter(0); -- Note 0 is translated to 1 to allow resetting reg to zero + log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (fast), 0 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 0, read_delay_clk_cycles => 0); + + log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (fast), 0 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 10, read_delay_clk_cycles => 0); + + log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (slow), 0 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 0, read_delay_clk_cycles => 10); + + log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (slow), 0 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 10, read_delay_clk_cycles => 10); + + set_loop_counter(1); + log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (fast), 1 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 0, read_delay_clk_cycles => 0); + + log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (fast), 1 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 10, read_delay_clk_cycles => 0); + + log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (slow), 1 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 0, read_delay_clk_cycles => 10); + + log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (slow), 1 loops", C_SCOPE); + write_and_verify(write_delay_clk_cycles => 10, read_delay_clk_cycles => 10); + + set_loop_counter(10); + log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (fast), 10 loops", C_SCOPE); write_and_verify(write_delay_clk_cycles => 0, read_delay_clk_cycles => 0); - log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (fast)", C_SCOPE); + log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (fast), 10 loops", C_SCOPE); write_and_verify(write_delay_clk_cycles => 10, read_delay_clk_cycles => 0); - log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (slow)", C_SCOPE); + log(ID_LOG_HDR, "Writing some data to trickle configuration (fast) and reading it back (slow), 10 loops", C_SCOPE); write_and_verify(write_delay_clk_cycles => 0, read_delay_clk_cycles => 10); - log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (slow)", C_SCOPE); + log(ID_LOG_HDR, "Writing some data to trickle configuration (slow) and reading it back (slow), 10 loops", C_SCOPE); write_and_verify(write_delay_clk_cycles => 10, read_delay_clk_cycles => 10); -- Finish the simulation - wait for 1000 ns; -- to allow some time for completion - report_alert_counters(FINAL); -- Report final counters and print conclusion for simulation (Success/Fail) + wait for 1000 ns; -- to allow some time for completion + report_alert_counters(FINAL); -- Report final counters and print conclusion for simulation (Success/Fail) uvvm_completed <= '1'; wait for 1 us; - stop_clock(CLOCK_GENERATOR_VVCT, 1, "Stop clock generator");--@suppress - wait; -- to stop completely + stop_clock(CLOCK_GENERATOR_VVCT, 1, "Stop clock generator"); --@suppress + wait; -- to stop completely end process; @@ -283,16 +321,17 @@ begin ----------------------------------------------------------------------------- DUT : entity work.playback_controller generic map( - USE_ULTRARAM => false + USE_ULTRARAM => false ) port map( clk => clk, rst => rst, start_pulse_i => start_pulse_i, readout_active_o => readout_active_o, - data_i => data_in.tdata,--@suppress - valid_i => data_in.tvalid,--@suppress - ready_o => data_in.tready,--@suppress + playback_loops_i => playback_loops_i, + data_i => data_in.tdata, --@suppress + valid_i => data_in.tvalid, --@suppress + ready_o => data_in.tready, --@suppress set_write_addr_pulse_i => set_write_addr_pulse_i, write_addr_start_i => write_addr_start_i, read_addr_start_i => read_addr_start_i, @@ -305,7 +344,7 @@ begin i_ti_uvvm_engine : entity uvvm_vvc_framework.ti_uvvm_engine; i_clock_generator_vvc : entity bitvis_vip_clock_generator.clock_generator_vvc - generic map( -- @suppress "Generic map uses default values. Missing optional actuals: GC_CMD_QUEUE_COUNT_MAX, GC_CMD_QUEUE_COUNT_THRESHOLD, GC_CMD_QUEUE_COUNT_THRESHOLD_SEVERITY, GC_RESULT_QUEUE_COUNT_MAX, GC_RESULT_QUEUE_COUNT_THRESHOLD, GC_RESULT_QUEUE_COUNT_THRESHOLD_SEVERITY" + generic map( -- @suppress "Generic map uses default values. Missing optional actuals: GC_CMD_QUEUE_COUNT_MAX, GC_CMD_QUEUE_COUNT_THRESHOLD, GC_CMD_QUEUE_COUNT_THRESHOLD_SEVERITY, GC_RESULT_QUEUE_COUNT_MAX, GC_RESULT_QUEUE_COUNT_THRESHOLD, GC_RESULT_QUEUE_COUNT_THRESHOLD_SEVERITY" GC_INSTANCE_IDX => 1, GC_CLOCK_NAME => "Clock", GC_CLOCK_PERIOD => C_CLK_PERIOD, @@ -316,7 +355,7 @@ begin ); i_axistream_vvc_master : entity bitvis_vip_axistream.axistream_vvc - generic map( -- @suppress "Generic map uses default values. Missing optional actuals: GC_PACKETINFO_QUEUE_COUNT_MAX, GC_AXISTREAM_BFM_CONFIG, GC_CMD_QUEUE_COUNT_MAX, GC_CMD_QUEUE_COUNT_THRESHOLD, GC_CMD_QUEUE_COUNT_THRESHOLD_SEVERITY, GC_RESULT_QUEUE_COUNT_MAX, GC_RESULT_QUEUE_COUNT_THRESHOLD, GC_RESULT_QUEUE_COUNT_THRESHOLD_SEVERITY" + generic map( -- @suppress "Generic map uses default values. Missing optional actuals: GC_PACKETINFO_QUEUE_COUNT_MAX, GC_AXISTREAM_BFM_CONFIG, GC_CMD_QUEUE_COUNT_MAX, GC_CMD_QUEUE_COUNT_THRESHOLD, GC_CMD_QUEUE_COUNT_THRESHOLD_SEVERITY, GC_RESULT_QUEUE_COUNT_MAX, GC_RESULT_QUEUE_COUNT_THRESHOLD, GC_RESULT_QUEUE_COUNT_THRESHOLD_SEVERITY" GC_VVC_IS_MASTER => true, GC_DATA_WIDTH => C_DATA_WIDTH, GC_USER_WIDTH => C_USER_WIDTH, @@ -325,42 +364,47 @@ begin GC_INSTANCE_IDX => 2) port map( clk => clk, - axistream_vvc_if => data_in);--@suppress + axistream_vvc_if => data_in); --@suppress data_checker : process is - variable i : integer := 0; + variable i : integer := 0; + variable loop_counter : integer := 0; begin if verify_data_en then - i := 0; + loop_counter := loops_prime; valid_word_count_rst <= '1'; wait until rising_edge(clk); valid_word_count_rst <= '0'; wait until rising_edge(clk); log(ID_SEQUENCER_SUB, "Data checker is waiting for data"); - while (i < data_expected_count) loop - await_value(valid_o, '1', 0 ns, C_CLK_PERIOD * 10, ERROR, "Waiting for playback controller data to become valid"); - ready_i <= '1'; - wait for C_CLK_PERIOD / 2; - if ?? valid_o then - check_value(readout_active_o, '1', ERROR, "Readout active flag is 1"); - check_value(data_o, data_expected(i), ERROR, "Value read from playback controller matches the expected value"); - wait until rising_edge(clk); - i := i + 1; - if read_delay_clk_cycles > 0 then - ready_i <= '0'; - wait_num_rising_edge(clk, read_delay_clk_cycles); - ready_i <= '1'; + while (loop_counter > 0) loop + i := 0; + while (i < data_expected_count) loop + await_value(valid_o, '1', 0 ns, C_CLK_PERIOD * 10, ERROR, "Waiting for playback controller data to become valid"); + ready_i <= '1'; + wait for C_CLK_PERIOD / 2; + if ?? valid_o then + check_value(readout_active_o, '1', ERROR, "Readout active flag is 1"); + check_value(data_o, data_expected(i), ERROR, "Value read from playback controller matches the expected value"); + wait until rising_edge(clk); + if read_delay_clk_cycles > 0 then + ready_i <= '0'; + wait_num_rising_edge(clk, read_delay_clk_cycles); + end if; + i := i + 1; + else + wait until rising_edge(clk); end if; - else - wait until rising_edge(clk); - end if; + end loop; + loop_counter := loop_counter - 1; + wait until rising_edge(clk); end loop; wait until rising_edge(clk); check_value(valid_o, '0', ERROR, "The playback controller FIFO is empty"); - check_value(valid_word_count, data_expected_count, ERROR, "The number of words read out from playback controller was correct"); + check_value(valid_word_count, data_expected_count * loops_prime, ERROR, "The number of words read out from playback controller was correct"); wait_num_rising_edge(clk, 2); - ready_i <= '0'; + ready_i <= '0'; wait_num_rising_edge(clk, 2); verify_data_done <= true; wait until rising_edge(verify_data_ack); @@ -378,7 +422,7 @@ begin if ?? valid_word_count_rst then valid_word_count <= 0; else - valid_word_count <= valid_word_count + 1 when (?? valid_o) and (?? ready_i); + valid_word_count <= valid_word_count + 1 when ( ?? valid_o) and ( ?? ready_i); end if; end if; end process; diff --git a/simulation/UVVMtests/tb/ByteToAxiStream_tb.vhd b/simulation/UVVMtests/tb/ByteToAxiStream_tb.vhd index d65b97ab5cca10338343431e207dd8f8145268e3..be52189f4a20bef4b0b9c3556e3f75dc24938229 100644 --- a/simulation/UVVMtests/tb/ByteToAxiStream_tb.vhd +++ b/simulation/UVVMtests/tb/ByteToAxiStream_tb.vhd @@ -412,6 +412,7 @@ begin EOB => EOB1b, TruncateIn => TruncateIn1b, CodingErrorIn => '0', + FramingErrorIn => '0', m_axis => m_axis1b, m_axis_tready => m_axis_tready_1b, m_axis_aclk => clk160, @@ -439,6 +440,7 @@ begin EOB => EOB2b, TruncateIn => TruncateIn2b, CodingErrorIn => '0', + FramingErrorIn => '0', m_axis => m_axis2b, m_axis_tready => m_axis_tready_2b, m_axis_aclk => clk160, @@ -466,6 +468,7 @@ begin EOB => EOB4b, TruncateIn => TruncateIn4b, CodingErrorIn => '0', + FramingErrorIn => '0', m_axis => m_axis4b, m_axis_tready => m_axis_tready_4b, m_axis_aclk => clk160, diff --git a/simulation/UVVMtests/tb/GBTLinkToHost_tb.vhd b/simulation/UVVMtests/tb/GBTLinkToHost_tb.vhd index 1503b30bdddcdfbed577cf7416b2ca1b886ac8bc..d0beb30bddfba773fad1cdd143ab4cda6f2abbca 100644 --- a/simulation/UVVMtests/tb/GBTLinkToHost_tb.vhd +++ b/simulation/UVVMtests/tb/GBTLinkToHost_tb.vhd @@ -66,10 +66,10 @@ architecture arch of GBTLinkToHost_tb is constant FIRMWARE_MODE : integer := FIRMWARE_MODE_GBT; constant NUMBER_OF_DESCRIPTORS : integer := 2; constant STREAMS_TOHOST: integer := STREAMS_TOHOST_MODE(FIRMWARE_MODE); - constant BLOCKSIZE : integer :=1024; + constant BLOCKSIZE : integer := 1024; constant LOCK_PERIOD : integer := 640; constant DATA_WIDTH : integer := 256; - constant SIM_NUMBER_OF_BLOCKS : integer := 500; + constant SIM_NUMBER_OF_BLOCKS : integer := 500; -- 5000; --500; constant pcie_endpoint: integer := 0; @@ -173,6 +173,7 @@ begin GEN_SCF_LINKS: for i in 0 to 11 generate register_map_40_control.SUPER_CHUNK_FACTOR_LINK(i) <= x"01"; register_map_40_control.CRTOHOST_INSTANT_TIMEOUT_ENA(i) <= "000000000000000000000000000000000000000001"; + --register_map_40_control.CRTOHOST_INSTANT_TIMEOUT_ENA(i) <= "000000000000000000000000000000000000000000"; --No instant timeout end generate; diff --git a/simulation/VUnit/tcl/source_sim_filesets.tcl b/simulation/VUnit/tcl/source_sim_filesets.tcl index bf6e0fffd0d55546784fcdae41f948946ae70d97..83aec0d5cc64b4fbc9e35ac551f15770034de2ce 100644 --- a/simulation/VUnit/tcl/source_sim_filesets.tcl +++ b/simulation/VUnit/tcl/source_sim_filesets.tcl @@ -27,6 +27,11 @@ source $PROJECT_ROOT/scripts/filesets/ttc_decoder_fileset.tcl source $PROJECT_ROOT/scripts/filesets/ttc_emulator_fileset.tcl source $PROJECT_ROOT/scripts/filesets/wupper_fileset.tcl source $PROJECT_ROOT/scripts/filesets/bcm_fileset.tcl +source $PROJECT_ROOT/scripts/filesets/felig_fileset.tcl +source $PROJECT_ROOT/scripts/filesets/fmemu_fileset.tcl +source $PROJECT_ROOT/scripts/filesets/fmemu_top_fileset.tcl +source $PROJECT_ROOT/scripts/filesets/lpgbt_fe_core_fileset.tcl + set SIM_ARCH "KU" if { $SIM_ARCH == "V7" } { set XCI_FILES [concat $XCI_FILES $XCI_FILES_V7] diff --git a/sources/AxisUtils/Axis32Fifo.vhd b/sources/AxisUtils/Axis32Fifo.vhd index 78f3f779112ff29c59faef8722ce1fc19eed287e..9e4943af87259cf461314c68a8da6e109a06c07c 100644 --- a/sources/AxisUtils/Axis32Fifo.vhd +++ b/sources/AxisUtils/Axis32Fifo.vhd @@ -77,6 +77,7 @@ architecture rtl of Axis32Fifo is signal busy_sync: std_logic; signal trunc_sync: std_logic; + signal framing_error_sync: std_logic; signal s_axis_tready_s : std_logic; signal s_axis_tuser: std_logic_vector(2 downto 0); signal s_axis_tvalid : std_logic; @@ -86,7 +87,7 @@ architecture rtl of Axis32Fifo is signal m_axis_tvalid : std_logic; signal m_axis_tdata : std_logic_vector(31 downto 0); signal m_axis_tlast : std_logic; - signal s_axis_tuser_2, s_axis_tuser_3: std_logic; --for xpm cdc sync + signal s_axis_tuser_2, s_axis_tuser_3, s_axis_tuser_1: std_logic; --for xpm cdc sync signal m_axis_aresetn: std_logic; begin @@ -165,6 +166,20 @@ begin dest_out => s_axis_tuser_2 -- 1-bit output: src_in synchronized to the destination clock domain. This output is registered. ); + xpm_cdc_err : xpm_cdc_single + generic map ( + DEST_SYNC_FF => 2, -- DECIMAL; range: 2-10 + INIT_SYNC_FF => 0, -- DECIMAL; integer; 0=disable simulation init values, 1=enable simulation init values + SIM_ASSERT_CHK => 0, -- DECIMAL; integer; 0=disable simulation messages, 1=enable simulation messages + SRC_INPUT_REG => 1 -- DECIMAL; integer; 0=do not register input, 1=register input + ) + port map ( + src_clk => s_axis_aclk, -- 1-bit input: optional; required when SRC_INPUT_REG = 1 + src_in => s_axis.tuser(1), -- 1-bit input: Input signal to be synchronized to dest_clk domain. + dest_clk => m_axis_aclk, -- 1-bit input: Clock signal for the destination clock domain. + dest_out => s_axis_tuser_1 -- 1-bit output: src_in synchronized to the destination clock domain. This output is registered. + ); + sync_s_axis_aresetn : xpm_cdc_sync_rst generic map ( DEST_SYNC_FF => 2, @@ -182,7 +197,10 @@ begin variable busy_sync_v: std_logic; variable trunc_sync_v: std_logic; variable trunc_sync_p1: std_logic; - variable trunc_cnt: integer range 0 to 3; --count truncations in FIFO, max 3 + variable framing_error_sync_v: std_logic; + variable framing_error_sync_p1: std_logic; + constant max_trunc_cnt: integer := 15; + variable trunc_cnt: integer range 0 to 15; --count truncations in FIFO begin if m_axis_aresetn = '0' then trunc_cnt := 0; @@ -190,30 +208,36 @@ begin trunc_sync <= '0'; trunc_sync_p1 := '0'; trunc_sync_v := '0'; + framing_error_sync <= '0'; + framing_error_sync_p1 := '0'; + framing_error_sync_v := '0'; busy_sync_v := '0'; elsif rising_edge(m_axis_aclk) then busy_sync <= busy_sync_v; busy_sync_v := s_axis_tuser_2; --Truncate flag does not go through FIFO to save resources, use error flag instead and replace if after fifo. trunc_sync_v := s_axis_tuser_3; - if trunc_sync_v = '1' and trunc_sync_p1 = '0' then --Before FIFO truncation was asserted, count up to maximum 3 + framing_error_sync_v := s_axis_tuser_3 and s_axis_tuser_1; --Both T and E were set at the same time + if trunc_sync_v = '1' and trunc_sync_p1 = '0' then --Before FIFO truncation was asserted, count up to maximum max_trunc_cnt trunc_sync <= '1'; - if trunc_cnt /= 3 then + if trunc_cnt /= max_trunc_cnt then trunc_cnt := trunc_cnt + 1; end if; end if; + if framing_error_sync_v = '1' and framing_error_sync_p1 = '0' then --Before FIFO truncation was asserted, count counter is already done with trunc_sync + framing_error_sync <= '1'; + end if; if m_axis_tuser(2) = '1' and m_axis_tready = '1' and m_axis_tlast = '1' then --Truncation handled by m_axis, decrement counter - trunc_sync <= '0'; if trunc_cnt /= 0 then trunc_cnt := trunc_cnt - 1; end if; end if; - if trunc_cnt /= 0 then --Counter not zero, tell m_axis_tuser to set trunc flag instead of chunk error. - trunc_sync <= '1'; - else + if trunc_cnt = 0 then --Counter not zero, tell m_axis_tuser to set trunc flag instead of chunk error. trunc_sync <= '0'; + framing_error_sync <= '0'; end if; trunc_sync_p1 := trunc_sync_v; --pipeline. + framing_error_sync_p1 := framing_error_sync_v; --pipeline. end if; end process; @@ -329,7 +353,7 @@ begin begin m_axis.tuser(3) <= m_axis_tuser(2) and trunc_sync; --Error bit used as truncation bit m_axis.tuser(2) <= busy_sync; - m_axis.tuser(1) <= m_axis_tuser(2) and not trunc_sync; --Error bit + m_axis.tuser(1) <= m_axis_tuser(2) and ((not trunc_sync) or framing_error_sync); --Error bit, in case of Framing error, we set T+E flags m_axis.tuser(0) <= '0'; --Unused in GBT mode where we use the builtin fifo. m_axis.tvalid <= m_axis_tvalid; m_axis.tdata <= m_axis_tdata; diff --git a/sources/FELIG/aurora_will/aurora_64b66b_1TXch_tx_lane_init_sm_simplex.v b/sources/FELIG/aurora_will/aurora_64b66b_1TXch_tx_lane_init_sm_simplex.v index ebf7ae6f7badac898b29c600c474e8ff90b7aeb2..52cbd1193b70c7454d8aaedb2409c4364e2686a8 100644 --- a/sources/FELIG/aurora_will/aurora_64b66b_1TXch_tx_lane_init_sm_simplex.v +++ b/sources/FELIG/aurora_will/aurora_64b66b_1TXch_tx_lane_init_sm_simplex.v @@ -170,7 +170,7 @@ assign tx_resetdone_in_sync3 = 1;//WB remove u_rst_sync_tx_resetdone assign count_done_for_lane_ready = (counter2_r == 24'd0); // LANE_UP is asserted when in the READY state. - FDR lane_up_flop_i + FDR lane_up_flop_i //@suppress ( .D(count_done_for_lane_ready), .C(USER_CLK), diff --git a/sources/FELIG/data_generator/elink_data_emulator.vhd b/sources/FELIG/data_generator/elink_data_emulator.vhd index ba392a62519f82fd5fb4aa137507deae69241f45..5bea4d80b0e37ccaac284248edc016e961aa9736 100644 --- a/sources/FELIG/data_generator/elink_data_emulator.vhd +++ b/sources/FELIG/data_generator/elink_data_emulator.vhd @@ -349,7 +349,7 @@ begin ------------------------------------------------------------ -- EPATH_FIFO ------------------------------------------------------------ - UEF_IN : entity work.upstreamEpathFifoWrap + UEF_IN : entity work.upstreamEpathFifoWrap_felig port map( bitCLK => '0', rst => elink_tx_rst, @@ -534,6 +534,7 @@ begin -- clk40 => clk240, clk40 => clk, rst => emu_control.reset, + clk40_stable => '1', cr_rst => elink_tx_rst, cr_fifo_flush => fifo_flush ); diff --git a/sources/FELIG/emulator/Emulator.vhd b/sources/FELIG/emulator/Emulator.vhd index 64e2e8c50c69135df117a662d9d6e6169a3cb7fa..29931ba4d053cbcf8511346429718fd72309df48 100644 --- a/sources/FELIG/emulator/Emulator.vhd +++ b/sources/FELIG/emulator/Emulator.vhd @@ -1005,7 +1005,7 @@ begin -- gen_ttc_wrapper_comp : if sim_emulator = false generate - ttc_wrapper_comp : entity work.ttc_wrapper + ttc_wrapper_comp : entity work.ttc_wrapper_felig port map ( a_data_in => gbt_extractedl1a, b_data_in => gbt_extracted_bchan, diff --git a/sources/FELIG/emulator/mux_128_sync.vhd b/sources/FELIG/emulator/mux_128_sync.vhd index 58a5ade50b3855825a0ffb4e08fa8dd2f823a315..7846abe5b5229157bc3ab15635627f6351778114 100644 --- a/sources/FELIG/emulator/mux_128_sync.vhd +++ b/sources/FELIG/emulator/mux_128_sync.vhd @@ -42,7 +42,7 @@ library ieee; library UNISIM; use UNISIM.Vcomponents.ALL; -Library XilinxCoreLib; +--Library XilinxCoreLib; entity mux_128_sync is port ( diff --git a/sources/FELIG/emulator/mux_16.vhd b/sources/FELIG/emulator/mux_16.vhd index 96a89f4b0dbd068c1fbb46357341661d832c4c00..ff7525aa4329ea895d0dd315a0a22c844e58a049 100644 --- a/sources/FELIG/emulator/mux_16.vhd +++ b/sources/FELIG/emulator/mux_16.vhd @@ -42,7 +42,7 @@ library ieee; library UNISIM; use UNISIM.Vcomponents.ALL; -Library XilinxCoreLib; +--Library XilinxCoreLib; entity mux_16 is port ( @@ -68,7 +68,7 @@ begin ); end generate gen_mux_8; - MUXF8_comp : MUXF8_D + MUXF8_comp : MUXF8_D --@suppress port map ( LO => bit_output_local, -- Ouptut of MUX to local routing O => bit_output, -- Output of MUX to general routing diff --git a/sources/FELIG/emulator/mux_8.vhd b/sources/FELIG/emulator/mux_8.vhd index 44e51c488eb310536a431e84942d2e0d211128b7..7bcf68eb456afe32b2343b96b42cc8332fd3f549 100644 --- a/sources/FELIG/emulator/mux_8.vhd +++ b/sources/FELIG/emulator/mux_8.vhd @@ -42,7 +42,7 @@ library ieee; library UNISIM; use UNISIM.Vcomponents.ALL; -Library XilinxCoreLib; +--Library XilinxCoreLib; entity mux_8 is port ( @@ -66,7 +66,7 @@ begin '0'; end generate gen_mux_4; - MUXF7_comp : MUXF7_D + MUXF7_comp : MUXF7_D --@suppress port map ( LO => bit_output_local, -- Ouptut of MUX to local routing O => bit_output, -- Output of MUX to general routing diff --git a/sources/FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap.vhd b/sources/FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap_felig.vhd similarity index 98% rename from sources/FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap.vhd rename to sources/FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap_felig.vhd index e204c7bd3e588f14fe18b3861971300af96614ec..377b3241972897fe9c78e26441d9556652120a5d 100644 --- a/sources/FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap.vhd +++ b/sources/FELIG/felix_modified/centralRouter/upstreamEpathFifoWrap_felig.vhd @@ -56,7 +56,7 @@ library ieee,work; use work.ip_lib.ALL; --! EPATH FIFO 18 bit wide, 2K deep -entity upstreamEpathFifoWrap is +entity upstreamEpathFifoWrap_felig is port ( bitCLK : in std_logic; --IG: add clock 40 to extract ready signal in 40 MHz rst : in std_logic; @@ -83,9 +83,9 @@ entity upstreamEpathFifoWrap is ila_rd_en_pipe_0 : out std_logic; ila_rd_en_pipe_1 : out std_logic ); -end upstreamEpathFifoWrap; +end upstreamEpathFifoWrap_felig; -architecture Behavioral of upstreamEpathFifoWrap is +architecture Behavioral of upstreamEpathFifoWrap_felig is signal rd_en_s, empty_efifo, prog_full_s : std_logic := '0'; diff --git a/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper.vhd b/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper_felig.vhd similarity index 99% rename from sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper.vhd rename to sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper_felig.vhd index 759dcd1ee75ffbf82b5de404c7fbc894452f6f6b..d9604f7c25cb0c786460133d917e27d2cc9bd242 100644 --- a/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper.vhd +++ b/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decode_wrapper_felig.vhd @@ -52,7 +52,7 @@ library UNISIM; --=================================================================================================-- --======================================= Module Body =============================================-- --=================================================================================================-- -entity ttc_wrapper is +entity ttc_wrapper_felig is port ( --== ttc fmc interface ==-- a_data_in : in std_logic; @@ -89,11 +89,11 @@ entity ttc_wrapper is TTC_ToHost_Data_out : out TTC_ToHost_data_type ); -end ttc_wrapper; +end ttc_wrapper_felig; -architecture top of ttc_wrapper is +architecture top of ttc_wrapper_felig is --signal RESET : std_logic; --========================= Signal Declarations ==========================-- --signal cdrbad : std_logic; @@ -498,7 +498,7 @@ begin --=====================================-- - ttc_dec: entity work.ttc_decoder_core + ttc_dec: entity work.ttc_decoder_core_felig --=====================================-- port map ( diff --git a/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core.vhd b/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core_felig.vhd similarity index 99% rename from sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core.vhd rename to sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core_felig.vhd index 238181012e93d5cae8394a78c111e56dbf3e05b5..3fc740a8f7f5e9370cda3824979ae7f49f93f6d9 100644 --- a/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core.vhd +++ b/sources/FELIG/felix_modified/ttc/ttc_decoder/ttc_decoder_core_felig.vhd @@ -129,7 +129,7 @@ library ieee; --=================================================================================================-- --======================================= Module Body =============================================-- --=================================================================================================-- -entity ttc_decoder_core is +entity ttc_decoder_core_felig is port ( --== cdr interface ==-- @@ -157,9 +157,9 @@ entity ttc_decoder_core is add_d8 : out std_logic_vector(7 downto 0) ); -end ttc_decoder_core; +end ttc_decoder_core_felig; -architecture core of ttc_decoder_core is +architecture core of ttc_decoder_core_felig is diff --git a/sources/FELIG/housekeeping/housekeeping_module_FELIG.vhd b/sources/FELIG/housekeeping/housekeeping_module_FELIG.vhd index e687e3b74fe6e6fdf36467a0c0ffe7ea7038b40d..0fe527f06d233ea03f15a0565e19407d55099624 100644 --- a/sources/FELIG/housekeeping/housekeeping_module_FELIG.vhd +++ b/sources/FELIG/housekeeping/housekeeping_module_FELIG.vhd @@ -91,6 +91,7 @@ entity housekeeping_module_FELIG is PORT_GOOD : in std_logic_vector(7 downto 0); SHPC_INT : out std_logic; lnk_up : in std_logic_vector(1 downto 0); + select_bifurcation : in std_logic_vector(NUM_BIFURCATION_SELECT(CARD_TYPE)-1 downto 0); RXUSRCLK_IN : in std_logic_vector((GBT_NUM*ENDPOINTS)-1 downto 0); versal_sys_reset_n_out : out std_logic ); @@ -394,6 +395,7 @@ begin generic map( CARD_TYPE => CARD_TYPE) port map( + select_bifurcation => select_bifurcation, I2C_SMB => I2C_SMB, I2C_SMBUS_CFG_nEN => I2C_SMBUS_CFG_nEN, MGMT_PORT_EN => MGMT_PORT_EN, diff --git a/sources/FelixTop/felig_top_bnl712.vhd b/sources/FelixTop/felig_top_bnl712.vhd index 369c6d50940289673c5554b52a05a63f68c5e695..ff1e2e2b6b9d096186e06e83a38fa84939cdcdb9 100644 --- a/sources/FelixTop/felig_top_bnl712.vhd +++ b/sources/FelixTop/felig_top_bnl712.vhd @@ -149,6 +149,7 @@ entity felig_top_bnl712 is PEX_PERSTn : out std_logic_vector(NUM_PEX(CARD_TYPE)-1 downto 0); PEX_SCL : out std_logic_vector(NUM_PEX(CARD_TYPE)-1 downto 0); PEX_SDA : inout std_logic_vector(NUM_PEX(CARD_TYPE)-1 downto 0); + select_bifurcation : in std_logic_vector(NUM_BIFURCATION_SELECT(CARD_TYPE)-1 downto 0); PORT_GOOD : in std_logic_vector(NUM_PEX(CARD_TYPE)*8-1 downto 0); Perstn_open : in std_logic_vector(NUM_PEX(CARD_TYPE)*2-1 downto 0); -- @suppress "Unused port: Perstn_open is not used in work.felix_top(structure)" GTREFCLK_N_IN : in std_logic_vector(GTREFCLKS-1 downto 0); @@ -311,6 +312,7 @@ architecture structure of felig_top_bnl712 is signal CLK40_FPGA2LMK_P_link : std_logic; signal CLK40_FPGA2LMK_N_hk : std_logic; signal CLK40_FPGA2LMK_P_hk : std_logic; + signal leds8 : std_logic_vector(7 downto 0); COMPONENT ila_downlink IS PORT ( @@ -624,6 +626,8 @@ begin signal clk250_out_pcie : std_logic; signal CPMToWupper : CPMToWupper_type; signal WupperToCPM : WupperToCPM_type; + signal daq_reset: std_logic; + signal daq_fifo_flush: std_logic; begin g_assign_endpoint0: if pcie_endpoint = 0 generate @@ -635,6 +639,8 @@ begin end generate; aresetn <= not(rst_hw or rst_soft_40); + daq_reset <= rst_hw or rst_soft_40; + daq_fifo_flush <= rst_soft_40; pcie0: entity work.wupper generic map( @@ -691,7 +697,7 @@ begin reset_hard => open, reset_soft => open, reset_soft_appreg_clk => reset_soft_appreg_clk, - reset_hw_in => rst_hw, + --reset_hw_in => rst_hw, sys_clk_n => sys_clk_n(pcie_endpoint), sys_clk_p => sys_clk_p(pcie_endpoint), sys_reset_n => sys_reset_n, @@ -773,7 +779,8 @@ begin clk40 => clk40, clk365 => '0', -- aclk_out => decoding_aclk, - aresetn => aresetn, + daq_reset => daq_reset, --aresetn => aresetn, + daq_fifo_flush => daq_fifo_flush, m_axis => decoding_axis, m_axis_tready => decoding_axis_tready, m_axis_prog_empty => decoding_axis_prog_empty, @@ -790,6 +797,7 @@ begin m_axis_aux_tready => decoding_axis_aux_tready, register_map_control => register_map_40_control, register_map_decoding_monitor => register_map_decoding_monitor, + TTCin => TTC_zero, --RL added july2023 Interlaken_RX_Data_In => Interlaken_RX_Data(pcie_endpoint*(GBT_NUM/ENDPOINTS) to ((pcie_endpoint+1)*(GBT_NUM/ENDPOINTS))-1), @@ -887,8 +895,7 @@ begin clk40_rxusrclk => clk40_rxusrclk,--not in master RESET_TO_LMK => RESET_TO_LMK_i,--not in master -- - leds(6 downto 0) => leds, - leds(7) => open, + leds => leds8, opto_inhibit => opto_inhibit, --opto_los => OPTO_LOS,--commented in master register_map_control => global_register_map_control_appreg_clk, @@ -916,9 +923,10 @@ begin PORT_GOOD => PORT_GOOD, SHPC_INT => SHPC_INT(0), lnk_up => lnk_up, + select_bifurcation => select_bifurcation, RXUSRCLK_IN => RXUSRCLK); - + leds <= leds8(NUM_LEDS(CARD_TYPE)-1 downto 0); end architecture structure ; -- of felig_top_bnl712 diff --git a/sources/FelixTop/felix_top.vhd b/sources/FelixTop/felix_top.vhd index 7e4facff6be54c074c8ca16116227ff77a961547..5c5d139181cdf0b378ce5ca0f10fc14495e42b76 100644 --- a/sources/FelixTop/felix_top.vhd +++ b/sources/FelixTop/felix_top.vhd @@ -158,7 +158,7 @@ entity felix_top is PEX_PERSTn : out std_logic_vector(NUM_PEX(CARD_TYPE)-1 downto 0); PEX_SCL : inout std_logic_vector(NUM_PEX(CARD_TYPE)-1 downto 0); PEX_SDA : inout std_logic_vector(NUM_PEX(CARD_TYPE)-1 downto 0); - select_bifurcation : in std_logic_vector(NUM_BIFURCATION_SELECT(CARD_TYPE)-1 downto 0); + select_bifurcation : in std_logic_vector(NUM_BIFURCATION_SELECT(CARD_TYPE)-1 downto 0); PORT_GOOD : in std_logic_vector(NUM_PEX(CARD_TYPE)*8-1 downto 0); Perstn_open : in std_logic_vector(NUM_PEX(CARD_TYPE)*2-1 downto 0); -- @suppress "Unused port: Perstn_open is not used in work.felix_top(structure)" GTREFCLK_N_IN : in std_logic_vector(GTREFCLKS-1 downto 0); diff --git a/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd b/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd index e2125da867beb6c1cdf398b470094fdaa478bb32..753525ef8b2c39b078ec91ff420c952911c870a5 100644 --- a/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd +++ b/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd @@ -222,7 +222,7 @@ begin RST_RAM <= RST240 or RST_RAM_FSM; - u7: entity work.Random_gen + u7: entity work.Random_gen_fmemu generic map ( LANE_ID => 1) port map( diff --git a/sources/FullModeEmulator/FMEmu_top.vhd b/sources/FullModeEmulator/FMEmu_top.vhd index 8d61a93076c72274326326f87a78bf0d062a69fd..d7b803a7c7824b82aa9b22ae3387a75ac2ffc56a 100644 --- a/sources/FullModeEmulator/FMEmu_top.vhd +++ b/sources/FullModeEmulator/FMEmu_top.vhd @@ -412,7 +412,7 @@ begin reset_hard => open, reset_soft => rst_soft_40, reset_soft_appreg_clk => reset_soft_appreg_clk, - reset_hw_in => rst_hw, + --reset_hw_in => rst_hw, sys_clk_n => sys_clk_n(pcie_endpoint), sys_clk_p => sys_clk_p(pcie_endpoint), sys_reset_n => PCIE_PERSTn, diff --git a/sources/ItkStrip/lcb_regmap_package.vhd b/sources/ItkStrip/lcb_regmap_package.vhd index bb2083e84ed32ee0c85387644ef6733f14642a2f..47d4c77382b334033576d2636c3866728248a521 100644 --- a/sources/ItkStrip/lcb_regmap_package.vhd +++ b/sources/ItkStrip/lcb_regmap_package.vhd @@ -59,7 +59,8 @@ package lcb_regmap_package is ABC_MASK_C, -- 0x1B (16 bit) ABC_MASK_D, -- 0x1C (16 bit) ABC_MASK_E, -- 0x1D (16 bit) - ABC_MASK_F -- 0x1E (16 bit) + ABC_MASK_F, -- 0x1E (16 bit) + PLAYBACK_LOOPS -- 0x1F (16 bit) -- Number of times to loop over trickle mem (0=1=once) ); @@ -118,6 +119,7 @@ package body lcb_regmap_package is when ABC_MASK_D => return string'("ABC_MASK_D"); when ABC_MASK_E => return string'("ABC_MASK_E"); when ABC_MASK_F => return string'("ABC_MASK_F"); + when PLAYBACK_LOOPS => return string'("PLAYBACK_LOOPS"); when others => report "Unknown LCB register is referenced" severity FAILURE; diff --git a/sources/ItkStrip/lcb_wrapper.vhd b/sources/ItkStrip/lcb_wrapper.vhd index 48ce9a0f072698e2a9687dcb7ab92d94e8bf73c0..7f46db481d01beca556cf5bb71ea26bba094587d 100644 --- a/sources/ItkStrip/lcb_wrapper.vhd +++ b/sources/ItkStrip/lcb_wrapper.vhd @@ -266,6 +266,7 @@ begin rst => rst, start_pulse_i => trickle_trigger_start, readout_active_o => open, + playback_loops_i => regmap(PLAYBACK_LOOPS), data_i => trickle_data_i, valid_i => trickle_valid_i, ready_o => trickle_ready_o, diff --git a/sources/ItkStrip/playback_controller.vhd b/sources/ItkStrip/playback_controller.vhd index 5ac52e97d4da07174cf4d81ec977e45fa73a2eb9..4eea2b758c4ea40473a5b965d400ceb9b094c490 100644 --- a/sources/ItkStrip/playback_controller.vhd +++ b/sources/ItkStrip/playback_controller.vhd @@ -46,27 +46,28 @@ library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; -Library xpm; +library xpm; use xpm.vcomponents.all; use work.strips_package.all; entity playback_controller is generic( - USE_ULTRARAM : boolean + USE_ULTRARAM : boolean ); port( - clk : in std_logic; -- 40 MHz BC clock - rst : in std_logic; - start_pulse_i : in std_logic; -- toggle this input to initiate the readout - readout_active_o : out std_logic; -- '1' when the readout is in progress + clk : in std_logic; -- 40 MHz BC clock + rst : in std_logic; + start_pulse_i : in std_logic; -- toggle this input to initiate the readout + readout_active_o : out std_logic; -- '1' when the readout is in progress + playback_loops_i : in std_logic_vector(15 downto 0); -- trickle memory write interface -- input data to be saved to the BRAM data_i : in std_logic_vector(playback_controller_data'range); - valid_i : in std_logic; -- indicates data_i is valid this clk cycle - ready_o : out std_logic; -- this module is ready for more data + valid_i : in std_logic; -- indicates data_i is valid this clk cycle + ready_o : out std_logic; -- this module is ready for more data -- pulse this signal to load the write_addr of bram from write_addr_start_i set_write_addr_pulse_i : in std_logic; -- the memory address that write_ptr of the BRAM will be placed to @@ -80,28 +81,28 @@ entity playback_controller is -- trickle configuration memory read interface -- outputs data read out from BRAM - data_o : out std_logic_vector(playback_controller_data'range); + data_o : out std_logic_vector(playback_controller_data'range); -- indicates data_o is valid this clk cycle - valid_o : out std_logic; -- indicates data_o is valid this clk cycle + valid_o : out std_logic; -- indicates data_o is valid this clk cycle -- the receiving side indicates it's ready for more data - ready_i : in std_logic + ready_i : in std_logic ); end entity playback_controller; architecture RTL of playback_controller is -- BRAM signals - signal wea : STD_LOGIC_VECTOR(0 DOWNTO 0); + signal wea : std_logic_vector(0 downto 0); signal addra : std_logic_vector(playback_controller_address'range); -- output register buffers signal readout_active_reg, valid_reg, ready_reg : std_logic; - signal data_reg : std_logic_vector(playback_controller_data'range); + signal data_reg : std_logic_vector(playback_controller_data'range); -- FIFO mode state type t_state is (s_init_readout, s_fetch_next, s_wait, s_readout_complete, s_bram_update); signal state : t_state := s_bram_update; - function f_mem_type(uram: boolean) return string is + function f_mem_type(uram : boolean) return string is begin if uram then return "ultra"; @@ -110,49 +111,80 @@ architecture RTL of playback_controller is end if; end function; + signal loop_counter : unsigned(15 downto 0) := x"0000"; + signal loop_active : std_logic; + signal loops_prime : unsigned(15 downto 0); + begin data_o <= data_reg; valid_o <= valid_reg; readout_active_o <= readout_active_reg; - ready_o <= ready_reg; + ready_o <= ready_reg; wea <= (others => '1') when (ready_reg = '1' and valid_i = '1' and state = s_bram_update) else (others => '0'); - fsm_state_update : process(clk) is + + loop_active <= '0' when (loop_counter = x"0000") else '1'; + loops_prime <= x"0001" when (playback_loops_i = x"0000") else unsigned(playback_loops_i); + + + fsm_state_var_update : process(clk) is begin if rising_edge(clk) then if (rst = '1') then state <= s_bram_update; + + --wea <= (others => '0'); + addra <= (others => '0'); + readout_active_reg <= '0'; + valid_reg <= '0'; + ready_reg <= '1'; + loop_counter <= x"0000"; + + else case state is when s_init_readout => -- prepare to read out data from BRAM addresses -- read_addr_start_i to read_addr_stop_i (inclusive) + state <= s_wait; if ready_i = '1' then if read_addr_start_i = read_addr_stop_i then state <= s_readout_complete; - else - state <= s_fetch_next; end if; - else - state <= s_wait; end if; + valid_reg <= '1'; + readout_active_reg <= '1'; + ready_reg <= '0'; + when s_fetch_next => + ready_reg <= '0'; -- fetch the next byte from BRAM if addra = read_addr_stop_i then state <= s_readout_complete; else if ready_i = '1' and valid_reg = '1' then + --if (ready_i = '1') then -- MRMW valid should not control flow IMHO + addra <= std_logic_vector(unsigned(addra) + to_unsigned(1, addra'length)); state <= s_fetch_next; else state <= s_wait; end if; end if; + valid_reg <= '1'; + if addra = read_addr_stop_i then + valid_reg <= '0'; + end if; + when s_wait => -- wait for the receiving FSM to become ready + ready_reg <= '0'; if ready_i = '1' then + valid_reg <= '0'; --MRMW: Fix this! valid should not need dropping + --to regulate flow, this should be done by ready_i. + addra <= std_logic_vector(unsigned(addra) + to_unsigned(1, addra'length)); if addra = read_addr_stop_i then state <= s_readout_complete; else @@ -162,132 +194,98 @@ begin state <= s_wait; end if; + when s_readout_complete => -- BRAM readout is finished state <= s_bram_update; + ready_reg <= '0'; + valid_reg <= '0'; + readout_active_reg <= '0'; + if (loop_active = '1') then + loop_counter <= loop_counter - 1; + readout_active_reg <= '1'; + end if; + when s_bram_update => -- wait for the commands to update BRAM contents -- (or for another readout to be initiated) - if start_pulse_i = '1' then + if (start_pulse_i = '1') or (loop_active = '1') then state <= s_init_readout; else state <= s_bram_update; end if; - when others => - report "Invalid FSM state of playback_controller" severity failure; - end case; - end if; - end if; - end process; - - fsm_variable_update : process(clk) is - begin - if rising_edge(clk) then - if (rst = '1') then - --wea <= (others => '0'); - addra <= (others => '0'); - readout_active_reg <= '0'; - valid_reg <= '0'; - ready_reg <= '1'; - else - case state is - when s_init_readout => - if ready_i = '1' then - addra <= std_logic_vector(unsigned(addra) + to_unsigned(1, addra'length)); - end if; - valid_reg <= '1'; - readout_active_reg <= '1'; - ready_reg <= '0'; - - when s_fetch_next => - ready_reg <= '0'; - if ready_i = '1' and valid_reg = '1' then - addra <= std_logic_vector(unsigned(addra) + to_unsigned(1, addra'length)); - end if; - if addra = read_addr_stop_i then - valid_reg <= '0'; - else - valid_reg <= '1'; - end if; - - when s_wait => - ready_reg <= '0'; - if ready_i = '1' then - valid_reg <= '0'; - addra <= std_logic_vector(unsigned(addra) + to_unsigned(1, addra'length)); - end if; - - when s_readout_complete => - ready_reg <= '0'; - valid_reg <= '0'; - readout_active_reg <= '0'; - - when s_bram_update => readout_active_reg <= '0'; - ready_reg <= '1'; - - if set_write_addr_pulse_i = '1' then - -- move the write pointer - addra <= write_addr_start_i; - end if; - - if valid_i = '1' then - -- advance the write pointer - addra <= std_logic_vector(unsigned(addra) + to_unsigned(1, addra'length)); + ready_reg <= '1'; + if (loop_active = '0') then + if set_write_addr_pulse_i = '1' then + -- move the write pointer + addra <= write_addr_start_i; + end if; + if valid_i = '1' then + -- advance the write pointer + addra <= std_logic_vector(unsigned(addra) + to_unsigned(1, addra'length)); + end if; + if start_pulse_i = '1' then + loop_counter <= loops_prime; + addra <= read_addr_start_i; + ready_reg <= '0'; + end if; + else -- if (loop_active = '1') then + ready_reg <= '0'; + addra <= read_addr_start_i; + readout_active_reg <= '1'; end if; - if start_pulse_i = '1' then - addra <= read_addr_start_i; - ready_reg <= '0'; - end if; when others => report "Invalid FSM state of playback_controller" severity failure; + end case; end if; end if; end process; + -- BRAM instantiation for FLX712 -- TODO: Versal should use UltraRam with 16 bit address, with 64*8*1024 bits of memory xpm_memory_spram_inst : xpm_memory_spram generic map ( -- @suppress "Generic map uses default values. Missing optional actuals: USE_MEM_INIT_MMI, CASCADE_HEIGHT, SIM_ASSERT_CHK, WRITE_PROTECT" - ADDR_WIDTH_A => playback_controller_address'length, -- DECIMAL - AUTO_SLEEP_TIME => 0, -- DECIMAL - BYTE_WRITE_WIDTH_A => 8, -- DECIMAL - ECC_MODE => "no_ecc", -- String - MEMORY_INIT_FILE => "none", -- String - MEMORY_INIT_PARAM => "0", -- String - MEMORY_OPTIMIZATION => "true", -- String - MEMORY_PRIMITIVE => f_mem_type(USE_ULTRARAM), -- String - MEMORY_SIZE => (2**playback_controller_address'length) * 8, -- Number of bits - MESSAGE_CONTROL => 0, -- DECIMAL - READ_DATA_WIDTH_A => 8, -- DECIMAL - READ_LATENCY_A => 1, -- DECIMAL - READ_RESET_VALUE_A => "0", -- String - RST_MODE_A => "SYNC", -- String - USE_MEM_INIT => 1, -- DECIMAL - WAKEUP_TIME => "disable_sleep", -- String - WRITE_DATA_WIDTH_A => 8, -- DECIMAL - WRITE_MODE_A => "write_first" -- String + ADDR_WIDTH_A => playback_controller_address'length, -- DECIMAL + AUTO_SLEEP_TIME => 0, -- DECIMAL + BYTE_WRITE_WIDTH_A => 8, -- DECIMAL + ECC_MODE => "no_ecc", -- String + MEMORY_INIT_FILE => "none", -- String + MEMORY_INIT_PARAM => "0", -- String + MEMORY_OPTIMIZATION => "true", -- String + MEMORY_PRIMITIVE => f_mem_type(USE_ULTRARAM), -- String + MEMORY_SIZE => (2**playback_controller_address'length) * 8, -- Number of bits + MESSAGE_CONTROL => 0, -- DECIMAL + READ_DATA_WIDTH_A => 8, -- DECIMAL + READ_LATENCY_A => 1, -- DECIMAL + READ_RESET_VALUE_A => "0", -- String + RST_MODE_A => "SYNC", -- String + USE_MEM_INIT => 1, -- DECIMAL + WAKEUP_TIME => "disable_sleep", -- String + WRITE_DATA_WIDTH_A => 8, -- DECIMAL + WRITE_MODE_A => "write_first" -- String ) port map ( - sleep => '0', -- 1-bit input: sleep signal to enable the dynamic power saving feature. - clka => clk, -- 1-bit input: Clock signal for port A. - rsta => '0', -- 1-bit input: Reset signal for the final port A output register - ena => '1', -- 1-bit input: Memory enable signal for port A. Must be high on clock-- cycles when read or write operations are initiated. Pipelined-- internally. - regcea => '1', -- 1-bit input: Clock Enable for the last register stage on the output - wea => wea, -- WRITE_DATA_WIDTH_A/BYTE_WRITE_WIDTH_A-bit input: Write enable vector-- for port A input data port dina. 1 bit wide when word-wide writes-- are used. In byte-wide write configurations, each bit controls the-- writing one byte of dina to address addra. For example, to-- synchronously write only bits [15-8] of dina when WRITE_DATA_WIDTH_A-- is 32, wea would be 4'b0010. - addra => addra, -- ADDR_WIDTH_A-bit input: Address for port A write and read operations. - dina => data_i, -- WRITE_DATA_WIDTH_A-bit input: Data input for port A write operations. - injectsbiterra => '0', -- 1-bit input: Controls single bit error injection on input data when - injectdbiterra => '0', -- 1-bit input: Controls double bit error injection on input data when - douta => data_reg, -- READ_DATA_WIDTH_A-bit output: Data output for port A read operations. - sbiterra => open, -- 1-bit output: Status signal to indicate single bit error occurrence - dbiterra => open -- 1-bit output: Status signal to indicate double bit error occurrence + sleep => '0', -- 1-bit input: sleep signal to enable the dynamic power saving feature. + clka => clk, -- 1-bit input: Clock signal for port A. + rsta => '0', -- 1-bit input: Reset signal for the final port A output register + ena => '1', -- 1-bit input: Memory enable signal for port A. Must be high on clock-- cycles when read or write operations are initiated. Pipelined-- internally. + regcea => '1', -- 1-bit input: Clock Enable for the last register stage on the output + wea => wea, -- WRITE_DATA_WIDTH_A/BYTE_WRITE_WIDTH_A-bit input: Write enable vector-- for port A input data port dina. 1 bit wide when word-wide writes-- are used. In byte-wide write configurations, each bit controls the-- writing one byte of dina to address addra. For example, to-- synchronously write only bits [15-8] of dina when WRITE_DATA_WIDTH_A-- is 32, wea would be 4'b0010. + addra => addra, -- ADDR_WIDTH_A-bit input: Address for port A write and read operations. + dina => data_i, -- WRITE_DATA_WIDTH_A-bit input: Data input for port A write operations. + injectsbiterra => '0', -- 1-bit input: Controls single bit error injection on input data when + injectdbiterra => '0', -- 1-bit input: Controls double bit error injection on input data when + douta => data_reg, -- READ_DATA_WIDTH_A-bit output: Data output for port A read operations. + sbiterra => open, -- 1-bit output: Status signal to indicate single bit error occurrence + dbiterra => open -- 1-bit output: Status signal to indicate double bit error occurrence ); diff --git a/sources/ItkStrip/strips_package.vhd b/sources/ItkStrip/strips_package.vhd index 054bc1a0f5a80f792da45aabf75470a25c231db6..8774e400d6d541da9a9b8d354a6b644cfc978d11 100644 --- a/sources/ItkStrip/strips_package.vhd +++ b/sources/ItkStrip/strips_package.vhd @@ -53,7 +53,8 @@ package strips_package is constant L0tag_bits : std_logic_vector(6 downto 0) := (others => '0'); -- playback controller address and data width - constant playback_controller_address : std_logic_vector(12 downto 0) := (others => '0'); --8 kB of trickle memory + constant playback_controller_address : std_logic_vector(11 downto 0) := (others => '0'); --4 kB of trickle memory + --constant playback_controller_address : std_logic_vector(12 downto 0) := (others => '0'); --8 kB of trickle memory --constant playback_controller_address : std_logic_vector(13 downto 0) := (others => '0'); --16 kB of trickle memory constant playback_controller_data : std_logic_vector(7 downto 0) := (others => '0'); diff --git a/sources/PRandomDGen/randomd_gen.vhd b/sources/PRandomDGen/randomd_gen_fmemu.vhd similarity index 98% rename from sources/PRandomDGen/randomd_gen.vhd rename to sources/PRandomDGen/randomd_gen_fmemu.vhd index 75fa4ca47ef7678d6bed3ea2ad7970369b50398c..00a18187836d6bf8193990bf4077e871e1fdea22 100644 --- a/sources/PRandomDGen/randomd_gen.vhd +++ b/sources/PRandomDGen/randomd_gen_fmemu.vhd @@ -33,7 +33,7 @@ library ieee, UNISIM; use ieee.std_logic_1164.all; use work.pcie_package.all; -entity Random_gen is +entity Random_gen_fmemu is generic ( LANE_ID : integer := 0 ); @@ -46,9 +46,9 @@ entity Random_gen is rg_enb : in std_logic; -- Active high generate one random value per pulse(clk240 clock used). rg_doutb : out std_logic_vector(15 downto 0) -- RDG output(clk240) ); -end entity Random_gen; +end entity Random_gen_fmemu; -architecture rtl of Random_gen is +architecture rtl of Random_gen_fmemu is constant wd : integer := 10; signal rg_temp : std_logic_vector(wd - 1 downto 0):= (wd - 1 => '1', others => '0'); diff --git a/sources/Xoff_decoder/8b10_dec.vhd b/sources/Xoff_decoder/8b10_dec_fmemu.vhd similarity index 98% rename from sources/Xoff_decoder/8b10_dec.vhd rename to sources/Xoff_decoder/8b10_dec_fmemu.vhd index 01223be6f6a3fe0a4011f2033f50433e1bec7f90..f26c27ca908acc3ca0b6e3e5dc2fbaf38469da42 100644 --- a/sources/Xoff_decoder/8b10_dec.vhd +++ b/sources/Xoff_decoder/8b10_dec_fmemu.vhd @@ -73,7 +73,7 @@ library IEEE; use IEEE.STD_LOGIC_1164.all; --! 8b/10b Decoder by Critia Computer, Inc. -entity xoff_dec_8b10b is +entity xoff_dec_8b10b_fmemu is port( RESET : in std_logic ; -- Global asynchronous reset (AH) -- syncronous now (13 JUL 2015) RBYTECLK : in std_logic ; -- Master synchronous receive byte clock @@ -82,9 +82,9 @@ entity xoff_dec_8b10b is KO : out std_logic ; -- Control (K) character indicator (AH) HO, GO, FO, EO, DO, CO, BO, AO : out std_logic -- Decoded out (MS..LS) ); -end xoff_dec_8b10b; +end xoff_dec_8b10b_fmemu; -architecture behavioral of xoff_dec_8b10b is +architecture behavioral of xoff_dec_8b10b_fmemu is -- Signals to tie things together signal ANEB, CNED, EEI, P13, P22, P31 : std_logic := '0'; -- Figure 10 Signals diff --git a/sources/Xoff_decoder/8b10_dec_wrap.vhd b/sources/Xoff_decoder/8b10_dec_wrap_fmemu.vhd similarity index 86% rename from sources/Xoff_decoder/8b10_dec_wrap.vhd rename to sources/Xoff_decoder/8b10_dec_wrap_fmemu.vhd index eb174df9f45a3f429217fa67d2a936123fd3ec45..271e61b9e949efb54f05b0359f5093a879ffa32e 100644 --- a/sources/Xoff_decoder/8b10_dec_wrap.vhd +++ b/sources/Xoff_decoder/8b10_dec_wrap_fmemu.vhd @@ -32,7 +32,7 @@ library IEEE; use work.centralRouter_package.all; --! a wrap for 8b10b decoder -entity dec_8b10_wrap is +entity dec_8b10_wrap_fmemu is port ( RESET : in std_logic; RBYTECLK : in std_logic; @@ -41,37 +41,13 @@ entity dec_8b10_wrap is ISK : out std_logic_vector (1 downto 0); BUSY : out std_logic ); -end dec_8b10_wrap; +end dec_8b10_wrap_fmemu; -architecture Behavioral of dec_8b10_wrap is +architecture Behavioral of dec_8b10_wrap_fmemu is ---------------------------------- ---------------------------------- - COMPONENT xoff_dec_8b10b - PORT( - RESET : IN std_logic; - RBYTECLK : IN std_logic; - AI : IN std_logic; - BI : IN std_logic; - CI : IN std_logic; - DI : IN std_logic; - EI : IN std_logic; - II : IN std_logic; - FI : IN std_logic; - GI : IN std_logic; - HI : IN std_logic; - JI : IN std_logic; - KO : OUT std_logic; - HO : OUT std_logic; - GO : OUT std_logic; - FO : OUT std_logic; - EO : OUT std_logic; - DO : OUT std_logic; - CO : OUT std_logic; - BO : OUT std_logic; - AO : OUT std_logic - ); - END COMPONENT; + ---------------------------------- ---------------------------------- @@ -90,7 +66,7 @@ architecture Behavioral of dec_8b10_wrap is begin -- 8b10b decoder - dec_8b10b_INST: xoff_dec_8b10b + dec_8b10b_INST: entity work.xoff_dec_8b10b_fmemu PORT MAP( RESET => RESET, RBYTECLK => RBYTECLK, diff --git a/sources/Xoff_decoder/Xoff_decoder_top.vhd b/sources/Xoff_decoder/Xoff_decoder_top.vhd index a400ef8fa7103fb00a5e4c4261d37a37a4d89db4..b0a8d7047af0594825e1282ba004dca06c043116 100644 --- a/sources/Xoff_decoder/Xoff_decoder_top.vhd +++ b/sources/Xoff_decoder/Xoff_decoder_top.vhd @@ -103,7 +103,7 @@ begin end if; end process; - dec_8b10: entity work.dec_8b10_wrap + dec_8b10: entity work.dec_8b10_wrap_fmemu port map( RESET => Reset, RBYTECLK => Clk, diff --git a/sources/decoding/ByteToAxiStream.vhd b/sources/decoding/ByteToAxiStream.vhd index 7dc0f71f1324649a35644c46a03d2ad233909d1f..caa2031cefa2056572f99dc5c039fa950476b3fa 100644 --- a/sources/decoding/ByteToAxiStream.vhd +++ b/sources/decoding/ByteToAxiStream.vhd @@ -76,6 +76,7 @@ entity ByteToAxiStream is EOB : in std_logic_vector(BYTES-1 downto 0); --Add to tuser TruncateIn : in std_logic_vector(BYTES-1 downto 0); --Add to tuser CodingErrorIn : in std_logic; + FramingErrorIn : in std_logic; m_axis : out axis_32_type; --FIFO read port (axi stream) m_axis_tready : in std_logic; --FIFO read tready (axi stream) m_axis_aclk : in std_logic; --FIFO read clock (axi stream) @@ -90,6 +91,7 @@ architecture Behavioral of ByteToAxiStream is signal s_axis_tready: std_logic; signal Truncate: std_logic; + signal FramingError: std_logic; --signal ByteIndex: integer range 0 to 3; signal EnableIn_aclk: std_logic; @@ -99,102 +101,6 @@ architecture Behavioral of ByteToAxiStream is begin - --g_onebyte: if BYTES = 1 generate - -- signal DataInValid_p1: std_logic; - -- signal DataIn_p1: std_logic_vector(7 downto 0); - --begin - --toaxis_proc: process(s_axis_aresetn, clk40) - -- variable ElinkBusy_v: std_logic; - -- variable ClearElinkBusy_v: std_logic; - -- variable FramingError_v : std_logic; - -- variable TruncateHandled : std_logic; - --begin - -- if s_axis_aresetn = '0' then - -- s_axis.tdata <= (others => '0'); - -- s_axis.tvalid <= '0'; - -- s_axis.tlast <= '0'; - -- s_axis.tkeep <= "0000"; - -- s_axis.tuser <= "0000"; - -- Truncate <= '0'; - -- ByteIndex <= 0; - -- TruncateHandled := '0'; - -- ElinkBusy_v := '0'; - -- FramingError_v := '0'; - -- DataInValid_p1 <= '0'; - -- ChunkContainsData <= '0'; - -- elsif rising_edge(clk40) then - -- if TruncateIn(0) = '1' then - -- Truncate <= '1'; - -- end if; - -- if SOB(0) = '1' then - -- ElinkBusy_v := '1'; - -- end if; - -- if EOB(0) = '1' then - -- ClearElinkBusy_v := '1'; - -- end if; - -- if CodingErrorIn = '1' then - -- FramingError_v := '1'; - -- end if; - -- if s_axis_tready = '1' then - -- s_axis.tvalid <= '0'; - -- if GearboxValid = '1' then - -- s_axis.tlast <= '0'; - -- s_axis.tkeep <= "1111"; - -- s_axis.tuser <= "0000"; - -- s_axis.tdata(ByteIndex*8+7 downto ByteIndex*8) <= DataIn(7 downto 0); - -- if DataInValid(0) = '1' then - -- ChunkContainsData <= '1'; - -- if ByteIndex < 3 then - -- ByteIndex <= ByteIndex + 1; - -- else - -- ByteIndex <= 0; - -- s_axis.tvalid <= '1'; - -- end if; - -- end if; - -- - -- if (EOP(0) = '1' or Truncate = '1') and ChunkContainsData = '1' then - -- ChunkContainsData <= '0'; - -- if Truncate = '1' then - -- if TruncateHandled = '0' then - -- TruncateHandled := '1'; - -- s_axis.tvalid <= '1'; - -- else - -- s_axis.tvalid <= '0'; - -- end if; - -- if EOP(0) = '1' then - -- Truncate <= '0'; - -- TruncateHandled := '0'; - -- end if; - -- elsif EOP(0) = '1' then - -- s_axis.tvalid <= '1'; - -- end if; - -- s_axis.tlast <= '1'; - -- s_axis.tuser(3) <= Truncate; - -- s_axis.tuser(2) <= ElinkBusy_v; - -- s_axis.tuser(1) <= FramingError_v; - -- s_axis.tuser(0) <= '0'; --CRC not used in this mode. - -- s_axis.tkeep <= (others => '0'); - -- for i in 0 to 3 loop - -- if i < ByteIndex or ByteIndex = 0 then - -- s_axis.tkeep(i) <= '1'; - -- end if; - -- end loop; - -- if ClearElinkBusy_v = '1' then - -- ElinkBusy_v := '0'; - -- ClearElinkBusy_v := '0'; - -- end if; - -- FramingError_v := '0'; - -- ByteIndex <= 0; --Start a fresh 32b word for the next packet. - -- end if; - -- end if; - -- else --tready = 0 - -- if DataInValid(0) = '1' then - -- Truncate <= '1'; - -- end if; - -- end if; - -- end if; - --end process; - --end generate; g_multibyte: if BYTES >= 1 generate @@ -220,7 +126,7 @@ begin variable shiftKeep_v : std_logic_vector(3 downto 0); variable ElinkBusy_v: std_logic; variable ClearElinkBusy_v: std_logic; - variable FramingError_v : std_logic; + variable CodingError_v : std_logic; variable outputNow, outputNext : std_logic; variable maxBytes: integer range 0 to BYTES-1; variable ChunkContainsData_v : std_logic; @@ -230,7 +136,7 @@ begin shiftData_v := (others => '0'); ElinkBusy_v := '0'; ClearElinkBusy_v := '0'; - FramingError_v := '0'; + CodingError_v := '0'; s_axis_p0.tdata <= x"00000000"; s_axis_p0.tkeep <= x"0"; s_axis_p0.tuser <= x"0"; @@ -248,6 +154,7 @@ begin s_axis_p2.tvalid <= '0'; Truncate <= '0'; + FramingError <= '0'; ChunkContainsData_v := '0'; TruncateHandled <= '0'; outputNow := '0'; @@ -272,9 +179,12 @@ begin if Truncate = '0' then for i in 0 to BYTES-1 loop - if TruncateIn(i) = '1' then + if (TruncateIn(i) = '1' OR FramingErrorIn = '1') then Truncate <= '1'; TruncateHandled <= '0'; + if FramingErrorIn = '1' then + FramingError <= '1'; + end if; end if; outputNow := '0'; outputNext := '0'; @@ -284,8 +194,8 @@ begin if EOB(i) = '1' then ClearElinkBusy_v := '1'; end if; - if CodingErrorIn = '1' then - FramingError_v := '1'; + if (CodingErrorIn = '1') then + CodingError_v := '1'; end if; if DataInValid(i) = '1' then shiftData_v(23 downto 0) := shiftData_v(31 downto 8); --Shift 1 byte @@ -337,10 +247,10 @@ begin s_axis_p1.tvalid <= '1'; s_axis_p1.tkeep <= shiftKeep_v; s_axis_p1.tdata <= shiftData_v; - s_axis_p1.tuser <= Truncate & ElinkBusy_v & FramingError_v & '0'; + s_axis_p1.tuser <= Truncate & ElinkBusy_v & (CodingError_v or FramingError) & '0'; shiftKeep_v := "0000"; shiftData_v := x"00000000"; - FramingError_v := '0'; + CodingError_v := '0'; end if; if shiftKeep_v(0) = '1' and i = maxBytes then --If we have our shift register filled somehwere in the middle, output immediately. outputNext := '1'; @@ -349,23 +259,24 @@ begin s_axis_p0.tvalid <= '1'; s_axis_p0.tkeep <= shiftKeep_v; s_axis_p0.tdata <= shiftData_v; - s_axis_p0.tuser <= Truncate & ElinkBusy_v & FramingError_v & '0'; + s_axis_p0.tuser <= Truncate & ElinkBusy_v & (CodingError_v or FramingError) & '0'; shiftKeep_v := "0000"; shiftData_v := x"00000000"; if ClearElinkBusy_v = '1' then ElinkBusy_v := '0'; end if; - FramingError_v := '0'; + CodingError_v := '0'; end if; end loop; else --Truncate = '1' s_axis_p1.tdata <= shiftData_v; s_axis_p1.tvalid <= (not TruncateHandled); s_axis_p1.tlast <= '1'; - s_axis_p1.tuser <= Truncate & ElinkBusy_v & FramingError_v & '0'; + s_axis_p1.tuser <= Truncate & ElinkBusy_v & (CodingError_v or FramingError) & '0'; TruncateHandled <= '1'; if (DataInValid = (DataInValid'range => '0')) and (TruncateHandled = '1') then --If no data is coming in, we can safely go back to normal operation, and we are sure we are not in the middle of a chunk. Truncate <= '0'; + FramingError <= '0'; TruncateHandled <= '0'; shiftKeep_v := "0000"; shiftData_v := x"00000000"; diff --git a/sources/decoding/DecEgroup_8b10b.vhd b/sources/decoding/DecEgroup_8b10b.vhd index 5450c835aabbdff08faabfc48cec0b96fb03ce90..c03ffe8742fb735e1028bd1a281156cc243ad496 100644 --- a/sources/decoding/DecEgroup_8b10b.vhd +++ b/sources/decoding/DecEgroup_8b10b.vhd @@ -65,6 +65,7 @@ architecture struct of DecEgroup_8b10b is signal Enable : std_logic_vector(3 downto 0); signal DataGB : std_logic_vector(39 downto 0); signal DataGBValid : std_logic_vector( 3 downto 0); + signal DataGBValid_p1 : std_logic_vector( 3 downto 0); signal DataGB_32b : std_logic_vector(39 downto 0); signal DataGB_32bValid : std_logic; @@ -124,7 +125,9 @@ architecture struct of DecEgroup_8b10b is signal ElinkAligned_s : std_logic_vector(3 downto 0); signal CodingError : std_logic_vector(3 downto 0); signal DisparityError : std_logic_vector(3 downto 0); -- @suppress "signal DisparityError is never read" + signal FramingError : std_logic_vector(3 downto 0); signal CodingError_0, CodingError_1, CodingError_2, CodingError_3: std_logic; + signal FramingError_0, FramingError_1, FramingError_2, FramingError_3: std_logic; signal ByteToAxiStreamGearboxValid : std_logic_vector(3 downto 0); @@ -138,6 +141,7 @@ architecture struct of DecEgroup_8b10b is signal DecoderAligned8b10b_out : std_logic_vector(3 downto 0); signal CodingError8b10b : std_logic_vector(3 downto 0); signal DisparityError8b10b : std_logic_vector(3 downto 0); + signal FramingError8b10b : std_logic_vector(3 downto 0); signal ISK_SOC_in : std_logic_vector(3 downto 0); signal ISK_SOC_out : std_logic_vector(3 downto 0); signal ISK_SOC_out_p1 : std_logic_vector(3 downto 0); @@ -223,8 +227,9 @@ begin DecoderLinkSharing_proc: process( clk40 ) begin if rising_edge( clk40 ) then + DataGBValid_p1 <= DataGBValid; for i in 0 to 3 loop - if DataGBValid(i) = '1' then + if DataGBValid_p1(i) = '1' then --Gearbox valid, but 1 clock later because the data passes through the decoder. ISK_SOC_out_p1(i) <= ISK_SOC_out(i); ISK_EOC_out_p1(i) <= ISK_EOC_out(i); ISK_DelimiterB_out_p1(i) <= ISK_DelimiterB_out(i); -- the 16 and 8 bit decoders need 1 cycle delay on the second character on the (max. length 3) of the delimiter @@ -493,12 +498,13 @@ begin DecoderAligned_in => DecoderAligned8b10b_in(i), CodingError => CodingError8b10b(i), DisparityError => DisparityError8b10b(i), + FramingError => FramingError8b10b(i), dispout => dispout(i), dispin => dispin(i), - ISK_SOC_in => ISK_SOC_in(i), - ISK_SOC_out => ISK_SOC_out(i), - ISK_EOC_in => ISK_EOC_in(i), - ISK_EOC_out => ISK_EOC_out(i), + Char_SOC_in => ISK_SOC_in(i), + Char_SOC_out => ISK_SOC_out(i), + Char_EOC_in => ISK_EOC_in(i), + Char_EOC_out => ISK_EOC_out(i), ISK_DelimiterA_in => ISK_DelimiterA_in(i), ISK_DelimiterB_in => ISK_DelimiterB_in(i), ISK_DelimiterA_out => ISK_DelimiterA_out(i), @@ -518,16 +524,16 @@ begin elsif rising_edge(clk40) then --rigorous error counting errs := DecodingErrors_s; - if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(0) = '1' OR DisparityError8b10b(0) = '1')) then + if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(0) = '1' OR DisparityError8b10b(0) = '1' OR FramingError8b10b(0) = '1')) then errs := errs + x"1"; end if; - if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(1) = '1' OR DisparityError8b10b(1) = '1')) then + if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(1) = '1' OR DisparityError8b10b(1) = '1' OR FramingError8b10b(1) = '1')) then errs := errs + x"1"; end if; - if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(2) = '1' OR DisparityError8b10b(2) = '1')) then + if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(2) = '1' OR DisparityError8b10b(2) = '1' OR FramingError8b10b(2) = '1')) then errs := errs + x"1"; end if; - if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(3) = '1' OR DisparityError8b10b(3) = '1')) then + if(errs /= x"FFFF_FFFF" AND (CodingError8b10b(3) = '1' OR DisparityError8b10b(3) = '1' OR FramingError8b10b(3) = '1')) then errs := errs + x"1"; end if; DecodingErrors_s <= errs; @@ -543,7 +549,7 @@ begin encodingmux: process(DataOut8b10b, DataOutValid8b10b, EOP8b10b, ElinkSOB8b10b, ElinkEOB8b10b, DecoderAligned8b10b_out, - CodingError8b10b, DisparityError8b10b, + CodingError8b10b, DisparityError8b10b, FramingError8b10b, DataIn, LinkAligned, PathEncoding, ElinkWidth, EnableIn, DataGB_32bValid_p1, DataGB_16bValid_p1, DataGB_8b1Valid_p1, DataGB_8b2Valid_p1, DataValid, DataValid(0)) @@ -576,6 +582,7 @@ begin DecoderAligned(i) <= '0'; CodingError(i) <= '0'; DisparityError(i) <= '0'; + FramingError(i) <= '0'; ByteToAxiStreamGearboxValid(i) <= '0'; if ME(i*4+3 downto i*4) = "0000" then --No Encoding / Direct mode, take data directly from Egroup input bits if ElinkWidth = "100" then --32-bit E-Links, use Enable bit 0 @@ -595,6 +602,7 @@ begin DecoderAligned(i) <= LinkAligned; CodingError(i) <= '0'; DisparityError(i) <= '0'; + FramingError(i) <= '0'; end if; if ME(i*4+3 downto i*4) = "0001" then --8b10b encoding, take data from decoders Data(8*i+7 downto 8*i) <= DataOut8b10b(8*i+7 downto 8*i); @@ -605,6 +613,7 @@ begin DecoderAligned(i) <= DecoderAligned8b10b_out(i); CodingError(i) <= CodingError8b10b(i); DisparityError(i) <= DisparityError8b10b(i); + FramingError(i) <= FramingError8b10b(i); case ElinkWidth is when "010" => --8 bit E-Link ByteToAxiStreamGearboxValid(0) <= DataGB_32bValid_p1; @@ -631,7 +640,7 @@ begin end loop; end process; - datamux: process(ElinkWidth, Data, DataValid, EOP, ElinkEOB, ElinkSOB, DecoderAligned, CodingError) + datamux: process(ElinkWidth, Data, DataValid, EOP, ElinkEOB, ElinkSOB, DecoderAligned, CodingError, FramingError) begin case ElinkWidth is when "010" => --8 bit E-Link @@ -656,10 +665,14 @@ begin DataValid_2 <= "0" & DataValid(2); DataValid_3 <= DataValid(3 downto 3); ElinkAligned_s <= DecoderAligned; - CodingError_0 <= CodingError(0) or CodingError(1); + CodingError_0 <= CodingError(0) or CodingError(1); CodingError_1 <= '0'; CodingError_2 <= CodingError(2) or CodingError(3); CodingError_3 <= '0'; + FramingError_0 <= FramingError(0) or FramingError(1); + FramingError_1 <= '0'; + FramingError_2 <= FramingError(2) or FramingError(3); + FramingError_3 <= '0'; when "011" => Data_0 <= x"0000" & Data(15 downto 0); Data_1 <= x"00"; @@ -686,6 +699,11 @@ begin CodingError_1 <= CodingError(1); CodingError_2 <= CodingError(2); CodingError_3 <= CodingError(3); + + FramingError_0 <= FramingError(0); + FramingError_1 <= FramingError(1); + FramingError_2 <= FramingError(2); + FramingError_3 <= FramingError(3); when "100" => Data_0 <= Data(31 downto 0); Data_1 <= x"00"; @@ -715,6 +733,11 @@ begin CodingError_1 <= '0'; CodingError_2 <= '0'; CodingError_3 <= '0'; + + FramingError_0 <= FramingError(0) or FramingError(1) or FramingError(2) or FramingError(3); + FramingError_1 <= '0'; + FramingError_2 <= '0'; + FramingError_3 <= '0'; when others => Data_0 <= (others => '0'); Data_1 <= (others => '0'); @@ -737,10 +760,15 @@ begin DataValid_2 <= "00"; DataValid_3 <= "0"; ElinkAligned_s <= "0000"; - CodingError_0 <= '0'; - CodingError_1 <= '0'; - CodingError_2 <= '0'; - CodingError_3 <= '0'; + CodingError_0 <= '0'; + CodingError_1 <= '0'; + CodingError_2 <= '0'; + CodingError_3 <= '0'; + + FramingError_0 <= '0'; + FramingError_1 <= '0'; + FramingError_2 <= '0'; + FramingError_3 <= '0'; end case; end process; @@ -790,6 +818,7 @@ begin EOB => EOB_0, TruncateIn => Truncate, CodingErrorIn => CodingError_0, + FramingErrorIn => FramingError_0, m_axis => m_axis(0), m_axis_tready => m_axis_tready(0), m_axis_aclk => m_axis_aclk, @@ -821,6 +850,7 @@ begin EOB => EOB_1, TruncateIn => Truncate(1 downto 1), CodingErrorIn => CodingError_1, + FramingErrorIn => FramingError_1, m_axis => m_axis(1), m_axis_tready => m_axis_tready(1), m_axis_aclk => m_axis_aclk, @@ -853,6 +883,7 @@ begin EOB => EOB_2, TruncateIn => Truncate(3 downto 2), CodingErrorIn => CodingError_2, + FramingErrorIn => FramingError_2, m_axis => m_axis(2), m_axis_tready => m_axis_tready(2), m_axis_aclk => m_axis_aclk, @@ -885,6 +916,7 @@ begin EOB => EOB_3, TruncateIn => Truncate(3 downto 3), CodingErrorIn => CodingError_3, + FramingErrorIn => FramingError_3, m_axis => m_axis(3), m_axis_tready => m_axis_tready(3), m_axis_aclk => m_axis_aclk, diff --git a/sources/decoding/Decoder8b10b.vhd b/sources/decoding/Decoder8b10b.vhd index 32432715c0cd4426cdbcd52ab831f0d47598c0cf..172bd6c9998d9b367787c3dc376d86e63fcaf73f 100644 --- a/sources/decoding/Decoder8b10b.vhd +++ b/sources/decoding/Decoder8b10b.vhd @@ -58,13 +58,14 @@ entity Decoder8b10b is DecoderAligned_out : out std_logic; --Indicator that the 8b10b decoder was successfully aligned. DecoderAligned_in : in std_logic; -- Indicated that one of the other linked decoders has successfully aligned CodingError : out std_logic; + FramingError : out std_logic; -- signals a missing end of chunk charcater or start of chunk character or both DisparityError : out std_logic; dispout : out std_logic; --Disparity in/out: Loop back through register to same decoder, or to the next when using parallel decoders dispin : in std_logic; --Disparity in/out: Loop back through register to same decoder, or to the next when using parallel decoders - ISK_SOC_in : in std_logic; --Handshake lines to parallel decoders - ISK_SOC_out : out std_logic; --Handshake lines to parallel decoders - ISK_EOC_in : in std_logic; --Handshake lines to parallel decoders - ISK_EOC_out : out std_logic; --Handshake lines to parallel decoders + Char_SOC_in : in std_logic; --Handshake lines to parallel decoders + Char_SOC_out : out std_logic; --Handshake lines to parallel decoders + Char_EOC_in : in std_logic; --Handshake lines to parallel decoders + Char_EOC_out : out std_logic; --Handshake lines to parallel decoders ISK_DelimiterA_in : in std_logic; --Handshake lines to parallel decoders ISK_DelimiterB_in : in std_logic; --Handshake lines to parallel decoders ISK_DelimiterA_out : out std_logic; --Handshake lines to parallel decoders @@ -76,16 +77,13 @@ entity Decoder8b10b is end Decoder8b10b; architecture Behavioral of Decoder8b10b is - signal DecoderAligned_s: std_logic; - - signal decoder_out : std_logic_vector(7 downto 0) := (others => '0');--Output of 8b10b decoder --Second pipeline to align EOP with last output of chunk signal CharIsK : std_logic; --Output of 8b10b decoder signal ISK_comma : std_logic; signal ISK_SOC, ISK_EOC: std_logic; -- FIXME why CHAR_EOC and not ISK_EOC? - signal Char_EOC, Char_SOB, Char_EOB: std_logic; + signal Char_SOC, Char_EOC, Char_SOB, Char_EOB: std_logic; --signal DataInValid_p1 : std_logic; --One pipeline delayed synchronous with 8b10b decoder. signal decoder_out_valid : std_logic; --One pipeline delayed synchronous with 8b10b decoder. signal decoder_out_valid_no_ReceivingState : std_logic; --One pipeline delayed synchronous with 8b10b decoder. @@ -95,6 +93,8 @@ architecture Behavioral of Decoder8b10b is signal disp_err, code_err: std_logic; signal DecoderAligned_4s: std_logic; signal DecoderAligned_pipe: std_logic_vector(4 downto 0); + + begin GBT_mode: if (GENERATE_FEI4B = false and GENERATE_LCB_ENC = false) generate @@ -102,35 +102,35 @@ begin begin if HGTD_ALTIROC_DECODING = '0' then --NSW-like ISK_comma <= '1' when (DataIn = COMMAp or DataIn = COMMAn) else '0'; - ISK_SOC <= '1' when (DataIn = SOCp or DataIn = SOCn) else '0'; + --ISK_SOC <= '1' when (DataIn = SOCp or DataIn = SOCn) else '0'; ISK_EOC <= '1' when (DataIn = EOCp or DataIn = EOCn) else '0'; --Char_comma <= '1' when (decoder_out = Kchar_comma and CharIsK = '1' and decoder_out_valid = '1') else '0'; - --Char_SOC <= '1' when (decoder_out = Kchar_sop and CharIsK = '1' and decoder_out_valid = '1') else '0'; - Char_EOC <= '1' when (decoder_out = Kchar_eop and CharIsK = '1' and decoder_out_valid = '1') else '0'; + Char_SOC <= '1' when (decoder_out = Kchar_sop and CharIsK = '1' and decoder_out_valid_no_ReceivingState = '1') else '0'; + Char_EOC <= '1' when (decoder_out = Kchar_eop and CharIsK = '1' and decoder_out_valid_no_ReceivingState = '1') else '0'; Char_SOB <= '1' when (decoder_out = Kchar_sob and CharIsK = '1' and decoder_out_valid_no_ReceivingState = '1') else '0'; Char_EOB <= '1' when (decoder_out = Kchar_eob and CharIsK = '1' and decoder_out_valid_no_ReceivingState = '1') else '0'; else --HGTD Altiroc -- DataIn = 10 bits, use both positive and negative options; note that decoder_out is delayed by 1 cycle (with DataValid active) from DataIn -- K.28.5 188 BC 1011 1100 10bN 00 1111 1010 10bP 11 0000 0101 -- K.28.7 252 FC 1111 1100 10bN 00 1111 1000 10bP 11 0000 0111 - ISK_comma <= '1' when (DataIn = HGTD_COMMAn or DataIn = HGTD_COMMAp) else '0'; - ISK_SOC <= '1' when ( CharIsK_in = '1' and not ( ISK_comma = '1' or ISK_EOC = '1' ) ) else '0'; - ISK_EOC <= '1' when ((DataIn = HGTD_EOPn or DataIn = HGTD_EOPp)) else '0'; - Char_EOC <= '1' when (decoder_out = HGTD_Kchar_eop) and (CharIsK = '1') and (CharIsK_in = '0') else '0'; - --Char_SOC <= '0'; - Char_SOB <= '0'; - Char_EOB <= '0'; + ISK_comma <= '1' when (DataIn = HGTD_COMMAn or DataIn = HGTD_COMMAp) else '0'; + ISK_SOC <= '1' when ( CharIsK_in = '1' and not ( ISK_comma = '1' or ISK_EOC = '1' ) ) else '0'; + ISK_EOC <= '1' when ((DataIn = HGTD_EOPn or DataIn = HGTD_EOPp)) else '0'; + Char_EOC <= '1' when (decoder_out = HGTD_Kchar_eop) and (CharIsK = '1') and (CharIsK_in = '0') else '0'; + Char_SOC <= '0'; + Char_SOB <= '0'; + Char_EOB <= '0'; end if; end process; end generate GBT_mode; FEI4B: if (GENERATE_FEI4B) generate ISK_comma <= '1' when (DataIn = FEI4B_COMMAp or DataIn = FEI4B_COMMAn) else '0'; - ISK_SOC <= '1' when (DataIn = FEI4B_SOCp or DataIn = FEI4B_SOCn) else '0'; + --ISK_SOC <= '1' when (DataIn = FEI4B_SOCp or DataIn = FEI4B_SOCn) else '0'; --Char_comma <= '1' when (decoder_out = FEI4B_Kchar_comma and CharIsK = '1' and decoder_out_valid = '1') else '0'; - --Char_SOC <= '1' when (decoder_out = FEI4B_Kchar_sop and CharIsK = '1' and decoder_out_valid = '1') else '0'; - Char_EOC <= '1' when (decoder_out = FEI4B_Kchar_eop and CharIsK = '1' and decoder_out_valid = '1') else '0'; + Char_SOC <= '1' when (decoder_out = FEI4B_Kchar_sop and CharIsK = '1' and decoder_out_valid_no_ReceivingState = '1') else '0'; + Char_EOC <= '1' when (decoder_out = FEI4B_Kchar_eop and CharIsK = '1' and decoder_out_valid_no_ReceivingState = '1') else '0'; Char_SOB <= '0'; Char_EOB <= '0'; end generate FEI4B; @@ -146,8 +146,8 @@ begin Char_EOB <= '0'; end generate LCB; - ISK_SOC_out <= ISK_SOC; - ISK_EOC_out <= ISK_EOC; + Char_SOC_out <= Char_SOC; + Char_EOC_out <= Char_EOC; ISK_DelimiterA_out <= ISK_EOC; ISK_DelimiterB_out <= ISK_comma; ISK_DelimiterC <= ISK_comma; @@ -158,6 +158,7 @@ begin variable AlignmentPulse: std_logic; variable DecoderAligned_4v: std_logic; variable ReceivingState: std_logic; + variable FirstSOCSeen: std_logic; begin if reset = '1' then AlignmentCounter <= 3; @@ -173,6 +174,8 @@ begin RealignmentEvent <= '0'; decoder_out_valid <= '0'; decoder_out_valid_no_receivingState <= '0'; + FramingError <= '0'; + FirstSOCSeen := '0'; --The first framing error as a result of missing SOC due to the decoder just aligning should be ignored. elsif rising_edge(clk40) then if DecoderAligned_s = '1' then AlignmentPulse := AlignmentPulseDeAlign; @@ -203,12 +206,38 @@ begin DecoderAligned_s <= '0'; end if; end if; - if (Char_EOC = '1' or ISK_EOC_in = '1' ) then + --Treat inputs for EOC and SOC from other (parallel) decoders first, so ReceivingState is set prior to handling SOC/EOC from this decoder + if (Char_EOC_in = '1' and decoder_out_valid_no_ReceivingState = '1') then + FramingError <= '0'; + if (ReceivingState = '0' and FirstSOCSeen = '1' and HGTD_ALTIROC_DECODING = '0') then + FramingError <= '1'; --HGTD doesn't use framing, so don't assert FramingError + end if; ReceivingState := '0'; end if; - if ((ISK_SOC = '1' or ISK_SOC_in = '1' ) and DecoderAligned_4v = '1') or not AWAIT_SOP then + if (Char_SOC_in = '1' and decoder_out_valid_no_ReceivingState = '1') or not AWAIT_SOP then + FirstSOCSeen := '1'; --First SOC occured, start recording Framing errors + if (ReceivingState = '1' and HGTD_ALTIROC_DECODING = '0') then + FramingError <= '1' ; --HGTD doesn't use framing, so don't assert FramingError + end if; + ReceivingState := '1'; + end if; + if (Char_SOC = '1' and decoder_out_valid_no_ReceivingState = '1') or not AWAIT_SOP then + FirstSOCSeen := '1'; --First SOC occured, start recording Framing errors + if (ReceivingState = '1' and HGTD_ALTIROC_DECODING = '0') then + FramingError <= '1' ; --HGTD doesn't use framing, so don't assert FramingError + end if; ReceivingState := '1'; end if; + if (Char_EOC = '1' and decoder_out_valid_no_ReceivingState = '1') then + FramingError <= '0'; + if (ReceivingState = '0' and FirstSOCSeen = '1' and HGTD_ALTIROC_DECODING = '0') then + FramingError <= '1'; --HGTD doesn't use framing, so don't assert FramingError + end if; + ReceivingState := '0'; + end if; + if CharIsK = '0' and decoder_out_valid_no_ReceivingState = '1' and ReceivingState = '0' and FirstSOCSeen = '1' and HGTD_ALTIROC_DECODING = '0'then + FramingError <= '1'; + end if; CodingError <= '0'; RealignmentEvent <= '0'; if ((code_err = '1') and (DecoderAligned_s = '1')) and AutoRealign = '1' then @@ -237,7 +266,6 @@ begin end if; end if; - DecoderAligned_4s <= DecoderAligned_4v; --DataInValid_p1 <= DataInValid and DecoderAligned_4v; --Only validate signal when Elink is aligned for more than 4 clocks. --! Ignore RecievingState for HGTD_ALTIROC_DECODING @@ -267,9 +295,9 @@ begin ElinkSOB <= Char_SOB; ElinkEOB <= Char_EOB; - EOP <= Char_EOC; + EOP <= Char_EOC and decoder_out_valid; DataOut <= decoder_out; - DataOutValid <= not CharIsK and decoder_out_valid; + DataOutValid <= (not CharIsK and decoder_out_valid) or (Char_SOC_in and decoder_out_valid_no_ReceivingState and not HGTD_ALTIROC_DECODING); CharIsK_out <= '1' when ISK_comma = '1' or ISK_EOC = '1' else '0'; diff --git a/sources/decoding/DecodingEpathGBT.vhd b/sources/decoding/DecodingEpathGBT.vhd index 80e53ff3d0ae22414e126e7f526aac740b7f38da..9c9d16f3341b81c306ebca49dfb18daeb601cead 100644 --- a/sources/decoding/DecodingEpathGBT.vhd +++ b/sources/decoding/DecodingEpathGBT.vhd @@ -112,6 +112,7 @@ architecture Behavioral of DecodingEpathGBT is signal Decoder8b10bSOB : std_logic_vector(NUM_DECODERS(INCLUDE_16b)-1 downto 0); signal Decoder8b10bEOB : std_logic_vector(NUM_DECODERS(INCLUDE_16b)-1 downto 0); signal Decoder8b10bCodingError: std_logic_vector(NUM_DECODERS(INCLUDE_16b)-1 downto 0); + signal Decoder8b10bFramingError: std_logic_vector(NUM_DECODERS(INCLUDE_16b)-1 downto 0); signal DecoderHDLCAligned : std_logic; signal DecoderHDLCDataOut : std_logic_vector(7 downto 0); @@ -128,6 +129,7 @@ architecture Behavioral of DecodingEpathGBT is signal ByteToAxiStreamEOB : std_logic_vector(NUM_DECODERS(INCLUDE_16b)-1 downto 0); signal ByteToAxiStreamTruncate : std_logic; signal ByteToAxiStreamCodingError: std_logic; + signal ByteToAxiStreamFramingError: std_logic; signal ElinkData_s: std_logic_vector(MAX_INPUT-1 downto 0); signal GearBoxDataOutValid_p1 : std_logic; @@ -294,12 +296,13 @@ begin DecoderAligned_in => DecoderAligned8b10b_in(0), CodingError => Decoder8b10bCodingError(0), DisparityError => open, + FramingError => Decoder8b10bFramingError(0), dispout => dispout(0), dispin => dispin(0), - ISK_SOC_in => ISK_SOC_in(0), - ISK_SOC_out => ISK_SOC_out(0), - ISK_EOC_in => ISK_EOC_in(0), - ISK_EOC_out => ISK_EOC_out(0), + Char_SOC_in => ISK_SOC_in(0), + Char_SOC_out => ISK_SOC_out(0), + Char_EOC_in => ISK_EOC_in(0), + Char_EOC_out => ISK_EOC_out(0), ISK_DelimiterA_in => '1', ISK_DelimiterB_in => ISK_DelimiterB_in(0), ISK_DelimiterA_out => open, @@ -336,12 +339,13 @@ begin DecoderAligned_in => DecoderAligned8b10b_in(1), CodingError => Decoder8b10bCodingError(1), DisparityError => open, + FramingError => Decoder8b10bFramingError(1), dispout => dispout(1), dispin => dispin(1), - ISK_SOC_in => ISK_SOC_in(1), - ISK_SOC_out => ISK_SOC_out(1), - ISK_EOC_in => ISK_EOC_in(1), - ISK_EOC_out => ISK_EOC_out(1), + Char_SOC_in => ISK_SOC_in(1), + Char_SOC_out => ISK_SOC_out(1), + Char_EOC_in => ISK_EOC_in(1), + Char_EOC_out => ISK_EOC_out(1), ISK_DelimiterA_in => '1', ISK_DelimiterB_in => ISK_DelimiterB_in(1), ISK_DelimiterA_out => open, @@ -393,6 +397,7 @@ begin ByteToAxiStreamEOB <= (others => '0'); ByteToAxiStreamTruncate <= '0'; ByteToAxiStreamCodingError <= '0'; + ByteToAxiStreamFramingError <= '0'; ByteToAxiStreamGearboxValid <= '0'; GearBoxDataOutValid_p1 <= GearBoxDataOutValid; @@ -414,11 +419,13 @@ begin ByteToAxiStreamDataOut <= Decoder8b10bDataOut(7 downto 0) & Decoder8b10bDataOut(15 downto 8); --swap the 2 bytes ByteToAxiStreamAligned <= and DecoderAligned8b10b_out; ByteToAxiStreamCodingError <= or Decoder8b10bCodingError; + ByteToAxiStreamFramingError <= or Decoder8b10bFramingError; ByteToAxiStreamDataOutValid <= Decoder8b10bDataOutValid(0) & Decoder8b10bDataOutValid(1); ByteToAxiStreamEOP <= Decoder8b10bEOP(0) & Decoder8b10bEOP(1); else ByteToAxiStreamAligned <= DecoderAligned8b10b_out(0); ByteToAxiStreamCodingError <= Decoder8b10bCodingError(0); + ByteToAxiStreamFramingError <= Decoder8b10bFramingError(0); end if; end if; @@ -458,6 +465,7 @@ begin EOB => ByteToAxiStreamEOB, TruncateIn => (others => ByteToAxiStreamTruncate), CodingErrorIn => ByteToAxiStreamCodingError, + FramingErrorIn => ByteToAxiStreamFramingError, m_axis => m_axis, m_axis_tready => m_axis_tready, m_axis_aclk => m_axis_aclk, diff --git a/sources/ip_cores/kintexUltrascale/KCU_NORXBUF_PCS_CPLL_1CH.xci b/sources/ip_cores/kintexUltrascale/KCU_NORXBUF_PCS_CPLL_1CH.xci index 55929c81eeb1835f6a2fc335f7bd9cdfc9eea464..e9e3195d641fcf31e0907f65f9eedd2eec14f794 100644 --- a/sources/ip_cores/kintexUltrascale/KCU_NORXBUF_PCS_CPLL_1CH.xci +++ b/sources/ip_cores/kintexUltrascale/KCU_NORXBUF_PCS_CPLL_1CH.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/KCU_NORXBUF_PCS_CPLL_1CH</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/KCU_PMA_QPLL_4CH_LPGBT.xci b/sources/ip_cores/kintexUltrascale/KCU_PMA_QPLL_4CH_LPGBT.xci index e855fd9d0da07cee49ad4b42b1f580d7a539de74..335f7734af039e68999d3b588a64501574f3106f 100644 --- a/sources/ip_cores/kintexUltrascale/KCU_PMA_QPLL_4CH_LPGBT.xci +++ b/sources/ip_cores/kintexUltrascale/KCU_PMA_QPLL_4CH_LPGBT.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/KCU_PMA_QPLL_4CH_LPGBT</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH.xci b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH.xci index 9844cb263f475895efbffe68c9490f4f81ebdefe..a0c132f37dfa49089e2151a567785ef580976fad 100644 --- a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH.xci +++ b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/KCU_RXBUF_PMA_CPLL_1CH</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH_LPGBT.xci b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH_LPGBT.xci index 2f06f67ae411104a2f0ff78b2d65e51e36862e98..3600b7090b8847fa23778c28ce9c36a1504daa68 100644 --- a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH_LPGBT.xci +++ b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_CPLL_1CH_LPGBT.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/KCU_RXBUF_PMA_CPLL_1CH_LPGBT</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_4CH.xci b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_4CH.xci index 2abbf397bd1c38e0e26de8c9e35bbd4f2d2b0e68..28e2e4a41085a4c94d757d917f7db1ae50858d0a 100644 --- a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_4CH.xci +++ b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_4CH.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/KCU_RXBUF_PMA_QPLL_4CH</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_FE4CH_LPGBT.xci b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_FE4CH_LPGBT.xci index ef2e15e2e53148b73334002e55f805ae5932d1fe..0b3956b07385a25ef699b174c1fc923e2a7bac8e 100644 --- a/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_FE4CH_LPGBT.xci +++ b/sources/ip_cores/kintexUltrascale/KCU_RXBUF_PMA_QPLL_FE4CH_LPGBT.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/KCU_RXBUF_PMA_QPLL_FE4CH_LPGBT</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/axi8_fifo_bif.xci b/sources/ip_cores/kintexUltrascale/axi8_fifo_bif.xci index efe289b606879ecc6fc9547185d00b6ef365ebed..681239fd8ac6ac3dcd90b2f5da1233ff2f7c911d 100644 --- a/sources/ip_cores/kintexUltrascale/axi8_fifo_bif.xci +++ b/sources/ip_cores/kintexUltrascale/axi8_fifo_bif.xci @@ -524,7 +524,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/axi8_fifo_bif</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/axi8_fifo_bram.xci b/sources/ip_cores/kintexUltrascale/axi8_fifo_bram.xci index 3ce57224203e3fdca22e829827ea83d9e069eedf..4e2c0e966a5877bc135bc11a834232ea263099e5 100644 --- a/sources/ip_cores/kintexUltrascale/axi8_fifo_bram.xci +++ b/sources/ip_cores/kintexUltrascale/axi8_fifo_bram.xci @@ -524,7 +524,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/axi8_fifo_bram</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/axis32_fifo_bif.xci b/sources/ip_cores/kintexUltrascale/axis32_fifo_bif.xci index 6d641ca93bf809b05aeb4d27e45fd3166eb96d71..418dabbdabe932cc698c0979a8a8941918a5a5b9 100644 --- a/sources/ip_cores/kintexUltrascale/axis32_fifo_bif.xci +++ b/sources/ip_cores/kintexUltrascale/axis32_fifo_bif.xci @@ -524,7 +524,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/axis32_fifo_bif</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/clk_wiz_100_0.xci b/sources/ip_cores/kintexUltrascale/clk_wiz_100_0.xci index 3707518910717fa8fa67b8e81d75c098bb12d802..b76461ee58faf6284f93c0fe7e4da1ab552d3cfb 100644 --- a/sources/ip_cores/kintexUltrascale/clk_wiz_100_0.xci +++ b/sources/ip_cores/kintexUltrascale/clk_wiz_100_0.xci @@ -674,7 +674,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/clk_wiz_100_0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/clk_wiz_156_0.xci b/sources/ip_cores/kintexUltrascale/clk_wiz_156_0.xci index b7da4993fa631e3e4c29192aa0c820afb44ad547..7d076d92e32b0624da60b0c196613e5f3533e928 100644 --- a/sources/ip_cores/kintexUltrascale/clk_wiz_156_0.xci +++ b/sources/ip_cores/kintexUltrascale/clk_wiz_156_0.xci @@ -674,7 +674,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/clk_wiz_156_0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/clk_wiz_200_0.xci b/sources/ip_cores/kintexUltrascale/clk_wiz_200_0.xci index fb698e4a8eb9247e2da3749f24dcda8726e49aab..aceddd1be8202d516f97828bce48d53982d042d7 100644 --- a/sources/ip_cores/kintexUltrascale/clk_wiz_200_0.xci +++ b/sources/ip_cores/kintexUltrascale/clk_wiz_200_0.xci @@ -674,7 +674,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/clk_wiz_200_0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/clk_wiz_250.xci b/sources/ip_cores/kintexUltrascale/clk_wiz_250.xci index f18bad9f9139feea1970aa8864efdc1f54e23388..00205a943b25531fcddc8cd3d0a0d4e79dd69899 100644 --- a/sources/ip_cores/kintexUltrascale/clk_wiz_250.xci +++ b/sources/ip_cores/kintexUltrascale/clk_wiz_250.xci @@ -690,7 +690,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/clk_wiz_250</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/clk_wiz_40_0.xci b/sources/ip_cores/kintexUltrascale/clk_wiz_40_0.xci index 47b80fe5ff103c47a612b47b493e64ce79323b16..9f1a4584cf4e9185fbff0471e7a6834982b6f8e9 100644 --- a/sources/ip_cores/kintexUltrascale/clk_wiz_40_0.xci +++ b/sources/ip_cores/kintexUltrascale/clk_wiz_40_0.xci @@ -722,7 +722,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/clk_wiz_40_0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/clk_wiz_regmap.xci b/sources/ip_cores/kintexUltrascale/clk_wiz_regmap.xci index bb992d7bc0b1dbb5aeea8f77e8d0c76a84b61260..1a7f5600d78336b792013a69df7ac1b1d9c59108 100644 --- a/sources/ip_cores/kintexUltrascale/clk_wiz_regmap.xci +++ b/sources/ip_cores/kintexUltrascale/clk_wiz_regmap.xci @@ -674,7 +674,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/clk_wiz_regmap</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/debug_bridge_0.xci b/sources/ip_cores/kintexUltrascale/debug_bridge_0.xci index f00d22b08322eb78b7770317335783fa7f93f345..c915a6cad180fcee57c16a5158f92c30b93c8f3a 100644 --- a/sources/ip_cores/kintexUltrascale/debug_bridge_0.xci +++ b/sources/ip_cores/kintexUltrascale/debug_bridge_0.xci @@ -78,7 +78,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/debug_bridge_0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OOC_HIERARCHICAL</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/dsp_counter.xci b/sources/ip_cores/kintexUltrascale/dsp_counter.xci index 8d8a4e7d21eb3a0193596b2a2478bdb7fa166740..9f9c08ff43538bfd4884b8a1a4c4173d8d0a440f 100644 --- a/sources/ip_cores/kintexUltrascale/dsp_counter.xci +++ b/sources/ip_cores/kintexUltrascale/dsp_counter.xci @@ -87,7 +87,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/dsp_counter</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_48g_ku.xci b/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_48g_ku.xci index 72ce385cc5575f6111d616d2bdd0f8df38b5dfb2..d40e9e4df2a7d70fb5a172b07ffaf2b6d78c43df 100644 --- a/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_48g_ku.xci +++ b/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_48g_ku.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/gtwizard_fullmode_cpll_48g_ku</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_ku.xci b/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_ku.xci index 213596b37a83fab213a74a64bac651b13500fb31..9281f5460c35a5969eccf740ff1f29f8fa6113a1 100644 --- a/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_ku.xci +++ b/sources/ip_cores/kintexUltrascale/gtwizard_fullmode_cpll_ku.xci @@ -1372,7 +1372,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/gtwizard_fullmode_cpll_ku</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/gtwizard_ttc_rxcpll.xci b/sources/ip_cores/kintexUltrascale/gtwizard_ttc_rxcpll.xci index 2ae6c5d533c90069ba456d0840a07c4d23f0e621..e94d1e7f9953217f00aaad508668e001a18c4cec 100644 --- a/sources/ip_cores/kintexUltrascale/gtwizard_ttc_rxcpll.xci +++ b/sources/ip_cores/kintexUltrascale/gtwizard_ttc_rxcpll.xci @@ -11,7 +11,7 @@ <spirit:configurableElementValues> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CHANNEL_ENABLE">"000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_SCALING_FACTOR">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CPLL_VCO_FREQUENCY">2578.125</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CPLL_VCO_FREQUENCY">2404.74</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_COMMON_USRCLK">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FORCE_COMMONS">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FREERUN_FREQUENCY">40.079</spirit:configurableElementValue> @@ -32,7 +32,7 @@ <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RESET_SEQUENCE_INTERVAL">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RX_BUFFBYPASS_MODE">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RX_BUFFER_BYPASS_INSTANCE_CTRL">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RX_BUFFER_MODE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RX_BUFFER_MODE">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RX_CB_DISP">"00000000"</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RX_CB_K">"00000000"</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RX_CB_LEN_SEQ">1</spirit:configurableElementValue> @@ -77,7 +77,7 @@ <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TOTAL_NUM_COMMONS">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TOTAL_NUM_COMMONS_EXAMPLE">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TXPROGDIV_FREQ_ENABLE">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TXPROGDIV_FREQ_SOURCE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TXPROGDIV_FREQ_SOURCE">2</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TXPROGDIV_FREQ_VAL">240.474</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_BUFFBYPASS_MODE">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_BUFFER_BYPASS_INSTANCE_CTRL">0</spirit:configurableElementValue> @@ -90,7 +90,7 @@ <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_OUTCLK_BUFG_GT_DIV">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_OUTCLK_FREQUENCY">240.4740000</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_OUTCLK_SOURCE">4</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_PLL_TYPE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_PLL_TYPE">2</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_REFCLK_FREQUENCY">240.474</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_USER_CLOCKING_CONTENTS">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_TX_USER_CLOCKING_INSTANCE_CTRL">0</spirit:configurableElementValue> @@ -113,7 +113,7 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INCLUDE_CPLL_CAL">2</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INS_LOSS_NYQ">20</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_CHANNEL_COLUMN_LOC_MAX">96</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_CHANNEL_SITES_UPDATED">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_CHANNEL_SITES_UPDATED">37</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_GT_PRIM_TYPE">gthe3</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_NUM_COMMONS_CORE">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_NUM_COMMONS_EXAMPLE">0</spirit:configurableElementValue> @@ -138,7 +138,7 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLLOCKDETCLK_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLLOCKEN_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLLOCK_OUT">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLPD_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLPD_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLREFCLKLOST_OUT">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLREFCLKSEL_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_CPLLRESET_IN">0</spirit:configurableElementValue> @@ -190,7 +190,7 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTPOWERGOOD_OUT">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTREFCLK00_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTREFCLK01_IN">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTREFCLK0_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTREFCLK0_IN">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTREFCLK10_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTREFCLK11_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTREFCLK1_IN">0</spirit:configurableElementValue> @@ -207,10 +207,10 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTSOUTHREFCLK1_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTTXRESETSEL_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTTXRESET_IN">-1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_DONE_OUT">-1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_ERROR_OUT">-1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_RESET_IN">-1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_START_USER_IN">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_DONE_OUT">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_ERROR_OUT">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_RESET_IN">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_RX_START_USER_IN">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_TX_DONE_OUT">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_TX_ERROR_OUT">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_GTWIZ_BUFFBYPASS_TX_RESET_IN">1</spirit:configurableElementValue> @@ -417,11 +417,11 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDFEVPOVRDEN_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDFEVSEN_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDFEXYDEN_IN">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYBYPASS_IN">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYEN_IN">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYOVRDEN_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYBYPASS_IN">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYEN_IN">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYOVRDEN_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYSRESETDONE_OUT">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYSRESET_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXDLYSRESET_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXELECIDLEMODE_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXELECIDLE_OUT">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXEQTRAINING_IN">-1</spirit:configurableElementValue> @@ -466,12 +466,12 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPCSRESET_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPD_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHALIGNDONE_OUT">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHALIGNEN_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHALIGNEN_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHALIGNERR_OUT">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHALIGN_IN">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHDLYPD_IN">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHDLYRESET_IN">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHOVRDEN_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHALIGN_IN">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHDLYPD_IN">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHDLYRESET_IN">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPHOVRDEN_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPLLCLKSEL_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPMARESETDONE_OUT">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXPMARESET_IN">0</spirit:configurableElementValue> @@ -503,10 +503,10 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSLIPPMA_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSTARTOFSEQ_OUT">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSTATUS_OUT">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCALLIN_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCALLIN_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCDONE_OUT">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCIN_IN">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCMODE_IN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCIN_IN">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCMODE_IN">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYNCOUT_OUT">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXSYSCLKSEL_IN">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_RXTERMINATION_IN">-1</spirit:configurableElementValue> @@ -651,7 +651,7 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBMDMTDO_OUT">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBRSVDOUT_OUT">-1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBTXUART_OUT">-1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">149</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">159</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_USAGE_UPDATED">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PRESET">None</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_RX_COMMA_PRESET_UPDATE">11</spirit:configurableElementValue> @@ -659,7 +659,7 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_TOTAL_NUM_CHANNELS">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_TOTAL_NUM_COMMONS">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_TX_USRCLK_FREQUENCY">240.4740000</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_UPDATE_IP_SYMBOL_drpclk_in">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_UPDATE_IP_SYMBOL_drpclk_in">true</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.LOCATE_COMMON">CORE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.LOCATE_IN_SYSTEM_IBERT_CORE">NONE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.LOCATE_RESET_CONTROLLER">CORE</spirit:configurableElementValue> @@ -678,7 +678,7 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRESET">None</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_SEQUENCE_INTERVAL">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RX_BUFFER_BYPASS_MODE">MULTI</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RX_BUFFER_MODE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RX_BUFFER_MODE">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RX_BUFFER_RESET_ON_CB_CHANGE">ENABLE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RX_BUFFER_RESET_ON_COMMAALIGN">DISABLE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RX_BUFFER_RESET_ON_RATE_CHANGE">ENABLE</spirit:configurableElementValue> @@ -802,7 +802,7 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_QPLL_REFCLK_FREQUENCY">257.8125</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SIM_CPLL_CAL_BYPASS">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TXPROGDIV_FREQ_ENABLE">false</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TXPROGDIV_FREQ_SOURCE">QPLL1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TXPROGDIV_FREQ_SOURCE">CPLL</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TXPROGDIV_FREQ_VAL">240.474</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_BUFFER_MODE">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_BUFFER_RESET_ON_RATE_CHANGE">ENABLE</spirit:configurableElementValue> @@ -813,10 +813,10 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_LINE_RATE">4.80948</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_MASTER_CHANNEL">X1Y28</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_OUTCLK_SOURCE">TXPROGDIVCLK</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_PLL_TYPE">QPLL1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_PLL_TYPE">CPLL</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_QPLL_FRACN_NUMERATOR">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_REFCLK_FREQUENCY">240.474</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_REFCLK_SOURCE">X1Y28 clk1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_REFCLK_SOURCE"/> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TX_USER_DATA_WIDTH">16</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USB_ENABLE">false</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USER_GTPOWERGOOD_DELAY_EN">1</spirit:configurableElementValue> @@ -892,7 +892,7 @@ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtpowergood_out">true</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtrefclk00_in">false</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtrefclk01_in">true</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtrefclk0_in">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtrefclk0_in">true</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtrefclk10_in">false</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtrefclk11_in">false</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtrefclk1_in">false</spirit:configurableElementValue> @@ -909,10 +909,10 @@ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtsouthrefclk1_in">false</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gttxreset_in">false</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gttxresetsel_in">false</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_done_out">false</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_error_out">false</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_reset_in">false</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_start_user_in">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_done_out">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_error_out">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_reset_in">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_rx_start_user_in">true</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_tx_done_out">true</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_tx_error_out">true</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.gtwiz_buffbypass_tx_reset_in">true</spirit:configurableElementValue> @@ -1417,13 +1417,14 @@ <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.TX_USER_DATA_WIDTH" xilinx:valueSource="user"/> </xilinx:configElementInfos> <xilinx:boundaryDescriptionInfo> - <xilinx:boundaryDescription xilinx:boundaryDescriptionJSON="{"ip_boundary":{"ports":{"cpllfbclklost_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"cplllock_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"cplllockdetclk_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"cpllreset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthrxn_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthrxp_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthtxn_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthtxp_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtpowergood_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtrefclk01_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwi -z_buffbypass_tx_done_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_tx_error_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_tx_reset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_tx_start_user_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_all_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_clk_freerun_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_rx_cdr_stable_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_rx_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_rx_done_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtw -iz_reset_rx_pll_and_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_tx_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_tx_done_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_tx_pll_and_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_active_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_reset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_srcclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_usrclk2_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_usrclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector": -"true"}],"gtwiz_userclk_tx_active_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_reset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_srcclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_usrclk2_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_usrclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userdata_rx_out":[{"direction":"out","physical_left":"31","physical_right":"0","is_vector":"true"}],"gtwiz_userdata_tx_in":[{"direction":"in","physical_left":"15","physical_right":"0","is_vector":"true"}],"loopback_in":[{"direction":"in","physical_left":"2","physical_right":"0","is_vector":"true"}],"qpll1fbclklost_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1lock_out":[{"dir -ection":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1outclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1outrefclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1refclklost_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rx8b10ben_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxbyteisaligned_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxbyterealign_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxcdrlock_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxcommadet_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxcommadeten_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxctrl0_out":[{"d -irection":"out","physical_left":"15","physical_right":"0","is_vector":"true"}],"rxctrl1_out":[{"direction":"out","physical_left":"15","physical_right":"0","is_vector":"true"}],"rxctrl2_out":[{"direction":"out","physical_left":"7","physical_right":"0","is_vector":"true"}],"rxctrl3_out":[{"direction":"out","physical_left":"7","physical_right":"0","is_vector":"true"}],"rxmcommaalignen_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxpcommaalignen_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxpmaresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"tx8b10ben_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"txctrl0_in":[{"direction":"in","physical_left":"15","physical_right":"0","is_vector":"true"}],"txctrl1_in":[{"direction":"in"," -physical_left":"15","physical_right":"0","is_vector":"true"}],"txctrl2_in":[{"direction":"in","physical_left":"7","physical_right":"0","is_vector":"true"}],"txpmaresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"txprgdivresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"txresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}]},"interfaces":{}}}"/> + <xilinx:boundaryDescription xilinx:boundaryDescriptionJSON="{"ip_boundary":{"ports":{"cpllfbclklost_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"cplllock_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"cplllockdetclk_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"cpllreset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"drpclk_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthrxn_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthrxp_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthtxn_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gthtxp_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtpowergood_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtrefclk +01_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtrefclk0_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_rx_done_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_rx_error_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_rx_reset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_rx_start_user_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_tx_done_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_tx_error_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_tx_reset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_buffbypass_tx +_start_user_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_all_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_clk_freerun_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_rx_cdr_stable_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_rx_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_rx_done_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_rx_pll_and_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_tx_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_tx_done_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_reset_tx_pll_an +d_datapath_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_active_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_reset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_srcclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_usrclk2_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_rx_usrclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_active_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_reset_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_srcclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userc +lk_tx_usrclk2_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userclk_tx_usrclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"gtwiz_userdata_rx_out":[{"direction":"out","physical_left":"31","physical_right":"0","is_vector":"true"}],"gtwiz_userdata_tx_in":[{"direction":"in","physical_left":"15","physical_right":"0","is_vector":"true"}],"loopback_in":[{"direction":"in","physical_left":"2","physical_right":"0","is_vector":"true"}],"qpll1fbclklost_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1lock_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1outclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1outrefclk_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"qpll1refclklost_out":[{"direction":"out","physical_left":"0","physical_rig +ht":"0","is_vector":"true"}],"rx8b10ben_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxbyteisaligned_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxbyterealign_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxcdrlock_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxcommadet_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxcommadeten_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxctrl0_out":[{"direction":"out","physical_left":"15","physical_right":"0","is_vector":"true"}],"rxctrl1_out":[{"direction":"out","physical_left":"15","physical_right":"0","is_vector":"true"}],"rxctrl2_out":[{"direction":"out","physical_left":"7","physical_right":"0","is_vector":"true"}],"rxctrl3_out":[{"direction":"out","physical_left":"7","physical_right":"0","is_vec +tor":"true"}],"rxmcommaalignen_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxpcommaalignen_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxpmaresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"rxresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"tx8b10ben_in":[{"direction":"in","physical_left":"0","physical_right":"0","is_vector":"true"}],"txctrl0_in":[{"direction":"in","physical_left":"15","physical_right":"0","is_vector":"true"}],"txctrl1_in":[{"direction":"in","physical_left":"15","physical_right":"0","is_vector":"true"}],"txctrl2_in":[{"direction":"in","physical_left":"7","physical_right":"0","is_vector":"true"}],"txpmaresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}],"txprgdivresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector +":"true"}],"txresetdone_out":[{"direction":"out","physical_left":"0","physical_right":"0","is_vector":"true"}]},"interfaces":{}}}"/> </xilinx:boundaryDescriptionInfo> </xilinx:componentInstanceExtensions> </spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7038.xci b/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7038.xci index ae80ce7d15591a9ae5a6870e239c5ac2404848af..70f4ffd9e3e27b076b61960e6234d2e613f3a0ac 100644 --- a/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7038.xci +++ b/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7038.xci @@ -831,7 +831,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/pcie3_ultrascale_7038</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7039.xci b/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7039.xci index 7f22c43310b481a61950decb8dabe41b2b0115de..0016c5c5e0c20273bb1fb05b3f984ba66124d8c7 100644 --- a/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7039.xci +++ b/sources/ip_cores/kintexUltrascale/pcie3_ultrascale_7039.xci @@ -831,7 +831,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/pcie3_ultrascale_7039</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/system_management_wiz_0.xci b/sources/ip_cores/kintexUltrascale/system_management_wiz_0.xci index dcaed14c92c0f9fa81d8a52475b04f5555cc7348..66c19efae8c105d0ccd78ce3a591c91781c34f86 100644 --- a/sources/ip_cores/kintexUltrascale/system_management_wiz_0.xci +++ b/sources/ip_cores/kintexUltrascale/system_management_wiz_0.xci @@ -948,7 +948,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/system_management_wiz_0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/kintexUltrascale/wavegen_dsp_counter.xci b/sources/ip_cores/kintexUltrascale/wavegen_dsp_counter.xci index fbcb8c1bd2a928088718d89425295b9919214329..a5cce3677b5cfc100818cf1509b07ba2e4529e2e 100644 --- a/sources/ip_cores/kintexUltrascale/wavegen_dsp_counter.xci +++ b/sources/ip_cores/kintexUltrascale/wavegen_dsp_counter.xci @@ -87,7 +87,7 @@ <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">../../../../FLX712_FELIX.gen/sources_1/ip/wavegen_dsp_counter</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2021.2.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> </spirit:configurableElementValues> <spirit:vendorExtensions> diff --git a/sources/ip_cores/sim/DPram_32b_sim_netlist.vhdl b/sources/ip_cores/sim/DPram_32b_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..b20b60a72d1601fa6fae28ef6dae788828b2d308 --- /dev/null +++ b/sources/ip_cores/sim/DPram_32b_sim_netlist.vhdl @@ -0,0 +1,1106 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Wed Jun 12 16:30:35 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FMEMU/FLX712_FMEMU.gen/sources_1/ip/DPram_32b/DPram_32b_sim_netlist.vhdl +-- Design : DPram_32b +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +`protect begin_protected +`protect version = 1 +`protect encrypt_agent = "XILINX" +`protect encrypt_agent_info = "Xilinx Encryption Tool 2024.1" +`protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +RSqbsRZSIb+QlYJMfFv1T7uHQ7PiCEXQkl687MHGm2LgPB15GIYcPmqKUSXgtkLsIFes91PTAyyB +9H9cyY4ZUxedcRg/9ZOB5pm3zPqAbcvGPmg1ivMhr/MlS19t5lYKM2tQo+0Yd+arJXlVZu2BMnvn ++I3G9t9tJuWUIWKjI+I= + +`protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +VRSQ05ZaB6bIhFIQ823mTvlJaG9+5iW5C3+KxGjq0sq9ziCshKOLpOGPDMmOWDqA4uBaxC5IKISr +w8+A8mqbYjXo5m1g8sGjNaETS0HKJsK+l5Y++tN4IEUs+DwxgrPR/+LWtChuOzVkfC7BG3LVUEMj +zM3GAyGcXGJ3sdBItZAfsevyiy7kr4Fw+nk2hWytGteu1NZk3VzPE7KQHLkOlHBPXf6P0j8LpKcr +2oNDgQ/WaEmg6OOvFeJuaWDaee8Sn6wKP/caMyoGdSeczsPtRrJeoSRlbNHlxhCv7zg+Cn2AgwrR +PTqGsMrkhv9U0sq+waS0CmwChsk4WB7RspGYUg== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +tNziOjCznlvIl4dadmB9r23Duf+HQHWOuHmupEU3PJxrazHVtZdNKspG9sRXhF9mjbpnSiKYCdFK +Jr9W/dxUid36faFIPKQazVTuOiE0hkzVQAGpYxXjT/ITB/9EFBvgvP5L3EAhHv32x6MA1vkFSI7x +HrZ09YNFEF6T7DPTZE4= + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +QCYfxgkUHlX1cre1q9aS3sVDIOX36YBK4ZwJXAVUwA6f1OQ77XibjpWJHt5FK9F0PcYp/j21pqzO +BRdkDcFLVAjxER4J5t5iMVhoeMk+3fpiKfYrm4WFl1ygsJsfFJP0jqO1OkjC8iFBtm3n6b7CTl1o +cjBbcBp8UgW6E8rf5inXA0dRqybnyxKJSnMFYLinvpVU6QEc4OKO7mi/i/s9p/efiP+CdQf0yDRU +Fw7o7x0D7tjBv943g5L+4wGZ2JYU+ISqn4Ajxy/bWTTJDe6T/15evhngS61MC8Xjamzc4YLZBP8o +ShfSLoeZeO+Hk5n3xzJRghM0DQ6Sj7NqXFY68w== + +`protect key_keyowner="Real Intent", key_keyname="RI-RSA-KEY-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Uy8FDDy3dZQGAnMQV0HBesEs+/oZdaq35Kj1PGhy9J/+EBZm0nhhQgYtku8tWABW2jKAC1GtNTvo +uReQyr1hteMxTbD5OIuqv86eb1hXZVENlZ7ichG8auUjkeHAkaSYNbHOuDLIhSqHEL67XbcZ9zPG +1JOY3+VONSww0KYPcQbGSo/2DaC5C0Y+mZODRfJ4+b0WXjce6UaJetilBc3VtqqmodIM2d3HDawF +R0xVJfHj86rXmUkY+SNUw60zsV6raCY6G3k/rXpei1d6zn8tCThkKG5fwiWY8zA7kRdTFIlVKP9h +fb6kfzRBRT/BgVQ8d4RgEcEVV8m3u/Mf4KIlTw== + +`protect key_keyowner="Xilinx", key_keyname="xilinxt_2023_11", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Pk1GeRlkUK9lt6DVXYVdtOABlzDEWQDcBsP/p+Wo5HaglDLG5b8gk08xTP3IcJ1RKcfuARPMGO2s +/VqFbnVADV90T1rhjIuWMcBnzYQK/ALUvwv11Uju9Gn0fvPIz52l3QBnpjHI1nlsFB7WeqkzVfHZ +tg9gO9bPHjHLjVd9BzH6McrEWY5RkZ0UBy0Fmh/SownJX1b0YGE7LdwKydEMEpyvb28bwTOwfEv/ +4RtsfYtEvTjo6e1ZBm66D9IQmKUu32wzTfn5bFZHdyjZg6+HcTzvHMtQX2+AggXfP6FsO2/83qkb +0bfj226fnLhr32dJxtsaJS5OR63GYtzDJ05ITA== + +`protect key_keyowner="Metrics Technologies Inc.", key_keyname="DSim", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +LCfWqKmUoUSVOTKNAl5p8n1hfz7SMU2kDOUMBjsDncgSFqiu2zUy1I6GSDrVnF/2umJG5/mWcpvi +rQaFJOlrJ8DNctSuavdlopRAwTMsVi6dAlNGrAawSiDIxtI3tN3MDVdMiH5H+pJMqMt59yXneyCf +2RRSRz2sUQK/aj0lXlqKjVJzVbk8HaBQ8akBJF4iWSMK4foIzJ6iO1EupYovuW6uEiO7jQRWezlW +pbbDenOHHWbfinuX5cbkjpTKHGsEKct65q+ZXJp60m3sconSK3Y2eLQxusuJ1FHDJ4GGKO8mEzCv +3cfGdXX3pVL81OfGO/JD1aMs9H98CO5ssbHqlw== + +`protect key_keyowner="Atrenta", key_keyname="ATR-SG-RSA-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=384) +`protect key_block +A4S1e3DHcTeWzaDVuWDRb3Yf1BjiEsR1RtAeL0BJ7J/oPWMNj96MeGsUiHtZoiYqteTZxqax2cyZ +PV0cMLoBK4Ya8CyM+BTnkFA2ablsGt5Es4TgG/nFS9VEhmeKxu8boAsqW5697aiqOATJf/LucQh5 +GOnPXHAuPrDj0A/fu8N2QduqGyysWUSc1KsoJ0/0noJYvLJ2yOhFi4uIUYQfG5LOuOrca5P43pqA +iwUKW/RrFXal2acJdFeXIKffZpKanSV97urdzKyBvf9EPV/M8g9uPFJJ1z6aS+FbknhVPs0pt6eD ++J/qib4gVp/HGnRo4YlxauUMv6Yv9wxiaObY6ttDfYf5p3uzWZMlf3i7YOzZwcd4aS/6+vkD28LG +L9piBIpLx2dvQy74RdvCVdvaP1LC6RMju9RfuXJhuX4ZAmDxRi0zQyRda838ikzwYeOCSKLIvRPb +nuJ8Zx2ot8EFqSeGaaRFaEMU6Zf5SptCUuVMHvSkinBewcwrLB5uiJTJ + +`protect key_keyowner="Cadence Design Systems.", key_keyname="CDS_RSA_KEY_VER_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +gj+uMxV+tK4Di7pgSOE82FOBeWmUB1A7OKFOSMUW3qrmQ4/YhryfHMlWPxfAq8avQL7tnBTnRFEg +czbErdIcNzYjrM7Qq00QC/mTqmeQX4/apbqGvN+rwK4RR5oj22wfTib/UQNEQX6fbpi6PtmAeUR9 +eShsfq+YWcf7z2Zw4Q+o4+E6m4/3CzU68vglNpzNsJ8S9/8XpdIrvAA/WRAX6OEOC4wlNIKDZsq/ ++zMbFgSzN1rP844I/CDmxYM0NIzBWWhYBkPfJyQyigmUoXb84lDip0/Dmnq4EHvu7D/tZNnDl5st +JpftRfEpT6S8e/5MBeKUuhbfg6etHo/oFZvPKQ== + +`protect key_keyowner="Synplicity", key_keyname="SYNP15_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +aWTy3xv6SqKsldtLS2gY4KrTS8U+KtFNRHS314f6EYZy1MHE9t7oICJ8eNB8up8A+odoE23N3fJb +1alhaadeRWU2GjlIiK1LjZ5PQw+jb1u1GWtRiY+TcTlD75XUlqwykVBrCDfm565DmgZjZle9T3/t +WEfLo+m/8GfBe8trVnoftsk/XI00BMFXRzw8doPGDhNECS1NUrLebryb9iO5Hf4A/40dtslTARsR +nicN0KoIIyiQ+QzliqyXU/8VjS45inON8R0Kv9Qx46EXUp7bds5uQ7QycRhpLG0IPnMIweudU67w +eQmpHJzvZKBCZks/R0OafZx44H6Jib2+QazBCw== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-PREC-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +UGdPiChIPj1lSozqzCQx17Bi+8FWSuMUMzXUkDLH5zcP1t8tZLzh4CU4WAR8lmJxn8gH763fLp5c +RYU6zA0yxHzl2ksc5YRU1XEfQQT9ha8fQnz+18wVKcsa5UIOfMbGDwnS9yfX59ntG8CB0uF8bJKE +y1CS6U/1Stfs1w2mF94iDxI2n2GJlb1UPtWpmxMBI88hY0GktTPXP2Y7JKl8zRl/Lq0wIF8pHwXk +B4nOgKm6hfzPj0xZ6E/TuER/JE3fy8RSm24IlL/CUgpReEslEOYjQ4EKKZRG9/fxg26utQWW9p+G +fWVU53qrFGzBhKQ96Paj1ROkv6hDHyUb6n7uSw== + +`protect data_method = "AES128-CBC" +`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 40208) +`protect data_block +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 +rO7Os08DxfK9MhlLA4TgOkHnmL0XxSg= +`protect end_protected +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; + use UNISIM.VCOMPONENTS.ALL; +entity DPram_32b is + port ( + clka : in STD_LOGIC; + wea : in STD_LOGIC_VECTOR ( 0 to 0 ); + addra : in STD_LOGIC_VECTOR ( 9 downto 0 ); + dina : in STD_LOGIC_VECTOR ( 31 downto 0 ); + douta : out STD_LOGIC_VECTOR ( 31 downto 0 ); + clkb : in STD_LOGIC; + web : in STD_LOGIC_VECTOR ( 0 to 0 ); + addrb : in STD_LOGIC_VECTOR ( 9 downto 0 ); + dinb : in STD_LOGIC_VECTOR ( 31 downto 0 ); + doutb : out STD_LOGIC_VECTOR ( 31 downto 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of DPram_32b : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of DPram_32b : entity is "DPram_32b,blk_mem_gen_v8_4_8,{}"; + attribute downgradeipidentifiedwarnings : string; + attribute downgradeipidentifiedwarnings of DPram_32b : entity is "yes"; + attribute x_core_info : string; + attribute x_core_info of DPram_32b : entity is "blk_mem_gen_v8_4_8,Vivado 2024.1"; +end DPram_32b; + +architecture STRUCTURE of DPram_32b is + signal NLW_U0_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_rsta_busy_UNCONNECTED : STD_LOGIC; + signal NLW_U0_rstb_busy_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_arready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_awready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_bvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_rlast_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_rvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_wready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_rdaddrecc_UNCONNECTED : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal NLW_U0_s_axi_bid_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_s_axi_bresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_U0_s_axi_rdaddrecc_UNCONNECTED : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal NLW_U0_s_axi_rdata_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_U0_s_axi_rid_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_s_axi_rresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute C_ADDRA_WIDTH : integer; + attribute C_ADDRA_WIDTH of U0 : label is 10; + attribute C_ADDRB_WIDTH : integer; + attribute C_ADDRB_WIDTH of U0 : label is 10; + attribute C_ALGORITHM : integer; + attribute C_ALGORITHM of U0 : label is 1; + attribute C_AXI_ID_WIDTH : integer; + attribute C_AXI_ID_WIDTH of U0 : label is 4; + attribute C_AXI_SLAVE_TYPE : integer; + attribute C_AXI_SLAVE_TYPE of U0 : label is 0; + attribute C_AXI_TYPE : integer; + attribute C_AXI_TYPE of U0 : label is 1; + attribute C_BYTE_SIZE : integer; + attribute C_BYTE_SIZE of U0 : label is 9; + attribute C_COMMON_CLK : integer; + attribute C_COMMON_CLK of U0 : label is 0; + attribute C_COUNT_18K_BRAM : string; + attribute C_COUNT_18K_BRAM of U0 : label is "0"; + attribute C_COUNT_36K_BRAM : string; + attribute C_COUNT_36K_BRAM of U0 : label is "1"; + attribute C_CTRL_ECC_ALGO : string; + attribute C_CTRL_ECC_ALGO of U0 : label is "NONE"; + attribute C_DEFAULT_DATA : string; + attribute C_DEFAULT_DATA of U0 : label is "0"; + attribute C_DISABLE_WARN_BHV_COLL : integer; + attribute C_DISABLE_WARN_BHV_COLL of U0 : label is 0; + attribute C_DISABLE_WARN_BHV_RANGE : integer; + attribute C_DISABLE_WARN_BHV_RANGE of U0 : label is 0; + attribute C_ELABORATION_DIR : string; + attribute C_ELABORATION_DIR of U0 : label is "./"; + attribute C_ENABLE_32BIT_ADDRESS : integer; + attribute C_ENABLE_32BIT_ADDRESS of U0 : label is 0; + attribute C_EN_DEEPSLEEP_PIN : integer; + attribute C_EN_DEEPSLEEP_PIN of U0 : label is 0; + attribute C_EN_ECC_PIPE : integer; + attribute C_EN_ECC_PIPE of U0 : label is 0; + attribute C_EN_RDADDRA_CHG : integer; + attribute C_EN_RDADDRA_CHG of U0 : label is 0; + attribute C_EN_RDADDRB_CHG : integer; + attribute C_EN_RDADDRB_CHG of U0 : label is 0; + attribute C_EN_SAFETY_CKT : integer; + attribute C_EN_SAFETY_CKT of U0 : label is 0; + attribute C_EN_SHUTDOWN_PIN : integer; + attribute C_EN_SHUTDOWN_PIN of U0 : label is 0; + attribute C_EN_SLEEP_PIN : integer; + attribute C_EN_SLEEP_PIN of U0 : label is 0; + attribute C_EST_POWER_SUMMARY : string; + attribute C_EST_POWER_SUMMARY of U0 : label is "Estimated Power for IP : 6.12234 mW"; + attribute C_FAMILY : string; + attribute C_FAMILY of U0 : label is "kintexu"; + attribute C_HAS_AXI_ID : integer; + attribute C_HAS_AXI_ID of U0 : label is 0; + attribute C_HAS_ENA : integer; + attribute C_HAS_ENA of U0 : label is 0; + attribute C_HAS_ENB : integer; + attribute C_HAS_ENB of U0 : label is 0; + attribute C_HAS_INJECTERR : integer; + attribute C_HAS_INJECTERR of U0 : label is 0; + attribute C_HAS_MEM_OUTPUT_REGS_A : integer; + attribute C_HAS_MEM_OUTPUT_REGS_A of U0 : label is 1; + attribute C_HAS_MEM_OUTPUT_REGS_B : integer; + attribute C_HAS_MEM_OUTPUT_REGS_B of U0 : label is 1; + attribute C_HAS_MUX_OUTPUT_REGS_A : integer; + attribute C_HAS_MUX_OUTPUT_REGS_A of U0 : label is 0; + attribute C_HAS_MUX_OUTPUT_REGS_B : integer; + attribute C_HAS_MUX_OUTPUT_REGS_B of U0 : label is 0; + attribute C_HAS_REGCEA : integer; + attribute C_HAS_REGCEA of U0 : label is 0; + attribute C_HAS_REGCEB : integer; + attribute C_HAS_REGCEB of U0 : label is 0; + attribute C_HAS_RSTA : integer; + attribute C_HAS_RSTA of U0 : label is 0; + attribute C_HAS_RSTB : integer; + attribute C_HAS_RSTB of U0 : label is 0; + attribute C_HAS_SOFTECC_INPUT_REGS_A : integer; + attribute C_HAS_SOFTECC_INPUT_REGS_A of U0 : label is 0; + attribute C_HAS_SOFTECC_OUTPUT_REGS_B : integer; + attribute C_HAS_SOFTECC_OUTPUT_REGS_B of U0 : label is 0; + attribute C_INITA_VAL : integer; + attribute C_INITA_VAL of U0 : label is 0; + attribute C_INITB_VAL : integer; + attribute C_INITB_VAL of U0 : label is 0; + attribute C_INIT_FILE : string; + attribute C_INIT_FILE of U0 : label is "DPram_32b.mem"; + attribute C_INIT_FILE_NAME : string; + attribute C_INIT_FILE_NAME of U0 : label is "DPram_32b.mif"; + attribute C_INTERFACE_TYPE : integer; + attribute C_INTERFACE_TYPE of U0 : label is 0; + attribute C_LOAD_INIT_FILE : integer; + attribute C_LOAD_INIT_FILE of U0 : label is 1; + attribute C_MEM_TYPE : integer; + attribute C_MEM_TYPE of U0 : label is 2; + attribute C_MUX_PIPELINE_STAGES : integer; + attribute C_MUX_PIPELINE_STAGES of U0 : label is 0; + attribute C_PRIM_TYPE : integer; + attribute C_PRIM_TYPE of U0 : label is 1; + attribute C_READ_DEPTH_A : integer; + attribute C_READ_DEPTH_A of U0 : label is 1024; + attribute C_READ_DEPTH_B : integer; + attribute C_READ_DEPTH_B of U0 : label is 1024; + attribute C_READ_LATENCY_A : integer; + attribute C_READ_LATENCY_A of U0 : label is 1; + attribute C_READ_LATENCY_B : integer; + attribute C_READ_LATENCY_B of U0 : label is 1; + attribute C_READ_WIDTH_A : integer; + attribute C_READ_WIDTH_A of U0 : label is 32; + attribute C_READ_WIDTH_B : integer; + attribute C_READ_WIDTH_B of U0 : label is 32; + attribute C_RSTRAM_A : integer; + attribute C_RSTRAM_A of U0 : label is 0; + attribute C_RSTRAM_B : integer; + attribute C_RSTRAM_B of U0 : label is 0; + attribute C_RST_PRIORITY_A : string; + attribute C_RST_PRIORITY_A of U0 : label is "CE"; + attribute C_RST_PRIORITY_B : string; + attribute C_RST_PRIORITY_B of U0 : label is "CE"; + attribute C_SIM_COLLISION_CHECK : string; + attribute C_SIM_COLLISION_CHECK of U0 : label is "ALL"; + attribute C_USE_BRAM_BLOCK : integer; + attribute C_USE_BRAM_BLOCK of U0 : label is 0; + attribute C_USE_BYTE_WEA : integer; + attribute C_USE_BYTE_WEA of U0 : label is 0; + attribute C_USE_BYTE_WEB : integer; + attribute C_USE_BYTE_WEB of U0 : label is 0; + attribute C_USE_DEFAULT_DATA : integer; + attribute C_USE_DEFAULT_DATA of U0 : label is 0; + attribute C_USE_ECC : integer; + attribute C_USE_ECC of U0 : label is 0; + attribute C_USE_SOFTECC : integer; + attribute C_USE_SOFTECC of U0 : label is 0; + attribute C_USE_URAM : integer; + attribute C_USE_URAM of U0 : label is 0; + attribute C_WEA_WIDTH : integer; + attribute C_WEA_WIDTH of U0 : label is 1; + attribute C_WEB_WIDTH : integer; + attribute C_WEB_WIDTH of U0 : label is 1; + attribute C_WRITE_DEPTH_A : integer; + attribute C_WRITE_DEPTH_A of U0 : label is 1024; + attribute C_WRITE_DEPTH_B : integer; + attribute C_WRITE_DEPTH_B of U0 : label is 1024; + attribute C_WRITE_MODE_A : string; + attribute C_WRITE_MODE_A of U0 : label is "WRITE_FIRST"; + attribute C_WRITE_MODE_B : string; + attribute C_WRITE_MODE_B of U0 : label is "READ_FIRST"; + attribute C_WRITE_WIDTH_A : integer; + attribute C_WRITE_WIDTH_A of U0 : label is 32; + attribute C_WRITE_WIDTH_B : integer; + attribute C_WRITE_WIDTH_B of U0 : label is 32; + attribute C_XDEVICEFAMILY : string; + attribute C_XDEVICEFAMILY of U0 : label is "kintexu"; + attribute downgradeipidentifiedwarnings of U0 : label is "yes"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of U0 : label is "true"; + attribute x_interface_info : string; + attribute x_interface_info of clka : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA CLK"; + attribute x_interface_parameter : string; + attribute x_interface_parameter of clka : signal is "XIL_INTERFACENAME BRAM_PORTA, MEM_ADDRESS_MODE BYTE_ADDRESS, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1"; + attribute x_interface_info of clkb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB CLK"; + attribute x_interface_parameter of clkb : signal is "XIL_INTERFACENAME BRAM_PORTB, MEM_ADDRESS_MODE BYTE_ADDRESS, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1"; + attribute x_interface_info of addra : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA ADDR"; + attribute x_interface_info of addrb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB ADDR"; + attribute x_interface_info of dina : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA DIN"; + attribute x_interface_info of dinb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB DIN"; + attribute x_interface_info of douta : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA DOUT"; + attribute x_interface_info of doutb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB DOUT"; + attribute x_interface_info of wea : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA WE"; + attribute x_interface_info of web : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB WE"; +begin + U0: entity work.DPram_32b_blk_mem_gen_v8_4_8 + port map ( + addra(9 downto 0) => addra(9 downto 0), + addrb(9 downto 0) => addrb(9 downto 0), + clka => clka, + clkb => clkb, + dbiterr => NLW_U0_dbiterr_UNCONNECTED, + deepsleep => '0', + dina(31 downto 0) => dina(31 downto 0), + dinb(31 downto 0) => dinb(31 downto 0), + douta(31 downto 0) => douta(31 downto 0), + doutb(31 downto 0) => doutb(31 downto 0), + eccpipece => '0', + ena => '0', + enb => '0', + injectdbiterr => '0', + injectsbiterr => '0', + rdaddrecc(9 downto 0) => NLW_U0_rdaddrecc_UNCONNECTED(9 downto 0), + regcea => '1', + regceb => '1', + rsta => '0', + rsta_busy => NLW_U0_rsta_busy_UNCONNECTED, + rstb => '0', + rstb_busy => NLW_U0_rstb_busy_UNCONNECTED, + s_aclk => '0', + s_aresetn => '0', + s_axi_araddr(31 downto 0) => B"00000000000000000000000000000000", + s_axi_arburst(1 downto 0) => B"00", + s_axi_arid(3 downto 0) => B"0000", + s_axi_arlen(7 downto 0) => B"00000000", + s_axi_arready => NLW_U0_s_axi_arready_UNCONNECTED, + s_axi_arsize(2 downto 0) => B"000", + s_axi_arvalid => '0', + s_axi_awaddr(31 downto 0) => B"00000000000000000000000000000000", + s_axi_awburst(1 downto 0) => B"00", + s_axi_awid(3 downto 0) => B"0000", + s_axi_awlen(7 downto 0) => B"00000000", + s_axi_awready => NLW_U0_s_axi_awready_UNCONNECTED, + s_axi_awsize(2 downto 0) => B"000", + s_axi_awvalid => '0', + s_axi_bid(3 downto 0) => NLW_U0_s_axi_bid_UNCONNECTED(3 downto 0), + s_axi_bready => '0', + s_axi_bresp(1 downto 0) => NLW_U0_s_axi_bresp_UNCONNECTED(1 downto 0), + s_axi_bvalid => NLW_U0_s_axi_bvalid_UNCONNECTED, + s_axi_dbiterr => NLW_U0_s_axi_dbiterr_UNCONNECTED, + s_axi_injectdbiterr => '0', + s_axi_injectsbiterr => '0', + s_axi_rdaddrecc(9 downto 0) => NLW_U0_s_axi_rdaddrecc_UNCONNECTED(9 downto 0), + s_axi_rdata(31 downto 0) => NLW_U0_s_axi_rdata_UNCONNECTED(31 downto 0), + s_axi_rid(3 downto 0) => NLW_U0_s_axi_rid_UNCONNECTED(3 downto 0), + s_axi_rlast => NLW_U0_s_axi_rlast_UNCONNECTED, + s_axi_rready => '0', + s_axi_rresp(1 downto 0) => NLW_U0_s_axi_rresp_UNCONNECTED(1 downto 0), + s_axi_rvalid => NLW_U0_s_axi_rvalid_UNCONNECTED, + s_axi_sbiterr => NLW_U0_s_axi_sbiterr_UNCONNECTED, + s_axi_wdata(31 downto 0) => B"00000000000000000000000000000000", + s_axi_wlast => '0', + s_axi_wready => NLW_U0_s_axi_wready_UNCONNECTED, + s_axi_wstrb(0) => '0', + s_axi_wvalid => '0', + sbiterr => NLW_U0_sbiterr_UNCONNECTED, + shutdown => '0', + sleep => '0', + wea(0) => wea(0), + web(0) => web(0) + ); +end STRUCTURE; diff --git a/sources/ip_cores/sim/Distr_LUT_sim_netlist.vhdl b/sources/ip_cores/sim/Distr_LUT_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..e7ec8dcf33044e81707f6c9d5d9fe1f186b02d25 --- /dev/null +++ b/sources/ip_cores/sim/Distr_LUT_sim_netlist.vhdl @@ -0,0 +1,932 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Wed Jun 12 16:30:34 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FMEMU/FLX712_FMEMU.gen/sources_1/ip/Distr_LUT/Distr_LUT_sim_netlist.vhdl +-- Design : Distr_LUT +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +`protect begin_protected +`protect version = 1 +`protect encrypt_agent = "XILINX" +`protect encrypt_agent_info = "Xilinx Encryption Tool 2024.1" +`protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +RSqbsRZSIb+QlYJMfFv1T7uHQ7PiCEXQkl687MHGm2LgPB15GIYcPmqKUSXgtkLsIFes91PTAyyB +9H9cyY4ZUxedcRg/9ZOB5pm3zPqAbcvGPmg1ivMhr/MlS19t5lYKM2tQo+0Yd+arJXlVZu2BMnvn ++I3G9t9tJuWUIWKjI+I= + +`protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +VRSQ05ZaB6bIhFIQ823mTvlJaG9+5iW5C3+KxGjq0sq9ziCshKOLpOGPDMmOWDqA4uBaxC5IKISr +w8+A8mqbYjXo5m1g8sGjNaETS0HKJsK+l5Y++tN4IEUs+DwxgrPR/+LWtChuOzVkfC7BG3LVUEMj +zM3GAyGcXGJ3sdBItZAfsevyiy7kr4Fw+nk2hWytGteu1NZk3VzPE7KQHLkOlHBPXf6P0j8LpKcr +2oNDgQ/WaEmg6OOvFeJuaWDaee8Sn6wKP/caMyoGdSeczsPtRrJeoSRlbNHlxhCv7zg+Cn2AgwrR +PTqGsMrkhv9U0sq+waS0CmwChsk4WB7RspGYUg== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +tNziOjCznlvIl4dadmB9r23Duf+HQHWOuHmupEU3PJxrazHVtZdNKspG9sRXhF9mjbpnSiKYCdFK +Jr9W/dxUid36faFIPKQazVTuOiE0hkzVQAGpYxXjT/ITB/9EFBvgvP5L3EAhHv32x6MA1vkFSI7x +HrZ09YNFEF6T7DPTZE4= + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +QCYfxgkUHlX1cre1q9aS3sVDIOX36YBK4ZwJXAVUwA6f1OQ77XibjpWJHt5FK9F0PcYp/j21pqzO +BRdkDcFLVAjxER4J5t5iMVhoeMk+3fpiKfYrm4WFl1ygsJsfFJP0jqO1OkjC8iFBtm3n6b7CTl1o +cjBbcBp8UgW6E8rf5inXA0dRqybnyxKJSnMFYLinvpVU6QEc4OKO7mi/i/s9p/efiP+CdQf0yDRU +Fw7o7x0D7tjBv943g5L+4wGZ2JYU+ISqn4Ajxy/bWTTJDe6T/15evhngS61MC8Xjamzc4YLZBP8o +ShfSLoeZeO+Hk5n3xzJRghM0DQ6Sj7NqXFY68w== + +`protect key_keyowner="Real Intent", key_keyname="RI-RSA-KEY-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Uy8FDDy3dZQGAnMQV0HBesEs+/oZdaq35Kj1PGhy9J/+EBZm0nhhQgYtku8tWABW2jKAC1GtNTvo +uReQyr1hteMxTbD5OIuqv86eb1hXZVENlZ7ichG8auUjkeHAkaSYNbHOuDLIhSqHEL67XbcZ9zPG +1JOY3+VONSww0KYPcQbGSo/2DaC5C0Y+mZODRfJ4+b0WXjce6UaJetilBc3VtqqmodIM2d3HDawF +R0xVJfHj86rXmUkY+SNUw60zsV6raCY6G3k/rXpei1d6zn8tCThkKG5fwiWY8zA7kRdTFIlVKP9h +fb6kfzRBRT/BgVQ8d4RgEcEVV8m3u/Mf4KIlTw== + +`protect key_keyowner="Xilinx", key_keyname="xilinxt_2023_11", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Pk1GeRlkUK9lt6DVXYVdtOABlzDEWQDcBsP/p+Wo5HaglDLG5b8gk08xTP3IcJ1RKcfuARPMGO2s +/VqFbnVADV90T1rhjIuWMcBnzYQK/ALUvwv11Uju9Gn0fvPIz52l3QBnpjHI1nlsFB7WeqkzVfHZ +tg9gO9bPHjHLjVd9BzH6McrEWY5RkZ0UBy0Fmh/SownJX1b0YGE7LdwKydEMEpyvb28bwTOwfEv/ +4RtsfYtEvTjo6e1ZBm66D9IQmKUu32wzTfn5bFZHdyjZg6+HcTzvHMtQX2+AggXfP6FsO2/83qkb +0bfj226fnLhr32dJxtsaJS5OR63GYtzDJ05ITA== + +`protect key_keyowner="Metrics Technologies Inc.", key_keyname="DSim", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +LCfWqKmUoUSVOTKNAl5p8n1hfz7SMU2kDOUMBjsDncgSFqiu2zUy1I6GSDrVnF/2umJG5/mWcpvi +rQaFJOlrJ8DNctSuavdlopRAwTMsVi6dAlNGrAawSiDIxtI3tN3MDVdMiH5H+pJMqMt59yXneyCf +2RRSRz2sUQK/aj0lXlqKjVJzVbk8HaBQ8akBJF4iWSMK4foIzJ6iO1EupYovuW6uEiO7jQRWezlW +pbbDenOHHWbfinuX5cbkjpTKHGsEKct65q+ZXJp60m3sconSK3Y2eLQxusuJ1FHDJ4GGKO8mEzCv +3cfGdXX3pVL81OfGO/JD1aMs9H98CO5ssbHqlw== + +`protect key_keyowner="Atrenta", key_keyname="ATR-SG-RSA-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=384) +`protect key_block +A4S1e3DHcTeWzaDVuWDRb3Yf1BjiEsR1RtAeL0BJ7J/oPWMNj96MeGsUiHtZoiYqteTZxqax2cyZ +PV0cMLoBK4Ya8CyM+BTnkFA2ablsGt5Es4TgG/nFS9VEhmeKxu8boAsqW5697aiqOATJf/LucQh5 +GOnPXHAuPrDj0A/fu8N2QduqGyysWUSc1KsoJ0/0noJYvLJ2yOhFi4uIUYQfG5LOuOrca5P43pqA +iwUKW/RrFXal2acJdFeXIKffZpKanSV97urdzKyBvf9EPV/M8g9uPFJJ1z6aS+FbknhVPs0pt6eD ++J/qib4gVp/HGnRo4YlxauUMv6Yv9wxiaObY6ttDfYf5p3uzWZMlf3i7YOzZwcd4aS/6+vkD28LG +L9piBIpLx2dvQy74RdvCVdvaP1LC6RMju9RfuXJhuX4ZAmDxRi0zQyRda838ikzwYeOCSKLIvRPb +nuJ8Zx2ot8EFqSeGaaRFaEMU6Zf5SptCUuVMHvSkinBewcwrLB5uiJTJ + +`protect key_keyowner="Cadence Design Systems.", key_keyname="CDS_RSA_KEY_VER_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +gj+uMxV+tK4Di7pgSOE82FOBeWmUB1A7OKFOSMUW3qrmQ4/YhryfHMlWPxfAq8avQL7tnBTnRFEg +czbErdIcNzYjrM7Qq00QC/mTqmeQX4/apbqGvN+rwK4RR5oj22wfTib/UQNEQX6fbpi6PtmAeUR9 +eShsfq+YWcf7z2Zw4Q+o4+E6m4/3CzU68vglNpzNsJ8S9/8XpdIrvAA/WRAX6OEOC4wlNIKDZsq/ ++zMbFgSzN1rP844I/CDmxYM0NIzBWWhYBkPfJyQyigmUoXb84lDip0/Dmnq4EHvu7D/tZNnDl5st +JpftRfEpT6S8e/5MBeKUuhbfg6etHo/oFZvPKQ== + +`protect key_keyowner="Synplicity", key_keyname="SYNP15_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +aWTy3xv6SqKsldtLS2gY4KrTS8U+KtFNRHS314f6EYZy1MHE9t7oICJ8eNB8up8A+odoE23N3fJb +1alhaadeRWU2GjlIiK1LjZ5PQw+jb1u1GWtRiY+TcTlD75XUlqwykVBrCDfm565DmgZjZle9T3/t +WEfLo+m/8GfBe8trVnoftsk/XI00BMFXRzw8doPGDhNECS1NUrLebryb9iO5Hf4A/40dtslTARsR +nicN0KoIIyiQ+QzliqyXU/8VjS45inON8R0Kv9Qx46EXUp7bds5uQ7QycRhpLG0IPnMIweudU67w +eQmpHJzvZKBCZks/R0OafZx44H6Jib2+QazBCw== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-PREC-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +UGdPiChIPj1lSozqzCQx17Bi+8FWSuMUMzXUkDLH5zcP1t8tZLzh4CU4WAR8lmJxn8gH763fLp5c +RYU6zA0yxHzl2ksc5YRU1XEfQQT9ha8fQnz+18wVKcsa5UIOfMbGDwnS9yfX59ntG8CB0uF8bJKE +y1CS6U/1Stfs1w2mF94iDxI2n2GJlb1UPtWpmxMBI88hY0GktTPXP2Y7JKl8zRl/Lq0wIF8pHwXk +B4nOgKm6hfzPj0xZ6E/TuER/JE3fy8RSm24IlL/CUgpReEslEOYjQ4EKKZRG9/fxg26utQWW9p+G +fWVU53qrFGzBhKQ96Paj1ROkv6hDHyUb6n7uSw== + +`protect data_method = "AES128-CBC" +`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 30448) +`protect data_block +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 +dNtFDlBxswKBmA== +`protect end_protected +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; + use UNISIM.VCOMPONENTS.ALL; +entity Distr_LUT is + port ( + clka : in STD_LOGIC; + wea : in STD_LOGIC_VECTOR ( 0 to 0 ); + addra : in STD_LOGIC_VECTOR ( 9 downto 0 ); + dina : in STD_LOGIC_VECTOR ( 15 downto 0 ); + clkb : in STD_LOGIC; + enb : in STD_LOGIC; + addrb : in STD_LOGIC_VECTOR ( 9 downto 0 ); + doutb : out STD_LOGIC_VECTOR ( 15 downto 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of Distr_LUT : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of Distr_LUT : entity is "Distr_LUT,blk_mem_gen_v8_4_8,{}"; + attribute downgradeipidentifiedwarnings : string; + attribute downgradeipidentifiedwarnings of Distr_LUT : entity is "yes"; + attribute x_core_info : string; + attribute x_core_info of Distr_LUT : entity is "blk_mem_gen_v8_4_8,Vivado 2024.1"; +end Distr_LUT; + +architecture STRUCTURE of Distr_LUT is + signal NLW_U0_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_rsta_busy_UNCONNECTED : STD_LOGIC; + signal NLW_U0_rstb_busy_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_arready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_awready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_bvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_rlast_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_rvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_wready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_douta_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 ); + signal NLW_U0_rdaddrecc_UNCONNECTED : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal NLW_U0_s_axi_bid_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_s_axi_bresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_U0_s_axi_rdaddrecc_UNCONNECTED : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal NLW_U0_s_axi_rdata_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 ); + signal NLW_U0_s_axi_rid_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_s_axi_rresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + attribute C_ADDRA_WIDTH : integer; + attribute C_ADDRA_WIDTH of U0 : label is 10; + attribute C_ADDRB_WIDTH : integer; + attribute C_ADDRB_WIDTH of U0 : label is 10; + attribute C_ALGORITHM : integer; + attribute C_ALGORITHM of U0 : label is 1; + attribute C_AXI_ID_WIDTH : integer; + attribute C_AXI_ID_WIDTH of U0 : label is 4; + attribute C_AXI_SLAVE_TYPE : integer; + attribute C_AXI_SLAVE_TYPE of U0 : label is 0; + attribute C_AXI_TYPE : integer; + attribute C_AXI_TYPE of U0 : label is 1; + attribute C_BYTE_SIZE : integer; + attribute C_BYTE_SIZE of U0 : label is 9; + attribute C_COMMON_CLK : integer; + attribute C_COMMON_CLK of U0 : label is 0; + attribute C_COUNT_18K_BRAM : string; + attribute C_COUNT_18K_BRAM of U0 : label is "1"; + attribute C_COUNT_36K_BRAM : string; + attribute C_COUNT_36K_BRAM of U0 : label is "0"; + attribute C_CTRL_ECC_ALGO : string; + attribute C_CTRL_ECC_ALGO of U0 : label is "NONE"; + attribute C_DEFAULT_DATA : string; + attribute C_DEFAULT_DATA of U0 : label is "0"; + attribute C_DISABLE_WARN_BHV_COLL : integer; + attribute C_DISABLE_WARN_BHV_COLL of U0 : label is 0; + attribute C_DISABLE_WARN_BHV_RANGE : integer; + attribute C_DISABLE_WARN_BHV_RANGE of U0 : label is 0; + attribute C_ELABORATION_DIR : string; + attribute C_ELABORATION_DIR of U0 : label is "./"; + attribute C_ENABLE_32BIT_ADDRESS : integer; + attribute C_ENABLE_32BIT_ADDRESS of U0 : label is 0; + attribute C_EN_DEEPSLEEP_PIN : integer; + attribute C_EN_DEEPSLEEP_PIN of U0 : label is 0; + attribute C_EN_ECC_PIPE : integer; + attribute C_EN_ECC_PIPE of U0 : label is 0; + attribute C_EN_RDADDRA_CHG : integer; + attribute C_EN_RDADDRA_CHG of U0 : label is 0; + attribute C_EN_RDADDRB_CHG : integer; + attribute C_EN_RDADDRB_CHG of U0 : label is 0; + attribute C_EN_SAFETY_CKT : integer; + attribute C_EN_SAFETY_CKT of U0 : label is 0; + attribute C_EN_SHUTDOWN_PIN : integer; + attribute C_EN_SHUTDOWN_PIN of U0 : label is 0; + attribute C_EN_SLEEP_PIN : integer; + attribute C_EN_SLEEP_PIN of U0 : label is 0; + attribute C_EST_POWER_SUMMARY : string; + attribute C_EST_POWER_SUMMARY of U0 : label is "Estimated Power for IP : 3.107037 mW"; + attribute C_FAMILY : string; + attribute C_FAMILY of U0 : label is "kintexu"; + attribute C_HAS_AXI_ID : integer; + attribute C_HAS_AXI_ID of U0 : label is 0; + attribute C_HAS_ENA : integer; + attribute C_HAS_ENA of U0 : label is 0; + attribute C_HAS_ENB : integer; + attribute C_HAS_ENB of U0 : label is 1; + attribute C_HAS_INJECTERR : integer; + attribute C_HAS_INJECTERR of U0 : label is 0; + attribute C_HAS_MEM_OUTPUT_REGS_A : integer; + attribute C_HAS_MEM_OUTPUT_REGS_A of U0 : label is 0; + attribute C_HAS_MEM_OUTPUT_REGS_B : integer; + attribute C_HAS_MEM_OUTPUT_REGS_B of U0 : label is 1; + attribute C_HAS_MUX_OUTPUT_REGS_A : integer; + attribute C_HAS_MUX_OUTPUT_REGS_A of U0 : label is 0; + attribute C_HAS_MUX_OUTPUT_REGS_B : integer; + attribute C_HAS_MUX_OUTPUT_REGS_B of U0 : label is 0; + attribute C_HAS_REGCEA : integer; + attribute C_HAS_REGCEA of U0 : label is 0; + attribute C_HAS_REGCEB : integer; + attribute C_HAS_REGCEB of U0 : label is 0; + attribute C_HAS_RSTA : integer; + attribute C_HAS_RSTA of U0 : label is 0; + attribute C_HAS_RSTB : integer; + attribute C_HAS_RSTB of U0 : label is 0; + attribute C_HAS_SOFTECC_INPUT_REGS_A : integer; + attribute C_HAS_SOFTECC_INPUT_REGS_A of U0 : label is 0; + attribute C_HAS_SOFTECC_OUTPUT_REGS_B : integer; + attribute C_HAS_SOFTECC_OUTPUT_REGS_B of U0 : label is 0; + attribute C_INITA_VAL : string; + attribute C_INITA_VAL of U0 : label is "0"; + attribute C_INITB_VAL : string; + attribute C_INITB_VAL of U0 : label is "0"; + attribute C_INIT_FILE : string; + attribute C_INIT_FILE of U0 : label is "Distr_LUT.mem"; + attribute C_INIT_FILE_NAME : string; + attribute C_INIT_FILE_NAME of U0 : label is "Distr_LUT.mif"; + attribute C_INTERFACE_TYPE : integer; + attribute C_INTERFACE_TYPE of U0 : label is 0; + attribute C_LOAD_INIT_FILE : integer; + attribute C_LOAD_INIT_FILE of U0 : label is 1; + attribute C_MEM_TYPE : integer; + attribute C_MEM_TYPE of U0 : label is 1; + attribute C_MUX_PIPELINE_STAGES : integer; + attribute C_MUX_PIPELINE_STAGES of U0 : label is 0; + attribute C_PRIM_TYPE : integer; + attribute C_PRIM_TYPE of U0 : label is 1; + attribute C_READ_DEPTH_A : integer; + attribute C_READ_DEPTH_A of U0 : label is 1024; + attribute C_READ_DEPTH_B : integer; + attribute C_READ_DEPTH_B of U0 : label is 1024; + attribute C_READ_LATENCY_A : integer; + attribute C_READ_LATENCY_A of U0 : label is 1; + attribute C_READ_LATENCY_B : integer; + attribute C_READ_LATENCY_B of U0 : label is 1; + attribute C_READ_WIDTH_A : integer; + attribute C_READ_WIDTH_A of U0 : label is 16; + attribute C_READ_WIDTH_B : integer; + attribute C_READ_WIDTH_B of U0 : label is 16; + attribute C_RSTRAM_A : integer; + attribute C_RSTRAM_A of U0 : label is 0; + attribute C_RSTRAM_B : integer; + attribute C_RSTRAM_B of U0 : label is 0; + attribute C_RST_PRIORITY_A : string; + attribute C_RST_PRIORITY_A of U0 : label is "CE"; + attribute C_RST_PRIORITY_B : string; + attribute C_RST_PRIORITY_B of U0 : label is "CE"; + attribute C_SIM_COLLISION_CHECK : string; + attribute C_SIM_COLLISION_CHECK of U0 : label is "NONE"; + attribute C_USE_BRAM_BLOCK : integer; + attribute C_USE_BRAM_BLOCK of U0 : label is 0; + attribute C_USE_BYTE_WEA : integer; + attribute C_USE_BYTE_WEA of U0 : label is 0; + attribute C_USE_BYTE_WEB : integer; + attribute C_USE_BYTE_WEB of U0 : label is 0; + attribute C_USE_DEFAULT_DATA : integer; + attribute C_USE_DEFAULT_DATA of U0 : label is 0; + attribute C_USE_ECC : integer; + attribute C_USE_ECC of U0 : label is 0; + attribute C_USE_SOFTECC : integer; + attribute C_USE_SOFTECC of U0 : label is 0; + attribute C_USE_URAM : integer; + attribute C_USE_URAM of U0 : label is 0; + attribute C_WEA_WIDTH : integer; + attribute C_WEA_WIDTH of U0 : label is 1; + attribute C_WEB_WIDTH : integer; + attribute C_WEB_WIDTH of U0 : label is 1; + attribute C_WRITE_DEPTH_A : integer; + attribute C_WRITE_DEPTH_A of U0 : label is 1024; + attribute C_WRITE_DEPTH_B : integer; + attribute C_WRITE_DEPTH_B of U0 : label is 1024; + attribute C_WRITE_MODE_A : string; + attribute C_WRITE_MODE_A of U0 : label is "READ_FIRST"; + attribute C_WRITE_MODE_B : string; + attribute C_WRITE_MODE_B of U0 : label is "WRITE_FIRST"; + attribute C_WRITE_WIDTH_A : integer; + attribute C_WRITE_WIDTH_A of U0 : label is 16; + attribute C_WRITE_WIDTH_B : integer; + attribute C_WRITE_WIDTH_B of U0 : label is 16; + attribute C_XDEVICEFAMILY : string; + attribute C_XDEVICEFAMILY of U0 : label is "kintexu"; + attribute downgradeipidentifiedwarnings of U0 : label is "yes"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of U0 : label is "true"; + attribute x_interface_info : string; + attribute x_interface_info of clka : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA CLK"; + attribute x_interface_parameter : string; + attribute x_interface_parameter of clka : signal is "XIL_INTERFACENAME BRAM_PORTA, MEM_ADDRESS_MODE BYTE_ADDRESS, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1"; + attribute x_interface_info of clkb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB CLK"; + attribute x_interface_parameter of clkb : signal is "XIL_INTERFACENAME BRAM_PORTB, MEM_ADDRESS_MODE BYTE_ADDRESS, MEM_SIZE 8192, MEM_WIDTH 32, MEM_ECC NONE, MASTER_TYPE OTHER, READ_LATENCY 1"; + attribute x_interface_info of enb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB EN"; + attribute x_interface_info of addra : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA ADDR"; + attribute x_interface_info of addrb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB ADDR"; + attribute x_interface_info of dina : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA DIN"; + attribute x_interface_info of doutb : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTB DOUT"; + attribute x_interface_info of wea : signal is "xilinx.com:interface:bram:1.0 BRAM_PORTA WE"; +begin + U0: entity work.Distr_LUT_blk_mem_gen_v8_4_8 + port map ( + addra(9 downto 0) => addra(9 downto 0), + addrb(9 downto 0) => addrb(9 downto 0), + clka => clka, + clkb => clkb, + dbiterr => NLW_U0_dbiterr_UNCONNECTED, + deepsleep => '0', + dina(15 downto 0) => dina(15 downto 0), + dinb(15 downto 0) => B"0000000000000000", + douta(15 downto 0) => NLW_U0_douta_UNCONNECTED(15 downto 0), + doutb(15 downto 0) => doutb(15 downto 0), + eccpipece => '0', + ena => '0', + enb => enb, + injectdbiterr => '0', + injectsbiterr => '0', + rdaddrecc(9 downto 0) => NLW_U0_rdaddrecc_UNCONNECTED(9 downto 0), + regcea => '1', + regceb => '1', + rsta => '0', + rsta_busy => NLW_U0_rsta_busy_UNCONNECTED, + rstb => '0', + rstb_busy => NLW_U0_rstb_busy_UNCONNECTED, + s_aclk => '0', + s_aresetn => '0', + s_axi_araddr(31 downto 0) => B"00000000000000000000000000000000", + s_axi_arburst(1 downto 0) => B"00", + s_axi_arid(3 downto 0) => B"0000", + s_axi_arlen(7 downto 0) => B"00000000", + s_axi_arready => NLW_U0_s_axi_arready_UNCONNECTED, + s_axi_arsize(2 downto 0) => B"000", + s_axi_arvalid => '0', + s_axi_awaddr(31 downto 0) => B"00000000000000000000000000000000", + s_axi_awburst(1 downto 0) => B"00", + s_axi_awid(3 downto 0) => B"0000", + s_axi_awlen(7 downto 0) => B"00000000", + s_axi_awready => NLW_U0_s_axi_awready_UNCONNECTED, + s_axi_awsize(2 downto 0) => B"000", + s_axi_awvalid => '0', + s_axi_bid(3 downto 0) => NLW_U0_s_axi_bid_UNCONNECTED(3 downto 0), + s_axi_bready => '0', + s_axi_bresp(1 downto 0) => NLW_U0_s_axi_bresp_UNCONNECTED(1 downto 0), + s_axi_bvalid => NLW_U0_s_axi_bvalid_UNCONNECTED, + s_axi_dbiterr => NLW_U0_s_axi_dbiterr_UNCONNECTED, + s_axi_injectdbiterr => '0', + s_axi_injectsbiterr => '0', + s_axi_rdaddrecc(9 downto 0) => NLW_U0_s_axi_rdaddrecc_UNCONNECTED(9 downto 0), + s_axi_rdata(15 downto 0) => NLW_U0_s_axi_rdata_UNCONNECTED(15 downto 0), + s_axi_rid(3 downto 0) => NLW_U0_s_axi_rid_UNCONNECTED(3 downto 0), + s_axi_rlast => NLW_U0_s_axi_rlast_UNCONNECTED, + s_axi_rready => '0', + s_axi_rresp(1 downto 0) => NLW_U0_s_axi_rresp_UNCONNECTED(1 downto 0), + s_axi_rvalid => NLW_U0_s_axi_rvalid_UNCONNECTED, + s_axi_sbiterr => NLW_U0_s_axi_sbiterr_UNCONNECTED, + s_axi_wdata(15 downto 0) => B"0000000000000000", + s_axi_wlast => '0', + s_axi_wready => NLW_U0_s_axi_wready_UNCONNECTED, + s_axi_wstrb(0) => '0', + s_axi_wvalid => '0', + sbiterr => NLW_U0_sbiterr_UNCONNECTED, + shutdown => '0', + sleep => '0', + wea(0) => wea(0), + web(0) => '0' + ); +end STRUCTURE; diff --git a/sources/ip_cores/sim/KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_sim_netlist.vhdl b/sources/ip_cores/sim/KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..430d6e615295dd4116e8e2fb713864af6450c954 --- /dev/null +++ b/sources/ip_cores/sim/KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_sim_netlist.vhdl @@ -0,0 +1,15241 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Fri Jun 14 11:28:31 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FELIG/FLX712_FELIG.gen/sources_1/ip/KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0/KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_sim_netlist.vhdl +-- Design : KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0 +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 is + port ( + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \FSM_sequential_sm_reset_rx_reg[0]\ : in STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[0]_0\ : in STD_LOGIC; + gtwiz_reset_rx_pll_and_datapath_dly : in STD_LOGIC; + sm_reset_rx_pll_timer_sat : in STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[0]_1\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 is + signal \FSM_sequential_sm_reset_rx[2]_i_3_n_0\ : STD_LOGIC; + signal gtwiz_reset_rx_datapath_dly : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_rx[2]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFE400E4" + ) + port map ( + I0 => Q(1), + I1 => \FSM_sequential_sm_reset_rx[2]_i_3_n_0\, + I2 => \FSM_sequential_sm_reset_rx_reg[0]\, + I3 => Q(2), + I4 => \FSM_sequential_sm_reset_rx_reg[0]_0\, + O => E(0) + ); +\FSM_sequential_sm_reset_rx[2]_i_3\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0E0EFE0E" + ) + port map ( + I0 => gtwiz_reset_rx_datapath_dly, + I1 => gtwiz_reset_rx_pll_and_datapath_dly, + I2 => Q(0), + I3 => sm_reset_rx_pll_timer_sat, + I4 => \FSM_sequential_sm_reset_rx_reg[0]_1\, + O => \FSM_sequential_sm_reset_rx[2]_i_3_n_0\ + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_rx_datapath_dly, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 is + port ( + gtwiz_reset_rx_pll_and_datapath_dly : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 1 downto 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \p_0_in11_out__0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 is + signal \^gtwiz_reset_rx_pll_and_datapath_dly\ : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_rx[0]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_rx[1]_i_1\ : label is "soft_lutpair0"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_rx_pll_and_datapath_dly <= \^gtwiz_reset_rx_pll_and_datapath_dly\; +\FSM_sequential_sm_reset_rx[0]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F5A55E5E" + ) + port map ( + I0 => Q(0), + I1 => \^gtwiz_reset_rx_pll_and_datapath_dly\, + I2 => Q(1), + I3 => \p_0_in11_out__0\, + I4 => Q(2), + O => D(0) + ); +\FSM_sequential_sm_reset_rx[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00FFF511" + ) + port map ( + I0 => Q(2), + I1 => \^gtwiz_reset_rx_pll_and_datapath_dly\, + I2 => \p_0_in11_out__0\, + I3 => Q(1), + I4 => Q(0), + O => D(1) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \^gtwiz_reset_rx_pll_and_datapath_dly\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_dly : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 0 to 0 ); + sm_reset_tx_pll_timer_sat : in STD_LOGIC; + \FSM_sequential_sm_reset_tx[2]_i_5\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 is + signal gtwiz_reset_tx_datapath_dly : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_tx[2]_i_6\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0E0EFE0E" + ) + port map ( + I0 => gtwiz_reset_tx_datapath_dly, + I1 => gtwiz_reset_tx_pll_and_datapath_dly, + I2 => Q(0), + I3 => sm_reset_tx_pll_timer_sat, + I4 => \FSM_sequential_sm_reset_tx[2]_i_5\, + O => i_in_out_reg_0 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_tx_datapath_dly, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 is + port ( + gtwiz_reset_tx_pll_and_datapath_dly : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 1 downto 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 is + signal \^gtwiz_reset_tx_pll_and_datapath_dly\ : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_tx[0]_i_1\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_tx[1]_i_1\ : label is "soft_lutpair1"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_tx_pll_and_datapath_dly <= \^gtwiz_reset_tx_pll_and_datapath_dly\; +\FSM_sequential_sm_reset_tx[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0F3E" + ) + port map ( + I0 => \^gtwiz_reset_tx_pll_and_datapath_dly\, + I1 => Q(2), + I2 => Q(0), + I3 => Q(1), + O => D(0) + ); +\FSM_sequential_sm_reset_tx[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0FF1" + ) + port map ( + I0 => \^gtwiz_reset_tx_pll_and_datapath_dly\, + I1 => Q(2), + I2 => Q(1), + I3 => Q(0), + O => D(1) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \^gtwiz_reset_tx_pll_and_datapath_dly\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 is + port ( + \sm_reset_rx_timer_clr0__0\ : out STD_LOGIC; + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxuserrdy_out_reg : in STD_LOGIC; + sm_reset_rx_timer_sat : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 is + signal gtwiz_reset_userclk_rx_active_sync : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_userclk_rx_active_in(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_userclk_rx_active_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +sm_reset_rx_timer_clr_i_3: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => rxuserrdy_out_reg, + I1 => sm_reset_rx_timer_sat, + I2 => gtwiz_reset_userclk_rx_active_sync, + O => \sm_reset_rx_timer_clr0__0\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 is + port ( + \FSM_sequential_sm_reset_tx_reg[1]\ : out STD_LOGIC; + \sm_reset_tx_timer_clr0__0\ : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + gtwiz_reset_tx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_TXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gtwiz_reset_tx_done_int0__0\ : in STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[0]\ : in STD_LOGIC; + txuserrdy_out_reg : in STD_LOGIC; + sm_reset_tx_timer_sat : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 is + signal gtwiz_reset_userclk_tx_active_sync : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal \^sm_reset_tx_timer_clr0__0\ : STD_LOGIC; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + \sm_reset_tx_timer_clr0__0\ <= \^sm_reset_tx_timer_clr0__0\; +\FSM_sequential_sm_reset_tx[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00F000F0CCF0AAF0" + ) + port map ( + I0 => \^sm_reset_tx_timer_clr0__0\, + I1 => \gtwiz_reset_tx_done_int0__0\, + I2 => \FSM_sequential_sm_reset_tx_reg[0]\, + I3 => Q(2), + I4 => Q(0), + I5 => Q(1), + O => E(0) + ); +\FSM_sequential_sm_reset_tx[2]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => txuserrdy_out_reg, + I1 => sm_reset_tx_timer_sat, + I2 => gtwiz_reset_userclk_tx_active_sync, + O => \^sm_reset_tx_timer_clr0__0\ + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_userclk_tx_active_in(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_userclk_tx_active_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +txuserrdy_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFF9F900001000" + ) + port map ( + I0 => Q(1), + I1 => Q(0), + I2 => Q(2), + I3 => \^sm_reset_tx_timer_clr0__0\, + I4 => gtwiz_reset_tx_any_sync, + I5 => GTHE3_CHANNEL_TXUSERRDY(0), + O => \FSM_sequential_sm_reset_tx_reg[1]\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[0]\ : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]\ : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]_0\ : out STD_LOGIC; + i_in_out_reg_1 : out STD_LOGIC; + i_in_meta_reg_0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \p_0_in11_out__0\ : in STD_LOGIC; + gtwiz_reset_rx_done_int_reg : in STD_LOGIC; + \sm_reset_rx_timer_clr0__0\ : in STD_LOGIC; + sm_reset_rx_timer_clr_reg : in STD_LOGIC; + sm_reset_rx_cdr_to_clr_reg : in STD_LOGIC; + sm_reset_rx_cdr_to_clr : in STD_LOGIC; + gtwiz_reset_rx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_GTRXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + \sm_reset_rx_timer_clr010_out__0\ : in STD_LOGIC; + sm_reset_rx_timer_sat : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal plllock_rx_sync : STD_LOGIC; + signal sm_reset_rx_cdr_to_clr_i_2_n_0 : STD_LOGIC; + signal sm_reset_rx_timer_clr_i_2_n_0 : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_rx[2]_i_4\ : label is "soft_lutpair2"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; + attribute SOFT_HLUTNM of sm_reset_rx_cdr_to_clr_i_2 : label is "soft_lutpair2"; +begin +\FSM_sequential_sm_reset_rx[2]_i_4\: unisim.vcomponents.LUT4 + generic map( + INIT => X"00B0" + ) + port map ( + I0 => plllock_rx_sync, + I1 => Q(0), + I2 => sm_reset_rx_timer_sat, + I3 => sm_reset_rx_timer_clr_reg, + O => i_in_out_reg_1 + ); +gtrxreset_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFBFFF00001514" + ) + port map ( + I0 => Q(2), + I1 => Q(1), + I2 => Q(0), + I3 => sm_reset_rx_cdr_to_clr_i_2_n_0, + I4 => gtwiz_reset_rx_any_sync, + I5 => GTHE3_CHANNEL_GTRXRESET(0), + O => \FSM_sequential_sm_reset_rx_reg[2]_0\ + ); +gtwiz_reset_rx_done_int_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"BFBFFFFF0C000000" + ) + port map ( + I0 => plllock_rx_sync, + I1 => Q(1), + I2 => Q(0), + I3 => \p_0_in11_out__0\, + I4 => Q(2), + I5 => gtwiz_reset_rx_done_int_reg, + O => i_in_out_reg_0 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta_reg_0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => plllock_rx_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +sm_reset_rx_cdr_to_clr_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FBFFFFFF0000040F" + ) + port map ( + I0 => Q(2), + I1 => sm_reset_rx_cdr_to_clr_i_2_n_0, + I2 => sm_reset_rx_cdr_to_clr_reg, + I3 => Q(0), + I4 => Q(1), + I5 => sm_reset_rx_cdr_to_clr, + O => \FSM_sequential_sm_reset_rx_reg[2]\ + ); +sm_reset_rx_cdr_to_clr_i_2: unisim.vcomponents.LUT4 + generic map( + INIT => X"0800" + ) + port map ( + I0 => plllock_rx_sync, + I1 => Q(1), + I2 => sm_reset_rx_timer_clr_reg, + I3 => sm_reset_rx_timer_sat, + O => sm_reset_rx_cdr_to_clr_i_2_n_0 + ); +sm_reset_rx_timer_clr_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FAEFAAFF0AE0AA0F" + ) + port map ( + I0 => sm_reset_rx_timer_clr_i_2_n_0, + I1 => \sm_reset_rx_timer_clr0__0\, + I2 => Q(0), + I3 => Q(1), + I4 => Q(2), + I5 => sm_reset_rx_timer_clr_reg, + O => \FSM_sequential_sm_reset_rx_reg[0]\ + ); +sm_reset_rx_timer_clr_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"8F808F8F80808080" + ) + port map ( + I0 => Q(1), + I1 => \p_0_in11_out__0\, + I2 => Q(2), + I3 => plllock_rx_sync, + I4 => Q(0), + I5 => \sm_reset_rx_timer_clr010_out__0\, + O => sm_reset_rx_timer_clr_i_2_n_0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[2]\ : out STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[0]\ : out STD_LOGIC; + i_in_out_reg_1 : out STD_LOGIC; + qpll1lock_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sm_reset_tx_timer_sat : in STD_LOGIC; + sm_reset_tx_timer_clr_reg : in STD_LOGIC; + \gtwiz_reset_tx_done_int0__0\ : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + gtwiz_reset_tx_done_int_reg : in STD_LOGIC; + \sm_reset_tx_timer_clr0__0\ : in STD_LOGIC; + gtwiz_reset_tx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_GTTXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + \FSM_sequential_sm_reset_tx_reg[0]_0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 is + signal gttxreset_out_i_2_n_0 : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal plllock_tx_sync : STD_LOGIC; + signal sm_reset_tx_timer_clr_i_2_n_0 : STD_LOGIC; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_tx[2]_i_5\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00B0FFFF00B00000" + ) + port map ( + I0 => plllock_tx_sync, + I1 => Q(0), + I2 => sm_reset_tx_timer_sat, + I3 => sm_reset_tx_timer_clr_reg, + I4 => Q(1), + I5 => \FSM_sequential_sm_reset_tx_reg[0]_0\, + O => i_in_out_reg_1 + ); +gttxreset_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"7F7F7F7F2A2A2A3E" + ) + port map ( + I0 => gttxreset_out_i_2_n_0, + I1 => Q(0), + I2 => Q(1), + I3 => gtwiz_reset_tx_any_sync, + I4 => Q(2), + I5 => GTHE3_CHANNEL_GTTXRESET(0), + O => \FSM_sequential_sm_reset_tx_reg[0]\ + ); +gttxreset_out_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000002000000000" + ) + port map ( + I0 => sm_reset_tx_timer_sat, + I1 => sm_reset_tx_timer_clr_reg, + I2 => plllock_tx_sync, + I3 => gtwiz_reset_tx_any_sync, + I4 => Q(2), + I5 => Q(1), + O => gttxreset_out_i_2_n_0 + ); +gtwiz_reset_tx_done_int_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FAFFFFFF0000C000" + ) + port map ( + I0 => plllock_tx_sync, + I1 => \gtwiz_reset_tx_done_int0__0\, + I2 => Q(0), + I3 => Q(2), + I4 => Q(1), + I5 => gtwiz_reset_tx_done_int_reg, + O => i_in_out_reg_0 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => qpll1lock_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => plllock_tx_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +sm_reset_tx_timer_clr_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FAAFFAEF0AA00AEF" + ) + port map ( + I0 => sm_reset_tx_timer_clr_i_2_n_0, + I1 => \sm_reset_tx_timer_clr0__0\, + I2 => Q(2), + I3 => Q(1), + I4 => Q(0), + I5 => sm_reset_tx_timer_clr_reg, + O => \FSM_sequential_sm_reset_tx_reg[2]\ + ); +sm_reset_tx_timer_clr_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"F022F00000220022" + ) + port map ( + I0 => sm_reset_tx_timer_sat, + I1 => sm_reset_tx_timer_clr_reg, + I2 => \gtwiz_reset_tx_done_int0__0\, + I3 => Q(2), + I4 => plllock_tx_sync, + I5 => Q(0), + O => sm_reset_tx_timer_clr_i_2_n_0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]\ : out STD_LOGIC; + i_in_out_reg_1 : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]_0\ : out STD_LOGIC; + i_in_meta_reg_0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + gtwiz_reset_rx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_RXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + sm_reset_rx_cdr_to_sat : in STD_LOGIC; + \sm_reset_rx_timer_clr0__0\ : in STD_LOGIC; + \p_0_in11_out__0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal \^i_in_out_reg_0\ : STD_LOGIC; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal \sm_reset_rx_cdr_to_clr0__0\ : STD_LOGIC; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of rxprogdivreset_out_i_2 : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of sm_reset_rx_cdr_to_clr_i_3 : label is "soft_lutpair3"; +begin + i_in_out_reg_0 <= \^i_in_out_reg_0\; +\FSM_sequential_sm_reset_rx[2]_i_5\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000F0F0FF00EEEE" + ) + port map ( + I0 => \^i_in_out_reg_0\, + I1 => sm_reset_rx_cdr_to_sat, + I2 => \sm_reset_rx_timer_clr0__0\, + I3 => \p_0_in11_out__0\, + I4 => Q(1), + I5 => Q(0), + O => i_in_out_reg_1 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta_reg_0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \^i_in_out_reg_0\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +rxprogdivreset_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFDFF00001414" + ) + port map ( + I0 => Q(2), + I1 => Q(1), + I2 => Q(0), + I3 => \sm_reset_rx_cdr_to_clr0__0\, + I4 => gtwiz_reset_rx_any_sync, + I5 => GTHE3_CHANNEL_RXPROGDIVRESET(0), + O => \FSM_sequential_sm_reset_rx_reg[2]\ + ); +rxprogdivreset_out_i_2: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat, + I1 => \^i_in_out_reg_0\, + O => \sm_reset_rx_cdr_to_clr0__0\ + ); +sm_reset_rx_cdr_to_clr_i_3: unisim.vcomponents.LUT3 + generic map( + INIT => X"02" + ) + port map ( + I0 => Q(2), + I1 => \^i_in_out_reg_0\, + I2 => sm_reset_rx_cdr_to_sat, + O => \FSM_sequential_sm_reset_rx_reg[2]_0\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 is + port ( + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ : out STD_LOGIC; + GTHE3_CHANNEL_TXPHALIGNDONE : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_out : STD_LOGIC; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_error_out_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => Q(0), + I1 => i_in_out, + O => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => GTHE3_CHANNEL_TXPHALIGNDONE(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync3, + Q => i_in_out, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 is + port ( + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 1 downto 0 ); + GTHE3_CHANNEL_TXSYNCDONE : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 is + signal \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[0]_i_1\ : label is "soft_lutpair20"; + attribute SOFT_HLUTNM of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_2\ : label is "soft_lutpair20"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ <= \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\; +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0455" + ) + port map ( + I0 => Q(0), + I1 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + I2 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + I3 => Q(1), + O => D(0) + ); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"2622" + ) + port map ( + I0 => Q(0), + I1 => Q(1), + I2 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + I3 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + O => D(1) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => GTHE3_CHANNEL_TXSYNCDONE(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync3, + Q => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 is + port ( + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \FSM_sequential_sm_reset_all_reg[0]\ : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \FSM_sequential_sm_reset_all_reg[0]_0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 is + signal gtpowergood_sync : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_all[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AF0FAF00CFFFCFFF" + ) + port map ( + I0 => gtpowergood_sync, + I1 => \FSM_sequential_sm_reset_all_reg[0]\, + I2 => Q(2), + I3 => Q(0), + I4 => \FSM_sequential_sm_reset_all_reg[0]_0\, + I5 => Q(1), + O => E(0) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtpowergood_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_channel is + port ( + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPHALIGNDONE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXSYNCDONE : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 79 downto 0 ); + GTHE3_CHANNEL_CPLLPD : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_GTRXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_GTTXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXDLYSRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCALLIN : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 79 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_channel : entity is "gtwizard_ultrascale_v1_7_18_gthe3_channel"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_channel; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_channel is + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_45\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_63\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_45\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_63\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_68\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_45\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_63\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_68\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_45\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_63\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_68\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + attribute BOX_TYPE : string; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; +begin +\gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 5, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "PMA", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 10, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 20, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "FALSE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 2, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 20, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 0, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 0.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(0), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(0), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(0), + GTHRXP => gthrxp_in(0), + GTHTXN => gthtxn_out(0), + GTHTXP => gthtxp_out(0), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(0), + GTREFCLK0 => gtrefclk0_in(0), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(2 downto 0), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(0), + RXCDRLOCK => rxcdrlock_out(0), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '1', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => gtwiz_userdata_rx_out(18), + RXCTRL0(0) => gtwiz_userdata_rx_out(8), + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => gtwiz_userdata_rx_out(19), + RXCTRL1(0) => gtwiz_userdata_rx_out(9), + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 8) => gtwiz_userdata_rx_out(17 downto 10), + RXDATA(7 downto 0) => gtwiz_userdata_rx_out(7 downto 0), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(0), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '0', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(0), + RXPOLARITY => rxpolarity_in(0), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_45\, + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(0), + RXSLIDE => rxslide_in(0), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(0), + RXUSRCLK2 => rxusrclk2_in(0), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 2) => B"00000000000000", + TXCTRL0(1) => gtwiz_userdata_tx_in(18), + TXCTRL0(0) => gtwiz_userdata_tx_in(8), + TXCTRL1(15 downto 2) => B"00000000000000", + TXCTRL1(1) => gtwiz_userdata_tx_in(19), + TXCTRL1(0) => gtwiz_userdata_tx_in(9), + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 16) => B"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(15 downto 8) => gtwiz_userdata_tx_in(17 downto 10), + TXDATA(7 downto 0) => gtwiz_userdata_tx_in(7 downto 0), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(0), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"011", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(0), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(0), + TXPOLARITY => txpolarity_in(0), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_63\, + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(0), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => GTHE3_CHANNEL_TXSYNCDONE(0), + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '1', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(0), + TXUSRCLK2 => txusrclk2_in(0) + ); +\gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 5, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "PMA", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 10, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 20, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "FALSE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 2, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 20, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 0, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 0.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(1), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(1), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(1), + GTHRXP => gthrxp_in(1), + GTHTXN => gthtxn_out(1), + GTHTXP => gthtxp_out(1), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(1), + GTREFCLK0 => gtrefclk0_in(1), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(5 downto 3), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(1), + RXCDRLOCK => rxcdrlock_out(1), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '1', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => gtwiz_userdata_rx_out(38), + RXCTRL0(0) => gtwiz_userdata_rx_out(28), + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => gtwiz_userdata_rx_out(39), + RXCTRL1(0) => gtwiz_userdata_rx_out(29), + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 8) => gtwiz_userdata_rx_out(37 downto 30), + RXDATA(7 downto 0) => gtwiz_userdata_rx_out(27 downto 20), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(1), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '0', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(1), + RXPOLARITY => rxpolarity_in(1), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_45\, + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(1), + RXSLIDE => rxslide_in(1), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(1), + RXUSRCLK2 => rxusrclk2_in(1), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 2) => B"00000000000000", + TXCTRL0(1) => gtwiz_userdata_tx_in(38), + TXCTRL0(0) => gtwiz_userdata_tx_in(28), + TXCTRL1(15 downto 2) => B"00000000000000", + TXCTRL1(1) => gtwiz_userdata_tx_in(39), + TXCTRL1(0) => gtwiz_userdata_tx_in(29), + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 16) => B"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(15 downto 8) => gtwiz_userdata_tx_in(37 downto 30), + TXDATA(7 downto 0) => gtwiz_userdata_tx_in(27 downto 20), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(1), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"011", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(1), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(1), + TXPOLARITY => txpolarity_in(1), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_63\, + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(1), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_68\, + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '0', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(1), + TXUSRCLK2 => txusrclk2_in(1) + ); +\gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 5, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "PMA", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 10, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 20, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "FALSE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 2, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 20, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 0, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 0.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(2), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(2), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(2), + GTHRXP => gthrxp_in(2), + GTHTXN => gthtxn_out(2), + GTHTXP => gthtxp_out(2), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(2), + GTREFCLK0 => gtrefclk0_in(2), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(8 downto 6), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(2), + RXCDRLOCK => rxcdrlock_out(2), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '1', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => gtwiz_userdata_rx_out(58), + RXCTRL0(0) => gtwiz_userdata_rx_out(48), + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => gtwiz_userdata_rx_out(59), + RXCTRL1(0) => gtwiz_userdata_rx_out(49), + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 8) => gtwiz_userdata_rx_out(57 downto 50), + RXDATA(7 downto 0) => gtwiz_userdata_rx_out(47 downto 40), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(2), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '0', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(2), + RXPOLARITY => rxpolarity_in(2), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_45\, + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(2), + RXSLIDE => rxslide_in(2), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(2), + RXUSRCLK2 => rxusrclk2_in(2), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 2) => B"00000000000000", + TXCTRL0(1) => gtwiz_userdata_tx_in(58), + TXCTRL0(0) => gtwiz_userdata_tx_in(48), + TXCTRL1(15 downto 2) => B"00000000000000", + TXCTRL1(1) => gtwiz_userdata_tx_in(59), + TXCTRL1(0) => gtwiz_userdata_tx_in(49), + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 16) => B"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(15 downto 8) => gtwiz_userdata_tx_in(57 downto 50), + TXDATA(7 downto 0) => gtwiz_userdata_tx_in(47 downto 40), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(2), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"011", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(2), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(2), + TXPOLARITY => txpolarity_in(2), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_63\, + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(2), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_68\, + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '0', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(2), + TXUSRCLK2 => txusrclk2_in(2) + ); +\gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 5, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "PMA", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 10, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 20, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "FALSE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 2, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 20, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 0, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 0.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(3), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(3), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(3), + GTHRXP => gthrxp_in(3), + GTHTXN => gthtxn_out(3), + GTHTXP => gthtxp_out(3), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(3), + GTREFCLK0 => gtrefclk0_in(3), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(11 downto 9), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(3), + RXCDRLOCK => rxcdrlock_out(3), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '1', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => gtwiz_userdata_rx_out(78), + RXCTRL0(0) => gtwiz_userdata_rx_out(68), + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => gtwiz_userdata_rx_out(79), + RXCTRL1(0) => gtwiz_userdata_rx_out(69), + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 8) => gtwiz_userdata_rx_out(77 downto 70), + RXDATA(7 downto 0) => gtwiz_userdata_rx_out(67 downto 60), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(3), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '0', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(3), + RXPOLARITY => rxpolarity_in(3), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_45\, + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(3), + RXSLIDE => rxslide_in(3), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(3), + RXUSRCLK2 => rxusrclk2_in(3), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 2) => B"00000000000000", + TXCTRL0(1) => gtwiz_userdata_tx_in(78), + TXCTRL0(0) => gtwiz_userdata_tx_in(68), + TXCTRL1(15 downto 2) => B"00000000000000", + TXCTRL1(1) => gtwiz_userdata_tx_in(79), + TXCTRL1(0) => gtwiz_userdata_tx_in(69), + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 16) => B"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(15 downto 8) => gtwiz_userdata_tx_in(77 downto 70), + TXDATA(7 downto 0) => gtwiz_userdata_tx_in(67 downto 60), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(3), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"011", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(3), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(3), + TXPOLARITY => txpolarity_in(3), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_63\, + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(3), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_68\, + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '0', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(3), + TXUSRCLK2 => txusrclk2_in(3) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_common is + port ( + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : out STD_LOGIC; + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_common : entity is "gtwizard_ultrascale_v1_7_18_gthe3_common"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_common; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_common is + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_19\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_34\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_39\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_45\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_47\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_5\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_57\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_60\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_62\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_63\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_64\ : STD_LOGIC; + signal \^qpll1lock_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + attribute BOX_TYPE : string; + attribute BOX_TYPE of \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\ : label is "PRIMITIVE"; +begin + qpll1lock_out(0) <= \^qpll1lock_out\(0); +\gthe3_common_gen.GTHE3_COMMON_PRIM_INST\: unisim.vcomponents.GTHE3_COMMON + generic map( + BIAS_CFG0 => X"0000", + BIAS_CFG1 => X"0000", + BIAS_CFG2 => X"0000", + BIAS_CFG3 => X"0040", + BIAS_CFG4 => X"0000", + BIAS_CFG_RSVD => B"0000000000", + COMMON_CFG0 => X"0000", + COMMON_CFG1 => X"0000", + POR_CFG => X"0004", + QPLL0_CFG0 => X"321C", + QPLL0_CFG1 => X"1018", + QPLL0_CFG1_G3 => X"1018", + QPLL0_CFG2 => X"0048", + QPLL0_CFG2_G3 => X"0048", + QPLL0_CFG3 => X"0120", + QPLL0_CFG4 => X"0009", + QPLL0_CP => B"0000011111", + QPLL0_CP_G3 => B"1111111111", + QPLL0_FBDIV => 66, + QPLL0_FBDIV_G3 => 80, + QPLL0_INIT_CFG0 => X"02B2", + QPLL0_INIT_CFG1 => X"00", + QPLL0_LOCK_CFG => X"21E8", + QPLL0_LOCK_CFG_G3 => X"21E8", + QPLL0_LPF => B"1111111100", + QPLL0_LPF_G3 => B"0000010101", + QPLL0_REFCLK_DIV => 1, + QPLL0_SDM_CFG0 => B"0000000000000000", + QPLL0_SDM_CFG1 => B"0000000000000000", + QPLL0_SDM_CFG2 => B"0000000000000000", + QPLL1_CFG0 => X"321C", + QPLL1_CFG1 => X"1018", + QPLL1_CFG1_G3 => X"1018", + QPLL1_CFG2 => X"0040", + QPLL1_CFG2_G3 => X"0040", + QPLL1_CFG3 => X"0120", + QPLL1_CFG4 => X"0000", + QPLL1_CP => B"0000011111", + QPLL1_CP_G3 => B"1111111111", + QPLL1_FBDIV => 40, + QPLL1_FBDIV_G3 => 80, + QPLL1_INIT_CFG0 => X"02B2", + QPLL1_INIT_CFG1 => X"00", + QPLL1_LOCK_CFG => X"21E8", + QPLL1_LOCK_CFG_G3 => X"21E8", + QPLL1_LPF => B"1111111110", + QPLL1_LPF_G3 => B"0000010101", + QPLL1_REFCLK_DIV => 1, + QPLL1_SDM_CFG0 => B"0000000000000000", + QPLL1_SDM_CFG1 => B"0000000000000000", + QPLL1_SDM_CFG2 => B"0000000000000000", + RSVD_ATTR0 => X"0000", + RSVD_ATTR1 => X"0000", + RSVD_ATTR2 => X"0000", + RSVD_ATTR3 => X"0000", + RXRECCLKOUT0_SEL => B"00", + RXRECCLKOUT1_SEL => B"00", + SARC_EN => '1', + SARC_SEL => '0', + SDM0DATA1_0 => B"0000000000000000", + SDM0DATA1_1 => B"000000000", + SDM0INITSEED0_0 => B"0000000000000000", + SDM0INITSEED0_1 => B"000000000", + SDM0_DATA_PIN_SEL => '0', + SDM0_WIDTH_PIN_SEL => '0', + SDM1DATA1_0 => B"0000000000000000", + SDM1DATA1_1 => B"000000000", + SDM1INITSEED0_0 => B"0000000000000000", + SDM1INITSEED0_1 => B"000000000", + SDM1_DATA_PIN_SEL => '0', + SDM1_WIDTH_PIN_SEL => '0', + SIM_MODE => "FAST", + SIM_RESET_SPEEDUP => "TRUE", + SIM_VERSION => 2 + ) + port map ( + BGBYPASSB => '1', + BGMONITORENB => '1', + BGPDB => '1', + BGRCALOVRD(4 downto 0) => B"11111", + BGRCALOVRDENB => '1', + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => '0', + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_13\, + DRPDO(14) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_14\, + DRPDO(13) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_15\, + DRPDO(12) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_16\, + DRPDO(11) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_17\, + DRPDO(10) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_18\, + DRPDO(9) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_19\, + DRPDO(8) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_20\, + DRPDO(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_21\, + DRPDO(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_22\, + DRPDO(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_23\, + DRPDO(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_24\, + DRPDO(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_25\, + DRPDO(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_26\, + DRPDO(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_27\, + DRPDO(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_28\, + DRPEN => '0', + DRPRDY => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_0\, + DRPWE => '0', + GTGREFCLK0 => '0', + GTGREFCLK1 => '0', + GTNORTHREFCLK00 => '0', + GTNORTHREFCLK01 => '0', + GTNORTHREFCLK10 => '0', + GTNORTHREFCLK11 => '0', + GTREFCLK00 => '0', + GTREFCLK01 => gtrefclk01_in(0), + GTREFCLK10 => '0', + GTREFCLK11 => '0', + GTSOUTHREFCLK00 => '0', + GTSOUTHREFCLK01 => '0', + GTSOUTHREFCLK10 => '0', + GTSOUTHREFCLK11 => '0', + PMARSVD0(7 downto 0) => B"00000000", + PMARSVD1(7 downto 0) => B"00000000", + PMARSVDOUT0(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_33\, + PMARSVDOUT0(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_34\, + PMARSVDOUT0(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_35\, + PMARSVDOUT0(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_36\, + PMARSVDOUT0(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_37\, + PMARSVDOUT0(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_38\, + PMARSVDOUT0(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_39\, + PMARSVDOUT0(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_40\, + PMARSVDOUT1(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_41\, + PMARSVDOUT1(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_42\, + PMARSVDOUT1(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_43\, + PMARSVDOUT1(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_44\, + PMARSVDOUT1(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_45\, + PMARSVDOUT1(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_46\, + PMARSVDOUT1(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_47\, + PMARSVDOUT1(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_48\, + QPLL0CLKRSVD0 => '0', + QPLL0CLKRSVD1 => '0', + QPLL0FBCLKLOST => qpll0fbclklost_out(0), + QPLL0LOCK => qpll0lock_out(0), + QPLL0LOCKDETCLK => '0', + QPLL0LOCKEN => '0', + QPLL0OUTCLK => qpll0outclk_out(0), + QPLL0OUTREFCLK => qpll0outrefclk_out(0), + QPLL0PD => '1', + QPLL0REFCLKLOST => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_5\, + QPLL0REFCLKSEL(2 downto 0) => B"001", + QPLL0RESET => '1', + QPLL1CLKRSVD0 => '0', + QPLL1CLKRSVD1 => '0', + QPLL1FBCLKLOST => qpll1fbclklost_out(0), + QPLL1LOCK => \^qpll1lock_out\(0), + QPLL1LOCKDETCLK => '0', + QPLL1LOCKEN => '1', + QPLL1OUTCLK => qpll1outclk_out(0), + QPLL1OUTREFCLK => qpll1outrefclk_out(0), + QPLL1PD => '0', + QPLL1REFCLKLOST => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_10\, + QPLL1REFCLKSEL(2 downto 0) => B"001", + QPLL1RESET => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_0\, + QPLLDMONITOR0(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_49\, + QPLLDMONITOR0(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_50\, + QPLLDMONITOR0(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_51\, + QPLLDMONITOR0(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_52\, + QPLLDMONITOR0(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_53\, + QPLLDMONITOR0(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_54\, + QPLLDMONITOR0(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_55\, + QPLLDMONITOR0(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_56\, + QPLLDMONITOR1(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_57\, + QPLLDMONITOR1(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_58\, + QPLLDMONITOR1(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_59\, + QPLLDMONITOR1(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_60\, + QPLLDMONITOR1(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_61\, + QPLLDMONITOR1(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_62\, + QPLLDMONITOR1(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_63\, + QPLLDMONITOR1(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_64\, + QPLLRSVD1(7 downto 0) => B"00000000", + QPLLRSVD2(4 downto 0) => B"00000", + QPLLRSVD3(4 downto 0) => B"00000", + QPLLRSVD4(7 downto 0) => B"00000000", + RCALENB => '1', + REFCLKOUTMONITOR0 => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_11\, + REFCLKOUTMONITOR1 => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_12\, + RXRECCLK0_SEL(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_29\, + RXRECCLK0_SEL(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_30\, + RXRECCLK1_SEL(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_31\, + RXRECCLK1_SEL(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_32\ + ); +\rst_in_meta_i_1__3\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^qpll1lock_out\(0), + O => rst_in0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer is + port ( + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ : out STD_LOGIC; + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync2_reg_0 : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ : in STD_LOGIC; + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : in STD_LOGIC; + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer : entity is "gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer is + signal \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ : STD_LOGIC; + signal p_0_in : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_3\ : label is "soft_lutpair21"; + attribute SOFT_HLUTNM of \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_done_out_i_1\ : label is "soft_lutpair21"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ <= \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\; +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AEFEAEAE" + ) + port map ( + I0 => Q(0), + I1 => p_0_in, + I2 => Q(1), + I3 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + I4 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + O => E(0) + ); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"F4" + ) + port map ( + I0 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + I1 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + I2 => gtwiz_buffbypass_tx_start_user_in(0), + O => p_0_in + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_done_out_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAAA4454" + ) + port map ( + I0 => Q(0), + I1 => gtwiz_buffbypass_tx_start_user_in(0), + I2 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + I3 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + I4 => Q(1), + O => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ + ); +rst_in_meta_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => '1', + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_sync3, + Q => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ + ); +rst_in_sync1_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_meta, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_sync1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_sync2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 is + port ( + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync2_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 : entity is "gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal \rst_in_out_i_1__1_n_0\ : STD_LOGIC; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => '1', + Q => rst_in_meta + ); +\rst_in_out_i_1__1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => rst_in_sync2_reg_0, + O => \rst_in_out_i_1__1_n_0\ + ); +rst_in_out_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_sync3, + Q => gtwiz_reset_rx_done_out(0) + ); +rst_in_sync1_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_meta, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_sync1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_sync2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 is + port ( + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : out STD_LOGIC; + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync3_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 : entity is "gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 is + signal \^gtwiz_reset_tx_done_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal \rst_in_out_i_1__0_n_0\ : STD_LOGIC; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_tx_done_out(0) <= \^gtwiz_reset_tx_done_out\(0); +\rst_in_meta_i_1__4\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^gtwiz_reset_tx_done_out\(0), + O => rst_in_out_reg_0 + ); +rst_in_meta_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => '1', + Q => rst_in_meta + ); +\rst_in_out_i_1__0\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => rst_in_sync3_reg_0, + O => \rst_in_out_i_1__0_n_0\ + ); +rst_in_out_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_sync3, + Q => \^gtwiz_reset_tx_done_out\(0) + ); +rst_in_sync1_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_meta, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_sync1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_sync2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer is + port ( + gtwiz_reset_all_sync : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_all_in(0), + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_all_in(0), + Q => gtwiz_reset_all_sync + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_all_in(0), + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_all_in(0), + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_all_in(0), + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 is + port ( + gtwiz_reset_rx_any_sync : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[1]\ : out STD_LOGIC; + rst_in_out_reg_0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + GTHE3_CHANNEL_CPLLPD : in STD_LOGIC_VECTOR ( 0 to 0 ); + \sm_reset_rx_timer_clr0__0\ : in STD_LOGIC; + GTHE3_CHANNEL_RXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_1 : in STD_LOGIC; + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_2 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 is + signal gtwiz_reset_rx_any : STD_LOGIC; + signal \^gtwiz_reset_rx_any_sync\ : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_rx_any_sync <= \^gtwiz_reset_rx_any_sync\; +pllreset_rx_out_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFDF0010" + ) + port map ( + I0 => Q(1), + I1 => Q(2), + I2 => Q(0), + I3 => \^gtwiz_reset_rx_any_sync\, + I4 => GTHE3_CHANNEL_CPLLPD(0), + O => \FSM_sequential_sm_reset_rx_reg[1]\ + ); +\rst_in_meta_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => rst_in_out_reg_1, + I1 => gtwiz_reset_rx_datapath_in(0), + I2 => gtwiz_reset_rx_pll_and_datapath_in(0), + I3 => rst_in_out_reg_2, + O => gtwiz_reset_rx_any + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_rx_any, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_rx_any, + Q => \^gtwiz_reset_rx_any_sync\ + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_rx_any, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_rx_any, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_rx_any, + Q => rst_in_sync3 + ); +rxuserrdy_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFAAF00400000" + ) + port map ( + I0 => \^gtwiz_reset_rx_any_sync\, + I1 => \sm_reset_rx_timer_clr0__0\, + I2 => Q(0), + I3 => Q(1), + I4 => Q(2), + I5 => GTHE3_CHANNEL_RXUSERRDY(0), + O => rst_in_out_reg_0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 is + signal rst_in0_2 : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +\rst_in_meta_i_1__2\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => gtwiz_reset_rx_datapath_in(0), + I1 => rst_in_out_reg_0, + O => rst_in0_2 + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => rst_in0_2, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => rst_in0_2, + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => rst_in0_2, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => rst_in0_2, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => rst_in0_2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : in STD_LOGIC; + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 is + signal p_0_in_1 : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +\rst_in_meta_i_1__1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => rst_in_out_reg_0, + I1 => gtwiz_reset_rx_pll_and_datapath_in(0), + O => p_0_in_1 + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => p_0_in_1, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => p_0_in_1, + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => p_0_in_1, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => p_0_in_1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => p_0_in_1, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 is + port ( + gtwiz_reset_tx_any_sync : out STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[1]\ : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + pllreset_tx_out_reg : in STD_LOGIC; + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync3_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 is + signal gtwiz_reset_tx_any : STD_LOGIC; + signal \^gtwiz_reset_tx_any_sync\ : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_tx_any_sync <= \^gtwiz_reset_tx_any_sync\; +pllreset_tx_out_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFDF0010" + ) + port map ( + I0 => Q(1), + I1 => Q(2), + I2 => Q(0), + I3 => \^gtwiz_reset_tx_any_sync\, + I4 => pllreset_tx_out_reg, + O => \FSM_sequential_sm_reset_tx_reg[1]\ + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_tx_any, + Q => rst_in_meta + ); +rst_in_out_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"FE" + ) + port map ( + I0 => gtwiz_reset_tx_datapath_in(0), + I1 => gtwiz_reset_tx_pll_and_datapath_in(0), + I2 => rst_in_sync3_reg_0, + O => gtwiz_reset_tx_any + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_tx_any, + Q => \^gtwiz_reset_tx_any_sync\ + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_tx_any, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_tx_any, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_tx_any, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : in STD_LOGIC; + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 is + signal p_1_in_0 : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => rst_in_out_reg_0, + I1 => gtwiz_reset_tx_pll_and_datapath_in(0), + O => p_1_in_0 + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => p_1_in_0, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => p_1_in_0, + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => p_1_in_0, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => p_1_in_0, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => p_1_in_0, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 is + port ( + GTHE3_CHANNEL_TXPROGDIVRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => rst_in0, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => rst_in0, + Q => GTHE3_CHANNEL_TXPROGDIVRESET(0) + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => rst_in0, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => rst_in0, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => rst_in0, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_channel_wrapper is + port ( + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPHALIGNDONE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXSYNCDONE : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 79 downto 0 ); + GTHE3_CHANNEL_CPLLPD : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_GTRXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_GTTXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXDLYSRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCALLIN : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 79 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ) + ); +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_channel_wrapper; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_channel_wrapper is +begin +channel_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_channel + port map ( + GTHE3_CHANNEL_CPLLPD(0) => GTHE3_CHANNEL_CPLLPD(0), + GTHE3_CHANNEL_GTRXRESET(0) => GTHE3_CHANNEL_GTRXRESET(0), + GTHE3_CHANNEL_GTTXRESET(0) => GTHE3_CHANNEL_GTTXRESET(0), + GTHE3_CHANNEL_RXPROGDIVRESET(0) => GTHE3_CHANNEL_RXPROGDIVRESET(0), + GTHE3_CHANNEL_RXUSERRDY(0) => GTHE3_CHANNEL_RXUSERRDY(0), + GTHE3_CHANNEL_TXDLYSRESET(0) => GTHE3_CHANNEL_TXDLYSRESET(0), + GTHE3_CHANNEL_TXPHALIGNDONE(3 downto 0) => GTHE3_CHANNEL_TXPHALIGNDONE(3 downto 0), + GTHE3_CHANNEL_TXPROGDIVRESET(0) => GTHE3_CHANNEL_TXPROGDIVRESET(0), + GTHE3_CHANNEL_TXSYNCALLIN(0) => GTHE3_CHANNEL_TXSYNCALLIN(0), + GTHE3_CHANNEL_TXSYNCDONE(0) => GTHE3_CHANNEL_TXSYNCDONE(0), + GTHE3_CHANNEL_TXUSERRDY(0) => GTHE3_CHANNEL_TXUSERRDY(0), + cplllock_out(3 downto 0) => cplllock_out(3 downto 0), + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtpowergood_out(3 downto 0) => gtpowergood_out(3 downto 0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtwiz_userdata_rx_out(79 downto 0) => gtwiz_userdata_rx_out(79 downto 0), + gtwiz_userdata_tx_in(79 downto 0) => gtwiz_userdata_tx_in(79 downto 0), + loopback_in(11 downto 0) => loopback_in(11 downto 0), + qpll0outclk_out(0) => qpll0outclk_out(0), + qpll0outrefclk_out(0) => qpll0outrefclk_out(0), + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => rxcdrlock_out(3 downto 0), + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxresetdone_out(3 downto 0) => rxresetdone_out(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txresetdone_out(3 downto 0) => txresetdone_out(3 downto 0), + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_common_wrapper is + port ( + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : out STD_LOGIC; + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\ : in STD_LOGIC + ); +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_common_wrapper; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_common_wrapper is +begin +common_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gthe3_common + port map ( + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_0\ => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\, + gtrefclk01_in(0) => gtrefclk01_in(0), + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0lock_out(0) => qpll0lock_out(0), + qpll0outclk_out(0) => qpll0outclk_out(0), + qpll0outrefclk_out(0) => qpll0outrefclk_out(0), + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1lock_out(0) => qpll1lock_out(0), + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + rst_in0 => rst_in0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx is + port ( + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCALLIN : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXDLYSRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCDONE : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXPHALIGNDONE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync2_reg : in STD_LOGIC; + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx : entity is "gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx is + signal \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\ : STD_LOGIC; + signal \^gthe3_channel_txdlysreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst_n_0\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1_n_0\ : STD_LOGIC; + attribute FSM_ENCODED_STATES : string; + attribute FSM_ENCODED_STATES of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ : label is "ST_BUFFBYPASS_TX_DEASSERT_TXDLYSRESET:01,ST_BUFFBYPASS_TX_WAIT_TXSYNCDONE:10,iSTATE:00,ST_BUFFBYPASS_TX_DONE:11"; + attribute FSM_ENCODED_STATES of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ : label is "ST_BUFFBYPASS_TX_DEASSERT_TXDLYSRESET:01,ST_BUFFBYPASS_TX_WAIT_TXSYNCDONE:10,iSTATE:00,ST_BUFFBYPASS_TX_DONE:11"; +begin + GTHE3_CHANNEL_TXDLYSRESET(0) <= \^gthe3_channel_txdlysreset\(0); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\, + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\(0), + Q => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\, + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\(1), + Q => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 + port map ( + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst_n_0\, + GTHE3_CHANNEL_TXPHALIGNDONE(0) => GTHE3_CHANNEL_TXPHALIGNDONE(0), + Q(0) => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_syncdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 + port map ( + D(1 downto 0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\(1 downto 0), + GTHE3_CHANNEL_TXSYNCDONE(0) => GTHE3_CHANNEL_TXSYNCDONE(0), + Q(1) => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + Q(0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_done_out_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\, + D => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + Q => gtwiz_buffbypass_tx_done_out(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_error_out_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\, + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst_n_0\, + Q => gtwiz_buffbypass_tx_error_out(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + Q => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + R => '0' + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + Q => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer + port map ( + E(0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\, + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\, + Q(1) => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + Q(0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + rst_in_sync2_reg_0 => rst_in_sync2_reg, + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAFFFF00005510" + ) + port map ( + I0 => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + I1 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + I2 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + I3 => gtwiz_buffbypass_tx_start_user_in(0), + I4 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + I5 => \^gthe3_channel_txdlysreset\(0), + O => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1_n_0\ + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1_n_0\, + Q => \^gthe3_channel_txdlysreset\(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +txsyncallin_out0: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => GTHE3_CHANNEL_TXPHALIGNDONE(1), + I1 => GTHE3_CHANNEL_TXPHALIGNDONE(0), + I2 => GTHE3_CHANNEL_TXPHALIGNDONE(3), + I3 => GTHE3_CHANNEL_TXPHALIGNDONE(2), + O => GTHE3_CHANNEL_TXSYNCALLIN(0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_reset is + port ( + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXPROGDIVRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + i_in_out_reg : out STD_LOGIC; + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + pllreset_tx_out_reg_0 : out STD_LOGIC; + GTHE3_CHANNEL_GTTXRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXUSERRDY : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_CPLLPD : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_RXPROGDIVRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_GTRXRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_RXUSERRDY : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg : out STD_LOGIC; + in0 : in STD_LOGIC; + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + i_in_meta_reg : in STD_LOGIC; + i_in_meta_reg_0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : in STD_LOGIC; + rxusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : in STD_LOGIC_VECTOR ( 3 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_reset : entity is "gtwizard_ultrascale_v1_7_18_gtwiz_reset"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_reset; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_reset is + signal \FSM_sequential_sm_reset_all[2]_i_3_n_0\ : STD_LOGIC; + signal \FSM_sequential_sm_reset_all[2]_i_4_n_0\ : STD_LOGIC; + signal \^gthe3_channel_cpllpd\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_gtrxreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_gttxreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_rxprogdivreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_rxuserrdy\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_txuserrdy\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal bit_synchronizer_gtpowergood_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_1 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_3 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_4 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_1 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_3 : STD_LOGIC; + signal bit_synchronizer_rxcdrlock_inst_n_1 : STD_LOGIC; + signal bit_synchronizer_rxcdrlock_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_rxcdrlock_inst_n_3 : STD_LOGIC; + signal gtwiz_reset_all_sync : STD_LOGIC; + signal gtwiz_reset_rx_any_sync : STD_LOGIC; + signal gtwiz_reset_rx_datapath_int_i_1_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_datapath_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_datapath_sync : STD_LOGIC; + signal gtwiz_reset_rx_done_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_dly : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_int_i_1_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_sync : STD_LOGIC; + signal gtwiz_reset_tx_any_sync : STD_LOGIC; + signal gtwiz_reset_tx_datapath_sync : STD_LOGIC; + signal \gtwiz_reset_tx_done_int0__0\ : STD_LOGIC; + signal gtwiz_reset_tx_done_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_dly : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_int_i_1_n_0 : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_sync : STD_LOGIC; + signal p_0_in : STD_LOGIC; + signal \p_0_in11_out__0\ : STD_LOGIC; + signal \p_0_in__0\ : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal \p_0_in__1\ : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal p_1_in : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \^pllreset_tx_out_reg_0\ : STD_LOGIC; + signal reset_synchronizer_gtwiz_reset_rx_any_inst_n_1 : STD_LOGIC; + signal reset_synchronizer_gtwiz_reset_rx_any_inst_n_2 : STD_LOGIC; + signal reset_synchronizer_gtwiz_reset_tx_any_inst_n_1 : STD_LOGIC; + signal sel : STD_LOGIC; + signal sm_reset_all : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_all__0\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_all_timer_clr_i_1_n_0 : STD_LOGIC; + signal sm_reset_all_timer_clr_i_2_n_0 : STD_LOGIC; + signal sm_reset_all_timer_clr_reg_n_0 : STD_LOGIC; + signal sm_reset_all_timer_ctr : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_all_timer_ctr0_inferred__0/i__n_0\ : STD_LOGIC; + signal \sm_reset_all_timer_ctr[0]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_all_timer_ctr[1]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_all_timer_ctr[2]_i_1_n_0\ : STD_LOGIC; + signal sm_reset_all_timer_sat : STD_LOGIC; + signal sm_reset_all_timer_sat_i_1_n_0 : STD_LOGIC; + signal sm_reset_rx : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_rx__0\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_rx_cdr_to_clr : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_3_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_5_n_0\ : STD_LOGIC; + signal sm_reset_rx_cdr_to_ctr_reg : STD_LOGIC_VECTOR ( 25 downto 0 ); + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_1\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_10\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_11\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_12\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_13\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_2\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_3\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_4\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_5\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_6\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_8\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_9\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_1\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_10\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_11\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_12\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_13\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_2\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_3\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_4\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_5\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_6\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_8\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_9\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_1\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_10\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_11\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_12\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_13\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_2\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_3\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_4\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_5\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_6\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_8\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_9\ : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_1_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_2_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_3_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_4_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_5_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_6_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_7_n_0 : STD_LOGIC; + signal sm_reset_rx_pll_timer_clr_i_1_n_0 : STD_LOGIC; + signal sm_reset_rx_pll_timer_clr_reg_n_0 : STD_LOGIC; + signal \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_pll_timer_ctr[9]_i_3_n_0\ : STD_LOGIC; + signal \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\ : STD_LOGIC; + signal sm_reset_rx_pll_timer_ctr_reg : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal sm_reset_rx_pll_timer_sat : STD_LOGIC; + signal sm_reset_rx_pll_timer_sat_i_1_n_0 : STD_LOGIC; + signal \sm_reset_rx_timer_clr010_out__0\ : STD_LOGIC; + signal \sm_reset_rx_timer_clr0__0\ : STD_LOGIC; + signal sm_reset_rx_timer_clr_reg_n_0 : STD_LOGIC; + signal sm_reset_rx_timer_ctr : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\ : STD_LOGIC; + signal \sm_reset_rx_timer_ctr[0]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_timer_ctr[1]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_timer_ctr[2]_i_1_n_0\ : STD_LOGIC; + signal sm_reset_rx_timer_sat : STD_LOGIC; + signal sm_reset_rx_timer_sat_i_1_n_0 : STD_LOGIC; + signal sm_reset_tx : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_tx__0\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_tx_pll_timer_clr_i_1_n_0 : STD_LOGIC; + signal sm_reset_tx_pll_timer_clr_reg_n_0 : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[2]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[6]_i_2_n_0\ : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[9]_i_3_n_0\ : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\ : STD_LOGIC; + signal sm_reset_tx_pll_timer_ctr_reg : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal sm_reset_tx_pll_timer_sat : STD_LOGIC; + signal sm_reset_tx_pll_timer_sat_i_1_n_0 : STD_LOGIC; + signal \sm_reset_tx_timer_clr0__0\ : STD_LOGIC; + signal sm_reset_tx_timer_clr_reg_n_0 : STD_LOGIC; + signal sm_reset_tx_timer_ctr : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_tx_timer_sat : STD_LOGIC; + signal sm_reset_tx_timer_sat_i_1_n_0 : STD_LOGIC; + signal \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 7 downto 1 ); + signal \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_O_UNCONNECTED\ : STD_LOGIC_VECTOR ( 7 downto 2 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[1]_i_1\ : label is "soft_lutpair19"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[2]_i_2\ : label is "soft_lutpair19"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[2]_i_3\ : label is "soft_lutpair11"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[2]_i_4\ : label is "soft_lutpair11"; + attribute FSM_ENCODED_STATES : string; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_all_reg[0]\ : label is "ST_RESET_ALL_BRANCH:000,ST_RESET_ALL_TX_PLL_WAIT:010,ST_RESET_ALL_RX_WAIT:101,ST_RESET_ALL_TX_PLL:001,ST_RESET_ALL_RX_PLL:100,ST_RESET_ALL_RX_DP:011,ST_RESET_ALL_INIT:111,iSTATE:110"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_all_reg[1]\ : label is "ST_RESET_ALL_BRANCH:000,ST_RESET_ALL_TX_PLL_WAIT:010,ST_RESET_ALL_RX_WAIT:101,ST_RESET_ALL_TX_PLL:001,ST_RESET_ALL_RX_PLL:100,ST_RESET_ALL_RX_DP:011,ST_RESET_ALL_INIT:111,iSTATE:110"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_all_reg[2]\ : label is "ST_RESET_ALL_BRANCH:000,ST_RESET_ALL_TX_PLL_WAIT:010,ST_RESET_ALL_RX_WAIT:101,ST_RESET_ALL_TX_PLL:001,ST_RESET_ALL_RX_PLL:100,ST_RESET_ALL_RX_DP:011,ST_RESET_ALL_INIT:111,iSTATE:110"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_rx_reg[0]\ : label is "ST_RESET_RX_WAIT_LOCK:011,ST_RESET_RX_WAIT_CDR:100,ST_RESET_RX_WAIT_USERRDY:101,ST_RESET_RX_WAIT_RESETDONE:110,ST_RESET_RX_DATAPATH:010,ST_RESET_RX_PLL:001,ST_RESET_RX_BRANCH:000,ST_RESET_RX_IDLE:111"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_rx_reg[1]\ : label is "ST_RESET_RX_WAIT_LOCK:011,ST_RESET_RX_WAIT_CDR:100,ST_RESET_RX_WAIT_USERRDY:101,ST_RESET_RX_WAIT_RESETDONE:110,ST_RESET_RX_DATAPATH:010,ST_RESET_RX_PLL:001,ST_RESET_RX_BRANCH:000,ST_RESET_RX_IDLE:111"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_rx_reg[2]\ : label is "ST_RESET_RX_WAIT_LOCK:011,ST_RESET_RX_WAIT_CDR:100,ST_RESET_RX_WAIT_USERRDY:101,ST_RESET_RX_WAIT_RESETDONE:110,ST_RESET_RX_DATAPATH:010,ST_RESET_RX_PLL:001,ST_RESET_RX_BRANCH:000,ST_RESET_RX_IDLE:111"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_tx_reg[0]\ : label is "ST_RESET_TX_BRANCH:000,ST_RESET_TX_WAIT_LOCK:011,ST_RESET_TX_WAIT_USERRDY:100,ST_RESET_TX_WAIT_RESETDONE:101,ST_RESET_TX_IDLE:110,ST_RESET_TX_DATAPATH:010,ST_RESET_TX_PLL:001"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_tx_reg[1]\ : label is "ST_RESET_TX_BRANCH:000,ST_RESET_TX_WAIT_LOCK:011,ST_RESET_TX_WAIT_USERRDY:100,ST_RESET_TX_WAIT_RESETDONE:101,ST_RESET_TX_IDLE:110,ST_RESET_TX_DATAPATH:010,ST_RESET_TX_PLL:001"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_tx_reg[2]\ : label is "ST_RESET_TX_BRANCH:000,ST_RESET_TX_WAIT_LOCK:011,ST_RESET_TX_WAIT_USERRDY:100,ST_RESET_TX_WAIT_RESETDONE:101,ST_RESET_TX_IDLE:110,ST_RESET_TX_DATAPATH:010,ST_RESET_TX_PLL:001"; + attribute SOFT_HLUTNM of gtwiz_reset_rx_datapath_int_i_1 : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of gtwiz_reset_tx_pll_and_datapath_int_i_1 : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of \sm_reset_all_timer_ctr[1]_i_1\ : label is "soft_lutpair17"; + attribute SOFT_HLUTNM of \sm_reset_all_timer_ctr[2]_i_1\ : label is "soft_lutpair17"; + attribute SOFT_HLUTNM of \sm_reset_rx_cdr_to_ctr[0]_i_3\ : label is "soft_lutpair4"; + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[0]_i_2\ : label is 16; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[16]_i_1\ : label is 16; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[24]_i_1\ : label is 16; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[8]_i_1\ : label is 16; + attribute SOFT_HLUTNM of sm_reset_rx_cdr_to_sat_i_5 : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[1]_i_1\ : label is "soft_lutpair14"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[2]_i_1\ : label is "soft_lutpair14"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[3]_i_1\ : label is "soft_lutpair8"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[4]_i_1\ : label is "soft_lutpair8"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[6]_i_1\ : label is "soft_lutpair12"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[7]_i_1\ : label is "soft_lutpair12"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[8]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[9]_i_2\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of sm_reset_rx_timer_clr_i_4 : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \sm_reset_rx_timer_ctr[1]_i_1\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of \sm_reset_rx_timer_ctr[2]_i_1\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of sm_reset_rx_timer_sat_i_1 : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[0]_i_1\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[1]_i_1\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[2]_i_1\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[3]_i_1\ : label is "soft_lutpair7"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[4]_i_1\ : label is "soft_lutpair7"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[6]_i_2\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[8]_i_1\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[9]_i_2\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of \sm_reset_tx_timer_ctr[1]_i_1\ : label is "soft_lutpair15"; + attribute SOFT_HLUTNM of \sm_reset_tx_timer_ctr[2]_i_1\ : label is "soft_lutpair15"; +begin + GTHE3_CHANNEL_CPLLPD(0) <= \^gthe3_channel_cpllpd\(0); + GTHE3_CHANNEL_GTRXRESET(0) <= \^gthe3_channel_gtrxreset\(0); + GTHE3_CHANNEL_GTTXRESET(0) <= \^gthe3_channel_gttxreset\(0); + GTHE3_CHANNEL_RXPROGDIVRESET(0) <= \^gthe3_channel_rxprogdivreset\(0); + GTHE3_CHANNEL_RXUSERRDY(0) <= \^gthe3_channel_rxuserrdy\(0); + GTHE3_CHANNEL_TXUSERRDY(0) <= \^gthe3_channel_txuserrdy\(0); + pllreset_tx_out_reg_0 <= \^pllreset_tx_out_reg_0\; +\FSM_sequential_sm_reset_all[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00FFF7000000FFFF" + ) + port map ( + I0 => gtwiz_reset_rx_done_int_reg_n_0, + I1 => sm_reset_all_timer_sat, + I2 => sm_reset_all_timer_clr_reg_n_0, + I3 => sm_reset_all(2), + I4 => sm_reset_all(1), + I5 => sm_reset_all(0), + O => \sm_reset_all__0\(0) + ); +\FSM_sequential_sm_reset_all[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => sm_reset_all(0), + I1 => sm_reset_all(1), + O => \sm_reset_all__0\(1) + ); +\FSM_sequential_sm_reset_all[2]_i_2\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_all(2), + I1 => sm_reset_all(1), + O => \sm_reset_all__0\(2) + ); +\FSM_sequential_sm_reset_all[2]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"08" + ) + port map ( + I0 => sm_reset_all_timer_sat, + I1 => gtwiz_reset_rx_done_int_reg_n_0, + I2 => sm_reset_all_timer_clr_reg_n_0, + O => \FSM_sequential_sm_reset_all[2]_i_3_n_0\ + ); +\FSM_sequential_sm_reset_all[2]_i_4\: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => sm_reset_all_timer_clr_reg_n_0, + I1 => sm_reset_all_timer_sat, + I2 => gtwiz_reset_tx_done_int_reg_n_0, + O => \FSM_sequential_sm_reset_all[2]_i_4_n_0\ + ); +\FSM_sequential_sm_reset_all_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtpowergood_inst_n_0, + D => \sm_reset_all__0\(0), + Q => sm_reset_all(0), + R => gtwiz_reset_all_sync + ); +\FSM_sequential_sm_reset_all_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtpowergood_inst_n_0, + D => \sm_reset_all__0\(1), + Q => sm_reset_all(1), + R => gtwiz_reset_all_sync + ); +\FSM_sequential_sm_reset_all_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtpowergood_inst_n_0, + D => \sm_reset_all__0\(2), + Q => sm_reset_all(2), + R => gtwiz_reset_all_sync + ); +\FSM_sequential_sm_reset_rx[2]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"F8B8" + ) + port map ( + I0 => sm_reset_rx(0), + I1 => sm_reset_rx(1), + I2 => sm_reset_rx(2), + I3 => \p_0_in11_out__0\, + O => \sm_reset_rx__0\(2) + ); +\FSM_sequential_sm_reset_rx[2]_i_6\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000800000000000" + ) + port map ( + I0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(2), + I1 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3), + I2 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + I3 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(1), + I4 => sm_reset_rx_timer_clr_reg_n_0, + I5 => sm_reset_rx_timer_sat, + O => \p_0_in11_out__0\ + ); +\FSM_sequential_sm_reset_rx_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + D => \sm_reset_rx__0\(0), + Q => sm_reset_rx(0), + R => gtwiz_reset_rx_any_sync + ); +\FSM_sequential_sm_reset_rx_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + D => \sm_reset_rx__0\(1), + Q => sm_reset_rx(1), + R => gtwiz_reset_rx_any_sync + ); +\FSM_sequential_sm_reset_rx_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + D => \sm_reset_rx__0\(2), + Q => sm_reset_rx(2), + R => gtwiz_reset_rx_any_sync + ); +\FSM_sequential_sm_reset_tx[2]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"2C" + ) + port map ( + I0 => sm_reset_tx(0), + I1 => sm_reset_tx(2), + I2 => sm_reset_tx(1), + O => \sm_reset_tx__0\(2) + ); +\FSM_sequential_sm_reset_tx[2]_i_4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000800000000000" + ) + port map ( + I0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(2), + I1 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3), + I2 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + I3 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(1), + I4 => sm_reset_tx_timer_clr_reg_n_0, + I5 => sm_reset_tx_timer_sat, + O => \gtwiz_reset_tx_done_int0__0\ + ); +\FSM_sequential_sm_reset_tx_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + D => \sm_reset_tx__0\(0), + Q => sm_reset_tx(0), + R => gtwiz_reset_tx_any_sync + ); +\FSM_sequential_sm_reset_tx_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + D => \sm_reset_tx__0\(1), + Q => sm_reset_tx(1), + R => gtwiz_reset_tx_any_sync + ); +\FSM_sequential_sm_reset_tx_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + D => \sm_reset_tx__0\(2), + Q => sm_reset_tx(2), + R => gtwiz_reset_tx_any_sync + ); +bit_synchronizer_gtpowergood_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 + port map ( + E(0) => bit_synchronizer_gtpowergood_inst_n_0, + \FSM_sequential_sm_reset_all_reg[0]\ => \FSM_sequential_sm_reset_all[2]_i_3_n_0\, + \FSM_sequential_sm_reset_all_reg[0]_0\ => \FSM_sequential_sm_reset_all[2]_i_4_n_0\, + Q(2 downto 0) => sm_reset_all(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + in0 => in0 + ); +bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 + port map ( + E(0) => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + \FSM_sequential_sm_reset_rx_reg[0]\ => bit_synchronizer_plllock_rx_inst_n_4, + \FSM_sequential_sm_reset_rx_reg[0]_0\ => bit_synchronizer_rxcdrlock_inst_n_2, + \FSM_sequential_sm_reset_rx_reg[0]_1\ => sm_reset_rx_pll_timer_clr_reg_n_0, + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_pll_and_datapath_dly => gtwiz_reset_rx_pll_and_datapath_dly, + in0 => gtwiz_reset_rx_datapath_sync, + sm_reset_rx_pll_timer_sat => sm_reset_rx_pll_timer_sat + ); +bit_synchronizer_gtwiz_reset_rx_pll_and_datapath_dly_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 + port map ( + D(1 downto 0) => \sm_reset_rx__0\(1 downto 0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_pll_and_datapath_dly => gtwiz_reset_rx_pll_and_datapath_dly, + in0 => gtwiz_reset_rx_pll_and_datapath_sync, + \p_0_in11_out__0\ => \p_0_in11_out__0\ + ); +bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 + port map ( + \FSM_sequential_sm_reset_tx[2]_i_5\ => sm_reset_tx_pll_timer_clr_reg_n_0, + Q(0) => sm_reset_tx(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_pll_and_datapath_dly => gtwiz_reset_tx_pll_and_datapath_dly, + i_in_out_reg_0 => bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst_n_0, + in0 => gtwiz_reset_tx_datapath_sync, + sm_reset_tx_pll_timer_sat => sm_reset_tx_pll_timer_sat + ); +bit_synchronizer_gtwiz_reset_tx_pll_and_datapath_dly_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 + port map ( + D(1 downto 0) => \sm_reset_tx__0\(1 downto 0), + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_pll_and_datapath_dly => gtwiz_reset_tx_pll_and_datapath_dly, + in0 => gtwiz_reset_tx_pll_and_datapath_sync + ); +bit_synchronizer_gtwiz_reset_userclk_rx_active_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + rxuserrdy_out_reg => sm_reset_rx_timer_clr_reg_n_0, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\, + sm_reset_rx_timer_sat => sm_reset_rx_timer_sat + ); +bit_synchronizer_gtwiz_reset_userclk_tx_active_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 + port map ( + E(0) => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + \FSM_sequential_sm_reset_tx_reg[0]\ => bit_synchronizer_plllock_tx_inst_n_3, + \FSM_sequential_sm_reset_tx_reg[1]\ => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_0, + GTHE3_CHANNEL_TXUSERRDY(0) => \^gthe3_channel_txuserrdy\(0), + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_any_sync => gtwiz_reset_tx_any_sync, + \gtwiz_reset_tx_done_int0__0\ => \gtwiz_reset_tx_done_int0__0\, + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + \sm_reset_tx_timer_clr0__0\ => \sm_reset_tx_timer_clr0__0\, + sm_reset_tx_timer_sat => sm_reset_tx_timer_sat, + txuserrdy_out_reg => sm_reset_tx_timer_clr_reg_n_0 + ); +bit_synchronizer_plllock_rx_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 + port map ( + \FSM_sequential_sm_reset_rx_reg[0]\ => bit_synchronizer_plllock_rx_inst_n_1, + \FSM_sequential_sm_reset_rx_reg[2]\ => bit_synchronizer_plllock_rx_inst_n_2, + \FSM_sequential_sm_reset_rx_reg[2]_0\ => bit_synchronizer_plllock_rx_inst_n_3, + GTHE3_CHANNEL_GTRXRESET(0) => \^gthe3_channel_gtrxreset\(0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_any_sync => gtwiz_reset_rx_any_sync, + gtwiz_reset_rx_done_int_reg => gtwiz_reset_rx_done_int_reg_n_0, + i_in_meta_reg_0 => i_in_meta_reg, + i_in_out_reg_0 => bit_synchronizer_plllock_rx_inst_n_0, + i_in_out_reg_1 => bit_synchronizer_plllock_rx_inst_n_4, + \p_0_in11_out__0\ => \p_0_in11_out__0\, + sm_reset_rx_cdr_to_clr => sm_reset_rx_cdr_to_clr, + sm_reset_rx_cdr_to_clr_reg => bit_synchronizer_rxcdrlock_inst_n_3, + \sm_reset_rx_timer_clr010_out__0\ => \sm_reset_rx_timer_clr010_out__0\, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\, + sm_reset_rx_timer_clr_reg => sm_reset_rx_timer_clr_reg_n_0, + sm_reset_rx_timer_sat => sm_reset_rx_timer_sat + ); +bit_synchronizer_plllock_tx_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 + port map ( + \FSM_sequential_sm_reset_tx_reg[0]\ => bit_synchronizer_plllock_tx_inst_n_2, + \FSM_sequential_sm_reset_tx_reg[0]_0\ => bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst_n_0, + \FSM_sequential_sm_reset_tx_reg[2]\ => bit_synchronizer_plllock_tx_inst_n_1, + GTHE3_CHANNEL_GTTXRESET(0) => \^gthe3_channel_gttxreset\(0), + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_any_sync => gtwiz_reset_tx_any_sync, + \gtwiz_reset_tx_done_int0__0\ => \gtwiz_reset_tx_done_int0__0\, + gtwiz_reset_tx_done_int_reg => gtwiz_reset_tx_done_int_reg_n_0, + i_in_out_reg_0 => bit_synchronizer_plllock_tx_inst_n_0, + i_in_out_reg_1 => bit_synchronizer_plllock_tx_inst_n_3, + qpll1lock_out(0) => qpll1lock_out(0), + \sm_reset_tx_timer_clr0__0\ => \sm_reset_tx_timer_clr0__0\, + sm_reset_tx_timer_clr_reg => sm_reset_tx_timer_clr_reg_n_0, + sm_reset_tx_timer_sat => sm_reset_tx_timer_sat + ); +bit_synchronizer_rxcdrlock_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 + port map ( + \FSM_sequential_sm_reset_rx_reg[2]\ => bit_synchronizer_rxcdrlock_inst_n_1, + \FSM_sequential_sm_reset_rx_reg[2]_0\ => bit_synchronizer_rxcdrlock_inst_n_3, + GTHE3_CHANNEL_RXPROGDIVRESET(0) => \^gthe3_channel_rxprogdivreset\(0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_any_sync => gtwiz_reset_rx_any_sync, + i_in_meta_reg_0 => i_in_meta_reg_0, + i_in_out_reg_0 => i_in_out_reg, + i_in_out_reg_1 => bit_synchronizer_rxcdrlock_inst_n_2, + \p_0_in11_out__0\ => \p_0_in11_out__0\, + sm_reset_rx_cdr_to_sat => sm_reset_rx_cdr_to_sat, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\ + ); +gtrxreset_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_3, + Q => \^gthe3_channel_gtrxreset\(0), + R => '0' + ); +gttxreset_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_tx_inst_n_2, + Q => \^gthe3_channel_gttxreset\(0), + R => '0' + ); +gtwiz_reset_rx_datapath_int_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"F740" + ) + port map ( + I0 => sm_reset_all(2), + I1 => sm_reset_all(0), + I2 => sm_reset_all(1), + I3 => gtwiz_reset_rx_datapath_int_reg_n_0, + O => gtwiz_reset_rx_datapath_int_i_1_n_0 + ); +gtwiz_reset_rx_datapath_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_reset_rx_datapath_int_i_1_n_0, + Q => gtwiz_reset_rx_datapath_int_reg_n_0, + R => gtwiz_reset_all_sync + ); +gtwiz_reset_rx_done_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_0, + Q => gtwiz_reset_rx_done_int_reg_n_0, + R => gtwiz_reset_rx_any_sync + ); +gtwiz_reset_rx_pll_and_datapath_int_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"F704" + ) + port map ( + I0 => sm_reset_all(0), + I1 => sm_reset_all(2), + I2 => sm_reset_all(1), + I3 => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0, + O => gtwiz_reset_rx_pll_and_datapath_int_i_1_n_0 + ); +gtwiz_reset_rx_pll_and_datapath_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_reset_rx_pll_and_datapath_int_i_1_n_0, + Q => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0, + R => gtwiz_reset_all_sync + ); +gtwiz_reset_tx_done_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_tx_inst_n_0, + Q => gtwiz_reset_tx_done_int_reg_n_0, + R => gtwiz_reset_tx_any_sync + ); +gtwiz_reset_tx_pll_and_datapath_int_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB02" + ) + port map ( + I0 => sm_reset_all(0), + I1 => sm_reset_all(1), + I2 => sm_reset_all(2), + I3 => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0, + O => gtwiz_reset_tx_pll_and_datapath_int_i_1_n_0 + ); +gtwiz_reset_tx_pll_and_datapath_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_reset_tx_pll_and_datapath_int_i_1_n_0, + Q => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0, + R => gtwiz_reset_all_sync + ); +pllreset_rx_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => reset_synchronizer_gtwiz_reset_rx_any_inst_n_1, + Q => \^gthe3_channel_cpllpd\(0), + R => '0' + ); +pllreset_tx_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => reset_synchronizer_gtwiz_reset_tx_any_inst_n_1, + Q => \^pllreset_tx_out_reg_0\, + R => '0' + ); +reset_synchronizer_gtwiz_reset_all_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer + port map ( + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_all_sync => gtwiz_reset_all_sync, + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0) + ); +reset_synchronizer_gtwiz_reset_rx_any_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 + port map ( + \FSM_sequential_sm_reset_rx_reg[1]\ => reset_synchronizer_gtwiz_reset_rx_any_inst_n_1, + GTHE3_CHANNEL_CPLLPD(0) => \^gthe3_channel_cpllpd\(0), + GTHE3_CHANNEL_RXUSERRDY(0) => \^gthe3_channel_rxuserrdy\(0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_any_sync => gtwiz_reset_rx_any_sync, + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + rst_in_out_reg_0 => reset_synchronizer_gtwiz_reset_rx_any_inst_n_2, + rst_in_out_reg_1 => gtwiz_reset_rx_datapath_int_reg_n_0, + rst_in_out_reg_2 => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\ + ); +reset_synchronizer_gtwiz_reset_rx_datapath_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + in0 => gtwiz_reset_rx_datapath_sync, + rst_in_out_reg_0 => gtwiz_reset_rx_datapath_int_reg_n_0 + ); +reset_synchronizer_gtwiz_reset_rx_pll_and_datapath_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + in0 => gtwiz_reset_rx_pll_and_datapath_sync, + rst_in_out_reg_0 => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0 + ); +reset_synchronizer_gtwiz_reset_tx_any_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 + port map ( + \FSM_sequential_sm_reset_tx_reg[1]\ => reset_synchronizer_gtwiz_reset_tx_any_inst_n_1, + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_any_sync => gtwiz_reset_tx_any_sync, + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + pllreset_tx_out_reg => \^pllreset_tx_out_reg_0\, + rst_in_sync3_reg_0 => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0 + ); +reset_synchronizer_gtwiz_reset_tx_datapath_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + in0 => gtwiz_reset_tx_datapath_sync + ); +reset_synchronizer_gtwiz_reset_tx_pll_and_datapath_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + in0 => gtwiz_reset_tx_pll_and_datapath_sync, + rst_in_out_reg_0 => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0 + ); +reset_synchronizer_rx_done_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 + port map ( + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + rst_in_sync2_reg_0 => gtwiz_reset_rx_done_int_reg_n_0, + rxusrclk2_in(0) => rxusrclk2_in(0) + ); +reset_synchronizer_tx_done_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 + port map ( + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + rst_in_out_reg_0 => rst_in_out_reg, + rst_in_sync3_reg_0 => gtwiz_reset_tx_done_int_reg_n_0, + txusrclk2_in(0) => txusrclk2_in(0) + ); +reset_synchronizer_txprogdivreset_inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 + port map ( + GTHE3_CHANNEL_TXPROGDIVRESET(0) => GTHE3_CHANNEL_TXPROGDIVRESET(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rst_in0 => rst_in0 + ); +rxprogdivreset_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_rxcdrlock_inst_n_1, + Q => \^gthe3_channel_rxprogdivreset\(0), + R => '0' + ); +rxuserrdy_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => reset_synchronizer_gtwiz_reset_rx_any_inst_n_2, + Q => \^gthe3_channel_rxuserrdy\(0), + R => '0' + ); +sm_reset_all_timer_clr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"EFFA200A" + ) + port map ( + I0 => sm_reset_all_timer_clr_i_2_n_0, + I1 => sm_reset_all(1), + I2 => sm_reset_all(2), + I3 => sm_reset_all(0), + I4 => sm_reset_all_timer_clr_reg_n_0, + O => sm_reset_all_timer_clr_i_1_n_0 + ); +sm_reset_all_timer_clr_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000B0003333BB33" + ) + port map ( + I0 => gtwiz_reset_rx_done_int_reg_n_0, + I1 => sm_reset_all(2), + I2 => gtwiz_reset_tx_done_int_reg_n_0, + I3 => sm_reset_all_timer_sat, + I4 => sm_reset_all_timer_clr_reg_n_0, + I5 => sm_reset_all(1), + O => sm_reset_all_timer_clr_i_2_n_0 + ); +sm_reset_all_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_all_timer_clr_i_1_n_0, + Q => sm_reset_all_timer_clr_reg_n_0, + S => gtwiz_reset_all_sync + ); +\sm_reset_all_timer_ctr0_inferred__0/i_\: unisim.vcomponents.LUT3 + generic map( + INIT => X"7F" + ) + port map ( + I0 => sm_reset_all_timer_ctr(2), + I1 => sm_reset_all_timer_ctr(0), + I2 => sm_reset_all_timer_ctr(1), + O => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\ + ); +\sm_reset_all_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_all_timer_ctr(0), + O => \sm_reset_all_timer_ctr[0]_i_1_n_0\ + ); +\sm_reset_all_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_all_timer_ctr(0), + I1 => sm_reset_all_timer_ctr(1), + O => \sm_reset_all_timer_ctr[1]_i_1_n_0\ + ); +\sm_reset_all_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_all_timer_ctr(0), + I1 => sm_reset_all_timer_ctr(1), + I2 => sm_reset_all_timer_ctr(2), + O => \sm_reset_all_timer_ctr[2]_i_1_n_0\ + ); +\sm_reset_all_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_all_timer_ctr[0]_i_1_n_0\, + Q => sm_reset_all_timer_ctr(0), + R => sm_reset_all_timer_clr_reg_n_0 + ); +\sm_reset_all_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_all_timer_ctr[1]_i_1_n_0\, + Q => sm_reset_all_timer_ctr(1), + R => sm_reset_all_timer_clr_reg_n_0 + ); +\sm_reset_all_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_all_timer_ctr[2]_i_1_n_0\, + Q => sm_reset_all_timer_ctr(2), + R => sm_reset_all_timer_clr_reg_n_0 + ); +sm_reset_all_timer_sat_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FF80" + ) + port map ( + I0 => sm_reset_all_timer_ctr(2), + I1 => sm_reset_all_timer_ctr(0), + I2 => sm_reset_all_timer_ctr(1), + I3 => sm_reset_all_timer_sat, + I4 => sm_reset_all_timer_clr_reg_n_0, + O => sm_reset_all_timer_sat_i_1_n_0 + ); +sm_reset_all_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_all_timer_sat_i_1_n_0, + Q => sm_reset_all_timer_sat, + R => '0' + ); +sm_reset_rx_cdr_to_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_2, + Q => sm_reset_rx_cdr_to_clr, + S => gtwiz_reset_rx_any_sync + ); +\sm_reset_rx_cdr_to_ctr[0]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFFFEF" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(24), + I1 => sm_reset_rx_cdr_to_ctr_reg(21), + I2 => \sm_reset_rx_cdr_to_ctr[0]_i_3_n_0\, + I3 => \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\, + I4 => sm_reset_rx_cdr_to_sat_i_3_n_0, + O => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\ + ); +\sm_reset_rx_cdr_to_ctr[0]_i_3\: unisim.vcomponents.LUT5 + generic map( + INIT => X"20000000" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat_i_4_n_0, + I1 => sm_reset_rx_cdr_to_ctr_reg(1), + I2 => sm_reset_rx_cdr_to_ctr_reg(2), + I3 => sm_reset_rx_cdr_to_ctr_reg(0), + I4 => sm_reset_rx_cdr_to_sat_i_6_n_0, + O => \sm_reset_rx_cdr_to_ctr[0]_i_3_n_0\ + ); +\sm_reset_rx_cdr_to_ctr[0]_i_4\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(17), + I1 => sm_reset_rx_cdr_to_ctr_reg(16), + I2 => sm_reset_rx_cdr_to_ctr_reg(9), + I3 => sm_reset_rx_cdr_to_ctr_reg(8), + O => \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\ + ); +\sm_reset_rx_cdr_to_ctr[0]_i_5\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(0), + O => \sm_reset_rx_cdr_to_ctr[0]_i_5_n_0\ + ); +\sm_reset_rx_cdr_to_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(0), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[0]_i_2\: unisim.vcomponents.CARRY8 + port map ( + CI => '0', + CI_TOP => '0', + CO(7) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_0\, + CO(6) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_1\, + CO(5) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_2\, + CO(4) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_3\, + CO(3) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_4\, + CO(2) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_5\, + CO(1) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_6\, + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_7\, + DI(7 downto 0) => B"00000001", + O(7) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_8\, + O(6) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_9\, + O(5) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_10\, + O(4) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_11\, + O(3) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_12\, + O(2) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_13\, + O(1) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_15\, + S(7 downto 1) => sm_reset_rx_cdr_to_ctr_reg(7 downto 1), + S(0) => \sm_reset_rx_cdr_to_ctr[0]_i_5_n_0\ + ); +\sm_reset_rx_cdr_to_ctr_reg[10]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_13\, + Q => sm_reset_rx_cdr_to_ctr_reg(10), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[11]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_12\, + Q => sm_reset_rx_cdr_to_ctr_reg(11), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[12]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_11\, + Q => sm_reset_rx_cdr_to_ctr_reg(12), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[13]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_10\, + Q => sm_reset_rx_cdr_to_ctr_reg(13), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[14]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_9\, + Q => sm_reset_rx_cdr_to_ctr_reg(14), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[15]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_8\, + Q => sm_reset_rx_cdr_to_ctr_reg(15), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[16]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(16), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[16]_i_1\: unisim.vcomponents.CARRY8 + port map ( + CI => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_0\, + CI_TOP => '0', + CO(7) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_0\, + CO(6) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_1\, + CO(5) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_2\, + CO(4) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_3\, + CO(3) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_4\, + CO(2) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_5\, + CO(1) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_6\, + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_7\, + DI(7 downto 0) => B"00000000", + O(7) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_8\, + O(6) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_9\, + O(5) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_10\, + O(4) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_11\, + O(3) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_12\, + O(2) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_13\, + O(1) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_15\, + S(7 downto 0) => sm_reset_rx_cdr_to_ctr_reg(23 downto 16) + ); +\sm_reset_rx_cdr_to_ctr_reg[17]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(17), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[18]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_13\, + Q => sm_reset_rx_cdr_to_ctr_reg(18), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[19]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_12\, + Q => sm_reset_rx_cdr_to_ctr_reg(19), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(1), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[20]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_11\, + Q => sm_reset_rx_cdr_to_ctr_reg(20), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[21]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_10\, + Q => sm_reset_rx_cdr_to_ctr_reg(21), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[22]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_9\, + Q => sm_reset_rx_cdr_to_ctr_reg(22), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[23]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_8\, + Q => sm_reset_rx_cdr_to_ctr_reg(23), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[24]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(24), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[24]_i_1\: unisim.vcomponents.CARRY8 + port map ( + CI => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_0\, + CI_TOP => '0', + CO(7 downto 1) => \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_CO_UNCONNECTED\(7 downto 1), + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_7\, + DI(7 downto 0) => B"00000000", + O(7 downto 2) => \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_O_UNCONNECTED\(7 downto 2), + O(1) => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_15\, + S(7 downto 2) => B"000000", + S(1 downto 0) => sm_reset_rx_cdr_to_ctr_reg(25 downto 24) + ); +\sm_reset_rx_cdr_to_ctr_reg[25]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(25), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_13\, + Q => sm_reset_rx_cdr_to_ctr_reg(2), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_12\, + Q => sm_reset_rx_cdr_to_ctr_reg(3), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_11\, + Q => sm_reset_rx_cdr_to_ctr_reg(4), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_10\, + Q => sm_reset_rx_cdr_to_ctr_reg(5), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[6]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_9\, + Q => sm_reset_rx_cdr_to_ctr_reg(6), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[7]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_8\, + Q => sm_reset_rx_cdr_to_ctr_reg(7), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[8]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(8), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[8]_i_1\: unisim.vcomponents.CARRY8 + port map ( + CI => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_0\, + CI_TOP => '0', + CO(7) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_0\, + CO(6) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_1\, + CO(5) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_2\, + CO(4) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_3\, + CO(3) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_4\, + CO(2) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_5\, + CO(1) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_6\, + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_7\, + DI(7 downto 0) => B"00000000", + O(7) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_8\, + O(6) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_9\, + O(5) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_10\, + O(4) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_11\, + O(3) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_12\, + O(2) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_13\, + O(1) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_15\, + S(7 downto 0) => sm_reset_rx_cdr_to_ctr_reg(15 downto 8) + ); +\sm_reset_rx_cdr_to_ctr_reg[9]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(9), + R => sm_reset_rx_cdr_to_clr + ); +sm_reset_rx_cdr_to_sat_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"00F1" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat_i_2_n_0, + I1 => sm_reset_rx_cdr_to_sat_i_3_n_0, + I2 => sm_reset_rx_cdr_to_sat, + I3 => sm_reset_rx_cdr_to_clr, + O => sm_reset_rx_cdr_to_sat_i_1_n_0 + ); +sm_reset_rx_cdr_to_sat_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFFFFFFBFFF" + ) + port map ( + I0 => \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\, + I1 => sm_reset_rx_cdr_to_sat_i_4_n_0, + I2 => sm_reset_rx_cdr_to_sat_i_5_n_0, + I3 => sm_reset_rx_cdr_to_sat_i_6_n_0, + I4 => sm_reset_rx_cdr_to_ctr_reg(21), + I5 => sm_reset_rx_cdr_to_ctr_reg(24), + O => sm_reset_rx_cdr_to_sat_i_2_n_0 + ); +sm_reset_rx_cdr_to_sat_i_3: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat_i_7_n_0, + I1 => sm_reset_rx_cdr_to_ctr_reg(19), + I2 => sm_reset_rx_cdr_to_ctr_reg(23), + I3 => sm_reset_rx_cdr_to_ctr_reg(25), + O => sm_reset_rx_cdr_to_sat_i_3_n_0 + ); +sm_reset_rx_cdr_to_sat_i_4: unisim.vcomponents.LUT4 + generic map( + INIT => X"0800" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(6), + I1 => sm_reset_rx_cdr_to_ctr_reg(5), + I2 => sm_reset_rx_cdr_to_ctr_reg(4), + I3 => sm_reset_rx_cdr_to_ctr_reg(3), + O => sm_reset_rx_cdr_to_sat_i_4_n_0 + ); +sm_reset_rx_cdr_to_sat_i_5: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(1), + I1 => sm_reset_rx_cdr_to_ctr_reg(2), + I2 => sm_reset_rx_cdr_to_ctr_reg(0), + O => sm_reset_rx_cdr_to_sat_i_5_n_0 + ); +sm_reset_rx_cdr_to_sat_i_6: unisim.vcomponents.LUT6 + generic map( + INIT => X"2000000000000000" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(10), + I1 => sm_reset_rx_cdr_to_ctr_reg(7), + I2 => sm_reset_rx_cdr_to_ctr_reg(12), + I3 => sm_reset_rx_cdr_to_ctr_reg(13), + I4 => sm_reset_rx_cdr_to_ctr_reg(18), + I5 => sm_reset_rx_cdr_to_ctr_reg(15), + O => sm_reset_rx_cdr_to_sat_i_6_n_0 + ); +sm_reset_rx_cdr_to_sat_i_7: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(14), + I1 => sm_reset_rx_cdr_to_ctr_reg(11), + I2 => sm_reset_rx_cdr_to_ctr_reg(20), + I3 => sm_reset_rx_cdr_to_ctr_reg(22), + O => sm_reset_rx_cdr_to_sat_i_7_n_0 + ); +sm_reset_rx_cdr_to_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_cdr_to_sat_i_1_n_0, + Q => sm_reset_rx_cdr_to_sat, + R => '0' + ); +sm_reset_rx_pll_timer_clr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFF3000B" + ) + port map ( + I0 => sm_reset_rx_pll_timer_sat, + I1 => sm_reset_rx(0), + I2 => sm_reset_rx(1), + I3 => sm_reset_rx(2), + I4 => sm_reset_rx_pll_timer_clr_reg_n_0, + O => sm_reset_rx_pll_timer_clr_i_1_n_0 + ); +sm_reset_rx_pll_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_pll_timer_clr_i_1_n_0, + Q => sm_reset_rx_pll_timer_clr_reg_n_0, + S => gtwiz_reset_rx_any_sync + ); +\sm_reset_rx_pll_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + O => \p_0_in__1\(0) + ); +\sm_reset_rx_pll_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + I1 => sm_reset_rx_pll_timer_ctr_reg(1), + O => \p_0_in__1\(1) + ); +\sm_reset_rx_pll_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + I1 => sm_reset_rx_pll_timer_ctr_reg(1), + I2 => sm_reset_rx_pll_timer_ctr_reg(2), + O => \p_0_in__1\(2) + ); +\sm_reset_rx_pll_timer_ctr[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(1), + I1 => sm_reset_rx_pll_timer_ctr_reg(0), + I2 => sm_reset_rx_pll_timer_ctr_reg(2), + I3 => sm_reset_rx_pll_timer_ctr_reg(3), + O => \p_0_in__1\(3) + ); +\sm_reset_rx_pll_timer_ctr[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(2), + I1 => sm_reset_rx_pll_timer_ctr_reg(0), + I2 => sm_reset_rx_pll_timer_ctr_reg(1), + I3 => sm_reset_rx_pll_timer_ctr_reg(3), + I4 => sm_reset_rx_pll_timer_ctr_reg(4), + O => \p_0_in__1\(4) + ); +\sm_reset_rx_pll_timer_ctr[5]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"7FFFFFFF80000000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(3), + I1 => sm_reset_rx_pll_timer_ctr_reg(1), + I2 => sm_reset_rx_pll_timer_ctr_reg(0), + I3 => sm_reset_rx_pll_timer_ctr_reg(2), + I4 => sm_reset_rx_pll_timer_ctr_reg(4), + I5 => sm_reset_rx_pll_timer_ctr_reg(5), + O => \p_0_in__1\(5) + ); +\sm_reset_rx_pll_timer_ctr[6]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I1 => sm_reset_rx_pll_timer_ctr_reg(6), + O => \p_0_in__1\(6) + ); +\sm_reset_rx_pll_timer_ctr[7]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I1 => sm_reset_rx_pll_timer_ctr_reg(6), + I2 => sm_reset_rx_pll_timer_ctr_reg(7), + O => \p_0_in__1\(7) + ); +\sm_reset_rx_pll_timer_ctr[8]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(6), + I1 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_rx_pll_timer_ctr_reg(7), + I3 => sm_reset_rx_pll_timer_ctr_reg(8), + O => \p_0_in__1\(8) + ); +\sm_reset_rx_pll_timer_ctr[9]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFFFEF" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_3_n_0\, + I1 => sm_reset_rx_pll_timer_ctr_reg(8), + I2 => sm_reset_rx_pll_timer_ctr_reg(6), + I3 => sm_reset_rx_pll_timer_ctr_reg(5), + I4 => sm_reset_rx_pll_timer_ctr_reg(9), + O => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\ + ); +\sm_reset_rx_pll_timer_ctr[9]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(7), + I1 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_rx_pll_timer_ctr_reg(6), + I3 => sm_reset_rx_pll_timer_ctr_reg(8), + I4 => sm_reset_rx_pll_timer_ctr_reg(9), + O => \p_0_in__1\(9) + ); +\sm_reset_rx_pll_timer_ctr[9]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFFFFFFEFFF" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + I1 => sm_reset_rx_pll_timer_ctr_reg(2), + I2 => sm_reset_rx_pll_timer_ctr_reg(1), + I3 => sm_reset_rx_pll_timer_ctr_reg(4), + I4 => sm_reset_rx_pll_timer_ctr_reg(3), + I5 => sm_reset_rx_pll_timer_ctr_reg(7), + O => \sm_reset_rx_pll_timer_ctr[9]_i_3_n_0\ + ); +\sm_reset_rx_pll_timer_ctr[9]_i_4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8000000000000000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(5), + I1 => sm_reset_rx_pll_timer_ctr_reg(3), + I2 => sm_reset_rx_pll_timer_ctr_reg(1), + I3 => sm_reset_rx_pll_timer_ctr_reg(0), + I4 => sm_reset_rx_pll_timer_ctr_reg(2), + I5 => sm_reset_rx_pll_timer_ctr_reg(4), + O => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\ + ); +\sm_reset_rx_pll_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(0), + Q => sm_reset_rx_pll_timer_ctr_reg(0), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(1), + Q => sm_reset_rx_pll_timer_ctr_reg(1), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(2), + Q => sm_reset_rx_pll_timer_ctr_reg(2), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(3), + Q => sm_reset_rx_pll_timer_ctr_reg(3), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(4), + Q => sm_reset_rx_pll_timer_ctr_reg(4), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(5), + Q => sm_reset_rx_pll_timer_ctr_reg(5), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[6]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(6), + Q => sm_reset_rx_pll_timer_ctr_reg(6), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[7]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(7), + Q => sm_reset_rx_pll_timer_ctr_reg(7), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[8]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(8), + Q => sm_reset_rx_pll_timer_ctr_reg(8), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[9]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(9), + Q => sm_reset_rx_pll_timer_ctr_reg(9), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +sm_reset_rx_pll_timer_sat_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"0D" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + I1 => sm_reset_rx_pll_timer_sat, + I2 => sm_reset_rx_pll_timer_clr_reg_n_0, + O => sm_reset_rx_pll_timer_sat_i_1_n_0 + ); +sm_reset_rx_pll_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_pll_timer_sat_i_1_n_0, + Q => sm_reset_rx_pll_timer_sat, + R => '0' + ); +sm_reset_rx_timer_clr_i_4: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => sm_reset_rx_timer_sat, + I1 => sm_reset_rx_timer_clr_reg_n_0, + O => \sm_reset_rx_timer_clr010_out__0\ + ); +sm_reset_rx_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_1, + Q => sm_reset_rx_timer_clr_reg_n_0, + S => gtwiz_reset_rx_any_sync + ); +\sm_reset_rx_timer_ctr0_inferred__0/i_\: unisim.vcomponents.LUT3 + generic map( + INIT => X"7F" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(2), + I1 => sm_reset_rx_timer_ctr(0), + I2 => sm_reset_rx_timer_ctr(1), + O => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\ + ); +\sm_reset_rx_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(0), + O => \sm_reset_rx_timer_ctr[0]_i_1_n_0\ + ); +\sm_reset_rx_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(0), + I1 => sm_reset_rx_timer_ctr(1), + O => \sm_reset_rx_timer_ctr[1]_i_1_n_0\ + ); +\sm_reset_rx_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(0), + I1 => sm_reset_rx_timer_ctr(1), + I2 => sm_reset_rx_timer_ctr(2), + O => \sm_reset_rx_timer_ctr[2]_i_1_n_0\ + ); +\sm_reset_rx_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_rx_timer_ctr[0]_i_1_n_0\, + Q => sm_reset_rx_timer_ctr(0), + R => sm_reset_rx_timer_clr_reg_n_0 + ); +\sm_reset_rx_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_rx_timer_ctr[1]_i_1_n_0\, + Q => sm_reset_rx_timer_ctr(1), + R => sm_reset_rx_timer_clr_reg_n_0 + ); +\sm_reset_rx_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_rx_timer_ctr[2]_i_1_n_0\, + Q => sm_reset_rx_timer_ctr(2), + R => sm_reset_rx_timer_clr_reg_n_0 + ); +sm_reset_rx_timer_sat_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FF80" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(2), + I1 => sm_reset_rx_timer_ctr(0), + I2 => sm_reset_rx_timer_ctr(1), + I3 => sm_reset_rx_timer_sat, + I4 => sm_reset_rx_timer_clr_reg_n_0, + O => sm_reset_rx_timer_sat_i_1_n_0 + ); +sm_reset_rx_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_timer_sat_i_1_n_0, + Q => sm_reset_rx_timer_sat, + R => '0' + ); +sm_reset_tx_pll_timer_clr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFF3000B" + ) + port map ( + I0 => sm_reset_tx_pll_timer_sat, + I1 => sm_reset_tx(0), + I2 => sm_reset_tx(1), + I3 => sm_reset_tx(2), + I4 => sm_reset_tx_pll_timer_clr_reg_n_0, + O => sm_reset_tx_pll_timer_clr_i_1_n_0 + ); +sm_reset_tx_pll_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_tx_pll_timer_clr_i_1_n_0, + Q => sm_reset_tx_pll_timer_clr_reg_n_0, + S => gtwiz_reset_tx_any_sync + ); +\sm_reset_tx_pll_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + O => \p_0_in__0\(0) + ); +\sm_reset_tx_pll_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + O => \p_0_in__0\(1) + ); +\sm_reset_tx_pll_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(1), + I1 => sm_reset_tx_pll_timer_ctr_reg(0), + I2 => sm_reset_tx_pll_timer_ctr_reg(2), + O => \sm_reset_tx_pll_timer_ctr[2]_i_1_n_0\ + ); +\sm_reset_tx_pll_timer_ctr[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + I2 => sm_reset_tx_pll_timer_ctr_reg(2), + I3 => sm_reset_tx_pll_timer_ctr_reg(3), + O => \p_0_in__0\(3) + ); +\sm_reset_tx_pll_timer_ctr[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(2), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + I2 => sm_reset_tx_pll_timer_ctr_reg(0), + I3 => sm_reset_tx_pll_timer_ctr_reg(3), + I4 => sm_reset_tx_pll_timer_ctr_reg(4), + O => \p_0_in__0\(4) + ); +\sm_reset_tx_pll_timer_ctr[5]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"7FFFFFFF80000000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(3), + I1 => sm_reset_tx_pll_timer_ctr_reg(0), + I2 => sm_reset_tx_pll_timer_ctr_reg(1), + I3 => sm_reset_tx_pll_timer_ctr_reg(2), + I4 => sm_reset_tx_pll_timer_ctr_reg(4), + I5 => sm_reset_tx_pll_timer_ctr_reg(5), + O => \p_0_in__0\(5) + ); +\sm_reset_tx_pll_timer_ctr[6]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"F7FFFFFF08000000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(4), + I1 => sm_reset_tx_pll_timer_ctr_reg(2), + I2 => \sm_reset_tx_pll_timer_ctr[6]_i_2_n_0\, + I3 => sm_reset_tx_pll_timer_ctr_reg(3), + I4 => sm_reset_tx_pll_timer_ctr_reg(5), + I5 => sm_reset_tx_pll_timer_ctr_reg(6), + O => \p_0_in__0\(6) + ); +\sm_reset_tx_pll_timer_ctr[6]_i_2\: unisim.vcomponents.LUT2 + generic map( + INIT => X"7" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + O => \sm_reset_tx_pll_timer_ctr[6]_i_2_n_0\ + ); +\sm_reset_tx_pll_timer_ctr[7]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\, + I1 => sm_reset_tx_pll_timer_ctr_reg(6), + I2 => sm_reset_tx_pll_timer_ctr_reg(7), + O => \p_0_in__0\(7) + ); +\sm_reset_tx_pll_timer_ctr[8]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(6), + I1 => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_tx_pll_timer_ctr_reg(7), + I3 => sm_reset_tx_pll_timer_ctr_reg(8), + O => \p_0_in__0\(8) + ); +\sm_reset_tx_pll_timer_ctr[9]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFFFEF" + ) + port map ( + I0 => \sm_reset_tx_pll_timer_ctr[9]_i_3_n_0\, + I1 => sm_reset_tx_pll_timer_ctr_reg(8), + I2 => sm_reset_tx_pll_timer_ctr_reg(2), + I3 => sm_reset_tx_pll_timer_ctr_reg(6), + I4 => sm_reset_tx_pll_timer_ctr_reg(9), + O => sel + ); +\sm_reset_tx_pll_timer_ctr[9]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(7), + I1 => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_tx_pll_timer_ctr_reg(6), + I3 => sm_reset_tx_pll_timer_ctr_reg(8), + I4 => sm_reset_tx_pll_timer_ctr_reg(9), + O => \p_0_in__0\(9) + ); +\sm_reset_tx_pll_timer_ctr[9]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFFFFFFEFFF" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(3), + I1 => sm_reset_tx_pll_timer_ctr_reg(4), + I2 => sm_reset_tx_pll_timer_ctr_reg(0), + I3 => sm_reset_tx_pll_timer_ctr_reg(1), + I4 => sm_reset_tx_pll_timer_ctr_reg(5), + I5 => sm_reset_tx_pll_timer_ctr_reg(7), + O => \sm_reset_tx_pll_timer_ctr[9]_i_3_n_0\ + ); +\sm_reset_tx_pll_timer_ctr[9]_i_4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8000000000000000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(5), + I1 => sm_reset_tx_pll_timer_ctr_reg(3), + I2 => sm_reset_tx_pll_timer_ctr_reg(0), + I3 => sm_reset_tx_pll_timer_ctr_reg(1), + I4 => sm_reset_tx_pll_timer_ctr_reg(2), + I5 => sm_reset_tx_pll_timer_ctr_reg(4), + O => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\ + ); +\sm_reset_tx_pll_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(0), + Q => sm_reset_tx_pll_timer_ctr_reg(0), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(1), + Q => sm_reset_tx_pll_timer_ctr_reg(1), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \sm_reset_tx_pll_timer_ctr[2]_i_1_n_0\, + Q => sm_reset_tx_pll_timer_ctr_reg(2), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(3), + Q => sm_reset_tx_pll_timer_ctr_reg(3), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(4), + Q => sm_reset_tx_pll_timer_ctr_reg(4), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(5), + Q => sm_reset_tx_pll_timer_ctr_reg(5), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[6]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(6), + Q => sm_reset_tx_pll_timer_ctr_reg(6), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[7]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(7), + Q => sm_reset_tx_pll_timer_ctr_reg(7), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[8]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(8), + Q => sm_reset_tx_pll_timer_ctr_reg(8), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[9]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(9), + Q => sm_reset_tx_pll_timer_ctr_reg(9), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +sm_reset_tx_pll_timer_sat_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"0D" + ) + port map ( + I0 => sel, + I1 => sm_reset_tx_pll_timer_sat, + I2 => sm_reset_tx_pll_timer_clr_reg_n_0, + O => sm_reset_tx_pll_timer_sat_i_1_n_0 + ); +sm_reset_tx_pll_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_tx_pll_timer_sat_i_1_n_0, + Q => sm_reset_tx_pll_timer_sat, + R => '0' + ); +sm_reset_tx_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_tx_inst_n_1, + Q => sm_reset_tx_timer_clr_reg_n_0, + S => gtwiz_reset_tx_any_sync + ); +\sm_reset_tx_timer_ctr0_inferred__0/i_\: unisim.vcomponents.LUT3 + generic map( + INIT => X"7F" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(2), + I1 => sm_reset_tx_timer_ctr(0), + I2 => sm_reset_tx_timer_ctr(1), + O => p_0_in + ); +\sm_reset_tx_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(0), + O => p_1_in(0) + ); +\sm_reset_tx_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(0), + I1 => sm_reset_tx_timer_ctr(1), + O => p_1_in(1) + ); +\sm_reset_tx_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(0), + I1 => sm_reset_tx_timer_ctr(1), + I2 => sm_reset_tx_timer_ctr(2), + O => p_1_in(2) + ); +\sm_reset_tx_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => p_0_in, + D => p_1_in(0), + Q => sm_reset_tx_timer_ctr(0), + R => sm_reset_tx_timer_clr_reg_n_0 + ); +\sm_reset_tx_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => p_0_in, + D => p_1_in(1), + Q => sm_reset_tx_timer_ctr(1), + R => sm_reset_tx_timer_clr_reg_n_0 + ); +\sm_reset_tx_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => p_0_in, + D => p_1_in(2), + Q => sm_reset_tx_timer_ctr(2), + R => sm_reset_tx_timer_clr_reg_n_0 + ); +sm_reset_tx_timer_sat_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FF80" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(2), + I1 => sm_reset_tx_timer_ctr(0), + I2 => sm_reset_tx_timer_ctr(1), + I3 => sm_reset_tx_timer_sat, + I4 => sm_reset_tx_timer_clr_reg_n_0, + O => sm_reset_tx_timer_sat_i_1_n_0 + ); +sm_reset_tx_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_tx_timer_sat_i_1_n_0, + Q => sm_reset_tx_timer_sat, + R => '0' + ); +txuserrdy_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_0, + Q => \^gthe3_channel_txuserrdy\(0), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_gthe3 is + port ( + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 79 downto 0 ); + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_cdr_stable_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 79 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_gthe3; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_gthe3 is + signal \^cplllock_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_36\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_37\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_38\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_39\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_48\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_2\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_3\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int__0\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtrxreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gttxreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_11\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_4\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int__0\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_pllreset_rx_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int__0\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxprogdivreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxuserrdy_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txprogdivreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txuserrdy_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \gen_gtwizard_gthe3.txdlysreset_int\ : STD_LOGIC_VECTOR ( 3 to 3 ); + signal \gen_gtwizard_gthe3.txsyncallin_int\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gtpowergood_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^qpll1lock_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^qpll1outclk_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^qpll1outrefclk_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal rst_in0 : STD_LOGIC; + signal \^rxcdrlock_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^rxresetdone_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^txresetdone_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); +begin + cplllock_out(3 downto 0) <= \^cplllock_out\(3 downto 0); + gtpowergood_out(3 downto 0) <= \^gtpowergood_out\(3 downto 0); + qpll1lock_out(0) <= \^qpll1lock_out\(0); + qpll1outclk_out(0) <= \^qpll1outclk_out\(0); + qpll1outrefclk_out(0) <= \^qpll1outrefclk_out\(0); + rxcdrlock_out(3 downto 0) <= \^rxcdrlock_out\(3 downto 0); + rxresetdone_out(3 downto 0) <= \^rxresetdone_out\(3 downto 0); + txresetdone_out(3 downto 0) <= \^txresetdone_out\(3 downto 0); +\gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_channel_wrapper + port map ( + GTHE3_CHANNEL_CPLLPD(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_pllreset_rx_int\, + GTHE3_CHANNEL_GTRXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtrxreset_int\, + GTHE3_CHANNEL_GTTXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gttxreset_int\, + GTHE3_CHANNEL_RXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxprogdivreset_int\, + GTHE3_CHANNEL_RXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxuserrdy_int\, + GTHE3_CHANNEL_TXDLYSRESET(0) => \gen_gtwizard_gthe3.txdlysreset_int\(3), + GTHE3_CHANNEL_TXPHALIGNDONE(3) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_36\, + GTHE3_CHANNEL_TXPHALIGNDONE(2) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_37\, + GTHE3_CHANNEL_TXPHALIGNDONE(1) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_38\, + GTHE3_CHANNEL_TXPHALIGNDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_39\, + GTHE3_CHANNEL_TXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txprogdivreset_int\, + GTHE3_CHANNEL_TXSYNCALLIN(0) => \gen_gtwizard_gthe3.txsyncallin_int\(0), + GTHE3_CHANNEL_TXSYNCDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_48\, + GTHE3_CHANNEL_TXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txuserrdy_int\, + cplllock_out(3 downto 0) => \^cplllock_out\(3 downto 0), + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtpowergood_out(3 downto 0) => \^gtpowergood_out\(3 downto 0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtwiz_userdata_rx_out(79 downto 0) => gtwiz_userdata_rx_out(79 downto 0), + gtwiz_userdata_tx_in(79 downto 0) => gtwiz_userdata_tx_in(79 downto 0), + loopback_in(11 downto 0) => loopback_in(11 downto 0), + qpll0outclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_2\, + qpll0outrefclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_3\, + qpll1outclk_out(0) => \^qpll1outclk_out\(0), + qpll1outrefclk_out(0) => \^qpll1outrefclk_out\(0), + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => \^rxcdrlock_out\(3 downto 0), + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxresetdone_out(3 downto 0) => \^rxresetdone_out\(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txresetdone_out(3 downto 0) => \^txresetdone_out\(3 downto 0), + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0) + ); +\gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gthe3_common_wrapper + port map ( + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\ => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_4\, + gtrefclk01_in(0) => gtrefclk01_in(0), + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0lock_out(0) => qpll0lock_out(0), + qpll0outclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_2\, + qpll0outrefclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_3\, + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1lock_out(0) => \^qpll1lock_out\(0), + qpll1outclk_out(0) => \^qpll1outclk_out\(0), + qpll1outrefclk_out(0) => \^qpll1outrefclk_out\(0), + rst_in0 => rst_in0 + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[0].bit_synchronizer_rxresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(0) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[0].bit_synchronizer_txresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(0) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[1].bit_synchronizer_rxresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(1), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(1) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[1].bit_synchronizer_txresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(1), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(1) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[2].bit_synchronizer_rxresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(2), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(2) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[2].bit_synchronizer_txresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(2), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(2) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[3].bit_synchronizer_rxresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(3) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[3].bit_synchronizer_txresetdone_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(3) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int\: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => \^gtpowergood_out\(1), + I1 => \^gtpowergood_out\(0), + I2 => \^gtpowergood_out\(3), + I3 => \^gtpowergood_out\(2), + O => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int__0\ + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_reset + port map ( + GTHE3_CHANNEL_CPLLPD(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_pllreset_rx_int\, + GTHE3_CHANNEL_GTRXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtrxreset_int\, + GTHE3_CHANNEL_GTTXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gttxreset_int\, + GTHE3_CHANNEL_RXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxprogdivreset_int\, + GTHE3_CHANNEL_RXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxuserrdy_int\, + GTHE3_CHANNEL_TXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txprogdivreset_int\, + GTHE3_CHANNEL_TXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txuserrdy_int\, + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3 downto 0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3 downto 0), + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3 downto 0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3 downto 0), + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + i_in_meta_reg => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int__0\, + i_in_meta_reg_0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int__0\, + i_in_out_reg => gtwiz_reset_rx_cdr_stable_out(0), + in0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int__0\, + pllreset_tx_out_reg_0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_4\, + qpll1lock_out(0) => \^qpll1lock_out\(0), + rst_in0 => rst_in0, + rst_in_out_reg => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_11\, + rxusrclk2_in(0) => rxusrclk2_in(0), + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int\: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => \^cplllock_out\(1), + I1 => \^cplllock_out\(0), + I2 => \^cplllock_out\(3), + I3 => \^cplllock_out\(2), + O => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int__0\ + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int\: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => \^rxcdrlock_out\(1), + I1 => \^rxcdrlock_out\(0), + I2 => \^rxcdrlock_out\(3), + I3 => \^rxcdrlock_out\(2), + O => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int__0\ + ); +\gen_gtwizard_gthe3.gen_tx_buffer_bypass_internal.gen_single_instance.gtwiz_buffbypass_tx_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx + port map ( + GTHE3_CHANNEL_TXDLYSRESET(0) => \gen_gtwizard_gthe3.txdlysreset_int\(3), + GTHE3_CHANNEL_TXPHALIGNDONE(3) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_36\, + GTHE3_CHANNEL_TXPHALIGNDONE(2) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_37\, + GTHE3_CHANNEL_TXPHALIGNDONE(1) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_38\, + GTHE3_CHANNEL_TXPHALIGNDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_39\, + GTHE3_CHANNEL_TXSYNCALLIN(0) => \gen_gtwizard_gthe3.txsyncallin_int\(0), + GTHE3_CHANNEL_TXSYNCDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_48\, + gtwiz_buffbypass_tx_done_out(0) => gtwiz_buffbypass_tx_done_out(0), + gtwiz_buffbypass_tx_error_out(0) => gtwiz_buffbypass_tx_error_out(0), + gtwiz_buffbypass_tx_reset_in(0) => gtwiz_buffbypass_tx_reset_in(0), + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + rst_in_sync2_reg => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_11\, + txusrclk2_in(0) => txusrclk2_in(0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top is + port ( + gtwiz_userclk_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_srcclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_usrclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_usrclk2_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_srcclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_usrclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_usrclk2_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_done_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll0lock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll1lock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_cdr_stable_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll0reset_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll1reset_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_gthe3_cpll_cal_txoutclk_period_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe3_cpll_cal_cnt_tol_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe3_cpll_cal_bufg_ce_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_gthe4_cpll_cal_txoutclk_period_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe4_cpll_cal_cnt_tol_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe4_cpll_cal_bufg_ce_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_gtye4_cpll_cal_txoutclk_period_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gtye4_cpll_cal_cnt_tol_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gtye4_cpll_cal_bufg_ce_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 79 downto 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 79 downto 0 ); + bgbypassb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + bgmonitorenb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + bgpdb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + bgrcalovrd_in : in STD_LOGIC_VECTOR ( 4 downto 0 ); + bgrcalovrdenb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpaddr_common_in : in STD_LOGIC_VECTOR ( 8 downto 0 ); + drpclk_common_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpdi_common_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + drpen_common_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpwe_common_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtgrefclk0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtgrefclk1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk00_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk10_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk11_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk00_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk10_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk11_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk00_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk10_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk11_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + pcierateqpll0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + pcierateqpll1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + pmarsvd0_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + pmarsvd1_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + qpll0clkrsvd0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0clkrsvd1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0fbdiv_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lockdetclk_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0locken_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0pd_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0refclksel_in : in STD_LOGIC_VECTOR ( 2 downto 0 ); + qpll0reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1clkrsvd0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1clkrsvd1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbdiv_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lockdetclk_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1locken_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1pd_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1refclksel_in : in STD_LOGIC_VECTOR ( 2 downto 0 ); + qpll1reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpllrsvd1_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + qpllrsvd2_in : in STD_LOGIC_VECTOR ( 4 downto 0 ); + qpllrsvd3_in : in STD_LOGIC_VECTOR ( 4 downto 0 ); + qpllrsvd4_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rcalenb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0data_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0toggle_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0width_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1data_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1toggle_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1width_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tcongpi_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tconpowerup_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tconreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tconrsvdin1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubcfgstreamen_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubdo_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubdrdy_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubenable_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubgpi_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubintr_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubiolmbrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmbrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmcapture_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmdbgrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmdbgupdate_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmregen_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmshift_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmsysrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmtck_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmtdi_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpdo_common_out : out STD_LOGIC_VECTOR ( 15 downto 0 ); + drprdy_common_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + pmarsvdout0_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + pmarsvdout1_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0refclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1refclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qplldmonitor0_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + qplldmonitor1_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + refclkoutmonitor0_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + refclkoutmonitor1_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxrecclk0_sel_out : out STD_LOGIC_VECTOR ( 1 downto 0 ); + rxrecclk1_sel_out : out STD_LOGIC_VECTOR ( 1 downto 0 ); + rxrecclk0sel_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxrecclk1sel_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0finalout_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0testdata_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1finalout_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1testdata_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + tcongpo_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + tconrsvdout0_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubdaddr_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubden_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubdi_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubdwe_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmtdo_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubrsvdout_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubtxuart_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + cdrstepdir_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cdrstepsq_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cdrstepsx_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cfgreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + clkrsvd0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + clkrsvd1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllfreqlock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cplllockdetclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cplllocken_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllpd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllrefclksel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + cpllreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + dmonfiforeset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + dmonitorclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + drpaddr_in : in STD_LOGIC_VECTOR ( 35 downto 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + drpdi_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + drpen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + drprst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpwe_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + elpcaldvorwren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + elpcalpaorwren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + evoddphicaldone_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphicalstart_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphidrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphidwren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphixrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphixwren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescanmode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescanreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescantrigger_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + freqos_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtgrefclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtnorthrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtnorthrefclk1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtresetsel_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrsvd_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + gtrxreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrxresetsel_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtsouthrefclk1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gttxreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gttxresetsel_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + incpctrl_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtyrxn_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtyrxp_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + looprsvd_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + lpbkrxtxseren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + lpbktxrxseren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieeqrxeqadaptdone_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcierstidle_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pciersttxsyncstart_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieuserratedone_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcsrsvdin_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + pcsrsvdin2_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + pmarsvdin_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + qpll0clk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + qpll0freqlock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0refclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + qpll1clk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + qpll1freqlock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1refclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + resetovrd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rstclkentx_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rx8b10ben_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxafecfoken_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxbufreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrfreqreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrresetrsv_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbonden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbondi_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + rxchbondlevel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxchbondmaster_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbondslave_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxckcalreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxckcalstart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxcommadeten_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeagcctrl_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxdccforcestart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfeagchold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeagcovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfecfokfcnum_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokfen_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokfpulse_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokhold_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokovren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfekhhold_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfekhovrden_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfelfhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfelfovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfelpmreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap10hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap10ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap11hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap11ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap12hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap12ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap13hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap13ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap14hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap14ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap15hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap15ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap2hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap2ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap3hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap3ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap4hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap4ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap5hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap5ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap6hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap6ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap7hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap7ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap8hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap8ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap9hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap9ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeuthold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeutovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfevphold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfevpovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfevsen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfexyden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlybypass_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlyen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlyovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlysreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxelecidlemode_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxeqtraining_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxgearboxslip_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlatclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmgchold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmgcovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmhfhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmhfovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmlfhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmlfklovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmoshold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmosovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxmcommaalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxmonitorsel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxoobreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoscalreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoshold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintcfg_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + rxosinten_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosinthold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstrobe_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosinttestovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclksel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxpcommaalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpcsreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpd_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxphalign_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphdlypd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphdlyreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpllclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxpmareset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbscntreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbssel_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + rxprogdivreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxqpien_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxrate_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxratemode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslipoutclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslippma_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncallin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncmode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsysclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxtermination_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxuserrdy_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + sigvalidclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + tstin_in : in STD_LOGIC_VECTOR ( 79 downto 0 ); + tx8b10bbypass_in : in STD_LOGIC_VECTOR ( 31 downto 0 ); + tx8b10ben_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txbufdiffctrl_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txcominit_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txcomsas_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txcomwake_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txctrl0_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + txctrl1_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + txctrl2_in : in STD_LOGIC_VECTOR ( 31 downto 0 ); + txdata_in : in STD_LOGIC_VECTOR ( 511 downto 0 ); + txdataextendrsvd_in : in STD_LOGIC_VECTOR ( 31 downto 0 ); + txdccforcestart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txdccreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txdeemph_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdetectrx_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdiffctrl_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + txdiffpd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlybypass_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlysreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyupdown_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txelecidle_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txelforcestart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txheader_in : in STD_LOGIC_VECTOR ( 23 downto 0 ); + txinhibit_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txlatclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txlfpstreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txlfpsu2lpexit_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txlfpsu3wake_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txmaincursor_in : in STD_LOGIC_VECTOR ( 27 downto 0 ); + txmargin_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txmuxdcdexhold_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txmuxdcdorwren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txoneszeros_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txoutclksel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txpcsreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpd_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + txpdelecidlemode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphalign_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphdlypd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphdlyreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphdlytstclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphinit_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmpd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmsel_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmstepsize_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + txpisopd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpllclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + txpmareset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpostcursor_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + txpostcursorinv_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txprbsforceerr_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txprbssel_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + txprecursor_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + txprecursorinv_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txprogdivreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpibiasen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpistrongpdown_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpiweakpup_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txrate_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txratemode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsequence_in : in STD_LOGIC_VECTOR ( 27 downto 0 ); + txswing_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncallin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncmode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsysclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + txuserrdy_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + bufgtce_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + bufgtcemask_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + bufgtdiv_out : out STD_LOGIC_VECTOR ( 35 downto 0 ); + bufgtreset_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + bufgtrstmask_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + cpllfbclklost_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllrefclklost_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + dmonitorout_out : out STD_LOGIC_VECTOR ( 67 downto 0 ); + dmonitoroutclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + drpdo_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + drprdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescandataerror_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclkmonitor_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtytxn_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtytxp_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + pcierategen3_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcierateidle_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcierateqpllpd_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + pcierateqpllreset_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + pciesynctxsyncdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieusergen3rdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieuserphystatusrst_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieuserratestart_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcsrsvdout_out : out STD_LOGIC_VECTOR ( 47 downto 0 ); + phystatus_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pinrsrvdas_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + powerpresent_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + resetexception_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxbufstatus_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + rxbyteisaligned_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxbyterealign_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrphdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchanbondseq_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchanisaligned_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchanrealign_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbondo_out : out STD_LOGIC_VECTOR ( 19 downto 0 ); + rxckcaldone_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxclkcorcnt_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxcominitdet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcommadet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcomsasdet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcomwakedet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxctrl0_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + rxctrl1_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + rxctrl2_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + rxctrl3_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + rxdata_out : out STD_LOGIC_VECTOR ( 511 downto 0 ); + rxdataextendrsvd_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + rxdatavalid_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxdlysresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxelecidle_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxheader_out : out STD_LOGIC_VECTOR ( 23 downto 0 ); + rxheadervalid_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxlfpstresetdet_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxlfpsu2lpexitdet_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxlfpsu3wakedet_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxmonitorout_out : out STD_LOGIC_VECTOR ( 27 downto 0 ); + rxosintdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstarted_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstrobedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstrobestarted_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclkfabric_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclkpcs_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphaligndone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphalignerr_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbserr_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbslocked_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxqpisenn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxqpisenp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxrecclkout_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsliderdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslipdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslipoutclkrdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslippmardy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxstartofseq_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxstatus_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + rxsyncdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncout_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxvalid_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txbufstatus_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + txcomfinish_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txdccdone_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + txdlysresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclkfabric_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclkpcs_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txphaligndone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txphinitdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpisenn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpisenp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncout_out : out STD_LOGIC_VECTOR ( 3 downto 0 ) + ); + attribute C_CHANNEL_ENABLE : string; + attribute C_CHANNEL_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100000000"; + attribute C_COMMON_SCALING_FACTOR : integer; + attribute C_COMMON_SCALING_FACTOR of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_CPLL_VCO_FREQUENCY : string; + attribute C_CPLL_VCO_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "2400.000000"; + attribute C_ENABLE_COMMON_USRCLK : integer; + attribute C_ENABLE_COMMON_USRCLK of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_FORCE_COMMONS : integer; + attribute C_FORCE_COMMONS of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_FREERUN_FREQUENCY : string; + attribute C_FREERUN_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "40.000000"; + attribute C_GT_REV : integer; + attribute C_GT_REV of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 17; + attribute C_GT_TYPE : integer; + attribute C_GT_TYPE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_INCLUDE_CPLL_CAL : integer; + attribute C_INCLUDE_CPLL_CAL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 2; + attribute C_LOCATE_COMMON : integer; + attribute C_LOCATE_COMMON of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE : integer; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 2; + attribute C_LOCATE_RESET_CONTROLLER : integer; + attribute C_LOCATE_RESET_CONTROLLER of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_LOCATE_RX_USER_CLOCKING : integer; + attribute C_LOCATE_RX_USER_CLOCKING of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_LOCATE_TX_USER_CLOCKING : integer; + attribute C_LOCATE_TX_USER_CLOCKING of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING : integer; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_PCIE_CORECLK_FREQ : integer; + attribute C_PCIE_CORECLK_FREQ of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 250; + attribute C_PCIE_ENABLE : integer; + attribute C_PCIE_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL : integer; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RESET_SEQUENCE_INTERVAL : integer; + attribute C_RESET_SEQUENCE_INTERVAL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_BUFFBYPASS_MODE : integer; + attribute C_RX_BUFFBYPASS_MODE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_BUFFER_MODE : integer; + attribute C_RX_BUFFER_MODE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_CB_DISP : string; + attribute C_RX_CB_DISP of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CB_K : string; + attribute C_RX_CB_K of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CB_LEN_SEQ : integer; + attribute C_RX_CB_LEN_SEQ of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_CB_MAX_LEVEL : integer; + attribute C_RX_CB_MAX_LEVEL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 2; + attribute C_RX_CB_NUM_SEQ : integer; + attribute C_RX_CB_NUM_SEQ of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_CB_VAL : string; + attribute C_RX_CB_VAL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_CC_DISP : string; + attribute C_RX_CC_DISP of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CC_ENABLE : integer; + attribute C_RX_CC_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_CC_K : string; + attribute C_RX_CC_K of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CC_LEN_SEQ : integer; + attribute C_RX_CC_LEN_SEQ of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_CC_NUM_SEQ : integer; + attribute C_RX_CC_NUM_SEQ of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_CC_PERIODICITY : integer; + attribute C_RX_CC_PERIODICITY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 5000; + attribute C_RX_CC_VAL : string; + attribute C_RX_CC_VAL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_COMMA_M_ENABLE : integer; + attribute C_RX_COMMA_M_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_COMMA_M_VAL : string; + attribute C_RX_COMMA_M_VAL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "10'b1010000011"; + attribute C_RX_COMMA_P_ENABLE : integer; + attribute C_RX_COMMA_P_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_COMMA_P_VAL : string; + attribute C_RX_COMMA_P_VAL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "10'b0101111100"; + attribute C_RX_DATA_DECODING : integer; + attribute C_RX_DATA_DECODING of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_ENABLE : integer; + attribute C_RX_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_INT_DATA_WIDTH : integer; + attribute C_RX_INT_DATA_WIDTH of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 20; + attribute C_RX_LINE_RATE : string; + attribute C_RX_LINE_RATE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "4.800000"; + attribute C_RX_MASTER_CHANNEL_IDX : integer; + attribute C_RX_MASTER_CHANNEL_IDX of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 8; + attribute C_RX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_RX_OUTCLK_BUFG_GT_DIV of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_OUTCLK_FREQUENCY : string; + attribute C_RX_OUTCLK_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_RX_OUTCLK_SOURCE : integer; + attribute C_RX_OUTCLK_SOURCE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_PLL_TYPE : integer; + attribute C_RX_PLL_TYPE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 2; + attribute C_RX_RECCLK_OUTPUT : string; + attribute C_RX_RECCLK_OUTPUT of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_REFCLK_FREQUENCY : string; + attribute C_RX_REFCLK_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_RX_SLIDE_MODE : integer; + attribute C_RX_SLIDE_MODE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 2; + attribute C_RX_USER_CLOCKING_CONTENTS : integer; + attribute C_RX_USER_CLOCKING_CONTENTS of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_RX_USER_CLOCKING_SOURCE : integer; + attribute C_RX_USER_CLOCKING_SOURCE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_RX_USER_DATA_WIDTH : integer; + attribute C_RX_USER_DATA_WIDTH of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 20; + attribute C_RX_USRCLK2_FREQUENCY : string; + attribute C_RX_USRCLK2_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_RX_USRCLK_FREQUENCY : string; + attribute C_RX_USRCLK_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_SECONDARY_QPLL_ENABLE : integer; + attribute C_SECONDARY_QPLL_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY : string; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "257.812500"; + attribute C_SIM_CPLL_CAL_BYPASS : integer; + attribute C_SIM_CPLL_CAL_BYPASS of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TOTAL_NUM_CHANNELS : integer; + attribute C_TOTAL_NUM_CHANNELS of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 4; + attribute C_TOTAL_NUM_COMMONS : integer; + attribute C_TOTAL_NUM_COMMONS of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE : integer; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TXPROGDIV_FREQ_ENABLE : integer; + attribute C_TXPROGDIV_FREQ_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TXPROGDIV_FREQ_SOURCE : integer; + attribute C_TXPROGDIV_FREQ_SOURCE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TXPROGDIV_FREQ_VAL : string; + attribute C_TXPROGDIV_FREQ_VAL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_TX_BUFFBYPASS_MODE : integer; + attribute C_TX_BUFFBYPASS_MODE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TX_BUFFER_MODE : integer; + attribute C_TX_BUFFER_MODE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TX_DATA_ENCODING : integer; + attribute C_TX_DATA_ENCODING of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TX_ENABLE : integer; + attribute C_TX_ENABLE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TX_INT_DATA_WIDTH : integer; + attribute C_TX_INT_DATA_WIDTH of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 20; + attribute C_TX_LINE_RATE : string; + attribute C_TX_LINE_RATE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "4.800000"; + attribute C_TX_MASTER_CHANNEL_IDX : integer; + attribute C_TX_MASTER_CHANNEL_IDX of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 8; + attribute C_TX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_TX_OUTCLK_BUFG_GT_DIV of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TX_OUTCLK_FREQUENCY : string; + attribute C_TX_OUTCLK_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_TX_OUTCLK_SOURCE : integer; + attribute C_TX_OUTCLK_SOURCE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 2; + attribute C_TX_PLL_TYPE : integer; + attribute C_TX_PLL_TYPE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TX_REFCLK_FREQUENCY : string; + attribute C_TX_REFCLK_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_TX_USER_CLOCKING_CONTENTS : integer; + attribute C_TX_USER_CLOCKING_CONTENTS of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 1; + attribute C_TX_USER_CLOCKING_SOURCE : integer; + attribute C_TX_USER_CLOCKING_SOURCE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; + attribute C_TX_USER_DATA_WIDTH : integer; + attribute C_TX_USER_DATA_WIDTH of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 20; + attribute C_TX_USRCLK2_FREQUENCY : string; + attribute C_TX_USRCLK2_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_TX_USRCLK_FREQUENCY : string; + attribute C_TX_USRCLK_FREQUENCY of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is "240.000000"; + attribute C_USER_GTPOWERGOOD_DELAY_EN : integer; + attribute C_USER_GTPOWERGOOD_DELAY_EN of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top : entity is 0; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top is + signal \<const0>\ : STD_LOGIC; +begin + bufgtce_out(11) <= \<const0>\; + bufgtce_out(10) <= \<const0>\; + bufgtce_out(9) <= \<const0>\; + bufgtce_out(8) <= \<const0>\; + bufgtce_out(7) <= \<const0>\; + bufgtce_out(6) <= \<const0>\; + bufgtce_out(5) <= \<const0>\; + bufgtce_out(4) <= \<const0>\; + bufgtce_out(3) <= \<const0>\; + bufgtce_out(2) <= \<const0>\; + bufgtce_out(1) <= \<const0>\; + bufgtce_out(0) <= \<const0>\; + bufgtcemask_out(11) <= \<const0>\; + bufgtcemask_out(10) <= \<const0>\; + bufgtcemask_out(9) <= \<const0>\; + bufgtcemask_out(8) <= \<const0>\; + bufgtcemask_out(7) <= \<const0>\; + bufgtcemask_out(6) <= \<const0>\; + bufgtcemask_out(5) <= \<const0>\; + bufgtcemask_out(4) <= \<const0>\; + bufgtcemask_out(3) <= \<const0>\; + bufgtcemask_out(2) <= \<const0>\; + bufgtcemask_out(1) <= \<const0>\; + bufgtcemask_out(0) <= \<const0>\; + bufgtdiv_out(35) <= \<const0>\; + bufgtdiv_out(34) <= \<const0>\; + bufgtdiv_out(33) <= \<const0>\; + bufgtdiv_out(32) <= \<const0>\; + bufgtdiv_out(31) <= \<const0>\; + bufgtdiv_out(30) <= \<const0>\; + bufgtdiv_out(29) <= \<const0>\; + bufgtdiv_out(28) <= \<const0>\; + bufgtdiv_out(27) <= \<const0>\; + bufgtdiv_out(26) <= \<const0>\; + bufgtdiv_out(25) <= \<const0>\; + bufgtdiv_out(24) <= \<const0>\; + bufgtdiv_out(23) <= \<const0>\; + bufgtdiv_out(22) <= \<const0>\; + bufgtdiv_out(21) <= \<const0>\; + bufgtdiv_out(20) <= \<const0>\; + bufgtdiv_out(19) <= \<const0>\; + bufgtdiv_out(18) <= \<const0>\; + bufgtdiv_out(17) <= \<const0>\; + bufgtdiv_out(16) <= \<const0>\; + bufgtdiv_out(15) <= \<const0>\; + bufgtdiv_out(14) <= \<const0>\; + bufgtdiv_out(13) <= \<const0>\; + bufgtdiv_out(12) <= \<const0>\; + bufgtdiv_out(11) <= \<const0>\; + bufgtdiv_out(10) <= \<const0>\; + bufgtdiv_out(9) <= \<const0>\; + bufgtdiv_out(8) <= \<const0>\; + bufgtdiv_out(7) <= \<const0>\; + bufgtdiv_out(6) <= \<const0>\; + bufgtdiv_out(5) <= \<const0>\; + bufgtdiv_out(4) <= \<const0>\; + bufgtdiv_out(3) <= \<const0>\; + bufgtdiv_out(2) <= \<const0>\; + bufgtdiv_out(1) <= \<const0>\; + bufgtdiv_out(0) <= \<const0>\; + bufgtreset_out(11) <= \<const0>\; + bufgtreset_out(10) <= \<const0>\; + bufgtreset_out(9) <= \<const0>\; + bufgtreset_out(8) <= \<const0>\; + bufgtreset_out(7) <= \<const0>\; + bufgtreset_out(6) <= \<const0>\; + bufgtreset_out(5) <= \<const0>\; + bufgtreset_out(4) <= \<const0>\; + bufgtreset_out(3) <= \<const0>\; + bufgtreset_out(2) <= \<const0>\; + bufgtreset_out(1) <= \<const0>\; + bufgtreset_out(0) <= \<const0>\; + bufgtrstmask_out(11) <= \<const0>\; + bufgtrstmask_out(10) <= \<const0>\; + bufgtrstmask_out(9) <= \<const0>\; + bufgtrstmask_out(8) <= \<const0>\; + bufgtrstmask_out(7) <= \<const0>\; + bufgtrstmask_out(6) <= \<const0>\; + bufgtrstmask_out(5) <= \<const0>\; + bufgtrstmask_out(4) <= \<const0>\; + bufgtrstmask_out(3) <= \<const0>\; + bufgtrstmask_out(2) <= \<const0>\; + bufgtrstmask_out(1) <= \<const0>\; + bufgtrstmask_out(0) <= \<const0>\; + cpllfbclklost_out(3) <= \<const0>\; + cpllfbclklost_out(2) <= \<const0>\; + cpllfbclklost_out(1) <= \<const0>\; + cpllfbclklost_out(0) <= \<const0>\; + cpllrefclklost_out(3) <= \<const0>\; + cpllrefclklost_out(2) <= \<const0>\; + cpllrefclklost_out(1) <= \<const0>\; + cpllrefclklost_out(0) <= \<const0>\; + dmonitorout_out(67) <= \<const0>\; + dmonitorout_out(66) <= \<const0>\; + dmonitorout_out(65) <= \<const0>\; + dmonitorout_out(64) <= \<const0>\; + dmonitorout_out(63) <= \<const0>\; + dmonitorout_out(62) <= \<const0>\; + dmonitorout_out(61) <= \<const0>\; + dmonitorout_out(60) <= \<const0>\; + dmonitorout_out(59) <= \<const0>\; + dmonitorout_out(58) <= \<const0>\; + dmonitorout_out(57) <= \<const0>\; + dmonitorout_out(56) <= \<const0>\; + dmonitorout_out(55) <= \<const0>\; + dmonitorout_out(54) <= \<const0>\; + dmonitorout_out(53) <= \<const0>\; + dmonitorout_out(52) <= \<const0>\; + dmonitorout_out(51) <= \<const0>\; + dmonitorout_out(50) <= \<const0>\; + dmonitorout_out(49) <= \<const0>\; + dmonitorout_out(48) <= \<const0>\; + dmonitorout_out(47) <= \<const0>\; + dmonitorout_out(46) <= \<const0>\; + dmonitorout_out(45) <= \<const0>\; + dmonitorout_out(44) <= \<const0>\; + dmonitorout_out(43) <= \<const0>\; + dmonitorout_out(42) <= \<const0>\; + dmonitorout_out(41) <= \<const0>\; + dmonitorout_out(40) <= \<const0>\; + dmonitorout_out(39) <= \<const0>\; + dmonitorout_out(38) <= \<const0>\; + dmonitorout_out(37) <= \<const0>\; + dmonitorout_out(36) <= \<const0>\; + dmonitorout_out(35) <= \<const0>\; + dmonitorout_out(34) <= \<const0>\; + dmonitorout_out(33) <= \<const0>\; + dmonitorout_out(32) <= \<const0>\; + dmonitorout_out(31) <= \<const0>\; + dmonitorout_out(30) <= \<const0>\; + dmonitorout_out(29) <= \<const0>\; + dmonitorout_out(28) <= \<const0>\; + dmonitorout_out(27) <= \<const0>\; + dmonitorout_out(26) <= \<const0>\; + dmonitorout_out(25) <= \<const0>\; + dmonitorout_out(24) <= \<const0>\; + dmonitorout_out(23) <= \<const0>\; + dmonitorout_out(22) <= \<const0>\; + dmonitorout_out(21) <= \<const0>\; + dmonitorout_out(20) <= \<const0>\; + dmonitorout_out(19) <= \<const0>\; + dmonitorout_out(18) <= \<const0>\; + dmonitorout_out(17) <= \<const0>\; + dmonitorout_out(16) <= \<const0>\; + dmonitorout_out(15) <= \<const0>\; + dmonitorout_out(14) <= \<const0>\; + dmonitorout_out(13) <= \<const0>\; + dmonitorout_out(12) <= \<const0>\; + dmonitorout_out(11) <= \<const0>\; + dmonitorout_out(10) <= \<const0>\; + dmonitorout_out(9) <= \<const0>\; + dmonitorout_out(8) <= \<const0>\; + dmonitorout_out(7) <= \<const0>\; + dmonitorout_out(6) <= \<const0>\; + dmonitorout_out(5) <= \<const0>\; + dmonitorout_out(4) <= \<const0>\; + dmonitorout_out(3) <= \<const0>\; + dmonitorout_out(2) <= \<const0>\; + dmonitorout_out(1) <= \<const0>\; + dmonitorout_out(0) <= \<const0>\; + dmonitoroutclk_out(0) <= \<const0>\; + drpdo_common_out(15) <= \<const0>\; + drpdo_common_out(14) <= \<const0>\; + drpdo_common_out(13) <= \<const0>\; + drpdo_common_out(12) <= \<const0>\; + drpdo_common_out(11) <= \<const0>\; + drpdo_common_out(10) <= \<const0>\; + drpdo_common_out(9) <= \<const0>\; + drpdo_common_out(8) <= \<const0>\; + drpdo_common_out(7) <= \<const0>\; + drpdo_common_out(6) <= \<const0>\; + drpdo_common_out(5) <= \<const0>\; + drpdo_common_out(4) <= \<const0>\; + drpdo_common_out(3) <= \<const0>\; + drpdo_common_out(2) <= \<const0>\; + drpdo_common_out(1) <= \<const0>\; + drpdo_common_out(0) <= \<const0>\; + drpdo_out(63) <= \<const0>\; + drpdo_out(62) <= \<const0>\; + drpdo_out(61) <= \<const0>\; + drpdo_out(60) <= \<const0>\; + drpdo_out(59) <= \<const0>\; + drpdo_out(58) <= \<const0>\; + drpdo_out(57) <= \<const0>\; + drpdo_out(56) <= \<const0>\; + drpdo_out(55) <= \<const0>\; + drpdo_out(54) <= \<const0>\; + drpdo_out(53) <= \<const0>\; + drpdo_out(52) <= \<const0>\; + drpdo_out(51) <= \<const0>\; + drpdo_out(50) <= \<const0>\; + drpdo_out(49) <= \<const0>\; + drpdo_out(48) <= \<const0>\; + drpdo_out(47) <= \<const0>\; + drpdo_out(46) <= \<const0>\; + drpdo_out(45) <= \<const0>\; + drpdo_out(44) <= \<const0>\; + drpdo_out(43) <= \<const0>\; + drpdo_out(42) <= \<const0>\; + drpdo_out(41) <= \<const0>\; + drpdo_out(40) <= \<const0>\; + drpdo_out(39) <= \<const0>\; + drpdo_out(38) <= \<const0>\; + drpdo_out(37) <= \<const0>\; + drpdo_out(36) <= \<const0>\; + drpdo_out(35) <= \<const0>\; + drpdo_out(34) <= \<const0>\; + drpdo_out(33) <= \<const0>\; + drpdo_out(32) <= \<const0>\; + drpdo_out(31) <= \<const0>\; + drpdo_out(30) <= \<const0>\; + drpdo_out(29) <= \<const0>\; + drpdo_out(28) <= \<const0>\; + drpdo_out(27) <= \<const0>\; + drpdo_out(26) <= \<const0>\; + drpdo_out(25) <= \<const0>\; + drpdo_out(24) <= \<const0>\; + drpdo_out(23) <= \<const0>\; + drpdo_out(22) <= \<const0>\; + drpdo_out(21) <= \<const0>\; + drpdo_out(20) <= \<const0>\; + drpdo_out(19) <= \<const0>\; + drpdo_out(18) <= \<const0>\; + drpdo_out(17) <= \<const0>\; + drpdo_out(16) <= \<const0>\; + drpdo_out(15) <= \<const0>\; + drpdo_out(14) <= \<const0>\; + drpdo_out(13) <= \<const0>\; + drpdo_out(12) <= \<const0>\; + drpdo_out(11) <= \<const0>\; + drpdo_out(10) <= \<const0>\; + drpdo_out(9) <= \<const0>\; + drpdo_out(8) <= \<const0>\; + drpdo_out(7) <= \<const0>\; + drpdo_out(6) <= \<const0>\; + drpdo_out(5) <= \<const0>\; + drpdo_out(4) <= \<const0>\; + drpdo_out(3) <= \<const0>\; + drpdo_out(2) <= \<const0>\; + drpdo_out(1) <= \<const0>\; + drpdo_out(0) <= \<const0>\; + drprdy_common_out(0) <= \<const0>\; + drprdy_out(3) <= \<const0>\; + drprdy_out(2) <= \<const0>\; + drprdy_out(1) <= \<const0>\; + drprdy_out(0) <= \<const0>\; + eyescandataerror_out(3) <= \<const0>\; + eyescandataerror_out(2) <= \<const0>\; + eyescandataerror_out(1) <= \<const0>\; + eyescandataerror_out(0) <= \<const0>\; + gtrefclkmonitor_out(3) <= \<const0>\; + gtrefclkmonitor_out(2) <= \<const0>\; + gtrefclkmonitor_out(1) <= \<const0>\; + gtrefclkmonitor_out(0) <= \<const0>\; + gtwiz_buffbypass_rx_done_out(0) <= \<const0>\; + gtwiz_buffbypass_rx_error_out(0) <= \<const0>\; + gtwiz_reset_qpll0reset_out(0) <= \<const0>\; + gtwiz_reset_qpll1reset_out(0) <= \<const0>\; + gtwiz_userclk_rx_active_out(0) <= \<const0>\; + gtwiz_userclk_rx_srcclk_out(0) <= \<const0>\; + gtwiz_userclk_rx_usrclk2_out(0) <= \<const0>\; + gtwiz_userclk_rx_usrclk_out(0) <= \<const0>\; + gtwiz_userclk_tx_active_out(0) <= \<const0>\; + gtwiz_userclk_tx_srcclk_out(0) <= \<const0>\; + gtwiz_userclk_tx_usrclk2_out(0) <= \<const0>\; + gtwiz_userclk_tx_usrclk_out(0) <= \<const0>\; + gtytxn_out(0) <= \<const0>\; + gtytxp_out(0) <= \<const0>\; + pcierategen3_out(3) <= \<const0>\; + pcierategen3_out(2) <= \<const0>\; + pcierategen3_out(1) <= \<const0>\; + pcierategen3_out(0) <= \<const0>\; + pcierateidle_out(3) <= \<const0>\; + pcierateidle_out(2) <= \<const0>\; + pcierateidle_out(1) <= \<const0>\; + pcierateidle_out(0) <= \<const0>\; + pcierateqpllpd_out(7) <= \<const0>\; + pcierateqpllpd_out(6) <= \<const0>\; + pcierateqpllpd_out(5) <= \<const0>\; + pcierateqpllpd_out(4) <= \<const0>\; + pcierateqpllpd_out(3) <= \<const0>\; + pcierateqpllpd_out(2) <= \<const0>\; + pcierateqpllpd_out(1) <= \<const0>\; + pcierateqpllpd_out(0) <= \<const0>\; + pcierateqpllreset_out(7) <= \<const0>\; + pcierateqpllreset_out(6) <= \<const0>\; + pcierateqpllreset_out(5) <= \<const0>\; + pcierateqpllreset_out(4) <= \<const0>\; + pcierateqpllreset_out(3) <= \<const0>\; + pcierateqpllreset_out(2) <= \<const0>\; + pcierateqpllreset_out(1) <= \<const0>\; + pcierateqpllreset_out(0) <= \<const0>\; + pciesynctxsyncdone_out(3) <= \<const0>\; + pciesynctxsyncdone_out(2) <= \<const0>\; + pciesynctxsyncdone_out(1) <= \<const0>\; + pciesynctxsyncdone_out(0) <= \<const0>\; + pcieusergen3rdy_out(3) <= \<const0>\; + pcieusergen3rdy_out(2) <= \<const0>\; + pcieusergen3rdy_out(1) <= \<const0>\; + pcieusergen3rdy_out(0) <= \<const0>\; + pcieuserphystatusrst_out(3) <= \<const0>\; + pcieuserphystatusrst_out(2) <= \<const0>\; + pcieuserphystatusrst_out(1) <= \<const0>\; + pcieuserphystatusrst_out(0) <= \<const0>\; + pcieuserratestart_out(3) <= \<const0>\; + pcieuserratestart_out(2) <= \<const0>\; + pcieuserratestart_out(1) <= \<const0>\; + pcieuserratestart_out(0) <= \<const0>\; + pcsrsvdout_out(47) <= \<const0>\; + pcsrsvdout_out(46) <= \<const0>\; + pcsrsvdout_out(45) <= \<const0>\; + pcsrsvdout_out(44) <= \<const0>\; + pcsrsvdout_out(43) <= \<const0>\; + pcsrsvdout_out(42) <= \<const0>\; + pcsrsvdout_out(41) <= \<const0>\; + pcsrsvdout_out(40) <= \<const0>\; + pcsrsvdout_out(39) <= \<const0>\; + pcsrsvdout_out(38) <= \<const0>\; + pcsrsvdout_out(37) <= \<const0>\; + pcsrsvdout_out(36) <= \<const0>\; + pcsrsvdout_out(35) <= \<const0>\; + pcsrsvdout_out(34) <= \<const0>\; + pcsrsvdout_out(33) <= \<const0>\; + pcsrsvdout_out(32) <= \<const0>\; + pcsrsvdout_out(31) <= \<const0>\; + pcsrsvdout_out(30) <= \<const0>\; + pcsrsvdout_out(29) <= \<const0>\; + pcsrsvdout_out(28) <= \<const0>\; + pcsrsvdout_out(27) <= \<const0>\; + pcsrsvdout_out(26) <= \<const0>\; + pcsrsvdout_out(25) <= \<const0>\; + pcsrsvdout_out(24) <= \<const0>\; + pcsrsvdout_out(23) <= \<const0>\; + pcsrsvdout_out(22) <= \<const0>\; + pcsrsvdout_out(21) <= \<const0>\; + pcsrsvdout_out(20) <= \<const0>\; + pcsrsvdout_out(19) <= \<const0>\; + pcsrsvdout_out(18) <= \<const0>\; + pcsrsvdout_out(17) <= \<const0>\; + pcsrsvdout_out(16) <= \<const0>\; + pcsrsvdout_out(15) <= \<const0>\; + pcsrsvdout_out(14) <= \<const0>\; + pcsrsvdout_out(13) <= \<const0>\; + pcsrsvdout_out(12) <= \<const0>\; + pcsrsvdout_out(11) <= \<const0>\; + pcsrsvdout_out(10) <= \<const0>\; + pcsrsvdout_out(9) <= \<const0>\; + pcsrsvdout_out(8) <= \<const0>\; + pcsrsvdout_out(7) <= \<const0>\; + pcsrsvdout_out(6) <= \<const0>\; + pcsrsvdout_out(5) <= \<const0>\; + pcsrsvdout_out(4) <= \<const0>\; + pcsrsvdout_out(3) <= \<const0>\; + pcsrsvdout_out(2) <= \<const0>\; + pcsrsvdout_out(1) <= \<const0>\; + pcsrsvdout_out(0) <= \<const0>\; + phystatus_out(3) <= \<const0>\; + phystatus_out(2) <= \<const0>\; + phystatus_out(1) <= \<const0>\; + phystatus_out(0) <= \<const0>\; + pinrsrvdas_out(31) <= \<const0>\; + pinrsrvdas_out(30) <= \<const0>\; + pinrsrvdas_out(29) <= \<const0>\; + pinrsrvdas_out(28) <= \<const0>\; + pinrsrvdas_out(27) <= \<const0>\; + pinrsrvdas_out(26) <= \<const0>\; + pinrsrvdas_out(25) <= \<const0>\; + pinrsrvdas_out(24) <= \<const0>\; + pinrsrvdas_out(23) <= \<const0>\; + pinrsrvdas_out(22) <= \<const0>\; + pinrsrvdas_out(21) <= \<const0>\; + pinrsrvdas_out(20) <= \<const0>\; + pinrsrvdas_out(19) <= \<const0>\; + pinrsrvdas_out(18) <= \<const0>\; + pinrsrvdas_out(17) <= \<const0>\; + pinrsrvdas_out(16) <= \<const0>\; + pinrsrvdas_out(15) <= \<const0>\; + pinrsrvdas_out(14) <= \<const0>\; + pinrsrvdas_out(13) <= \<const0>\; + pinrsrvdas_out(12) <= \<const0>\; + pinrsrvdas_out(11) <= \<const0>\; + pinrsrvdas_out(10) <= \<const0>\; + pinrsrvdas_out(9) <= \<const0>\; + pinrsrvdas_out(8) <= \<const0>\; + pinrsrvdas_out(7) <= \<const0>\; + pinrsrvdas_out(6) <= \<const0>\; + pinrsrvdas_out(5) <= \<const0>\; + pinrsrvdas_out(4) <= \<const0>\; + pinrsrvdas_out(3) <= \<const0>\; + pinrsrvdas_out(2) <= \<const0>\; + pinrsrvdas_out(1) <= \<const0>\; + pinrsrvdas_out(0) <= \<const0>\; + pmarsvdout0_out(7) <= \<const0>\; + pmarsvdout0_out(6) <= \<const0>\; + pmarsvdout0_out(5) <= \<const0>\; + pmarsvdout0_out(4) <= \<const0>\; + pmarsvdout0_out(3) <= \<const0>\; + pmarsvdout0_out(2) <= \<const0>\; + pmarsvdout0_out(1) <= \<const0>\; + pmarsvdout0_out(0) <= \<const0>\; + pmarsvdout1_out(7) <= \<const0>\; + pmarsvdout1_out(6) <= \<const0>\; + pmarsvdout1_out(5) <= \<const0>\; + pmarsvdout1_out(4) <= \<const0>\; + pmarsvdout1_out(3) <= \<const0>\; + pmarsvdout1_out(2) <= \<const0>\; + pmarsvdout1_out(1) <= \<const0>\; + pmarsvdout1_out(0) <= \<const0>\; + powerpresent_out(0) <= \<const0>\; + qpll0outclk_out(0) <= \<const0>\; + qpll0outrefclk_out(0) <= \<const0>\; + qpll0refclklost_out(0) <= \<const0>\; + qpll1refclklost_out(0) <= \<const0>\; + qplldmonitor0_out(7) <= \<const0>\; + qplldmonitor0_out(6) <= \<const0>\; + qplldmonitor0_out(5) <= \<const0>\; + qplldmonitor0_out(4) <= \<const0>\; + qplldmonitor0_out(3) <= \<const0>\; + qplldmonitor0_out(2) <= \<const0>\; + qplldmonitor0_out(1) <= \<const0>\; + qplldmonitor0_out(0) <= \<const0>\; + qplldmonitor1_out(7) <= \<const0>\; + qplldmonitor1_out(6) <= \<const0>\; + qplldmonitor1_out(5) <= \<const0>\; + qplldmonitor1_out(4) <= \<const0>\; + qplldmonitor1_out(3) <= \<const0>\; + qplldmonitor1_out(2) <= \<const0>\; + qplldmonitor1_out(1) <= \<const0>\; + qplldmonitor1_out(0) <= \<const0>\; + refclkoutmonitor0_out(0) <= \<const0>\; + refclkoutmonitor1_out(0) <= \<const0>\; + resetexception_out(3) <= \<const0>\; + resetexception_out(2) <= \<const0>\; + resetexception_out(1) <= \<const0>\; + resetexception_out(0) <= \<const0>\; + rxbufstatus_out(11) <= \<const0>\; + rxbufstatus_out(10) <= \<const0>\; + rxbufstatus_out(9) <= \<const0>\; + rxbufstatus_out(8) <= \<const0>\; + rxbufstatus_out(7) <= \<const0>\; + rxbufstatus_out(6) <= \<const0>\; + rxbufstatus_out(5) <= \<const0>\; + rxbufstatus_out(4) <= \<const0>\; + rxbufstatus_out(3) <= \<const0>\; + rxbufstatus_out(2) <= \<const0>\; + rxbufstatus_out(1) <= \<const0>\; + rxbufstatus_out(0) <= \<const0>\; + rxbyteisaligned_out(3) <= \<const0>\; + rxbyteisaligned_out(2) <= \<const0>\; + rxbyteisaligned_out(1) <= \<const0>\; + rxbyteisaligned_out(0) <= \<const0>\; + rxbyterealign_out(3) <= \<const0>\; + rxbyterealign_out(2) <= \<const0>\; + rxbyterealign_out(1) <= \<const0>\; + rxbyterealign_out(0) <= \<const0>\; + rxcdrphdone_out(3) <= \<const0>\; + rxcdrphdone_out(2) <= \<const0>\; + rxcdrphdone_out(1) <= \<const0>\; + rxcdrphdone_out(0) <= \<const0>\; + rxchanbondseq_out(3) <= \<const0>\; + rxchanbondseq_out(2) <= \<const0>\; + rxchanbondseq_out(1) <= \<const0>\; + rxchanbondseq_out(0) <= \<const0>\; + rxchanisaligned_out(3) <= \<const0>\; + rxchanisaligned_out(2) <= \<const0>\; + rxchanisaligned_out(1) <= \<const0>\; + rxchanisaligned_out(0) <= \<const0>\; + rxchanrealign_out(3) <= \<const0>\; + rxchanrealign_out(2) <= \<const0>\; + rxchanrealign_out(1) <= \<const0>\; + rxchanrealign_out(0) <= \<const0>\; + rxchbondo_out(19) <= \<const0>\; + rxchbondo_out(18) <= \<const0>\; + rxchbondo_out(17) <= \<const0>\; + rxchbondo_out(16) <= \<const0>\; + rxchbondo_out(15) <= \<const0>\; + rxchbondo_out(14) <= \<const0>\; + rxchbondo_out(13) <= \<const0>\; + rxchbondo_out(12) <= \<const0>\; + rxchbondo_out(11) <= \<const0>\; + rxchbondo_out(10) <= \<const0>\; + rxchbondo_out(9) <= \<const0>\; + rxchbondo_out(8) <= \<const0>\; + rxchbondo_out(7) <= \<const0>\; + rxchbondo_out(6) <= \<const0>\; + rxchbondo_out(5) <= \<const0>\; + rxchbondo_out(4) <= \<const0>\; + rxchbondo_out(3) <= \<const0>\; + rxchbondo_out(2) <= \<const0>\; + rxchbondo_out(1) <= \<const0>\; + rxchbondo_out(0) <= \<const0>\; + rxckcaldone_out(0) <= \<const0>\; + rxclkcorcnt_out(7) <= \<const0>\; + rxclkcorcnt_out(6) <= \<const0>\; + rxclkcorcnt_out(5) <= \<const0>\; + rxclkcorcnt_out(4) <= \<const0>\; + rxclkcorcnt_out(3) <= \<const0>\; + rxclkcorcnt_out(2) <= \<const0>\; + rxclkcorcnt_out(1) <= \<const0>\; + rxclkcorcnt_out(0) <= \<const0>\; + rxcominitdet_out(3) <= \<const0>\; + rxcominitdet_out(2) <= \<const0>\; + rxcominitdet_out(1) <= \<const0>\; + rxcominitdet_out(0) <= \<const0>\; + rxcommadet_out(3) <= \<const0>\; + rxcommadet_out(2) <= \<const0>\; + rxcommadet_out(1) <= \<const0>\; + rxcommadet_out(0) <= \<const0>\; + rxcomsasdet_out(3) <= \<const0>\; + rxcomsasdet_out(2) <= \<const0>\; + rxcomsasdet_out(1) <= \<const0>\; + rxcomsasdet_out(0) <= \<const0>\; + rxcomwakedet_out(3) <= \<const0>\; + rxcomwakedet_out(2) <= \<const0>\; + rxcomwakedet_out(1) <= \<const0>\; + rxcomwakedet_out(0) <= \<const0>\; + rxctrl0_out(63) <= \<const0>\; + rxctrl0_out(62) <= \<const0>\; + rxctrl0_out(61) <= \<const0>\; + rxctrl0_out(60) <= \<const0>\; + rxctrl0_out(59) <= \<const0>\; + rxctrl0_out(58) <= \<const0>\; + rxctrl0_out(57) <= \<const0>\; + rxctrl0_out(56) <= \<const0>\; + rxctrl0_out(55) <= \<const0>\; + rxctrl0_out(54) <= \<const0>\; + rxctrl0_out(53) <= \<const0>\; + rxctrl0_out(52) <= \<const0>\; + rxctrl0_out(51) <= \<const0>\; + rxctrl0_out(50) <= \<const0>\; + rxctrl0_out(49) <= \<const0>\; + rxctrl0_out(48) <= \<const0>\; + rxctrl0_out(47) <= \<const0>\; + rxctrl0_out(46) <= \<const0>\; + rxctrl0_out(45) <= \<const0>\; + rxctrl0_out(44) <= \<const0>\; + rxctrl0_out(43) <= \<const0>\; + rxctrl0_out(42) <= \<const0>\; + rxctrl0_out(41) <= \<const0>\; + rxctrl0_out(40) <= \<const0>\; + rxctrl0_out(39) <= \<const0>\; + rxctrl0_out(38) <= \<const0>\; + rxctrl0_out(37) <= \<const0>\; + rxctrl0_out(36) <= \<const0>\; + rxctrl0_out(35) <= \<const0>\; + rxctrl0_out(34) <= \<const0>\; + rxctrl0_out(33) <= \<const0>\; + rxctrl0_out(32) <= \<const0>\; + rxctrl0_out(31) <= \<const0>\; + rxctrl0_out(30) <= \<const0>\; + rxctrl0_out(29) <= \<const0>\; + rxctrl0_out(28) <= \<const0>\; + rxctrl0_out(27) <= \<const0>\; + rxctrl0_out(26) <= \<const0>\; + rxctrl0_out(25) <= \<const0>\; + rxctrl0_out(24) <= \<const0>\; + rxctrl0_out(23) <= \<const0>\; + rxctrl0_out(22) <= \<const0>\; + rxctrl0_out(21) <= \<const0>\; + rxctrl0_out(20) <= \<const0>\; + rxctrl0_out(19) <= \<const0>\; + rxctrl0_out(18) <= \<const0>\; + rxctrl0_out(17) <= \<const0>\; + rxctrl0_out(16) <= \<const0>\; + rxctrl0_out(15) <= \<const0>\; + rxctrl0_out(14) <= \<const0>\; + rxctrl0_out(13) <= \<const0>\; + rxctrl0_out(12) <= \<const0>\; + rxctrl0_out(11) <= \<const0>\; + rxctrl0_out(10) <= \<const0>\; + rxctrl0_out(9) <= \<const0>\; + rxctrl0_out(8) <= \<const0>\; + rxctrl0_out(7) <= \<const0>\; + rxctrl0_out(6) <= \<const0>\; + rxctrl0_out(5) <= \<const0>\; + rxctrl0_out(4) <= \<const0>\; + rxctrl0_out(3) <= \<const0>\; + rxctrl0_out(2) <= \<const0>\; + rxctrl0_out(1) <= \<const0>\; + rxctrl0_out(0) <= \<const0>\; + rxctrl1_out(63) <= \<const0>\; + rxctrl1_out(62) <= \<const0>\; + rxctrl1_out(61) <= \<const0>\; + rxctrl1_out(60) <= \<const0>\; + rxctrl1_out(59) <= \<const0>\; + rxctrl1_out(58) <= \<const0>\; + rxctrl1_out(57) <= \<const0>\; + rxctrl1_out(56) <= \<const0>\; + rxctrl1_out(55) <= \<const0>\; + rxctrl1_out(54) <= \<const0>\; + rxctrl1_out(53) <= \<const0>\; + rxctrl1_out(52) <= \<const0>\; + rxctrl1_out(51) <= \<const0>\; + rxctrl1_out(50) <= \<const0>\; + rxctrl1_out(49) <= \<const0>\; + rxctrl1_out(48) <= \<const0>\; + rxctrl1_out(47) <= \<const0>\; + rxctrl1_out(46) <= \<const0>\; + rxctrl1_out(45) <= \<const0>\; + rxctrl1_out(44) <= \<const0>\; + rxctrl1_out(43) <= \<const0>\; + rxctrl1_out(42) <= \<const0>\; + rxctrl1_out(41) <= \<const0>\; + rxctrl1_out(40) <= \<const0>\; + rxctrl1_out(39) <= \<const0>\; + rxctrl1_out(38) <= \<const0>\; + rxctrl1_out(37) <= \<const0>\; + rxctrl1_out(36) <= \<const0>\; + rxctrl1_out(35) <= \<const0>\; + rxctrl1_out(34) <= \<const0>\; + rxctrl1_out(33) <= \<const0>\; + rxctrl1_out(32) <= \<const0>\; + rxctrl1_out(31) <= \<const0>\; + rxctrl1_out(30) <= \<const0>\; + rxctrl1_out(29) <= \<const0>\; + rxctrl1_out(28) <= \<const0>\; + rxctrl1_out(27) <= \<const0>\; + rxctrl1_out(26) <= \<const0>\; + rxctrl1_out(25) <= \<const0>\; + rxctrl1_out(24) <= \<const0>\; + rxctrl1_out(23) <= \<const0>\; + rxctrl1_out(22) <= \<const0>\; + rxctrl1_out(21) <= \<const0>\; + rxctrl1_out(20) <= \<const0>\; + rxctrl1_out(19) <= \<const0>\; + rxctrl1_out(18) <= \<const0>\; + rxctrl1_out(17) <= \<const0>\; + rxctrl1_out(16) <= \<const0>\; + rxctrl1_out(15) <= \<const0>\; + rxctrl1_out(14) <= \<const0>\; + rxctrl1_out(13) <= \<const0>\; + rxctrl1_out(12) <= \<const0>\; + rxctrl1_out(11) <= \<const0>\; + rxctrl1_out(10) <= \<const0>\; + rxctrl1_out(9) <= \<const0>\; + rxctrl1_out(8) <= \<const0>\; + rxctrl1_out(7) <= \<const0>\; + rxctrl1_out(6) <= \<const0>\; + rxctrl1_out(5) <= \<const0>\; + rxctrl1_out(4) <= \<const0>\; + rxctrl1_out(3) <= \<const0>\; + rxctrl1_out(2) <= \<const0>\; + rxctrl1_out(1) <= \<const0>\; + rxctrl1_out(0) <= \<const0>\; + rxctrl2_out(31) <= \<const0>\; + rxctrl2_out(30) <= \<const0>\; + rxctrl2_out(29) <= \<const0>\; + rxctrl2_out(28) <= \<const0>\; + rxctrl2_out(27) <= \<const0>\; + rxctrl2_out(26) <= \<const0>\; + rxctrl2_out(25) <= \<const0>\; + rxctrl2_out(24) <= \<const0>\; + rxctrl2_out(23) <= \<const0>\; + rxctrl2_out(22) <= \<const0>\; + rxctrl2_out(21) <= \<const0>\; + rxctrl2_out(20) <= \<const0>\; + rxctrl2_out(19) <= \<const0>\; + rxctrl2_out(18) <= \<const0>\; + rxctrl2_out(17) <= \<const0>\; + rxctrl2_out(16) <= \<const0>\; + rxctrl2_out(15) <= \<const0>\; + rxctrl2_out(14) <= \<const0>\; + rxctrl2_out(13) <= \<const0>\; + rxctrl2_out(12) <= \<const0>\; + rxctrl2_out(11) <= \<const0>\; + rxctrl2_out(10) <= \<const0>\; + rxctrl2_out(9) <= \<const0>\; + rxctrl2_out(8) <= \<const0>\; + rxctrl2_out(7) <= \<const0>\; + rxctrl2_out(6) <= \<const0>\; + rxctrl2_out(5) <= \<const0>\; + rxctrl2_out(4) <= \<const0>\; + rxctrl2_out(3) <= \<const0>\; + rxctrl2_out(2) <= \<const0>\; + rxctrl2_out(1) <= \<const0>\; + rxctrl2_out(0) <= \<const0>\; + rxctrl3_out(31) <= \<const0>\; + rxctrl3_out(30) <= \<const0>\; + rxctrl3_out(29) <= \<const0>\; + rxctrl3_out(28) <= \<const0>\; + rxctrl3_out(27) <= \<const0>\; + rxctrl3_out(26) <= \<const0>\; + rxctrl3_out(25) <= \<const0>\; + rxctrl3_out(24) <= \<const0>\; + rxctrl3_out(23) <= \<const0>\; + rxctrl3_out(22) <= \<const0>\; + rxctrl3_out(21) <= \<const0>\; + rxctrl3_out(20) <= \<const0>\; + rxctrl3_out(19) <= \<const0>\; + rxctrl3_out(18) <= \<const0>\; + rxctrl3_out(17) <= \<const0>\; + rxctrl3_out(16) <= \<const0>\; + rxctrl3_out(15) <= \<const0>\; + rxctrl3_out(14) <= \<const0>\; + rxctrl3_out(13) <= \<const0>\; + rxctrl3_out(12) <= \<const0>\; + rxctrl3_out(11) <= \<const0>\; + rxctrl3_out(10) <= \<const0>\; + rxctrl3_out(9) <= \<const0>\; + rxctrl3_out(8) <= \<const0>\; + rxctrl3_out(7) <= \<const0>\; + rxctrl3_out(6) <= \<const0>\; + rxctrl3_out(5) <= \<const0>\; + rxctrl3_out(4) <= \<const0>\; + rxctrl3_out(3) <= \<const0>\; + rxctrl3_out(2) <= \<const0>\; + rxctrl3_out(1) <= \<const0>\; + rxctrl3_out(0) <= \<const0>\; + rxdata_out(511) <= \<const0>\; + rxdata_out(510) <= \<const0>\; + rxdata_out(509) <= \<const0>\; + rxdata_out(508) <= \<const0>\; + rxdata_out(507) <= \<const0>\; + rxdata_out(506) <= \<const0>\; + rxdata_out(505) <= \<const0>\; + rxdata_out(504) <= \<const0>\; + rxdata_out(503) <= \<const0>\; + rxdata_out(502) <= \<const0>\; + rxdata_out(501) <= \<const0>\; + rxdata_out(500) <= \<const0>\; + rxdata_out(499) <= \<const0>\; + rxdata_out(498) <= \<const0>\; + rxdata_out(497) <= \<const0>\; + rxdata_out(496) <= \<const0>\; + rxdata_out(495) <= \<const0>\; + rxdata_out(494) <= \<const0>\; + rxdata_out(493) <= \<const0>\; + rxdata_out(492) <= \<const0>\; + rxdata_out(491) <= \<const0>\; + rxdata_out(490) <= \<const0>\; + rxdata_out(489) <= \<const0>\; + rxdata_out(488) <= \<const0>\; + rxdata_out(487) <= \<const0>\; + rxdata_out(486) <= \<const0>\; + rxdata_out(485) <= \<const0>\; + rxdata_out(484) <= \<const0>\; + rxdata_out(483) <= \<const0>\; + rxdata_out(482) <= \<const0>\; + rxdata_out(481) <= \<const0>\; + rxdata_out(480) <= \<const0>\; + rxdata_out(479) <= \<const0>\; + rxdata_out(478) <= \<const0>\; + rxdata_out(477) <= \<const0>\; + rxdata_out(476) <= \<const0>\; + rxdata_out(475) <= \<const0>\; + rxdata_out(474) <= \<const0>\; + rxdata_out(473) <= \<const0>\; + rxdata_out(472) <= \<const0>\; + rxdata_out(471) <= \<const0>\; + rxdata_out(470) <= \<const0>\; + rxdata_out(469) <= \<const0>\; + rxdata_out(468) <= \<const0>\; + rxdata_out(467) <= \<const0>\; + rxdata_out(466) <= \<const0>\; + rxdata_out(465) <= \<const0>\; + rxdata_out(464) <= \<const0>\; + rxdata_out(463) <= \<const0>\; + rxdata_out(462) <= \<const0>\; + rxdata_out(461) <= \<const0>\; + rxdata_out(460) <= \<const0>\; + rxdata_out(459) <= \<const0>\; + rxdata_out(458) <= \<const0>\; + rxdata_out(457) <= \<const0>\; + rxdata_out(456) <= \<const0>\; + rxdata_out(455) <= \<const0>\; + rxdata_out(454) <= \<const0>\; + rxdata_out(453) <= \<const0>\; + rxdata_out(452) <= \<const0>\; + rxdata_out(451) <= \<const0>\; + rxdata_out(450) <= \<const0>\; + rxdata_out(449) <= \<const0>\; + rxdata_out(448) <= \<const0>\; + rxdata_out(447) <= \<const0>\; + rxdata_out(446) <= \<const0>\; + rxdata_out(445) <= \<const0>\; + rxdata_out(444) <= \<const0>\; + rxdata_out(443) <= \<const0>\; + rxdata_out(442) <= \<const0>\; + rxdata_out(441) <= \<const0>\; + rxdata_out(440) <= \<const0>\; + rxdata_out(439) <= \<const0>\; + rxdata_out(438) <= \<const0>\; + rxdata_out(437) <= \<const0>\; + rxdata_out(436) <= \<const0>\; + rxdata_out(435) <= \<const0>\; + rxdata_out(434) <= \<const0>\; + rxdata_out(433) <= \<const0>\; + rxdata_out(432) <= \<const0>\; + rxdata_out(431) <= \<const0>\; + rxdata_out(430) <= \<const0>\; + rxdata_out(429) <= \<const0>\; + rxdata_out(428) <= \<const0>\; + rxdata_out(427) <= \<const0>\; + rxdata_out(426) <= \<const0>\; + rxdata_out(425) <= \<const0>\; + rxdata_out(424) <= \<const0>\; + rxdata_out(423) <= \<const0>\; + rxdata_out(422) <= \<const0>\; + rxdata_out(421) <= \<const0>\; + rxdata_out(420) <= \<const0>\; + rxdata_out(419) <= \<const0>\; + rxdata_out(418) <= \<const0>\; + rxdata_out(417) <= \<const0>\; + rxdata_out(416) <= \<const0>\; + rxdata_out(415) <= \<const0>\; + rxdata_out(414) <= \<const0>\; + rxdata_out(413) <= \<const0>\; + rxdata_out(412) <= \<const0>\; + rxdata_out(411) <= \<const0>\; + rxdata_out(410) <= \<const0>\; + rxdata_out(409) <= \<const0>\; + rxdata_out(408) <= \<const0>\; + rxdata_out(407) <= \<const0>\; + rxdata_out(406) <= \<const0>\; + rxdata_out(405) <= \<const0>\; + rxdata_out(404) <= \<const0>\; + rxdata_out(403) <= \<const0>\; + rxdata_out(402) <= \<const0>\; + rxdata_out(401) <= \<const0>\; + rxdata_out(400) <= \<const0>\; + rxdata_out(399) <= \<const0>\; + rxdata_out(398) <= \<const0>\; + rxdata_out(397) <= \<const0>\; + rxdata_out(396) <= \<const0>\; + rxdata_out(395) <= \<const0>\; + rxdata_out(394) <= \<const0>\; + rxdata_out(393) <= \<const0>\; + rxdata_out(392) <= \<const0>\; + rxdata_out(391) <= \<const0>\; + rxdata_out(390) <= \<const0>\; + rxdata_out(389) <= \<const0>\; + rxdata_out(388) <= \<const0>\; + rxdata_out(387) <= \<const0>\; + rxdata_out(386) <= \<const0>\; + rxdata_out(385) <= \<const0>\; + rxdata_out(384) <= \<const0>\; + rxdata_out(383) <= \<const0>\; + rxdata_out(382) <= \<const0>\; + rxdata_out(381) <= \<const0>\; + rxdata_out(380) <= \<const0>\; + rxdata_out(379) <= \<const0>\; + rxdata_out(378) <= \<const0>\; + rxdata_out(377) <= \<const0>\; + rxdata_out(376) <= \<const0>\; + rxdata_out(375) <= \<const0>\; + rxdata_out(374) <= \<const0>\; + rxdata_out(373) <= \<const0>\; + rxdata_out(372) <= \<const0>\; + rxdata_out(371) <= \<const0>\; + rxdata_out(370) <= \<const0>\; + rxdata_out(369) <= \<const0>\; + rxdata_out(368) <= \<const0>\; + rxdata_out(367) <= \<const0>\; + rxdata_out(366) <= \<const0>\; + rxdata_out(365) <= \<const0>\; + rxdata_out(364) <= \<const0>\; + rxdata_out(363) <= \<const0>\; + rxdata_out(362) <= \<const0>\; + rxdata_out(361) <= \<const0>\; + rxdata_out(360) <= \<const0>\; + rxdata_out(359) <= \<const0>\; + rxdata_out(358) <= \<const0>\; + rxdata_out(357) <= \<const0>\; + rxdata_out(356) <= \<const0>\; + rxdata_out(355) <= \<const0>\; + rxdata_out(354) <= \<const0>\; + rxdata_out(353) <= \<const0>\; + rxdata_out(352) <= \<const0>\; + rxdata_out(351) <= \<const0>\; + rxdata_out(350) <= \<const0>\; + rxdata_out(349) <= \<const0>\; + rxdata_out(348) <= \<const0>\; + rxdata_out(347) <= \<const0>\; + rxdata_out(346) <= \<const0>\; + rxdata_out(345) <= \<const0>\; + rxdata_out(344) <= \<const0>\; + rxdata_out(343) <= \<const0>\; + rxdata_out(342) <= \<const0>\; + rxdata_out(341) <= \<const0>\; + rxdata_out(340) <= \<const0>\; + rxdata_out(339) <= \<const0>\; + rxdata_out(338) <= \<const0>\; + rxdata_out(337) <= \<const0>\; + rxdata_out(336) <= \<const0>\; + rxdata_out(335) <= \<const0>\; + rxdata_out(334) <= \<const0>\; + rxdata_out(333) <= \<const0>\; + rxdata_out(332) <= \<const0>\; + rxdata_out(331) <= \<const0>\; + rxdata_out(330) <= \<const0>\; + rxdata_out(329) <= \<const0>\; + rxdata_out(328) <= \<const0>\; + rxdata_out(327) <= \<const0>\; + rxdata_out(326) <= \<const0>\; + rxdata_out(325) <= \<const0>\; + rxdata_out(324) <= \<const0>\; + rxdata_out(323) <= \<const0>\; + rxdata_out(322) <= \<const0>\; + rxdata_out(321) <= \<const0>\; + rxdata_out(320) <= \<const0>\; + rxdata_out(319) <= \<const0>\; + rxdata_out(318) <= \<const0>\; + rxdata_out(317) <= \<const0>\; + rxdata_out(316) <= \<const0>\; + rxdata_out(315) <= \<const0>\; + rxdata_out(314) <= \<const0>\; + rxdata_out(313) <= \<const0>\; + rxdata_out(312) <= \<const0>\; + rxdata_out(311) <= \<const0>\; + rxdata_out(310) <= \<const0>\; + rxdata_out(309) <= \<const0>\; + rxdata_out(308) <= \<const0>\; + rxdata_out(307) <= \<const0>\; + rxdata_out(306) <= \<const0>\; + rxdata_out(305) <= \<const0>\; + rxdata_out(304) <= \<const0>\; + rxdata_out(303) <= \<const0>\; + rxdata_out(302) <= \<const0>\; + rxdata_out(301) <= \<const0>\; + rxdata_out(300) <= \<const0>\; + rxdata_out(299) <= \<const0>\; + rxdata_out(298) <= \<const0>\; + rxdata_out(297) <= \<const0>\; + rxdata_out(296) <= \<const0>\; + rxdata_out(295) <= \<const0>\; + rxdata_out(294) <= \<const0>\; + rxdata_out(293) <= \<const0>\; + rxdata_out(292) <= \<const0>\; + rxdata_out(291) <= \<const0>\; + rxdata_out(290) <= \<const0>\; + rxdata_out(289) <= \<const0>\; + rxdata_out(288) <= \<const0>\; + rxdata_out(287) <= \<const0>\; + rxdata_out(286) <= \<const0>\; + rxdata_out(285) <= \<const0>\; + rxdata_out(284) <= \<const0>\; + rxdata_out(283) <= \<const0>\; + rxdata_out(282) <= \<const0>\; + rxdata_out(281) <= \<const0>\; + rxdata_out(280) <= \<const0>\; + rxdata_out(279) <= \<const0>\; + rxdata_out(278) <= \<const0>\; + rxdata_out(277) <= \<const0>\; + rxdata_out(276) <= \<const0>\; + rxdata_out(275) <= \<const0>\; + rxdata_out(274) <= \<const0>\; + rxdata_out(273) <= \<const0>\; + rxdata_out(272) <= \<const0>\; + rxdata_out(271) <= \<const0>\; + rxdata_out(270) <= \<const0>\; + rxdata_out(269) <= \<const0>\; + rxdata_out(268) <= \<const0>\; + rxdata_out(267) <= \<const0>\; + rxdata_out(266) <= \<const0>\; + rxdata_out(265) <= \<const0>\; + rxdata_out(264) <= \<const0>\; + rxdata_out(263) <= \<const0>\; + rxdata_out(262) <= \<const0>\; + rxdata_out(261) <= \<const0>\; + rxdata_out(260) <= \<const0>\; + rxdata_out(259) <= \<const0>\; + rxdata_out(258) <= \<const0>\; + rxdata_out(257) <= \<const0>\; + rxdata_out(256) <= \<const0>\; + rxdata_out(255) <= \<const0>\; + rxdata_out(254) <= \<const0>\; + rxdata_out(253) <= \<const0>\; + rxdata_out(252) <= \<const0>\; + rxdata_out(251) <= \<const0>\; + rxdata_out(250) <= \<const0>\; + rxdata_out(249) <= \<const0>\; + rxdata_out(248) <= \<const0>\; + rxdata_out(247) <= \<const0>\; + rxdata_out(246) <= \<const0>\; + rxdata_out(245) <= \<const0>\; + rxdata_out(244) <= \<const0>\; + rxdata_out(243) <= \<const0>\; + rxdata_out(242) <= \<const0>\; + rxdata_out(241) <= \<const0>\; + rxdata_out(240) <= \<const0>\; + rxdata_out(239) <= \<const0>\; + rxdata_out(238) <= \<const0>\; + rxdata_out(237) <= \<const0>\; + rxdata_out(236) <= \<const0>\; + rxdata_out(235) <= \<const0>\; + rxdata_out(234) <= \<const0>\; + rxdata_out(233) <= \<const0>\; + rxdata_out(232) <= \<const0>\; + rxdata_out(231) <= \<const0>\; + rxdata_out(230) <= \<const0>\; + rxdata_out(229) <= \<const0>\; + rxdata_out(228) <= \<const0>\; + rxdata_out(227) <= \<const0>\; + rxdata_out(226) <= \<const0>\; + rxdata_out(225) <= \<const0>\; + rxdata_out(224) <= \<const0>\; + rxdata_out(223) <= \<const0>\; + rxdata_out(222) <= \<const0>\; + rxdata_out(221) <= \<const0>\; + rxdata_out(220) <= \<const0>\; + rxdata_out(219) <= \<const0>\; + rxdata_out(218) <= \<const0>\; + rxdata_out(217) <= \<const0>\; + rxdata_out(216) <= \<const0>\; + rxdata_out(215) <= \<const0>\; + rxdata_out(214) <= \<const0>\; + rxdata_out(213) <= \<const0>\; + rxdata_out(212) <= \<const0>\; + rxdata_out(211) <= \<const0>\; + rxdata_out(210) <= \<const0>\; + rxdata_out(209) <= \<const0>\; + rxdata_out(208) <= \<const0>\; + rxdata_out(207) <= \<const0>\; + rxdata_out(206) <= \<const0>\; + rxdata_out(205) <= \<const0>\; + rxdata_out(204) <= \<const0>\; + rxdata_out(203) <= \<const0>\; + rxdata_out(202) <= \<const0>\; + rxdata_out(201) <= \<const0>\; + rxdata_out(200) <= \<const0>\; + rxdata_out(199) <= \<const0>\; + rxdata_out(198) <= \<const0>\; + rxdata_out(197) <= \<const0>\; + rxdata_out(196) <= \<const0>\; + rxdata_out(195) <= \<const0>\; + rxdata_out(194) <= \<const0>\; + rxdata_out(193) <= \<const0>\; + rxdata_out(192) <= \<const0>\; + rxdata_out(191) <= \<const0>\; + rxdata_out(190) <= \<const0>\; + rxdata_out(189) <= \<const0>\; + rxdata_out(188) <= \<const0>\; + rxdata_out(187) <= \<const0>\; + rxdata_out(186) <= \<const0>\; + rxdata_out(185) <= \<const0>\; + rxdata_out(184) <= \<const0>\; + rxdata_out(183) <= \<const0>\; + rxdata_out(182) <= \<const0>\; + rxdata_out(181) <= \<const0>\; + rxdata_out(180) <= \<const0>\; + rxdata_out(179) <= \<const0>\; + rxdata_out(178) <= \<const0>\; + rxdata_out(177) <= \<const0>\; + rxdata_out(176) <= \<const0>\; + rxdata_out(175) <= \<const0>\; + rxdata_out(174) <= \<const0>\; + rxdata_out(173) <= \<const0>\; + rxdata_out(172) <= \<const0>\; + rxdata_out(171) <= \<const0>\; + rxdata_out(170) <= \<const0>\; + rxdata_out(169) <= \<const0>\; + rxdata_out(168) <= \<const0>\; + rxdata_out(167) <= \<const0>\; + rxdata_out(166) <= \<const0>\; + rxdata_out(165) <= \<const0>\; + rxdata_out(164) <= \<const0>\; + rxdata_out(163) <= \<const0>\; + rxdata_out(162) <= \<const0>\; + rxdata_out(161) <= \<const0>\; + rxdata_out(160) <= \<const0>\; + rxdata_out(159) <= \<const0>\; + rxdata_out(158) <= \<const0>\; + rxdata_out(157) <= \<const0>\; + rxdata_out(156) <= \<const0>\; + rxdata_out(155) <= \<const0>\; + rxdata_out(154) <= \<const0>\; + rxdata_out(153) <= \<const0>\; + rxdata_out(152) <= \<const0>\; + rxdata_out(151) <= \<const0>\; + rxdata_out(150) <= \<const0>\; + rxdata_out(149) <= \<const0>\; + rxdata_out(148) <= \<const0>\; + rxdata_out(147) <= \<const0>\; + rxdata_out(146) <= \<const0>\; + rxdata_out(145) <= \<const0>\; + rxdata_out(144) <= \<const0>\; + rxdata_out(143) <= \<const0>\; + rxdata_out(142) <= \<const0>\; + rxdata_out(141) <= \<const0>\; + rxdata_out(140) <= \<const0>\; + rxdata_out(139) <= \<const0>\; + rxdata_out(138) <= \<const0>\; + rxdata_out(137) <= \<const0>\; + rxdata_out(136) <= \<const0>\; + rxdata_out(135) <= \<const0>\; + rxdata_out(134) <= \<const0>\; + rxdata_out(133) <= \<const0>\; + rxdata_out(132) <= \<const0>\; + rxdata_out(131) <= \<const0>\; + rxdata_out(130) <= \<const0>\; + rxdata_out(129) <= \<const0>\; + rxdata_out(128) <= \<const0>\; + rxdata_out(127) <= \<const0>\; + rxdata_out(126) <= \<const0>\; + rxdata_out(125) <= \<const0>\; + rxdata_out(124) <= \<const0>\; + rxdata_out(123) <= \<const0>\; + rxdata_out(122) <= \<const0>\; + rxdata_out(121) <= \<const0>\; + rxdata_out(120) <= \<const0>\; + rxdata_out(119) <= \<const0>\; + rxdata_out(118) <= \<const0>\; + rxdata_out(117) <= \<const0>\; + rxdata_out(116) <= \<const0>\; + rxdata_out(115) <= \<const0>\; + rxdata_out(114) <= \<const0>\; + rxdata_out(113) <= \<const0>\; + rxdata_out(112) <= \<const0>\; + rxdata_out(111) <= \<const0>\; + rxdata_out(110) <= \<const0>\; + rxdata_out(109) <= \<const0>\; + rxdata_out(108) <= \<const0>\; + rxdata_out(107) <= \<const0>\; + rxdata_out(106) <= \<const0>\; + rxdata_out(105) <= \<const0>\; + rxdata_out(104) <= \<const0>\; + rxdata_out(103) <= \<const0>\; + rxdata_out(102) <= \<const0>\; + rxdata_out(101) <= \<const0>\; + rxdata_out(100) <= \<const0>\; + rxdata_out(99) <= \<const0>\; + rxdata_out(98) <= \<const0>\; + rxdata_out(97) <= \<const0>\; + rxdata_out(96) <= \<const0>\; + rxdata_out(95) <= \<const0>\; + rxdata_out(94) <= \<const0>\; + rxdata_out(93) <= \<const0>\; + rxdata_out(92) <= \<const0>\; + rxdata_out(91) <= \<const0>\; + rxdata_out(90) <= \<const0>\; + rxdata_out(89) <= \<const0>\; + rxdata_out(88) <= \<const0>\; + rxdata_out(87) <= \<const0>\; + rxdata_out(86) <= \<const0>\; + rxdata_out(85) <= \<const0>\; + rxdata_out(84) <= \<const0>\; + rxdata_out(83) <= \<const0>\; + rxdata_out(82) <= \<const0>\; + rxdata_out(81) <= \<const0>\; + rxdata_out(80) <= \<const0>\; + rxdata_out(79) <= \<const0>\; + rxdata_out(78) <= \<const0>\; + rxdata_out(77) <= \<const0>\; + rxdata_out(76) <= \<const0>\; + rxdata_out(75) <= \<const0>\; + rxdata_out(74) <= \<const0>\; + rxdata_out(73) <= \<const0>\; + rxdata_out(72) <= \<const0>\; + rxdata_out(71) <= \<const0>\; + rxdata_out(70) <= \<const0>\; + rxdata_out(69) <= \<const0>\; + rxdata_out(68) <= \<const0>\; + rxdata_out(67) <= \<const0>\; + rxdata_out(66) <= \<const0>\; + rxdata_out(65) <= \<const0>\; + rxdata_out(64) <= \<const0>\; + rxdata_out(63) <= \<const0>\; + rxdata_out(62) <= \<const0>\; + rxdata_out(61) <= \<const0>\; + rxdata_out(60) <= \<const0>\; + rxdata_out(59) <= \<const0>\; + rxdata_out(58) <= \<const0>\; + rxdata_out(57) <= \<const0>\; + rxdata_out(56) <= \<const0>\; + rxdata_out(55) <= \<const0>\; + rxdata_out(54) <= \<const0>\; + rxdata_out(53) <= \<const0>\; + rxdata_out(52) <= \<const0>\; + rxdata_out(51) <= \<const0>\; + rxdata_out(50) <= \<const0>\; + rxdata_out(49) <= \<const0>\; + rxdata_out(48) <= \<const0>\; + rxdata_out(47) <= \<const0>\; + rxdata_out(46) <= \<const0>\; + rxdata_out(45) <= \<const0>\; + rxdata_out(44) <= \<const0>\; + rxdata_out(43) <= \<const0>\; + rxdata_out(42) <= \<const0>\; + rxdata_out(41) <= \<const0>\; + rxdata_out(40) <= \<const0>\; + rxdata_out(39) <= \<const0>\; + rxdata_out(38) <= \<const0>\; + rxdata_out(37) <= \<const0>\; + rxdata_out(36) <= \<const0>\; + rxdata_out(35) <= \<const0>\; + rxdata_out(34) <= \<const0>\; + rxdata_out(33) <= \<const0>\; + rxdata_out(32) <= \<const0>\; + rxdata_out(31) <= \<const0>\; + rxdata_out(30) <= \<const0>\; + rxdata_out(29) <= \<const0>\; + rxdata_out(28) <= \<const0>\; + rxdata_out(27) <= \<const0>\; + rxdata_out(26) <= \<const0>\; + rxdata_out(25) <= \<const0>\; + rxdata_out(24) <= \<const0>\; + rxdata_out(23) <= \<const0>\; + rxdata_out(22) <= \<const0>\; + rxdata_out(21) <= \<const0>\; + rxdata_out(20) <= \<const0>\; + rxdata_out(19) <= \<const0>\; + rxdata_out(18) <= \<const0>\; + rxdata_out(17) <= \<const0>\; + rxdata_out(16) <= \<const0>\; + rxdata_out(15) <= \<const0>\; + rxdata_out(14) <= \<const0>\; + rxdata_out(13) <= \<const0>\; + rxdata_out(12) <= \<const0>\; + rxdata_out(11) <= \<const0>\; + rxdata_out(10) <= \<const0>\; + rxdata_out(9) <= \<const0>\; + rxdata_out(8) <= \<const0>\; + rxdata_out(7) <= \<const0>\; + rxdata_out(6) <= \<const0>\; + rxdata_out(5) <= \<const0>\; + rxdata_out(4) <= \<const0>\; + rxdata_out(3) <= \<const0>\; + rxdata_out(2) <= \<const0>\; + rxdata_out(1) <= \<const0>\; + rxdata_out(0) <= \<const0>\; + rxdataextendrsvd_out(31) <= \<const0>\; + rxdataextendrsvd_out(30) <= \<const0>\; + rxdataextendrsvd_out(29) <= \<const0>\; + rxdataextendrsvd_out(28) <= \<const0>\; + rxdataextendrsvd_out(27) <= \<const0>\; + rxdataextendrsvd_out(26) <= \<const0>\; + rxdataextendrsvd_out(25) <= \<const0>\; + rxdataextendrsvd_out(24) <= \<const0>\; + rxdataextendrsvd_out(23) <= \<const0>\; + rxdataextendrsvd_out(22) <= \<const0>\; + rxdataextendrsvd_out(21) <= \<const0>\; + rxdataextendrsvd_out(20) <= \<const0>\; + rxdataextendrsvd_out(19) <= \<const0>\; + rxdataextendrsvd_out(18) <= \<const0>\; + rxdataextendrsvd_out(17) <= \<const0>\; + rxdataextendrsvd_out(16) <= \<const0>\; + rxdataextendrsvd_out(15) <= \<const0>\; + rxdataextendrsvd_out(14) <= \<const0>\; + rxdataextendrsvd_out(13) <= \<const0>\; + rxdataextendrsvd_out(12) <= \<const0>\; + rxdataextendrsvd_out(11) <= \<const0>\; + rxdataextendrsvd_out(10) <= \<const0>\; + rxdataextendrsvd_out(9) <= \<const0>\; + rxdataextendrsvd_out(8) <= \<const0>\; + rxdataextendrsvd_out(7) <= \<const0>\; + rxdataextendrsvd_out(6) <= \<const0>\; + rxdataextendrsvd_out(5) <= \<const0>\; + rxdataextendrsvd_out(4) <= \<const0>\; + rxdataextendrsvd_out(3) <= \<const0>\; + rxdataextendrsvd_out(2) <= \<const0>\; + rxdataextendrsvd_out(1) <= \<const0>\; + rxdataextendrsvd_out(0) <= \<const0>\; + rxdatavalid_out(7) <= \<const0>\; + rxdatavalid_out(6) <= \<const0>\; + rxdatavalid_out(5) <= \<const0>\; + rxdatavalid_out(4) <= \<const0>\; + rxdatavalid_out(3) <= \<const0>\; + rxdatavalid_out(2) <= \<const0>\; + rxdatavalid_out(1) <= \<const0>\; + rxdatavalid_out(0) <= \<const0>\; + rxdlysresetdone_out(3) <= \<const0>\; + rxdlysresetdone_out(2) <= \<const0>\; + rxdlysresetdone_out(1) <= \<const0>\; + rxdlysresetdone_out(0) <= \<const0>\; + rxelecidle_out(3) <= \<const0>\; + rxelecidle_out(2) <= \<const0>\; + rxelecidle_out(1) <= \<const0>\; + rxelecidle_out(0) <= \<const0>\; + rxheader_out(23) <= \<const0>\; + rxheader_out(22) <= \<const0>\; + rxheader_out(21) <= \<const0>\; + rxheader_out(20) <= \<const0>\; + rxheader_out(19) <= \<const0>\; + rxheader_out(18) <= \<const0>\; + rxheader_out(17) <= \<const0>\; + rxheader_out(16) <= \<const0>\; + rxheader_out(15) <= \<const0>\; + rxheader_out(14) <= \<const0>\; + rxheader_out(13) <= \<const0>\; + rxheader_out(12) <= \<const0>\; + rxheader_out(11) <= \<const0>\; + rxheader_out(10) <= \<const0>\; + rxheader_out(9) <= \<const0>\; + rxheader_out(8) <= \<const0>\; + rxheader_out(7) <= \<const0>\; + rxheader_out(6) <= \<const0>\; + rxheader_out(5) <= \<const0>\; + rxheader_out(4) <= \<const0>\; + rxheader_out(3) <= \<const0>\; + rxheader_out(2) <= \<const0>\; + rxheader_out(1) <= \<const0>\; + rxheader_out(0) <= \<const0>\; + rxheadervalid_out(7) <= \<const0>\; + rxheadervalid_out(6) <= \<const0>\; + rxheadervalid_out(5) <= \<const0>\; + rxheadervalid_out(4) <= \<const0>\; + rxheadervalid_out(3) <= \<const0>\; + rxheadervalid_out(2) <= \<const0>\; + rxheadervalid_out(1) <= \<const0>\; + rxheadervalid_out(0) <= \<const0>\; + rxlfpstresetdet_out(0) <= \<const0>\; + rxlfpsu2lpexitdet_out(0) <= \<const0>\; + rxlfpsu3wakedet_out(0) <= \<const0>\; + rxmonitorout_out(27) <= \<const0>\; + rxmonitorout_out(26) <= \<const0>\; + rxmonitorout_out(25) <= \<const0>\; + rxmonitorout_out(24) <= \<const0>\; + rxmonitorout_out(23) <= \<const0>\; + rxmonitorout_out(22) <= \<const0>\; + rxmonitorout_out(21) <= \<const0>\; + rxmonitorout_out(20) <= \<const0>\; + rxmonitorout_out(19) <= \<const0>\; + rxmonitorout_out(18) <= \<const0>\; + rxmonitorout_out(17) <= \<const0>\; + rxmonitorout_out(16) <= \<const0>\; + rxmonitorout_out(15) <= \<const0>\; + rxmonitorout_out(14) <= \<const0>\; + rxmonitorout_out(13) <= \<const0>\; + rxmonitorout_out(12) <= \<const0>\; + rxmonitorout_out(11) <= \<const0>\; + rxmonitorout_out(10) <= \<const0>\; + rxmonitorout_out(9) <= \<const0>\; + rxmonitorout_out(8) <= \<const0>\; + rxmonitorout_out(7) <= \<const0>\; + rxmonitorout_out(6) <= \<const0>\; + rxmonitorout_out(5) <= \<const0>\; + rxmonitorout_out(4) <= \<const0>\; + rxmonitorout_out(3) <= \<const0>\; + rxmonitorout_out(2) <= \<const0>\; + rxmonitorout_out(1) <= \<const0>\; + rxmonitorout_out(0) <= \<const0>\; + rxosintdone_out(3) <= \<const0>\; + rxosintdone_out(2) <= \<const0>\; + rxosintdone_out(1) <= \<const0>\; + rxosintdone_out(0) <= \<const0>\; + rxosintstarted_out(3) <= \<const0>\; + rxosintstarted_out(2) <= \<const0>\; + rxosintstarted_out(1) <= \<const0>\; + rxosintstarted_out(0) <= \<const0>\; + rxosintstrobedone_out(3) <= \<const0>\; + rxosintstrobedone_out(2) <= \<const0>\; + rxosintstrobedone_out(1) <= \<const0>\; + rxosintstrobedone_out(0) <= \<const0>\; + rxosintstrobestarted_out(3) <= \<const0>\; + rxosintstrobestarted_out(2) <= \<const0>\; + rxosintstrobestarted_out(1) <= \<const0>\; + rxosintstrobestarted_out(0) <= \<const0>\; + rxoutclkfabric_out(3) <= \<const0>\; + rxoutclkfabric_out(2) <= \<const0>\; + rxoutclkfabric_out(1) <= \<const0>\; + rxoutclkfabric_out(0) <= \<const0>\; + rxoutclkpcs_out(3) <= \<const0>\; + rxoutclkpcs_out(2) <= \<const0>\; + rxoutclkpcs_out(1) <= \<const0>\; + rxoutclkpcs_out(0) <= \<const0>\; + rxphaligndone_out(3) <= \<const0>\; + rxphaligndone_out(2) <= \<const0>\; + rxphaligndone_out(1) <= \<const0>\; + rxphaligndone_out(0) <= \<const0>\; + rxphalignerr_out(3) <= \<const0>\; + rxphalignerr_out(2) <= \<const0>\; + rxphalignerr_out(1) <= \<const0>\; + rxphalignerr_out(0) <= \<const0>\; + rxprbserr_out(3) <= \<const0>\; + rxprbserr_out(2) <= \<const0>\; + rxprbserr_out(1) <= \<const0>\; + rxprbserr_out(0) <= \<const0>\; + rxprbslocked_out(3) <= \<const0>\; + rxprbslocked_out(2) <= \<const0>\; + rxprbslocked_out(1) <= \<const0>\; + rxprbslocked_out(0) <= \<const0>\; + rxprgdivresetdone_out(3) <= \<const0>\; + rxprgdivresetdone_out(2) <= \<const0>\; + rxprgdivresetdone_out(1) <= \<const0>\; + rxprgdivresetdone_out(0) <= \<const0>\; + rxqpisenn_out(3) <= \<const0>\; + rxqpisenn_out(2) <= \<const0>\; + rxqpisenn_out(1) <= \<const0>\; + rxqpisenn_out(0) <= \<const0>\; + rxqpisenp_out(3) <= \<const0>\; + rxqpisenp_out(2) <= \<const0>\; + rxqpisenp_out(1) <= \<const0>\; + rxqpisenp_out(0) <= \<const0>\; + rxratedone_out(3) <= \<const0>\; + rxratedone_out(2) <= \<const0>\; + rxratedone_out(1) <= \<const0>\; + rxratedone_out(0) <= \<const0>\; + rxrecclk0_sel_out(1) <= \<const0>\; + rxrecclk0_sel_out(0) <= \<const0>\; + rxrecclk0sel_out(0) <= \<const0>\; + rxrecclk1_sel_out(1) <= \<const0>\; + rxrecclk1_sel_out(0) <= \<const0>\; + rxrecclk1sel_out(0) <= \<const0>\; + rxrecclkout_out(3) <= \<const0>\; + rxrecclkout_out(2) <= \<const0>\; + rxrecclkout_out(1) <= \<const0>\; + rxrecclkout_out(0) <= \<const0>\; + rxsliderdy_out(3) <= \<const0>\; + rxsliderdy_out(2) <= \<const0>\; + rxsliderdy_out(1) <= \<const0>\; + rxsliderdy_out(0) <= \<const0>\; + rxslipdone_out(3) <= \<const0>\; + rxslipdone_out(2) <= \<const0>\; + rxslipdone_out(1) <= \<const0>\; + rxslipdone_out(0) <= \<const0>\; + rxslipoutclkrdy_out(3) <= \<const0>\; + rxslipoutclkrdy_out(2) <= \<const0>\; + rxslipoutclkrdy_out(1) <= \<const0>\; + rxslipoutclkrdy_out(0) <= \<const0>\; + rxslippmardy_out(3) <= \<const0>\; + rxslippmardy_out(2) <= \<const0>\; + rxslippmardy_out(1) <= \<const0>\; + rxslippmardy_out(0) <= \<const0>\; + rxstartofseq_out(7) <= \<const0>\; + rxstartofseq_out(6) <= \<const0>\; + rxstartofseq_out(5) <= \<const0>\; + rxstartofseq_out(4) <= \<const0>\; + rxstartofseq_out(3) <= \<const0>\; + rxstartofseq_out(2) <= \<const0>\; + rxstartofseq_out(1) <= \<const0>\; + rxstartofseq_out(0) <= \<const0>\; + rxstatus_out(11) <= \<const0>\; + rxstatus_out(10) <= \<const0>\; + rxstatus_out(9) <= \<const0>\; + rxstatus_out(8) <= \<const0>\; + rxstatus_out(7) <= \<const0>\; + rxstatus_out(6) <= \<const0>\; + rxstatus_out(5) <= \<const0>\; + rxstatus_out(4) <= \<const0>\; + rxstatus_out(3) <= \<const0>\; + rxstatus_out(2) <= \<const0>\; + rxstatus_out(1) <= \<const0>\; + rxstatus_out(0) <= \<const0>\; + rxsyncdone_out(3) <= \<const0>\; + rxsyncdone_out(2) <= \<const0>\; + rxsyncdone_out(1) <= \<const0>\; + rxsyncdone_out(0) <= \<const0>\; + rxsyncout_out(3) <= \<const0>\; + rxsyncout_out(2) <= \<const0>\; + rxsyncout_out(1) <= \<const0>\; + rxsyncout_out(0) <= \<const0>\; + rxvalid_out(3) <= \<const0>\; + rxvalid_out(2) <= \<const0>\; + rxvalid_out(1) <= \<const0>\; + rxvalid_out(0) <= \<const0>\; + sdm0finalout_out(0) <= \<const0>\; + sdm0testdata_out(0) <= \<const0>\; + sdm1finalout_out(0) <= \<const0>\; + sdm1testdata_out(0) <= \<const0>\; + tcongpo_out(0) <= \<const0>\; + tconrsvdout0_out(0) <= \<const0>\; + txbufstatus_out(7) <= \<const0>\; + txbufstatus_out(6) <= \<const0>\; + txbufstatus_out(5) <= \<const0>\; + txbufstatus_out(4) <= \<const0>\; + txbufstatus_out(3) <= \<const0>\; + txbufstatus_out(2) <= \<const0>\; + txbufstatus_out(1) <= \<const0>\; + txbufstatus_out(0) <= \<const0>\; + txcomfinish_out(3) <= \<const0>\; + txcomfinish_out(2) <= \<const0>\; + txcomfinish_out(1) <= \<const0>\; + txcomfinish_out(0) <= \<const0>\; + txdccdone_out(0) <= \<const0>\; + txdlysresetdone_out(3) <= \<const0>\; + txdlysresetdone_out(2) <= \<const0>\; + txdlysresetdone_out(1) <= \<const0>\; + txdlysresetdone_out(0) <= \<const0>\; + txoutclkfabric_out(3) <= \<const0>\; + txoutclkfabric_out(2) <= \<const0>\; + txoutclkfabric_out(1) <= \<const0>\; + txoutclkfabric_out(0) <= \<const0>\; + txoutclkpcs_out(3) <= \<const0>\; + txoutclkpcs_out(2) <= \<const0>\; + txoutclkpcs_out(1) <= \<const0>\; + txoutclkpcs_out(0) <= \<const0>\; + txphaligndone_out(3) <= \<const0>\; + txphaligndone_out(2) <= \<const0>\; + txphaligndone_out(1) <= \<const0>\; + txphaligndone_out(0) <= \<const0>\; + txphinitdone_out(3) <= \<const0>\; + txphinitdone_out(2) <= \<const0>\; + txphinitdone_out(1) <= \<const0>\; + txphinitdone_out(0) <= \<const0>\; + txprgdivresetdone_out(3) <= \<const0>\; + txprgdivresetdone_out(2) <= \<const0>\; + txprgdivresetdone_out(1) <= \<const0>\; + txprgdivresetdone_out(0) <= \<const0>\; + txqpisenn_out(3) <= \<const0>\; + txqpisenn_out(2) <= \<const0>\; + txqpisenn_out(1) <= \<const0>\; + txqpisenn_out(0) <= \<const0>\; + txqpisenp_out(3) <= \<const0>\; + txqpisenp_out(2) <= \<const0>\; + txqpisenp_out(1) <= \<const0>\; + txqpisenp_out(0) <= \<const0>\; + txratedone_out(3) <= \<const0>\; + txratedone_out(2) <= \<const0>\; + txratedone_out(1) <= \<const0>\; + txratedone_out(0) <= \<const0>\; + txsyncdone_out(3) <= \<const0>\; + txsyncdone_out(2) <= \<const0>\; + txsyncdone_out(1) <= \<const0>\; + txsyncdone_out(0) <= \<const0>\; + txsyncout_out(3) <= \<const0>\; + txsyncout_out(2) <= \<const0>\; + txsyncout_out(1) <= \<const0>\; + txsyncout_out(0) <= \<const0>\; + ubdaddr_out(0) <= \<const0>\; + ubden_out(0) <= \<const0>\; + ubdi_out(0) <= \<const0>\; + ubdwe_out(0) <= \<const0>\; + ubmdmtdo_out(0) <= \<const0>\; + ubrsvdout_out(0) <= \<const0>\; + ubtxuart_out(0) <= \<const0>\; +GND: unisim.vcomponents.GND + port map ( + G => \<const0>\ + ); +\gen_gtwizard_gthe3_top.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_gthe3_inst\: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_gthe3 + port map ( + cplllock_out(3 downto 0) => cplllock_out(3 downto 0), + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtpowergood_out(3 downto 0) => gtpowergood_out(3 downto 0), + gtrefclk01_in(0) => gtrefclk01_in(0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtwiz_buffbypass_tx_done_out(0) => gtwiz_buffbypass_tx_done_out(0), + gtwiz_buffbypass_tx_error_out(0) => gtwiz_buffbypass_tx_error_out(0), + gtwiz_buffbypass_tx_reset_in(0) => gtwiz_buffbypass_tx_reset_in(0), + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_cdr_stable_out(0) => gtwiz_reset_rx_cdr_stable_out(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + gtwiz_userdata_rx_out(79 downto 0) => gtwiz_userdata_rx_out(79 downto 0), + gtwiz_userdata_tx_in(79 downto 0) => gtwiz_userdata_tx_in(79 downto 0), + loopback_in(11 downto 0) => loopback_in(11 downto 0), + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0lock_out(0) => qpll0lock_out(0), + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1lock_out(0) => qpll1lock_out(0), + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => rxcdrlock_out(3 downto 0), + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxresetdone_out(3 downto 0) => rxresetdone_out(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txresetdone_out(3 downto 0) => txresetdone_out(3 downto 0), + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0 is + port ( + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_cdr_stable_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 79 downto 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 79 downto 0 ); + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0 : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0 : entity is "KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0,KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top,{}"; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0 : entity is "yes"; + attribute X_CORE_INFO : string; + attribute X_CORE_INFO of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0 : entity is "KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top,Vivado 2024.1"; +end KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0; + +architecture STRUCTURE of KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0 is + signal NLW_inst_bufgtce_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_bufgtcemask_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_bufgtdiv_out_UNCONNECTED : STD_LOGIC_VECTOR ( 35 downto 0 ); + signal NLW_inst_bufgtreset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_bufgtrstmask_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_cpllfbclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_cpllrefclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_dmonitorout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 67 downto 0 ); + signal NLW_inst_dmonitoroutclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_drpdo_common_out_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 ); + signal NLW_inst_drpdo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_drprdy_common_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_drprdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_eyescandataerror_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_gtrefclkmonitor_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_gtwiz_buffbypass_rx_done_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_buffbypass_rx_error_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_reset_qpll0reset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_reset_qpll1reset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_active_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_srcclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_usrclk2_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_usrclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_active_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_srcclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_usrclk2_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_usrclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtytxn_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtytxp_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_pcierategen3_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcierateidle_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcierateqpllpd_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_pcierateqpllreset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_pciesynctxsyncdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcieusergen3rdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcieuserphystatusrst_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcieuserratestart_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcsrsvdout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 47 downto 0 ); + signal NLW_inst_phystatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pinrsrvdas_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_pmarsvdout0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_pmarsvdout1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_powerpresent_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll0outclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll0outrefclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll0refclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll1refclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qplldmonitor0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_qplldmonitor1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_refclkoutmonitor0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_refclkoutmonitor1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_resetexception_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxbufstatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_rxbyteisaligned_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxbyterealign_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcdrphdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchanbondseq_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchanisaligned_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchanrealign_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchbondo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 19 downto 0 ); + signal NLW_inst_rxckcaldone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxclkcorcnt_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxcominitdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcommadet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcomsasdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcomwakedet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxctrl0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_rxctrl1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_rxctrl2_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_rxctrl3_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_rxdata_out_UNCONNECTED : STD_LOGIC_VECTOR ( 511 downto 0 ); + signal NLW_inst_rxdataextendrsvd_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_rxdatavalid_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxdlysresetdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxelecidle_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxheader_out_UNCONNECTED : STD_LOGIC_VECTOR ( 23 downto 0 ); + signal NLW_inst_rxheadervalid_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxlfpstresetdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxlfpsu2lpexitdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxlfpsu3wakedet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxmonitorout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 27 downto 0 ); + signal NLW_inst_rxosintdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxosintstarted_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxosintstrobedone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxosintstrobestarted_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxoutclkfabric_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxoutclkpcs_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxphaligndone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxphalignerr_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxprbserr_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxprbslocked_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxprgdivresetdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxqpisenn_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxqpisenp_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxratedone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxrecclk0_sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_rxrecclk0sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxrecclk1_sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_rxrecclk1sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxrecclkout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxsliderdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxslipdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxslipoutclkrdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxslippmardy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxstartofseq_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxstatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_rxsyncdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxsyncout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxvalid_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_sdm0finalout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_sdm0testdata_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_sdm1finalout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_sdm1testdata_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_tcongpo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_tconrsvdout0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_txbufstatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_txcomfinish_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txdccdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_txdlysresetdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txoutclkfabric_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txoutclkpcs_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txphaligndone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txphinitdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txprgdivresetdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txqpisenn_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txqpisenp_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txratedone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txsyncdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txsyncout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_ubdaddr_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubden_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubdi_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubdwe_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubmdmtdo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubrsvdout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubtxuart_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + attribute C_CHANNEL_ENABLE : string; + attribute C_CHANNEL_ENABLE of inst : label is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100000000"; + attribute C_COMMON_SCALING_FACTOR : integer; + attribute C_COMMON_SCALING_FACTOR of inst : label is 1; + attribute C_CPLL_VCO_FREQUENCY : string; + attribute C_CPLL_VCO_FREQUENCY of inst : label is "2400.000000"; + attribute C_ENABLE_COMMON_USRCLK : integer; + attribute C_ENABLE_COMMON_USRCLK of inst : label is 0; + attribute C_FORCE_COMMONS : integer; + attribute C_FORCE_COMMONS of inst : label is 0; + attribute C_FREERUN_FREQUENCY : string; + attribute C_FREERUN_FREQUENCY of inst : label is "40.000000"; + attribute C_GT_REV : integer; + attribute C_GT_REV of inst : label is 17; + attribute C_GT_TYPE : integer; + attribute C_GT_TYPE of inst : label is 0; + attribute C_INCLUDE_CPLL_CAL : integer; + attribute C_INCLUDE_CPLL_CAL of inst : label is 2; + attribute C_LOCATE_COMMON : integer; + attribute C_LOCATE_COMMON of inst : label is 0; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE : integer; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE of inst : label is 2; + attribute C_LOCATE_RESET_CONTROLLER : integer; + attribute C_LOCATE_RESET_CONTROLLER of inst : label is 0; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER of inst : label is 0; + attribute C_LOCATE_RX_USER_CLOCKING : integer; + attribute C_LOCATE_RX_USER_CLOCKING of inst : label is 1; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER of inst : label is 0; + attribute C_LOCATE_TX_USER_CLOCKING : integer; + attribute C_LOCATE_TX_USER_CLOCKING of inst : label is 1; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING : integer; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING of inst : label is 0; + attribute C_PCIE_CORECLK_FREQ : integer; + attribute C_PCIE_CORECLK_FREQ of inst : label is 250; + attribute C_PCIE_ENABLE : integer; + attribute C_PCIE_ENABLE of inst : label is 0; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL : integer; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL of inst : label is 0; + attribute C_RESET_SEQUENCE_INTERVAL : integer; + attribute C_RESET_SEQUENCE_INTERVAL of inst : label is 0; + attribute C_RX_BUFFBYPASS_MODE : integer; + attribute C_RX_BUFFBYPASS_MODE of inst : label is 0; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL of inst : label is 0; + attribute C_RX_BUFFER_MODE : integer; + attribute C_RX_BUFFER_MODE of inst : label is 1; + attribute C_RX_CB_DISP : string; + attribute C_RX_CB_DISP of inst : label is "8'b00000000"; + attribute C_RX_CB_K : string; + attribute C_RX_CB_K of inst : label is "8'b00000000"; + attribute C_RX_CB_LEN_SEQ : integer; + attribute C_RX_CB_LEN_SEQ of inst : label is 1; + attribute C_RX_CB_MAX_LEVEL : integer; + attribute C_RX_CB_MAX_LEVEL of inst : label is 2; + attribute C_RX_CB_NUM_SEQ : integer; + attribute C_RX_CB_NUM_SEQ of inst : label is 0; + attribute C_RX_CB_VAL : string; + attribute C_RX_CB_VAL of inst : label is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_CC_DISP : string; + attribute C_RX_CC_DISP of inst : label is "8'b00000000"; + attribute C_RX_CC_ENABLE : integer; + attribute C_RX_CC_ENABLE of inst : label is 0; + attribute C_RX_CC_K : string; + attribute C_RX_CC_K of inst : label is "8'b00000000"; + attribute C_RX_CC_LEN_SEQ : integer; + attribute C_RX_CC_LEN_SEQ of inst : label is 1; + attribute C_RX_CC_NUM_SEQ : integer; + attribute C_RX_CC_NUM_SEQ of inst : label is 0; + attribute C_RX_CC_PERIODICITY : integer; + attribute C_RX_CC_PERIODICITY of inst : label is 5000; + attribute C_RX_CC_VAL : string; + attribute C_RX_CC_VAL of inst : label is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_COMMA_M_ENABLE : integer; + attribute C_RX_COMMA_M_ENABLE of inst : label is 0; + attribute C_RX_COMMA_M_VAL : string; + attribute C_RX_COMMA_M_VAL of inst : label is "10'b1010000011"; + attribute C_RX_COMMA_P_ENABLE : integer; + attribute C_RX_COMMA_P_ENABLE of inst : label is 0; + attribute C_RX_COMMA_P_VAL : string; + attribute C_RX_COMMA_P_VAL of inst : label is "10'b0101111100"; + attribute C_RX_DATA_DECODING : integer; + attribute C_RX_DATA_DECODING of inst : label is 0; + attribute C_RX_ENABLE : integer; + attribute C_RX_ENABLE of inst : label is 1; + attribute C_RX_INT_DATA_WIDTH : integer; + attribute C_RX_INT_DATA_WIDTH of inst : label is 20; + attribute C_RX_LINE_RATE : string; + attribute C_RX_LINE_RATE of inst : label is "4.800000"; + attribute C_RX_MASTER_CHANNEL_IDX : integer; + attribute C_RX_MASTER_CHANNEL_IDX of inst : label is 8; + attribute C_RX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_RX_OUTCLK_BUFG_GT_DIV of inst : label is 1; + attribute C_RX_OUTCLK_FREQUENCY : string; + attribute C_RX_OUTCLK_FREQUENCY of inst : label is "240.000000"; + attribute C_RX_OUTCLK_SOURCE : integer; + attribute C_RX_OUTCLK_SOURCE of inst : label is 1; + attribute C_RX_PLL_TYPE : integer; + attribute C_RX_PLL_TYPE of inst : label is 2; + attribute C_RX_RECCLK_OUTPUT : string; + attribute C_RX_RECCLK_OUTPUT of inst : label is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_REFCLK_FREQUENCY : string; + attribute C_RX_REFCLK_FREQUENCY of inst : label is "240.000000"; + attribute C_RX_SLIDE_MODE : integer; + attribute C_RX_SLIDE_MODE of inst : label is 2; + attribute C_RX_USER_CLOCKING_CONTENTS : integer; + attribute C_RX_USER_CLOCKING_CONTENTS of inst : label is 0; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL of inst : label is 0; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of inst : label is 1; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of inst : label is 1; + attribute C_RX_USER_CLOCKING_SOURCE : integer; + attribute C_RX_USER_CLOCKING_SOURCE of inst : label is 0; + attribute C_RX_USER_DATA_WIDTH : integer; + attribute C_RX_USER_DATA_WIDTH of inst : label is 20; + attribute C_RX_USRCLK2_FREQUENCY : string; + attribute C_RX_USRCLK2_FREQUENCY of inst : label is "240.000000"; + attribute C_RX_USRCLK_FREQUENCY : string; + attribute C_RX_USRCLK_FREQUENCY of inst : label is "240.000000"; + attribute C_SECONDARY_QPLL_ENABLE : integer; + attribute C_SECONDARY_QPLL_ENABLE of inst : label is 0; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY : string; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY of inst : label is "257.812500"; + attribute C_SIM_CPLL_CAL_BYPASS : integer; + attribute C_SIM_CPLL_CAL_BYPASS of inst : label is 1; + attribute C_TOTAL_NUM_CHANNELS : integer; + attribute C_TOTAL_NUM_CHANNELS of inst : label is 4; + attribute C_TOTAL_NUM_COMMONS : integer; + attribute C_TOTAL_NUM_COMMONS of inst : label is 1; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE : integer; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE of inst : label is 0; + attribute C_TXPROGDIV_FREQ_ENABLE : integer; + attribute C_TXPROGDIV_FREQ_ENABLE of inst : label is 0; + attribute C_TXPROGDIV_FREQ_SOURCE : integer; + attribute C_TXPROGDIV_FREQ_SOURCE of inst : label is 1; + attribute C_TXPROGDIV_FREQ_VAL : string; + attribute C_TXPROGDIV_FREQ_VAL of inst : label is "240.000000"; + attribute C_TX_BUFFBYPASS_MODE : integer; + attribute C_TX_BUFFBYPASS_MODE of inst : label is 0; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL of inst : label is 0; + attribute C_TX_BUFFER_MODE : integer; + attribute C_TX_BUFFER_MODE of inst : label is 0; + attribute C_TX_DATA_ENCODING : integer; + attribute C_TX_DATA_ENCODING of inst : label is 0; + attribute C_TX_ENABLE : integer; + attribute C_TX_ENABLE of inst : label is 1; + attribute C_TX_INT_DATA_WIDTH : integer; + attribute C_TX_INT_DATA_WIDTH of inst : label is 20; + attribute C_TX_LINE_RATE : string; + attribute C_TX_LINE_RATE of inst : label is "4.800000"; + attribute C_TX_MASTER_CHANNEL_IDX : integer; + attribute C_TX_MASTER_CHANNEL_IDX of inst : label is 8; + attribute C_TX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_TX_OUTCLK_BUFG_GT_DIV of inst : label is 1; + attribute C_TX_OUTCLK_FREQUENCY : string; + attribute C_TX_OUTCLK_FREQUENCY of inst : label is "240.000000"; + attribute C_TX_OUTCLK_SOURCE : integer; + attribute C_TX_OUTCLK_SOURCE of inst : label is 2; + attribute C_TX_PLL_TYPE : integer; + attribute C_TX_PLL_TYPE of inst : label is 1; + attribute C_TX_REFCLK_FREQUENCY : string; + attribute C_TX_REFCLK_FREQUENCY of inst : label is "240.000000"; + attribute C_TX_USER_CLOCKING_CONTENTS : integer; + attribute C_TX_USER_CLOCKING_CONTENTS of inst : label is 0; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL of inst : label is 0; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of inst : label is 1; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of inst : label is 1; + attribute C_TX_USER_CLOCKING_SOURCE : integer; + attribute C_TX_USER_CLOCKING_SOURCE of inst : label is 0; + attribute C_TX_USER_DATA_WIDTH : integer; + attribute C_TX_USER_DATA_WIDTH of inst : label is 20; + attribute C_TX_USRCLK2_FREQUENCY : string; + attribute C_TX_USRCLK2_FREQUENCY of inst : label is "240.000000"; + attribute C_TX_USRCLK_FREQUENCY : string; + attribute C_TX_USRCLK_FREQUENCY of inst : label is "240.000000"; + attribute C_USER_GTPOWERGOOD_DELAY_EN : integer; + attribute C_USER_GTPOWERGOOD_DELAY_EN of inst : label is 0; +begin +inst: entity work.KCU_RXBUF_PMA_QPLLTXGTREF1_CPLLRXGTREF0_gtwizard_top + port map ( + bgbypassb_in(0) => '1', + bgmonitorenb_in(0) => '1', + bgpdb_in(0) => '1', + bgrcalovrd_in(4 downto 0) => B"11111", + bgrcalovrdenb_in(0) => '1', + bufgtce_out(11 downto 0) => NLW_inst_bufgtce_out_UNCONNECTED(11 downto 0), + bufgtcemask_out(11 downto 0) => NLW_inst_bufgtcemask_out_UNCONNECTED(11 downto 0), + bufgtdiv_out(35 downto 0) => NLW_inst_bufgtdiv_out_UNCONNECTED(35 downto 0), + bufgtreset_out(11 downto 0) => NLW_inst_bufgtreset_out_UNCONNECTED(11 downto 0), + bufgtrstmask_out(11 downto 0) => NLW_inst_bufgtrstmask_out_UNCONNECTED(11 downto 0), + cdrstepdir_in(0) => '0', + cdrstepsq_in(0) => '0', + cdrstepsx_in(0) => '0', + cfgreset_in(3 downto 0) => B"0000", + clkrsvd0_in(3 downto 0) => B"0000", + clkrsvd1_in(3 downto 0) => B"0000", + cpllfbclklost_out(3 downto 0) => NLW_inst_cpllfbclklost_out_UNCONNECTED(3 downto 0), + cpllfreqlock_in(0) => '0', + cplllock_out(3 downto 0) => cplllock_out(3 downto 0), + cplllockdetclk_in(3 downto 0) => B"0000", + cplllocken_in(3 downto 0) => B"1111", + cpllpd_in(3 downto 0) => B"0000", + cpllrefclklost_out(3 downto 0) => NLW_inst_cpllrefclklost_out_UNCONNECTED(3 downto 0), + cpllrefclksel_in(11 downto 0) => B"001001001001", + cpllreset_in(3 downto 0) => B"0000", + dmonfiforeset_in(3 downto 0) => B"0000", + dmonitorclk_in(3 downto 0) => B"0000", + dmonitorout_out(67 downto 0) => NLW_inst_dmonitorout_out_UNCONNECTED(67 downto 0), + dmonitoroutclk_out(0) => NLW_inst_dmonitoroutclk_out_UNCONNECTED(0), + drpaddr_common_in(8 downto 0) => B"000000000", + drpaddr_in(35 downto 0) => B"000000000000000000000000000000000000", + drpclk_common_in(0) => '0', + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + drpdi_common_in(15 downto 0) => B"0000000000000000", + drpdi_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + drpdo_common_out(15 downto 0) => NLW_inst_drpdo_common_out_UNCONNECTED(15 downto 0), + drpdo_out(63 downto 0) => NLW_inst_drpdo_out_UNCONNECTED(63 downto 0), + drpen_common_in(0) => '0', + drpen_in(3 downto 0) => B"0000", + drprdy_common_out(0) => NLW_inst_drprdy_common_out_UNCONNECTED(0), + drprdy_out(3 downto 0) => NLW_inst_drprdy_out_UNCONNECTED(3 downto 0), + drprst_in(0) => '0', + drpwe_common_in(0) => '0', + drpwe_in(3 downto 0) => B"0000", + elpcaldvorwren_in(0) => '0', + elpcalpaorwren_in(0) => '0', + evoddphicaldone_in(3 downto 0) => B"0000", + evoddphicalstart_in(3 downto 0) => B"0000", + evoddphidrden_in(3 downto 0) => B"0000", + evoddphidwren_in(3 downto 0) => B"0000", + evoddphixrden_in(3 downto 0) => B"0000", + evoddphixwren_in(3 downto 0) => B"0000", + eyescandataerror_out(3 downto 0) => NLW_inst_eyescandataerror_out_UNCONNECTED(3 downto 0), + eyescanmode_in(3 downto 0) => B"0000", + eyescanreset_in(3 downto 0) => B"0000", + eyescantrigger_in(3 downto 0) => B"0000", + freqos_in(0) => '0', + gtgrefclk0_in(0) => '0', + gtgrefclk1_in(0) => '0', + gtgrefclk_in(3 downto 0) => B"0000", + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtnorthrefclk00_in(0) => '0', + gtnorthrefclk01_in(0) => '0', + gtnorthrefclk0_in(3 downto 0) => B"0000", + gtnorthrefclk10_in(0) => '0', + gtnorthrefclk11_in(0) => '0', + gtnorthrefclk1_in(3 downto 0) => B"0000", + gtpowergood_out(3 downto 0) => gtpowergood_out(3 downto 0), + gtrefclk00_in(0) => '0', + gtrefclk01_in(0) => gtrefclk01_in(0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtrefclk10_in(0) => '0', + gtrefclk11_in(0) => '0', + gtrefclk1_in(3 downto 0) => B"0000", + gtrefclkmonitor_out(3 downto 0) => NLW_inst_gtrefclkmonitor_out_UNCONNECTED(3 downto 0), + gtresetsel_in(3 downto 0) => B"0000", + gtrsvd_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + gtrxreset_in(3 downto 0) => B"0000", + gtrxresetsel_in(0) => '0', + gtsouthrefclk00_in(0) => '0', + gtsouthrefclk01_in(0) => '0', + gtsouthrefclk0_in(3 downto 0) => B"0000", + gtsouthrefclk10_in(0) => '0', + gtsouthrefclk11_in(0) => '0', + gtsouthrefclk1_in(3 downto 0) => B"0000", + gttxreset_in(3 downto 0) => B"0000", + gttxresetsel_in(0) => '0', + gtwiz_buffbypass_rx_done_out(0) => NLW_inst_gtwiz_buffbypass_rx_done_out_UNCONNECTED(0), + gtwiz_buffbypass_rx_error_out(0) => NLW_inst_gtwiz_buffbypass_rx_error_out_UNCONNECTED(0), + gtwiz_buffbypass_rx_reset_in(0) => '0', + gtwiz_buffbypass_rx_start_user_in(0) => '0', + gtwiz_buffbypass_tx_done_out(0) => gtwiz_buffbypass_tx_done_out(0), + gtwiz_buffbypass_tx_error_out(0) => gtwiz_buffbypass_tx_error_out(0), + gtwiz_buffbypass_tx_reset_in(0) => gtwiz_buffbypass_tx_reset_in(0), + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + gtwiz_gthe3_cpll_cal_bufg_ce_in(3 downto 0) => B"0000", + gtwiz_gthe3_cpll_cal_cnt_tol_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gthe3_cpll_cal_txoutclk_period_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gthe4_cpll_cal_bufg_ce_in(3 downto 0) => B"0000", + gtwiz_gthe4_cpll_cal_cnt_tol_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gthe4_cpll_cal_txoutclk_period_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gtye4_cpll_cal_bufg_ce_in(3 downto 0) => B"0000", + gtwiz_gtye4_cpll_cal_cnt_tol_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gtye4_cpll_cal_txoutclk_period_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_qpll0lock_in(0) => '0', + gtwiz_reset_qpll0reset_out(0) => NLW_inst_gtwiz_reset_qpll0reset_out_UNCONNECTED(0), + gtwiz_reset_qpll1lock_in(0) => '0', + gtwiz_reset_qpll1reset_out(0) => NLW_inst_gtwiz_reset_qpll1reset_out_UNCONNECTED(0), + gtwiz_reset_rx_cdr_stable_out(0) => gtwiz_reset_rx_cdr_stable_out(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_done_in(0) => '0', + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_done_in(0) => '0', + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + gtwiz_userclk_rx_active_out(0) => NLW_inst_gtwiz_userclk_rx_active_out_UNCONNECTED(0), + gtwiz_userclk_rx_reset_in(0) => '0', + gtwiz_userclk_rx_srcclk_out(0) => NLW_inst_gtwiz_userclk_rx_srcclk_out_UNCONNECTED(0), + gtwiz_userclk_rx_usrclk2_out(0) => NLW_inst_gtwiz_userclk_rx_usrclk2_out_UNCONNECTED(0), + gtwiz_userclk_rx_usrclk_out(0) => NLW_inst_gtwiz_userclk_rx_usrclk_out_UNCONNECTED(0), + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + gtwiz_userclk_tx_active_out(0) => NLW_inst_gtwiz_userclk_tx_active_out_UNCONNECTED(0), + gtwiz_userclk_tx_reset_in(0) => '0', + gtwiz_userclk_tx_srcclk_out(0) => NLW_inst_gtwiz_userclk_tx_srcclk_out_UNCONNECTED(0), + gtwiz_userclk_tx_usrclk2_out(0) => NLW_inst_gtwiz_userclk_tx_usrclk2_out_UNCONNECTED(0), + gtwiz_userclk_tx_usrclk_out(0) => NLW_inst_gtwiz_userclk_tx_usrclk_out_UNCONNECTED(0), + gtwiz_userdata_rx_out(79 downto 0) => gtwiz_userdata_rx_out(79 downto 0), + gtwiz_userdata_tx_in(79 downto 0) => gtwiz_userdata_tx_in(79 downto 0), + gtyrxn_in(0) => '0', + gtyrxp_in(0) => '0', + gtytxn_out(0) => NLW_inst_gtytxn_out_UNCONNECTED(0), + gtytxp_out(0) => NLW_inst_gtytxp_out_UNCONNECTED(0), + incpctrl_in(0) => '0', + loopback_in(11 downto 0) => loopback_in(11 downto 0), + looprsvd_in(0) => '0', + lpbkrxtxseren_in(3 downto 0) => B"0000", + lpbktxrxseren_in(3 downto 0) => B"0000", + pcieeqrxeqadaptdone_in(3 downto 0) => B"0000", + pcierategen3_out(3 downto 0) => NLW_inst_pcierategen3_out_UNCONNECTED(3 downto 0), + pcierateidle_out(3 downto 0) => NLW_inst_pcierateidle_out_UNCONNECTED(3 downto 0), + pcierateqpll0_in(0) => '0', + pcierateqpll1_in(0) => '0', + pcierateqpllpd_out(7 downto 0) => NLW_inst_pcierateqpllpd_out_UNCONNECTED(7 downto 0), + pcierateqpllreset_out(7 downto 0) => NLW_inst_pcierateqpllreset_out_UNCONNECTED(7 downto 0), + pcierstidle_in(3 downto 0) => B"0000", + pciersttxsyncstart_in(3 downto 0) => B"0000", + pciesynctxsyncdone_out(3 downto 0) => NLW_inst_pciesynctxsyncdone_out_UNCONNECTED(3 downto 0), + pcieusergen3rdy_out(3 downto 0) => NLW_inst_pcieusergen3rdy_out_UNCONNECTED(3 downto 0), + pcieuserphystatusrst_out(3 downto 0) => NLW_inst_pcieuserphystatusrst_out_UNCONNECTED(3 downto 0), + pcieuserratedone_in(3 downto 0) => B"0000", + pcieuserratestart_out(3 downto 0) => NLW_inst_pcieuserratestart_out_UNCONNECTED(3 downto 0), + pcsrsvdin2_in(19 downto 0) => B"00000000000000000000", + pcsrsvdin_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + pcsrsvdout_out(47 downto 0) => NLW_inst_pcsrsvdout_out_UNCONNECTED(47 downto 0), + phystatus_out(3 downto 0) => NLW_inst_phystatus_out_UNCONNECTED(3 downto 0), + pinrsrvdas_out(31 downto 0) => NLW_inst_pinrsrvdas_out_UNCONNECTED(31 downto 0), + pmarsvd0_in(7 downto 0) => B"00000000", + pmarsvd1_in(7 downto 0) => B"00000000", + pmarsvdin_in(19 downto 0) => B"00000000000000000000", + pmarsvdout0_out(7 downto 0) => NLW_inst_pmarsvdout0_out_UNCONNECTED(7 downto 0), + pmarsvdout1_out(7 downto 0) => NLW_inst_pmarsvdout1_out_UNCONNECTED(7 downto 0), + powerpresent_out(0) => NLW_inst_powerpresent_out_UNCONNECTED(0), + qpll0clk_in(3 downto 0) => B"0000", + qpll0clkrsvd0_in(0) => '0', + qpll0clkrsvd1_in(0) => '0', + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0fbdiv_in(0) => '0', + qpll0freqlock_in(0) => '0', + qpll0lock_out(0) => qpll0lock_out(0), + qpll0lockdetclk_in(0) => '0', + qpll0locken_in(0) => '0', + qpll0outclk_out(0) => NLW_inst_qpll0outclk_out_UNCONNECTED(0), + qpll0outrefclk_out(0) => NLW_inst_qpll0outrefclk_out_UNCONNECTED(0), + qpll0pd_in(0) => '1', + qpll0refclk_in(3 downto 0) => B"0000", + qpll0refclklost_out(0) => NLW_inst_qpll0refclklost_out_UNCONNECTED(0), + qpll0refclksel_in(2 downto 0) => B"001", + qpll0reset_in(0) => '1', + qpll1clk_in(3 downto 0) => B"0000", + qpll1clkrsvd0_in(0) => '0', + qpll1clkrsvd1_in(0) => '0', + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1fbdiv_in(0) => '0', + qpll1freqlock_in(0) => '0', + qpll1lock_out(0) => qpll1lock_out(0), + qpll1lockdetclk_in(0) => '0', + qpll1locken_in(0) => '1', + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + qpll1pd_in(0) => '0', + qpll1refclk_in(3 downto 0) => B"0000", + qpll1refclklost_out(0) => NLW_inst_qpll1refclklost_out_UNCONNECTED(0), + qpll1refclksel_in(2 downto 0) => B"001", + qpll1reset_in(0) => '0', + qplldmonitor0_out(7 downto 0) => NLW_inst_qplldmonitor0_out_UNCONNECTED(7 downto 0), + qplldmonitor1_out(7 downto 0) => NLW_inst_qplldmonitor1_out_UNCONNECTED(7 downto 0), + qpllrsvd1_in(7 downto 0) => B"00000000", + qpllrsvd2_in(4 downto 0) => B"00000", + qpllrsvd3_in(4 downto 0) => B"00000", + qpllrsvd4_in(7 downto 0) => B"00000000", + rcalenb_in(0) => '1', + refclkoutmonitor0_out(0) => NLW_inst_refclkoutmonitor0_out_UNCONNECTED(0), + refclkoutmonitor1_out(0) => NLW_inst_refclkoutmonitor1_out_UNCONNECTED(0), + resetexception_out(3 downto 0) => NLW_inst_resetexception_out_UNCONNECTED(3 downto 0), + resetovrd_in(3 downto 0) => B"0000", + rstclkentx_in(3 downto 0) => B"0000", + rx8b10ben_in(3 downto 0) => B"0000", + rxafecfoken_in(0) => '0', + rxbufreset_in(3 downto 0) => B"0000", + rxbufstatus_out(11 downto 0) => NLW_inst_rxbufstatus_out_UNCONNECTED(11 downto 0), + rxbyteisaligned_out(3 downto 0) => NLW_inst_rxbyteisaligned_out_UNCONNECTED(3 downto 0), + rxbyterealign_out(3 downto 0) => NLW_inst_rxbyterealign_out_UNCONNECTED(3 downto 0), + rxcdrfreqreset_in(3 downto 0) => B"0000", + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => rxcdrlock_out(3 downto 0), + rxcdrovrden_in(3 downto 0) => B"0000", + rxcdrphdone_out(3 downto 0) => NLW_inst_rxcdrphdone_out_UNCONNECTED(3 downto 0), + rxcdrreset_in(3 downto 0) => B"0000", + rxcdrresetrsv_in(3 downto 0) => B"0000", + rxchanbondseq_out(3 downto 0) => NLW_inst_rxchanbondseq_out_UNCONNECTED(3 downto 0), + rxchanisaligned_out(3 downto 0) => NLW_inst_rxchanisaligned_out_UNCONNECTED(3 downto 0), + rxchanrealign_out(3 downto 0) => NLW_inst_rxchanrealign_out_UNCONNECTED(3 downto 0), + rxchbonden_in(3 downto 0) => B"0000", + rxchbondi_in(19 downto 0) => B"00000000000000000000", + rxchbondlevel_in(11 downto 0) => B"000000000000", + rxchbondmaster_in(3 downto 0) => B"0000", + rxchbondo_out(19 downto 0) => NLW_inst_rxchbondo_out_UNCONNECTED(19 downto 0), + rxchbondslave_in(3 downto 0) => B"0000", + rxckcaldone_out(0) => NLW_inst_rxckcaldone_out_UNCONNECTED(0), + rxckcalreset_in(0) => '0', + rxckcalstart_in(0) => '0', + rxclkcorcnt_out(7 downto 0) => NLW_inst_rxclkcorcnt_out_UNCONNECTED(7 downto 0), + rxcominitdet_out(3 downto 0) => NLW_inst_rxcominitdet_out_UNCONNECTED(3 downto 0), + rxcommadet_out(3 downto 0) => NLW_inst_rxcommadet_out_UNCONNECTED(3 downto 0), + rxcommadeten_in(3 downto 0) => B"1111", + rxcomsasdet_out(3 downto 0) => NLW_inst_rxcomsasdet_out_UNCONNECTED(3 downto 0), + rxcomwakedet_out(3 downto 0) => NLW_inst_rxcomwakedet_out_UNCONNECTED(3 downto 0), + rxctrl0_out(63 downto 0) => NLW_inst_rxctrl0_out_UNCONNECTED(63 downto 0), + rxctrl1_out(63 downto 0) => NLW_inst_rxctrl1_out_UNCONNECTED(63 downto 0), + rxctrl2_out(31 downto 0) => NLW_inst_rxctrl2_out_UNCONNECTED(31 downto 0), + rxctrl3_out(31 downto 0) => NLW_inst_rxctrl3_out_UNCONNECTED(31 downto 0), + rxdata_out(511 downto 0) => NLW_inst_rxdata_out_UNCONNECTED(511 downto 0), + rxdataextendrsvd_out(31 downto 0) => NLW_inst_rxdataextendrsvd_out_UNCONNECTED(31 downto 0), + rxdatavalid_out(7 downto 0) => NLW_inst_rxdatavalid_out_UNCONNECTED(7 downto 0), + rxdccforcestart_in(0) => '0', + rxdfeagcctrl_in(7 downto 0) => B"01010101", + rxdfeagchold_in(3 downto 0) => B"0000", + rxdfeagcovrden_in(3 downto 0) => B"0000", + rxdfecfokfcnum_in(0) => '0', + rxdfecfokfen_in(0) => '0', + rxdfecfokfpulse_in(0) => '0', + rxdfecfokhold_in(0) => '0', + rxdfecfokovren_in(0) => '0', + rxdfekhhold_in(0) => '0', + rxdfekhovrden_in(0) => '0', + rxdfelfhold_in(3 downto 0) => B"0000", + rxdfelfovrden_in(3 downto 0) => B"0000", + rxdfelpmreset_in(3 downto 0) => B"0000", + rxdfetap10hold_in(3 downto 0) => B"0000", + rxdfetap10ovrden_in(3 downto 0) => B"0000", + rxdfetap11hold_in(3 downto 0) => B"0000", + rxdfetap11ovrden_in(3 downto 0) => B"0000", + rxdfetap12hold_in(3 downto 0) => B"0000", + rxdfetap12ovrden_in(3 downto 0) => B"0000", + rxdfetap13hold_in(3 downto 0) => B"0000", + rxdfetap13ovrden_in(3 downto 0) => B"0000", + rxdfetap14hold_in(3 downto 0) => B"0000", + rxdfetap14ovrden_in(3 downto 0) => B"0000", + rxdfetap15hold_in(3 downto 0) => B"0000", + rxdfetap15ovrden_in(3 downto 0) => B"0000", + rxdfetap2hold_in(3 downto 0) => B"0000", + rxdfetap2ovrden_in(3 downto 0) => B"0000", + rxdfetap3hold_in(3 downto 0) => B"0000", + rxdfetap3ovrden_in(3 downto 0) => B"0000", + rxdfetap4hold_in(3 downto 0) => B"0000", + rxdfetap4ovrden_in(3 downto 0) => B"0000", + rxdfetap5hold_in(3 downto 0) => B"0000", + rxdfetap5ovrden_in(3 downto 0) => B"0000", + rxdfetap6hold_in(3 downto 0) => B"0000", + rxdfetap6ovrden_in(3 downto 0) => B"0000", + rxdfetap7hold_in(3 downto 0) => B"0000", + rxdfetap7ovrden_in(3 downto 0) => B"0000", + rxdfetap8hold_in(3 downto 0) => B"0000", + rxdfetap8ovrden_in(3 downto 0) => B"0000", + rxdfetap9hold_in(3 downto 0) => B"0000", + rxdfetap9ovrden_in(3 downto 0) => B"0000", + rxdfeuthold_in(3 downto 0) => B"0000", + rxdfeutovrden_in(3 downto 0) => B"0000", + rxdfevphold_in(3 downto 0) => B"0000", + rxdfevpovrden_in(3 downto 0) => B"0000", + rxdfevsen_in(3 downto 0) => B"0000", + rxdfexyden_in(3 downto 0) => B"1111", + rxdlybypass_in(3 downto 0) => B"1111", + rxdlyen_in(3 downto 0) => B"0000", + rxdlyovrden_in(3 downto 0) => B"0000", + rxdlysreset_in(3 downto 0) => B"0000", + rxdlysresetdone_out(3 downto 0) => NLW_inst_rxdlysresetdone_out_UNCONNECTED(3 downto 0), + rxelecidle_out(3 downto 0) => NLW_inst_rxelecidle_out_UNCONNECTED(3 downto 0), + rxelecidlemode_in(7 downto 0) => B"11111111", + rxeqtraining_in(0) => '0', + rxgearboxslip_in(3 downto 0) => B"0000", + rxheader_out(23 downto 0) => NLW_inst_rxheader_out_UNCONNECTED(23 downto 0), + rxheadervalid_out(7 downto 0) => NLW_inst_rxheadervalid_out_UNCONNECTED(7 downto 0), + rxlatclk_in(3 downto 0) => B"0000", + rxlfpstresetdet_out(0) => NLW_inst_rxlfpstresetdet_out_UNCONNECTED(0), + rxlfpsu2lpexitdet_out(0) => NLW_inst_rxlfpsu2lpexitdet_out_UNCONNECTED(0), + rxlfpsu3wakedet_out(0) => NLW_inst_rxlfpsu3wakedet_out_UNCONNECTED(0), + rxlpmen_in(3 downto 0) => B"0000", + rxlpmgchold_in(3 downto 0) => B"0000", + rxlpmgcovrden_in(3 downto 0) => B"0000", + rxlpmhfhold_in(3 downto 0) => B"0000", + rxlpmhfovrden_in(3 downto 0) => B"0000", + rxlpmlfhold_in(3 downto 0) => B"0000", + rxlpmlfklovrden_in(3 downto 0) => B"0000", + rxlpmoshold_in(3 downto 0) => B"0000", + rxlpmosovrden_in(3 downto 0) => B"0000", + rxmcommaalignen_in(3 downto 0) => B"0000", + rxmonitorout_out(27 downto 0) => NLW_inst_rxmonitorout_out_UNCONNECTED(27 downto 0), + rxmonitorsel_in(7 downto 0) => B"00000000", + rxoobreset_in(3 downto 0) => B"0000", + rxoscalreset_in(3 downto 0) => B"0000", + rxoshold_in(3 downto 0) => B"0000", + rxosintcfg_in(15 downto 0) => B"1101110111011101", + rxosintdone_out(3 downto 0) => NLW_inst_rxosintdone_out_UNCONNECTED(3 downto 0), + rxosinten_in(3 downto 0) => B"1111", + rxosinthold_in(3 downto 0) => B"0000", + rxosintovrden_in(3 downto 0) => B"0000", + rxosintstarted_out(3 downto 0) => NLW_inst_rxosintstarted_out_UNCONNECTED(3 downto 0), + rxosintstrobe_in(3 downto 0) => B"0000", + rxosintstrobedone_out(3 downto 0) => NLW_inst_rxosintstrobedone_out_UNCONNECTED(3 downto 0), + rxosintstrobestarted_out(3 downto 0) => NLW_inst_rxosintstrobestarted_out_UNCONNECTED(3 downto 0), + rxosinttestovrden_in(3 downto 0) => B"0000", + rxosovrden_in(3 downto 0) => B"0000", + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxoutclkfabric_out(3 downto 0) => NLW_inst_rxoutclkfabric_out_UNCONNECTED(3 downto 0), + rxoutclkpcs_out(3 downto 0) => NLW_inst_rxoutclkpcs_out_UNCONNECTED(3 downto 0), + rxoutclksel_in(11 downto 0) => B"010010010010", + rxpcommaalignen_in(3 downto 0) => B"0000", + rxpcsreset_in(3 downto 0) => B"0000", + rxpd_in(7 downto 0) => B"00000000", + rxphalign_in(3 downto 0) => B"0000", + rxphaligndone_out(3 downto 0) => NLW_inst_rxphaligndone_out_UNCONNECTED(3 downto 0), + rxphalignen_in(3 downto 0) => B"0000", + rxphalignerr_out(3 downto 0) => NLW_inst_rxphalignerr_out_UNCONNECTED(3 downto 0), + rxphdlypd_in(3 downto 0) => B"0000", + rxphdlyreset_in(3 downto 0) => B"0000", + rxphovrden_in(3 downto 0) => B"0000", + rxpllclksel_in(7 downto 0) => B"00000000", + rxpmareset_in(3 downto 0) => B"0000", + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxprbscntreset_in(3 downto 0) => B"0000", + rxprbserr_out(3 downto 0) => NLW_inst_rxprbserr_out_UNCONNECTED(3 downto 0), + rxprbslocked_out(3 downto 0) => NLW_inst_rxprbslocked_out_UNCONNECTED(3 downto 0), + rxprbssel_in(15 downto 0) => B"0000000000000000", + rxprgdivresetdone_out(3 downto 0) => NLW_inst_rxprgdivresetdone_out_UNCONNECTED(3 downto 0), + rxprogdivreset_in(3 downto 0) => B"0000", + rxqpien_in(3 downto 0) => B"0000", + rxqpisenn_out(3 downto 0) => NLW_inst_rxqpisenn_out_UNCONNECTED(3 downto 0), + rxqpisenp_out(3 downto 0) => NLW_inst_rxqpisenp_out_UNCONNECTED(3 downto 0), + rxrate_in(11 downto 0) => B"000000000000", + rxratedone_out(3 downto 0) => NLW_inst_rxratedone_out_UNCONNECTED(3 downto 0), + rxratemode_in(3 downto 0) => B"0000", + rxrecclk0_sel_out(1 downto 0) => NLW_inst_rxrecclk0_sel_out_UNCONNECTED(1 downto 0), + rxrecclk0sel_out(0) => NLW_inst_rxrecclk0sel_out_UNCONNECTED(0), + rxrecclk1_sel_out(1 downto 0) => NLW_inst_rxrecclk1_sel_out_UNCONNECTED(1 downto 0), + rxrecclk1sel_out(0) => NLW_inst_rxrecclk1sel_out_UNCONNECTED(0), + rxrecclkout_out(3 downto 0) => NLW_inst_rxrecclkout_out_UNCONNECTED(3 downto 0), + rxresetdone_out(3 downto 0) => rxresetdone_out(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxsliderdy_out(3 downto 0) => NLW_inst_rxsliderdy_out_UNCONNECTED(3 downto 0), + rxslipdone_out(3 downto 0) => NLW_inst_rxslipdone_out_UNCONNECTED(3 downto 0), + rxslipoutclk_in(3 downto 0) => B"0000", + rxslipoutclkrdy_out(3 downto 0) => NLW_inst_rxslipoutclkrdy_out_UNCONNECTED(3 downto 0), + rxslippma_in(3 downto 0) => B"0000", + rxslippmardy_out(3 downto 0) => NLW_inst_rxslippmardy_out_UNCONNECTED(3 downto 0), + rxstartofseq_out(7 downto 0) => NLW_inst_rxstartofseq_out_UNCONNECTED(7 downto 0), + rxstatus_out(11 downto 0) => NLW_inst_rxstatus_out_UNCONNECTED(11 downto 0), + rxsyncallin_in(3 downto 0) => B"0000", + rxsyncdone_out(3 downto 0) => NLW_inst_rxsyncdone_out_UNCONNECTED(3 downto 0), + rxsyncin_in(3 downto 0) => B"0000", + rxsyncmode_in(3 downto 0) => B"0000", + rxsyncout_out(3 downto 0) => NLW_inst_rxsyncout_out_UNCONNECTED(3 downto 0), + rxsysclksel_in(7 downto 0) => B"00000000", + rxtermination_in(0) => '0', + rxuserrdy_in(3 downto 0) => B"1111", + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + rxvalid_out(3 downto 0) => NLW_inst_rxvalid_out_UNCONNECTED(3 downto 0), + sdm0data_in(0) => '0', + sdm0finalout_out(0) => NLW_inst_sdm0finalout_out_UNCONNECTED(0), + sdm0reset_in(0) => '0', + sdm0testdata_out(0) => NLW_inst_sdm0testdata_out_UNCONNECTED(0), + sdm0toggle_in(0) => '0', + sdm0width_in(0) => '0', + sdm1data_in(0) => '0', + sdm1finalout_out(0) => NLW_inst_sdm1finalout_out_UNCONNECTED(0), + sdm1reset_in(0) => '0', + sdm1testdata_out(0) => NLW_inst_sdm1testdata_out_UNCONNECTED(0), + sdm1toggle_in(0) => '0', + sdm1width_in(0) => '0', + sigvalidclk_in(3 downto 0) => B"0000", + tcongpi_in(0) => '0', + tcongpo_out(0) => NLW_inst_tcongpo_out_UNCONNECTED(0), + tconpowerup_in(0) => '0', + tconreset_in(0) => '0', + tconrsvdin1_in(0) => '0', + tconrsvdout0_out(0) => NLW_inst_tconrsvdout0_out_UNCONNECTED(0), + tstin_in(79 downto 0) => B"00000000000000000000000000000000000000000000000000000000000000000000000000000000", + tx8b10bbypass_in(31 downto 0) => B"00000000000000000000000000000000", + tx8b10ben_in(3 downto 0) => B"0000", + txbufdiffctrl_in(11 downto 0) => B"000000000000", + txbufstatus_out(7 downto 0) => NLW_inst_txbufstatus_out_UNCONNECTED(7 downto 0), + txcomfinish_out(3 downto 0) => NLW_inst_txcomfinish_out_UNCONNECTED(3 downto 0), + txcominit_in(3 downto 0) => B"0000", + txcomsas_in(3 downto 0) => B"0000", + txcomwake_in(3 downto 0) => B"0000", + txctrl0_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + txctrl1_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + txctrl2_in(31 downto 0) => B"00000000000000000000000000000000", + txdata_in(511 downto 0) => B"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + txdataextendrsvd_in(31 downto 0) => B"00000000000000000000000000000000", + txdccdone_out(0) => NLW_inst_txdccdone_out_UNCONNECTED(0), + txdccforcestart_in(0) => '0', + txdccreset_in(0) => '0', + txdeemph_in(3 downto 0) => B"0000", + txdetectrx_in(3 downto 0) => B"0000", + txdiffctrl_in(15 downto 0) => B"1100110011001100", + txdiffpd_in(3 downto 0) => B"0000", + txdlybypass_in(3 downto 0) => B"0000", + txdlyen_in(3 downto 0) => B"0000", + txdlyhold_in(3 downto 0) => B"0000", + txdlyovrden_in(3 downto 0) => B"0000", + txdlysreset_in(3 downto 0) => B"0000", + txdlysresetdone_out(3 downto 0) => NLW_inst_txdlysresetdone_out_UNCONNECTED(3 downto 0), + txdlyupdown_in(3 downto 0) => B"0000", + txelecidle_in(3 downto 0) => B"0000", + txelforcestart_in(0) => '0', + txheader_in(23 downto 0) => B"000000000000000000000000", + txinhibit_in(3 downto 0) => B"0000", + txlatclk_in(3 downto 0) => B"0000", + txlfpstreset_in(0) => '0', + txlfpsu2lpexit_in(0) => '0', + txlfpsu3wake_in(0) => '0', + txmaincursor_in(27 downto 0) => B"1000000100000010000001000000", + txmargin_in(11 downto 0) => B"000000000000", + txmuxdcdexhold_in(0) => '0', + txmuxdcdorwren_in(0) => '0', + txoneszeros_in(0) => '0', + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txoutclkfabric_out(3 downto 0) => NLW_inst_txoutclkfabric_out_UNCONNECTED(3 downto 0), + txoutclkpcs_out(3 downto 0) => NLW_inst_txoutclkpcs_out_UNCONNECTED(3 downto 0), + txoutclksel_in(11 downto 0) => B"011011011011", + txpcsreset_in(3 downto 0) => B"0000", + txpd_in(7 downto 0) => B"00000000", + txpdelecidlemode_in(3 downto 0) => B"0000", + txphalign_in(3 downto 0) => B"0000", + txphaligndone_out(3 downto 0) => NLW_inst_txphaligndone_out_UNCONNECTED(3 downto 0), + txphalignen_in(3 downto 0) => B"0000", + txphdlypd_in(3 downto 0) => B"0000", + txphdlyreset_in(3 downto 0) => B"0000", + txphdlytstclk_in(3 downto 0) => B"0000", + txphinit_in(3 downto 0) => B"0000", + txphinitdone_out(3 downto 0) => NLW_inst_txphinitdone_out_UNCONNECTED(3 downto 0), + txphovrden_in(3 downto 0) => B"0000", + txpippmen_in(3 downto 0) => B"0000", + txpippmovrden_in(3 downto 0) => B"0000", + txpippmpd_in(3 downto 0) => B"0000", + txpippmsel_in(3 downto 0) => B"0000", + txpippmstepsize_in(19 downto 0) => B"00000000000000000000", + txpisopd_in(3 downto 0) => B"0000", + txpllclksel_in(7 downto 0) => B"10101010", + txpmareset_in(3 downto 0) => B"0000", + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txpostcursor_in(19 downto 0) => B"00000000000000000000", + txpostcursorinv_in(3 downto 0) => B"0000", + txprbsforceerr_in(3 downto 0) => B"0000", + txprbssel_in(15 downto 0) => B"0000000000000000", + txprecursor_in(19 downto 0) => B"00000000000000000000", + txprecursorinv_in(3 downto 0) => B"0000", + txprgdivresetdone_out(3 downto 0) => NLW_inst_txprgdivresetdone_out_UNCONNECTED(3 downto 0), + txprogdivreset_in(3 downto 0) => B"0000", + txqpibiasen_in(3 downto 0) => B"0000", + txqpisenn_out(3 downto 0) => NLW_inst_txqpisenn_out_UNCONNECTED(3 downto 0), + txqpisenp_out(3 downto 0) => NLW_inst_txqpisenp_out_UNCONNECTED(3 downto 0), + txqpistrongpdown_in(3 downto 0) => B"0000", + txqpiweakpup_in(3 downto 0) => B"0000", + txrate_in(11 downto 0) => B"000000000000", + txratedone_out(3 downto 0) => NLW_inst_txratedone_out_UNCONNECTED(3 downto 0), + txratemode_in(3 downto 0) => B"0000", + txresetdone_out(3 downto 0) => txresetdone_out(3 downto 0), + txsequence_in(27 downto 0) => B"0000000000000000000000000000", + txswing_in(3 downto 0) => B"0000", + txsyncallin_in(3 downto 0) => B"0000", + txsyncdone_out(3 downto 0) => NLW_inst_txsyncdone_out_UNCONNECTED(3 downto 0), + txsyncin_in(3 downto 0) => B"0000", + txsyncmode_in(3 downto 0) => B"0000", + txsyncout_out(3 downto 0) => NLW_inst_txsyncout_out_UNCONNECTED(3 downto 0), + txsysclksel_in(7 downto 0) => B"11111111", + txuserrdy_in(3 downto 0) => B"1111", + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0), + ubcfgstreamen_in(0) => '0', + ubdaddr_out(0) => NLW_inst_ubdaddr_out_UNCONNECTED(0), + ubden_out(0) => NLW_inst_ubden_out_UNCONNECTED(0), + ubdi_out(0) => NLW_inst_ubdi_out_UNCONNECTED(0), + ubdo_in(0) => '0', + ubdrdy_in(0) => '0', + ubdwe_out(0) => NLW_inst_ubdwe_out_UNCONNECTED(0), + ubenable_in(0) => '0', + ubgpi_in(0) => '0', + ubintr_in(0) => '0', + ubiolmbrst_in(0) => '0', + ubmbrst_in(0) => '0', + ubmdmcapture_in(0) => '0', + ubmdmdbgrst_in(0) => '0', + ubmdmdbgupdate_in(0) => '0', + ubmdmregen_in(0) => '0', + ubmdmshift_in(0) => '0', + ubmdmsysrst_in(0) => '0', + ubmdmtck_in(0) => '0', + ubmdmtdi_in(0) => '0', + ubmdmtdo_out(0) => NLW_inst_ubmdmtdo_out_UNCONNECTED(0), + ubrsvdout_out(0) => NLW_inst_ubrsvdout_out_UNCONNECTED(0), + ubtxuart_out(0) => NLW_inst_ubtxuart_out_UNCONNECTED(0) + ); +end STRUCTURE; diff --git a/sources/ip_cores/sim/KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_sim_netlist.vhdl b/sources/ip_cores/sim/KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..a6bac3c45ac7c42ce2e9cbc8247588943265f767 --- /dev/null +++ b/sources/ip_cores/sim/KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_sim_netlist.vhdl @@ -0,0 +1,15229 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Fri Jun 14 11:28:32 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FELIG/FLX712_FELIG.gen/sources_1/ip/KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH/KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_sim_netlist.vhdl +-- Design : KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 is + port ( + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \FSM_sequential_sm_reset_rx_reg[0]\ : in STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[0]_0\ : in STD_LOGIC; + gtwiz_reset_rx_pll_and_datapath_dly : in STD_LOGIC; + sm_reset_rx_pll_timer_sat : in STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[0]_1\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 is + signal \FSM_sequential_sm_reset_rx[2]_i_3_n_0\ : STD_LOGIC; + signal gtwiz_reset_rx_datapath_dly : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_rx[2]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFE400E4" + ) + port map ( + I0 => Q(1), + I1 => \FSM_sequential_sm_reset_rx[2]_i_3_n_0\, + I2 => \FSM_sequential_sm_reset_rx_reg[0]\, + I3 => Q(2), + I4 => \FSM_sequential_sm_reset_rx_reg[0]_0\, + O => E(0) + ); +\FSM_sequential_sm_reset_rx[2]_i_3\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0E0EFE0E" + ) + port map ( + I0 => gtwiz_reset_rx_datapath_dly, + I1 => gtwiz_reset_rx_pll_and_datapath_dly, + I2 => Q(0), + I3 => sm_reset_rx_pll_timer_sat, + I4 => \FSM_sequential_sm_reset_rx_reg[0]_1\, + O => \FSM_sequential_sm_reset_rx[2]_i_3_n_0\ + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_rx_datapath_dly, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 is + port ( + gtwiz_reset_rx_pll_and_datapath_dly : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 1 downto 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \p_0_in11_out__0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 is + signal \^gtwiz_reset_rx_pll_and_datapath_dly\ : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_rx[0]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_rx[1]_i_1\ : label is "soft_lutpair0"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_rx_pll_and_datapath_dly <= \^gtwiz_reset_rx_pll_and_datapath_dly\; +\FSM_sequential_sm_reset_rx[0]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"F5A55E5E" + ) + port map ( + I0 => Q(0), + I1 => \^gtwiz_reset_rx_pll_and_datapath_dly\, + I2 => Q(1), + I3 => \p_0_in11_out__0\, + I4 => Q(2), + O => D(0) + ); +\FSM_sequential_sm_reset_rx[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"00FFF511" + ) + port map ( + I0 => Q(2), + I1 => \^gtwiz_reset_rx_pll_and_datapath_dly\, + I2 => \p_0_in11_out__0\, + I3 => Q(1), + I4 => Q(0), + O => D(1) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \^gtwiz_reset_rx_pll_and_datapath_dly\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_dly : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 0 to 0 ); + sm_reset_tx_pll_timer_sat : in STD_LOGIC; + \FSM_sequential_sm_reset_tx[2]_i_5\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 is + signal gtwiz_reset_tx_datapath_dly : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_tx[2]_i_6\: unisim.vcomponents.LUT5 + generic map( + INIT => X"0E0EFE0E" + ) + port map ( + I0 => gtwiz_reset_tx_datapath_dly, + I1 => gtwiz_reset_tx_pll_and_datapath_dly, + I2 => Q(0), + I3 => sm_reset_tx_pll_timer_sat, + I4 => \FSM_sequential_sm_reset_tx[2]_i_5\, + O => i_in_out_reg_0 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_tx_datapath_dly, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 is + port ( + gtwiz_reset_tx_pll_and_datapath_dly : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 1 downto 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 is + signal \^gtwiz_reset_tx_pll_and_datapath_dly\ : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_tx[0]_i_1\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_tx[1]_i_1\ : label is "soft_lutpair1"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_tx_pll_and_datapath_dly <= \^gtwiz_reset_tx_pll_and_datapath_dly\; +\FSM_sequential_sm_reset_tx[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0F3E" + ) + port map ( + I0 => \^gtwiz_reset_tx_pll_and_datapath_dly\, + I1 => Q(2), + I2 => Q(0), + I3 => Q(1), + O => D(0) + ); +\FSM_sequential_sm_reset_tx[1]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0FF1" + ) + port map ( + I0 => \^gtwiz_reset_tx_pll_and_datapath_dly\, + I1 => Q(2), + I2 => Q(1), + I3 => Q(0), + O => D(1) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \^gtwiz_reset_tx_pll_and_datapath_dly\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 is + port ( + \sm_reset_rx_timer_clr0__0\ : out STD_LOGIC; + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxuserrdy_out_reg : in STD_LOGIC; + sm_reset_rx_timer_sat : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 is + signal gtwiz_reset_userclk_rx_active_sync : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_userclk_rx_active_in(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_userclk_rx_active_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +sm_reset_rx_timer_clr_i_3: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => rxuserrdy_out_reg, + I1 => sm_reset_rx_timer_sat, + I2 => gtwiz_reset_userclk_rx_active_sync, + O => \sm_reset_rx_timer_clr0__0\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 is + port ( + \FSM_sequential_sm_reset_tx_reg[1]\ : out STD_LOGIC; + \sm_reset_tx_timer_clr0__0\ : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + gtwiz_reset_tx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_TXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gtwiz_reset_tx_done_int0__0\ : in STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[0]\ : in STD_LOGIC; + txuserrdy_out_reg : in STD_LOGIC; + sm_reset_tx_timer_sat : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 is + signal gtwiz_reset_userclk_tx_active_sync : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal \^sm_reset_tx_timer_clr0__0\ : STD_LOGIC; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + \sm_reset_tx_timer_clr0__0\ <= \^sm_reset_tx_timer_clr0__0\; +\FSM_sequential_sm_reset_tx[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00F000F0CCF0AAF0" + ) + port map ( + I0 => \^sm_reset_tx_timer_clr0__0\, + I1 => \gtwiz_reset_tx_done_int0__0\, + I2 => \FSM_sequential_sm_reset_tx_reg[0]\, + I3 => Q(2), + I4 => Q(0), + I5 => Q(1), + O => E(0) + ); +\FSM_sequential_sm_reset_tx[2]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => txuserrdy_out_reg, + I1 => sm_reset_tx_timer_sat, + I2 => gtwiz_reset_userclk_tx_active_sync, + O => \^sm_reset_tx_timer_clr0__0\ + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_userclk_tx_active_in(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtwiz_reset_userclk_tx_active_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +txuserrdy_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFF9F900001000" + ) + port map ( + I0 => Q(1), + I1 => Q(0), + I2 => Q(2), + I3 => \^sm_reset_tx_timer_clr0__0\, + I4 => gtwiz_reset_tx_any_sync, + I5 => GTHE3_CHANNEL_TXUSERRDY(0), + O => \FSM_sequential_sm_reset_tx_reg[1]\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[0]\ : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]\ : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]_0\ : out STD_LOGIC; + i_in_out_reg_1 : out STD_LOGIC; + i_in_meta_reg_0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \p_0_in11_out__0\ : in STD_LOGIC; + gtwiz_reset_rx_done_int_reg : in STD_LOGIC; + \sm_reset_rx_timer_clr0__0\ : in STD_LOGIC; + sm_reset_rx_timer_clr_reg : in STD_LOGIC; + sm_reset_rx_cdr_to_clr_reg : in STD_LOGIC; + sm_reset_rx_cdr_to_clr : in STD_LOGIC; + gtwiz_reset_rx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_GTRXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + \sm_reset_rx_timer_clr010_out__0\ : in STD_LOGIC; + sm_reset_rx_timer_sat : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal plllock_rx_sync : STD_LOGIC; + signal sm_reset_rx_cdr_to_clr_i_2_n_0 : STD_LOGIC; + signal sm_reset_rx_timer_clr_i_2_n_0 : STD_LOGIC; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_rx[2]_i_4\ : label is "soft_lutpair2"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; + attribute SOFT_HLUTNM of sm_reset_rx_cdr_to_clr_i_2 : label is "soft_lutpair2"; +begin +\FSM_sequential_sm_reset_rx[2]_i_4\: unisim.vcomponents.LUT4 + generic map( + INIT => X"00B0" + ) + port map ( + I0 => plllock_rx_sync, + I1 => Q(0), + I2 => sm_reset_rx_timer_sat, + I3 => sm_reset_rx_timer_clr_reg, + O => i_in_out_reg_1 + ); +gtrxreset_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFBFFF00001514" + ) + port map ( + I0 => Q(2), + I1 => Q(1), + I2 => Q(0), + I3 => sm_reset_rx_cdr_to_clr_i_2_n_0, + I4 => gtwiz_reset_rx_any_sync, + I5 => GTHE3_CHANNEL_GTRXRESET(0), + O => \FSM_sequential_sm_reset_rx_reg[2]_0\ + ); +gtwiz_reset_rx_done_int_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"BFBFFFFF0C000000" + ) + port map ( + I0 => plllock_rx_sync, + I1 => Q(1), + I2 => Q(0), + I3 => \p_0_in11_out__0\, + I4 => Q(2), + I5 => gtwiz_reset_rx_done_int_reg, + O => i_in_out_reg_0 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta_reg_0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => plllock_rx_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +sm_reset_rx_cdr_to_clr_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FBFFFFFF0000040F" + ) + port map ( + I0 => Q(2), + I1 => sm_reset_rx_cdr_to_clr_i_2_n_0, + I2 => sm_reset_rx_cdr_to_clr_reg, + I3 => Q(0), + I4 => Q(1), + I5 => sm_reset_rx_cdr_to_clr, + O => \FSM_sequential_sm_reset_rx_reg[2]\ + ); +sm_reset_rx_cdr_to_clr_i_2: unisim.vcomponents.LUT4 + generic map( + INIT => X"0800" + ) + port map ( + I0 => plllock_rx_sync, + I1 => Q(1), + I2 => sm_reset_rx_timer_clr_reg, + I3 => sm_reset_rx_timer_sat, + O => sm_reset_rx_cdr_to_clr_i_2_n_0 + ); +sm_reset_rx_timer_clr_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FAEFAAFF0AE0AA0F" + ) + port map ( + I0 => sm_reset_rx_timer_clr_i_2_n_0, + I1 => \sm_reset_rx_timer_clr0__0\, + I2 => Q(0), + I3 => Q(1), + I4 => Q(2), + I5 => sm_reset_rx_timer_clr_reg, + O => \FSM_sequential_sm_reset_rx_reg[0]\ + ); +sm_reset_rx_timer_clr_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"8F808F8F80808080" + ) + port map ( + I0 => Q(1), + I1 => \p_0_in11_out__0\, + I2 => Q(2), + I3 => plllock_rx_sync, + I4 => Q(0), + I5 => \sm_reset_rx_timer_clr010_out__0\, + O => sm_reset_rx_timer_clr_i_2_n_0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[2]\ : out STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[0]\ : out STD_LOGIC; + i_in_out_reg_1 : out STD_LOGIC; + qpll1lock_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sm_reset_tx_timer_sat : in STD_LOGIC; + sm_reset_tx_timer_clr_reg : in STD_LOGIC; + \gtwiz_reset_tx_done_int0__0\ : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + gtwiz_reset_tx_done_int_reg : in STD_LOGIC; + \sm_reset_tx_timer_clr0__0\ : in STD_LOGIC; + gtwiz_reset_tx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_GTTXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + \FSM_sequential_sm_reset_tx_reg[0]_0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 is + signal gttxreset_out_i_2_n_0 : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal plllock_tx_sync : STD_LOGIC; + signal sm_reset_tx_timer_clr_i_2_n_0 : STD_LOGIC; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_tx[2]_i_5\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00B0FFFF00B00000" + ) + port map ( + I0 => plllock_tx_sync, + I1 => Q(0), + I2 => sm_reset_tx_timer_sat, + I3 => sm_reset_tx_timer_clr_reg, + I4 => Q(1), + I5 => \FSM_sequential_sm_reset_tx_reg[0]_0\, + O => i_in_out_reg_1 + ); +gttxreset_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"7F7F7F7F2A2A2A3E" + ) + port map ( + I0 => gttxreset_out_i_2_n_0, + I1 => Q(0), + I2 => Q(1), + I3 => gtwiz_reset_tx_any_sync, + I4 => Q(2), + I5 => GTHE3_CHANNEL_GTTXRESET(0), + O => \FSM_sequential_sm_reset_tx_reg[0]\ + ); +gttxreset_out_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000002000000000" + ) + port map ( + I0 => sm_reset_tx_timer_sat, + I1 => sm_reset_tx_timer_clr_reg, + I2 => plllock_tx_sync, + I3 => gtwiz_reset_tx_any_sync, + I4 => Q(2), + I5 => Q(1), + O => gttxreset_out_i_2_n_0 + ); +gtwiz_reset_tx_done_int_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FAFFFFFF0000C000" + ) + port map ( + I0 => plllock_tx_sync, + I1 => \gtwiz_reset_tx_done_int0__0\, + I2 => Q(0), + I3 => Q(2), + I4 => Q(1), + I5 => gtwiz_reset_tx_done_int_reg, + O => i_in_out_reg_0 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => qpll1lock_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => plllock_tx_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +sm_reset_tx_timer_clr_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FAAFFAEF0AA00AEF" + ) + port map ( + I0 => sm_reset_tx_timer_clr_i_2_n_0, + I1 => \sm_reset_tx_timer_clr0__0\, + I2 => Q(2), + I3 => Q(1), + I4 => Q(0), + I5 => sm_reset_tx_timer_clr_reg, + O => \FSM_sequential_sm_reset_tx_reg[2]\ + ); +sm_reset_tx_timer_clr_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"F022F00000220022" + ) + port map ( + I0 => sm_reset_tx_timer_sat, + I1 => sm_reset_tx_timer_clr_reg, + I2 => \gtwiz_reset_tx_done_int0__0\, + I3 => Q(2), + I4 => plllock_tx_sync, + I5 => Q(0), + O => sm_reset_tx_timer_clr_i_2_n_0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 is + port ( + i_in_out_reg_0 : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]\ : out STD_LOGIC; + i_in_out_reg_1 : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[2]_0\ : out STD_LOGIC; + i_in_meta_reg_0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + gtwiz_reset_rx_any_sync : in STD_LOGIC; + GTHE3_CHANNEL_RXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + sm_reset_rx_cdr_to_sat : in STD_LOGIC; + \sm_reset_rx_timer_clr0__0\ : in STD_LOGIC; + \p_0_in11_out__0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal \^i_in_out_reg_0\ : STD_LOGIC; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + signal \sm_reset_rx_cdr_to_clr0__0\ : STD_LOGIC; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of rxprogdivreset_out_i_2 : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of sm_reset_rx_cdr_to_clr_i_3 : label is "soft_lutpair3"; +begin + i_in_out_reg_0 <= \^i_in_out_reg_0\; +\FSM_sequential_sm_reset_rx[2]_i_5\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000F0F0FF00EEEE" + ) + port map ( + I0 => \^i_in_out_reg_0\, + I1 => sm_reset_rx_cdr_to_sat, + I2 => \sm_reset_rx_timer_clr0__0\, + I3 => \p_0_in11_out__0\, + I4 => Q(1), + I5 => Q(0), + O => i_in_out_reg_1 + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta_reg_0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \^i_in_out_reg_0\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +rxprogdivreset_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFDFF00001414" + ) + port map ( + I0 => Q(2), + I1 => Q(1), + I2 => Q(0), + I3 => \sm_reset_rx_cdr_to_clr0__0\, + I4 => gtwiz_reset_rx_any_sync, + I5 => GTHE3_CHANNEL_RXPROGDIVRESET(0), + O => \FSM_sequential_sm_reset_rx_reg[2]\ + ); +rxprogdivreset_out_i_2: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat, + I1 => \^i_in_out_reg_0\, + O => \sm_reset_rx_cdr_to_clr0__0\ + ); +sm_reset_rx_cdr_to_clr_i_3: unisim.vcomponents.LUT3 + generic map( + INIT => X"02" + ) + port map ( + I0 => Q(2), + I1 => \^i_in_out_reg_0\, + I2 => sm_reset_rx_cdr_to_sat, + O => \FSM_sequential_sm_reset_rx_reg[2]_0\ + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rxresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 is + port ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : out STD_LOGIC_VECTOR ( 0 to 0 ); + txresetdone_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => txresetdone_out(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 is + port ( + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ : out STD_LOGIC; + GTHE3_CHANNEL_TXPHALIGNDONE : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 is + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_out : STD_LOGIC; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_error_out_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => Q(0), + I1 => i_in_out, + O => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => GTHE3_CHANNEL_TXPHALIGNDONE(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync3, + Q => i_in_out, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 is + port ( + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : out STD_LOGIC; + D : out STD_LOGIC_VECTOR ( 1 downto 0 ); + GTHE3_CHANNEL_TXSYNCDONE : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 is + signal \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[0]_i_1\ : label is "soft_lutpair20"; + attribute SOFT_HLUTNM of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_2\ : label is "soft_lutpair20"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ <= \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\; +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[0]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"0455" + ) + port map ( + I0 => Q(0), + I1 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + I2 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + I3 => Q(1), + O => D(0) + ); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"2622" + ) + port map ( + I0 => Q(0), + I1 => Q(1), + I2 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + I3 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + O => D(1) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => GTHE3_CHANNEL_TXSYNCDONE(0), + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync3, + Q => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 is + port ( + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + in0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \FSM_sequential_sm_reset_all_reg[0]\ : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + \FSM_sequential_sm_reset_all_reg[0]_0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 : entity is "gtwizard_ultrascale_v1_7_18_bit_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 is + signal gtpowergood_sync : STD_LOGIC; + signal i_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of i_in_meta : signal is "true"; + signal i_in_sync1 : STD_LOGIC; + attribute async_reg of i_in_sync1 : signal is "true"; + signal i_in_sync2 : STD_LOGIC; + attribute async_reg of i_in_sync2 : signal is "true"; + signal i_in_sync3 : STD_LOGIC; + attribute async_reg of i_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of i_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of i_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync1_reg : label is std.standard.true; + attribute KEEP of i_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync2_reg : label is std.standard.true; + attribute KEEP of i_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of i_in_sync3_reg : label is std.standard.true; + attribute KEEP of i_in_sync3_reg : label is "yes"; +begin +\FSM_sequential_sm_reset_all[2]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AF0FAF00CFFFCFFF" + ) + port map ( + I0 => gtpowergood_sync, + I1 => \FSM_sequential_sm_reset_all_reg[0]\, + I2 => Q(2), + I3 => Q(0), + I4 => \FSM_sequential_sm_reset_all_reg[0]_0\, + I5 => Q(1), + O => E(0) + ); +i_in_meta_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => in0, + Q => i_in_meta, + R => '0' + ); +i_in_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync3, + Q => gtpowergood_sync, + R => '0' + ); +i_in_sync1_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_meta, + Q => i_in_sync1, + R => '0' + ); +i_in_sync2_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync1, + Q => i_in_sync2, + R => '0' + ); +i_in_sync3_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => i_in_sync2, + Q => i_in_sync3, + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_channel is + port ( + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPHALIGNDONE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXSYNCDONE : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + GTHE3_CHANNEL_CPLLPD : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_GTRXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_GTTXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXDLYSRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCALLIN : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 127 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_channel : entity is "gtwizard_ultrascale_v1_7_18_gthe3_channel"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_channel; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_channel is + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_240\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_241\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_256\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_257\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_240\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_241\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_256\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_257\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_68\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_240\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_241\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_256\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_257\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_68\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_100\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_101\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_102\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_103\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_104\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_105\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_106\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_107\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_108\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_109\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_110\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_111\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_112\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_113\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_114\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_115\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_116\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_117\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_118\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_119\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_120\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_121\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_122\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_123\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_124\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_125\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_126\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_127\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_128\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_129\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_130\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_131\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_132\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_133\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_134\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_135\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_136\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_137\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_138\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_139\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_140\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_141\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_142\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_143\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_144\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_145\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_146\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_147\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_148\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_149\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_150\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_151\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_152\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_153\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_154\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_155\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_156\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_157\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_158\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_159\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_160\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_161\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_162\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_163\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_164\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_165\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_166\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_167\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_168\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_169\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_170\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_171\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_172\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_173\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_174\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_175\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_176\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_177\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_178\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_179\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_180\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_181\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_182\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_183\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_184\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_185\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_186\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_187\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_188\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_189\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_190\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_191\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_192\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_193\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_2\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_210\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_211\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_212\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_213\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_214\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_215\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_216\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_217\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_218\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_219\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_220\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_221\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_222\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_223\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_224\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_225\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_226\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_227\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_228\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_229\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_230\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_231\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_232\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_233\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_234\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_235\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_236\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_237\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_238\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_239\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_240\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_241\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_242\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_243\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_244\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_245\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_246\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_247\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_248\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_249\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_250\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_251\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_252\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_253\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_254\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_255\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_256\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_257\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_258\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_259\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_260\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_261\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_262\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_263\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_264\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_265\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_266\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_267\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_268\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_269\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_270\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_271\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_272\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_273\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_274\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_275\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_276\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_277\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_278\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_279\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_280\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_281\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_282\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_283\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_284\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_285\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_286\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_287\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_288\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_289\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_290\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_291\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_292\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_293\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_294\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_295\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_296\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_297\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_298\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_299\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_3\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_300\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_301\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_302\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_303\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_304\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_305\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_306\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_307\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_308\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_309\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_310\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_311\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_312\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_313\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_314\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_315\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_316\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_317\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_318\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_319\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_320\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_321\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_322\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_323\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_324\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_325\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_326\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_327\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_328\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_329\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_330\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_331\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_332\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_333\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_334\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_335\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_336\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_337\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_338\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_339\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_340\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_341\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_342\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_343\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_344\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_345\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_346\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_347\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_348\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_349\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_350\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_351\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_352\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_353\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_354\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_355\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_356\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_357\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_358\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_359\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_360\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_361\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_362\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_363\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_364\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_365\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_4\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_64\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_65\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_66\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_68\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_69\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_70\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_71\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_72\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_73\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_74\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_75\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_76\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_77\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_78\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_79\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_8\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_80\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_81\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_82\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_83\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_84\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_85\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_86\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_87\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_88\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_89\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_9\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_90\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_91\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_92\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_93\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_94\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_95\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_96\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_97\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_98\ : STD_LOGIC; + signal \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_99\ : STD_LOGIC; + attribute BOX_TYPE : string; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; + attribute BOX_TYPE of \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST\ : label is "PRIMITIVE"; +begin +\gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 4, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "OFF", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 13, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 16, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "TRUE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 1, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 32, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 1, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 16.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(0), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(0), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(0), + GTHRXP => gthrxp_in(0), + GTHTXN => gthtxn_out(0), + GTHTXP => gthtxp_out(0), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(0), + GTREFCLK0 => gtrefclk0_in(0), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(2 downto 0), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(0), + RXCDRLOCK => rxcdrlock_out(0), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '0', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_240\, + RXCTRL0(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_241\, + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_256\, + RXCTRL1(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_257\, + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 0) => gtwiz_userdata_rx_out(15 downto 0), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(0), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '1', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(0), + RXPOLARITY => rxpolarity_in(0), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => rxratedone_out(0), + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(0), + RXSLIDE => rxslide_in(0), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(0), + RXUSRCLK2 => rxusrclk2_in(0), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 0) => B"0000000000000000", + TXCTRL1(15 downto 0) => B"0000000000000000", + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 32) => B"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(31 downto 0) => gtwiz_userdata_tx_in(31 downto 0), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(0), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"101", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(0), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(0), + TXPOLARITY => txpolarity_in(0), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => txprgdivresetdone_out(0), + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(0), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => GTHE3_CHANNEL_TXSYNCDONE(0), + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '1', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(0), + TXUSRCLK2 => txusrclk2_in(0) + ); +\gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 4, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "OFF", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 13, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 16, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "TRUE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 1, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 32, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 1, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 16.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(1), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(1), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(1), + GTHRXP => gthrxp_in(1), + GTHTXN => gthtxn_out(1), + GTHTXP => gthtxp_out(1), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(1), + GTREFCLK0 => gtrefclk0_in(1), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(5 downto 3), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(1), + RXCDRLOCK => rxcdrlock_out(1), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '0', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_240\, + RXCTRL0(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_241\, + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_256\, + RXCTRL1(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_257\, + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 0) => gtwiz_userdata_rx_out(31 downto 16), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(1), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '1', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(1), + RXPOLARITY => rxpolarity_in(1), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => rxratedone_out(1), + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(1), + RXSLIDE => rxslide_in(1), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(1), + RXUSRCLK2 => rxusrclk2_in(1), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 0) => B"0000000000000000", + TXCTRL1(15 downto 0) => B"0000000000000000", + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 32) => B"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(31 downto 0) => gtwiz_userdata_tx_in(63 downto 32), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(1), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"101", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(1), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(1), + TXPOLARITY => txpolarity_in(1), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => txprgdivresetdone_out(1), + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(1), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_68\, + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '0', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(1), + TXUSRCLK2 => txusrclk2_in(1) + ); +\gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 4, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "OFF", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 13, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 16, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "TRUE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 1, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 32, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 1, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 16.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(2), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(2), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(2), + GTHRXP => gthrxp_in(2), + GTHTXN => gthtxn_out(2), + GTHTXP => gthtxp_out(2), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(2), + GTREFCLK0 => gtrefclk0_in(2), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(8 downto 6), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(2), + RXCDRLOCK => rxcdrlock_out(2), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '0', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_240\, + RXCTRL0(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_241\, + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_256\, + RXCTRL1(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_257\, + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 0) => gtwiz_userdata_rx_out(47 downto 32), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(2), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '1', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(2), + RXPOLARITY => rxpolarity_in(2), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => rxratedone_out(2), + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(2), + RXSLIDE => rxslide_in(2), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(2), + RXUSRCLK2 => rxusrclk2_in(2), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 0) => B"0000000000000000", + TXCTRL1(15 downto 0) => B"0000000000000000", + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 32) => B"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(31 downto 0) => gtwiz_userdata_tx_in(95 downto 64), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(2), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"101", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(2), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(2), + TXPOLARITY => txpolarity_in(2), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => txprgdivresetdone_out(2), + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(2), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_68\, + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '0', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(2), + TXUSRCLK2 => txusrclk2_in(2) + ); +\gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST\: unisim.vcomponents.GTHE3_CHANNEL + generic map( + ACJTAG_DEBUG_MODE => '0', + ACJTAG_MODE => '0', + ACJTAG_RESET => '0', + ADAPT_CFG0 => X"F800", + ADAPT_CFG1 => X"0000", + ALIGN_COMMA_DOUBLE => "FALSE", + ALIGN_COMMA_ENABLE => B"0000000000", + ALIGN_COMMA_WORD => 1, + ALIGN_MCOMMA_DET => "FALSE", + ALIGN_MCOMMA_VALUE => B"1010000011", + ALIGN_PCOMMA_DET => "FALSE", + ALIGN_PCOMMA_VALUE => B"0101111100", + A_RXOSCALRESET => '0', + A_RXPROGDIVRESET => '0', + A_TXPROGDIVRESET => '0', + CBCC_DATA_SOURCE_SEL => "ENCODED", + CDR_SWAP_MODE_EN => '0', + CHAN_BOND_KEEP_ALIGN => "FALSE", + CHAN_BOND_MAX_SKEW => 1, + CHAN_BOND_SEQ_1_1 => B"0000000000", + CHAN_BOND_SEQ_1_2 => B"0000000000", + CHAN_BOND_SEQ_1_3 => B"0000000000", + CHAN_BOND_SEQ_1_4 => B"0000000000", + CHAN_BOND_SEQ_1_ENABLE => B"1111", + CHAN_BOND_SEQ_2_1 => B"0000000000", + CHAN_BOND_SEQ_2_2 => B"0000000000", + CHAN_BOND_SEQ_2_3 => B"0000000000", + CHAN_BOND_SEQ_2_4 => B"0000000000", + CHAN_BOND_SEQ_2_ENABLE => B"1111", + CHAN_BOND_SEQ_2_USE => "FALSE", + CHAN_BOND_SEQ_LEN => 1, + CLK_CORRECT_USE => "FALSE", + CLK_COR_KEEP_IDLE => "FALSE", + CLK_COR_MAX_LAT => 6, + CLK_COR_MIN_LAT => 4, + CLK_COR_PRECEDENCE => "TRUE", + CLK_COR_REPEAT_WAIT => 0, + CLK_COR_SEQ_1_1 => B"0000000000", + CLK_COR_SEQ_1_2 => B"0000000000", + CLK_COR_SEQ_1_3 => B"0000000000", + CLK_COR_SEQ_1_4 => B"0000000000", + CLK_COR_SEQ_1_ENABLE => B"1111", + CLK_COR_SEQ_2_1 => B"0000000000", + CLK_COR_SEQ_2_2 => B"0000000000", + CLK_COR_SEQ_2_3 => B"0000000000", + CLK_COR_SEQ_2_4 => B"0000000000", + CLK_COR_SEQ_2_ENABLE => B"1111", + CLK_COR_SEQ_2_USE => "FALSE", + CLK_COR_SEQ_LEN => 1, + CPLL_CFG0 => X"67F8", + CPLL_CFG1 => X"A4AC", + CPLL_CFG2 => X"5007", + CPLL_CFG3 => B"00" & X"0", + CPLL_FBDIV => 2, + CPLL_FBDIV_45 => 4, + CPLL_INIT_CFG0 => X"02B2", + CPLL_INIT_CFG1 => X"00", + CPLL_LOCK_CFG => X"01E8", + CPLL_REFCLK_DIV => 1, + DDI_CTRL => B"00", + DDI_REALIGN_WAIT => 15, + DEC_MCOMMA_DETECT => "FALSE", + DEC_PCOMMA_DETECT => "FALSE", + DEC_VALID_COMMA_ONLY => "FALSE", + DFE_D_X_REL_POS => '0', + DFE_VCM_COMP_EN => '0', + DMONITOR_CFG0 => B"00" & X"00", + DMONITOR_CFG1 => X"00", + ES_CLK_PHASE_SEL => '0', + ES_CONTROL => B"000000", + ES_ERRDET_EN => "FALSE", + ES_EYE_SCAN_EN => "FALSE", + ES_HORZ_OFFSET => X"000", + ES_PMA_CFG => B"0000000000", + ES_PRESCALE => B"00000", + ES_QUALIFIER0 => X"0000", + ES_QUALIFIER1 => X"0000", + ES_QUALIFIER2 => X"0000", + ES_QUALIFIER3 => X"0000", + ES_QUALIFIER4 => X"0000", + ES_QUAL_MASK0 => X"0000", + ES_QUAL_MASK1 => X"0000", + ES_QUAL_MASK2 => X"0000", + ES_QUAL_MASK3 => X"0000", + ES_QUAL_MASK4 => X"0000", + ES_SDATA_MASK0 => X"0000", + ES_SDATA_MASK1 => X"0000", + ES_SDATA_MASK2 => X"0000", + ES_SDATA_MASK3 => X"0000", + ES_SDATA_MASK4 => X"0000", + EVODD_PHI_CFG => B"00000000000", + EYE_SCAN_SWAP_EN => '0', + FTS_DESKEW_SEQ_ENABLE => B"1111", + FTS_LANE_DESKEW_CFG => B"1111", + FTS_LANE_DESKEW_EN => "FALSE", + GEARBOX_MODE => B"00000", + GM_BIAS_SELECT => '0', + LOCAL_MASTER => '1', + OOBDIVCTL => B"00", + OOB_PWRUP => '0', + PCI3_AUTO_REALIGN => "OVR_1K_BLK", + PCI3_PIPE_RX_ELECIDLE => '0', + PCI3_RX_ASYNC_EBUF_BYPASS => B"00", + PCI3_RX_ELECIDLE_EI2_ENABLE => '0', + PCI3_RX_ELECIDLE_H2L_COUNT => B"000000", + PCI3_RX_ELECIDLE_H2L_DISABLE => B"000", + PCI3_RX_ELECIDLE_HI_COUNT => B"000000", + PCI3_RX_ELECIDLE_LP4_DISABLE => '0', + PCI3_RX_FIFO_DISABLE => '0', + PCIE_BUFG_DIV_CTRL => X"1000", + PCIE_RXPCS_CFG_GEN3 => X"02A4", + PCIE_RXPMA_CFG => X"000A", + PCIE_TXPCS_CFG_GEN3 => X"24A4", + PCIE_TXPMA_CFG => X"000A", + PCS_PCIE_EN => "FALSE", + PCS_RSVD0 => B"0000000000000000", + PCS_RSVD1 => B"000", + PD_TRANS_TIME_FROM_P2 => X"03C", + PD_TRANS_TIME_NONE_P2 => X"19", + PD_TRANS_TIME_TO_P2 => X"64", + PLL_SEL_MODE_GEN12 => B"00", + PLL_SEL_MODE_GEN3 => B"11", + PMA_RSV1 => X"F000", + PROCESS_PAR => B"010", + RATE_SW_USE_DRP => '1', + RESET_POWERSAVE_DISABLE => '0', + RXBUFRESET_TIME => B"00011", + RXBUF_ADDR_MODE => "FAST", + RXBUF_EIDLE_HI_CNT => B"1000", + RXBUF_EIDLE_LO_CNT => B"0000", + RXBUF_EN => "TRUE", + RXBUF_RESET_ON_CB_CHANGE => "TRUE", + RXBUF_RESET_ON_COMMAALIGN => "FALSE", + RXBUF_RESET_ON_EIDLE => "FALSE", + RXBUF_RESET_ON_RATE_CHANGE => "TRUE", + RXBUF_THRESH_OVFLW => 61, + RXBUF_THRESH_OVRD => "TRUE", + RXBUF_THRESH_UNDFLW => 1, + RXCDRFREQRESET_TIME => B"00001", + RXCDRPHRESET_TIME => B"00001", + RXCDR_CFG0 => X"0000", + RXCDR_CFG0_GEN3 => X"0000", + RXCDR_CFG1 => X"0000", + RXCDR_CFG1_GEN3 => X"0000", + RXCDR_CFG2 => X"07E6", + RXCDR_CFG2_GEN3 => X"07E6", + RXCDR_CFG3 => X"0000", + RXCDR_CFG3_GEN3 => X"0000", + RXCDR_CFG4 => X"0000", + RXCDR_CFG4_GEN3 => X"0000", + RXCDR_CFG5 => X"0000", + RXCDR_CFG5_GEN3 => X"0000", + RXCDR_FR_RESET_ON_EIDLE => '0', + RXCDR_HOLD_DURING_EIDLE => '0', + RXCDR_LOCK_CFG0 => X"4480", + RXCDR_LOCK_CFG1 => X"5FFF", + RXCDR_LOCK_CFG2 => X"77C3", + RXCDR_PH_RESET_ON_EIDLE => '0', + RXCFOK_CFG0 => X"4000", + RXCFOK_CFG1 => X"0065", + RXCFOK_CFG2 => X"002E", + RXDFELPMRESET_TIME => B"0001111", + RXDFELPM_KL_CFG0 => X"0000", + RXDFELPM_KL_CFG1 => X"0002", + RXDFELPM_KL_CFG2 => X"0000", + RXDFE_CFG0 => X"0A00", + RXDFE_CFG1 => X"0000", + RXDFE_GC_CFG0 => X"0000", + RXDFE_GC_CFG1 => X"7870", + RXDFE_GC_CFG2 => X"0000", + RXDFE_H2_CFG0 => X"0000", + RXDFE_H2_CFG1 => X"0000", + RXDFE_H3_CFG0 => X"4000", + RXDFE_H3_CFG1 => X"0000", + RXDFE_H4_CFG0 => X"2000", + RXDFE_H4_CFG1 => X"0003", + RXDFE_H5_CFG0 => X"2000", + RXDFE_H5_CFG1 => X"0003", + RXDFE_H6_CFG0 => X"2000", + RXDFE_H6_CFG1 => X"0000", + RXDFE_H7_CFG0 => X"2000", + RXDFE_H7_CFG1 => X"0000", + RXDFE_H8_CFG0 => X"2000", + RXDFE_H8_CFG1 => X"0000", + RXDFE_H9_CFG0 => X"2000", + RXDFE_H9_CFG1 => X"0000", + RXDFE_HA_CFG0 => X"2000", + RXDFE_HA_CFG1 => X"0000", + RXDFE_HB_CFG0 => X"2000", + RXDFE_HB_CFG1 => X"0000", + RXDFE_HC_CFG0 => X"0000", + RXDFE_HC_CFG1 => X"0000", + RXDFE_HD_CFG0 => X"0000", + RXDFE_HD_CFG1 => X"0000", + RXDFE_HE_CFG0 => X"0000", + RXDFE_HE_CFG1 => X"0000", + RXDFE_HF_CFG0 => X"0000", + RXDFE_HF_CFG1 => X"0000", + RXDFE_OS_CFG0 => X"8000", + RXDFE_OS_CFG1 => X"0000", + RXDFE_UT_CFG0 => X"8000", + RXDFE_UT_CFG1 => X"0003", + RXDFE_VP_CFG0 => X"AA00", + RXDFE_VP_CFG1 => X"0033", + RXDLY_CFG => X"001F", + RXDLY_LCFG => X"0030", + RXELECIDLE_CFG => "Sigcfg_4", + RXGBOX_FIFO_INIT_RD_ADDR => 4, + RXGEARBOX_EN => "FALSE", + RXISCANRESET_TIME => B"00001", + RXLPM_CFG => X"0000", + RXLPM_GC_CFG => X"1000", + RXLPM_KH_CFG0 => X"0000", + RXLPM_KH_CFG1 => X"0002", + RXLPM_OS_CFG0 => X"8000", + RXLPM_OS_CFG1 => X"0002", + RXOOB_CFG => B"000000110", + RXOOB_CLK_CFG => "PMA", + RXOSCALRESET_TIME => B"00011", + RXOUT_DIV => 1, + RXPCSRESET_TIME => B"00011", + RXPHBEACON_CFG => X"0000", + RXPHDLY_CFG => X"2020", + RXPHSAMP_CFG => X"2100", + RXPHSLIP_CFG => X"6622", + RXPH_MONITOR_SEL => B"00000", + RXPI_CFG0 => B"00", + RXPI_CFG1 => B"00", + RXPI_CFG2 => B"00", + RXPI_CFG3 => B"00", + RXPI_CFG4 => '1', + RXPI_CFG5 => '1', + RXPI_CFG6 => B"011", + RXPI_LPM => '0', + RXPI_VREFSEL => '0', + RXPMACLK_SEL => "DATA", + RXPMARESET_TIME => B"00011", + RXPRBS_ERR_LOOPBACK => '0', + RXPRBS_LINKACQ_CNT => 15, + RXSLIDE_AUTO_WAIT => 7, + RXSLIDE_MODE => "OFF", + RXSYNC_MULTILANE => '1', + RXSYNC_OVRD => '0', + RXSYNC_SKIP_DA => '0', + RX_AFE_CM_EN => '0', + RX_BIAS_CFG0 => X"0AB4", + RX_BUFFER_CFG => B"000000", + RX_CAPFF_SARC_ENB => '0', + RX_CLK25_DIV => 13, + RX_CLKMUX_EN => '1', + RX_CLK_SLIP_OVRD => B"00000", + RX_CM_BUF_CFG => B"1010", + RX_CM_BUF_PD => '0', + RX_CM_SEL => B"11", + RX_CM_TRIM => B"1010", + RX_CTLE3_LPF => B"00000001", + RX_DATA_WIDTH => 16, + RX_DDI_SEL => B"000000", + RX_DEFER_RESET_BUF_EN => "TRUE", + RX_DFELPM_CFG0 => B"0110", + RX_DFELPM_CFG1 => '1', + RX_DFELPM_KLKH_AGC_STUP_EN => '1', + RX_DFE_AGC_CFG0 => B"10", + RX_DFE_AGC_CFG1 => B"100", + RX_DFE_KL_LPM_KH_CFG0 => B"01", + RX_DFE_KL_LPM_KH_CFG1 => B"100", + RX_DFE_KL_LPM_KL_CFG0 => B"01", + RX_DFE_KL_LPM_KL_CFG1 => B"100", + RX_DFE_LPM_HOLD_DURING_EIDLE => '0', + RX_DISPERR_SEQ_MATCH => "TRUE", + RX_DIVRESET_TIME => B"00001", + RX_EN_HI_LR => '0', + RX_EYESCAN_VS_CODE => B"0000000", + RX_EYESCAN_VS_NEG_DIR => '0', + RX_EYESCAN_VS_RANGE => B"00", + RX_EYESCAN_VS_UT_SIGN => '0', + RX_FABINT_USRCLK_FLOP => '0', + RX_INT_DATAWIDTH => 0, + RX_PMA_POWER_SAVE => '0', + RX_PROGDIV_CFG => 0.000000, + RX_SAMPLE_PERIOD => B"111", + RX_SIG_VALID_DLY => 11, + RX_SUM_DFETAPREP_EN => '0', + RX_SUM_IREF_TUNE => B"0000", + RX_SUM_RES_CTRL => B"00", + RX_SUM_VCMTUNE => B"0000", + RX_SUM_VCM_OVWR => '0', + RX_SUM_VREF_TUNE => B"000", + RX_TUNE_AFE_OS => B"10", + RX_WIDEMODE_CDR => '0', + RX_XCLK_SEL => "RXDES", + SAS_MAX_COM => 64, + SAS_MIN_COM => 36, + SATA_BURST_SEQ_LEN => B"1110", + SATA_BURST_VAL => B"100", + SATA_CPLL_CFG => "VCO_3000MHZ", + SATA_EIDLE_VAL => B"100", + SATA_MAX_BURST => 8, + SATA_MAX_INIT => 21, + SATA_MAX_WAKE => 7, + SATA_MIN_BURST => 4, + SATA_MIN_INIT => 12, + SATA_MIN_WAKE => 4, + SHOW_REALIGN_COMMA => "TRUE", + SIM_MODE => "FAST", + SIM_RECEIVER_DETECT_PASS => "TRUE", + SIM_RESET_SPEEDUP => "TRUE", + SIM_TX_EIDLE_DRIVE_LEVEL => '0', + SIM_VERSION => 2, + TAPDLY_SET_TX => B"00", + TEMPERATUR_PAR => B"0010", + TERM_RCAL_CFG => B"100001000010000", + TERM_RCAL_OVRD => B"000", + TRANS_TIME_RATE => X"0E", + TST_RSV0 => X"00", + TST_RSV1 => X"00", + TXBUF_EN => "FALSE", + TXBUF_RESET_ON_RATE_CHANGE => "TRUE", + TXDLY_CFG => X"0009", + TXDLY_LCFG => X"0050", + TXDRVBIAS_N => B"1010", + TXDRVBIAS_P => B"1010", + TXFIFO_ADDR_CFG => "LOW", + TXGBOX_FIFO_INIT_RD_ADDR => 4, + TXGEARBOX_EN => "FALSE", + TXOUT_DIV => 1, + TXPCSRESET_TIME => B"00011", + TXPHDLY_CFG0 => X"2020", + TXPHDLY_CFG1 => X"0075", + TXPH_CFG => X"0980", + TXPH_MONITOR_SEL => B"00000", + TXPI_CFG0 => B"00", + TXPI_CFG1 => B"00", + TXPI_CFG2 => B"00", + TXPI_CFG3 => '1', + TXPI_CFG4 => '1', + TXPI_CFG5 => B"000", + TXPI_GRAY_SEL => '0', + TXPI_INVSTROBE_SEL => '1', + TXPI_LPM => '0', + TXPI_PPMCLK_SEL => "TXUSRCLK2", + TXPI_PPM_CFG => B"00000000", + TXPI_SYNFREQ_PPM => B"001", + TXPI_VREFSEL => '0', + TXPMARESET_TIME => B"00011", + TXSYNC_MULTILANE => '1', + TXSYNC_OVRD => '0', + TXSYNC_SKIP_DA => '0', + TX_CLK25_DIV => 10, + TX_CLKMUX_EN => '1', + TX_DATA_WIDTH => 32, + TX_DCD_CFG => B"000010", + TX_DCD_EN => '0', + TX_DEEMPH0 => B"000000", + TX_DEEMPH1 => B"000000", + TX_DIVRESET_TIME => B"00001", + TX_DRIVE_MODE => "DIRECT", + TX_EIDLE_ASSERT_DELAY => B"100", + TX_EIDLE_DEASSERT_DELAY => B"011", + TX_EML_PHI_TUNE => '0', + TX_FABINT_USRCLK_FLOP => '0', + TX_IDLE_DATA_ZERO => '0', + TX_INT_DATAWIDTH => 1, + TX_LOOPBACK_DRIVE_HIZ => "FALSE", + TX_MAINCURSOR_SEL => '0', + TX_MARGIN_FULL_0 => B"1001111", + TX_MARGIN_FULL_1 => B"1001110", + TX_MARGIN_FULL_2 => B"1001100", + TX_MARGIN_FULL_3 => B"1001010", + TX_MARGIN_FULL_4 => B"1001000", + TX_MARGIN_LOW_0 => B"1000110", + TX_MARGIN_LOW_1 => B"1000101", + TX_MARGIN_LOW_2 => B"1000011", + TX_MARGIN_LOW_3 => B"1000010", + TX_MARGIN_LOW_4 => B"1000000", + TX_MODE_SEL => B"000", + TX_PMADATA_OPT => '0', + TX_PMA_POWER_SAVE => '0', + TX_PROGCLK_SEL => "PREPI", + TX_PROGDIV_CFG => 16.000000, + TX_QPI_STATUS_EN => '0', + TX_RXDETECT_CFG => B"00" & X"032", + TX_RXDETECT_REF => B"100", + TX_SAMPLE_PERIOD => B"111", + TX_SARC_LPBK_ENB => '0', + TX_XCLK_SEL => "TXUSR", + USE_PCS_CLK_PHASE_SEL => '0', + WB_MODE => B"00" + ) + port map ( + BUFGTCE(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_289\, + BUFGTCE(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_290\, + BUFGTCE(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_291\, + BUFGTCEMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_292\, + BUFGTCEMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_293\, + BUFGTCEMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_294\, + BUFGTDIV(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_357\, + BUFGTDIV(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_358\, + BUFGTDIV(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_359\, + BUFGTDIV(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_360\, + BUFGTDIV(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_361\, + BUFGTDIV(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_362\, + BUFGTDIV(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_363\, + BUFGTDIV(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_364\, + BUFGTDIV(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_365\, + BUFGTRESET(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_295\, + BUFGTRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_296\, + BUFGTRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_297\, + BUFGTRSTMASK(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_298\, + BUFGTRSTMASK(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_299\, + BUFGTRSTMASK(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_300\, + CFGRESET => '0', + CLKRSVD0 => '0', + CLKRSVD1 => '0', + CPLLFBCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_0\, + CPLLLOCK => cplllock_out(3), + CPLLLOCKDETCLK => '0', + CPLLLOCKEN => '1', + CPLLPD => GTHE3_CHANNEL_CPLLPD(0), + CPLLREFCLKLOST => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_2\, + CPLLREFCLKSEL(2 downto 0) => B"001", + CPLLRESET => '0', + DMONFIFORESET => '0', + DMONITORCLK => '0', + DMONITOROUT(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_258\, + DMONITOROUT(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_259\, + DMONITOROUT(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_260\, + DMONITOROUT(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_261\, + DMONITOROUT(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_262\, + DMONITOROUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_263\, + DMONITOROUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_264\, + DMONITOROUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_265\, + DMONITOROUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_266\, + DMONITOROUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_267\, + DMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_268\, + DMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_269\, + DMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_270\, + DMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_271\, + DMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_272\, + DMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_273\, + DMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_274\, + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => drpclk_in(3), + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_210\, + DRPDO(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_211\, + DRPDO(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_212\, + DRPDO(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_213\, + DRPDO(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_214\, + DRPDO(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_215\, + DRPDO(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_216\, + DRPDO(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_217\, + DRPDO(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_218\, + DRPDO(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_219\, + DRPDO(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_220\, + DRPDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_221\, + DRPDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_222\, + DRPDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_223\, + DRPDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_224\, + DRPDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_225\, + DRPEN => '0', + DRPRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_3\, + DRPWE => '0', + EVODDPHICALDONE => '0', + EVODDPHICALSTART => '0', + EVODDPHIDRDEN => '0', + EVODDPHIDWREN => '0', + EVODDPHIXRDEN => '0', + EVODDPHIXWREN => '0', + EYESCANDATAERROR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_4\, + EYESCANMODE => '0', + EYESCANRESET => '0', + EYESCANTRIGGER => '0', + GTGREFCLK => '0', + GTHRXN => gthrxn_in(3), + GTHRXP => gthrxp_in(3), + GTHTXN => gthtxn_out(3), + GTHTXP => gthtxp_out(3), + GTNORTHREFCLK0 => '0', + GTNORTHREFCLK1 => '0', + GTPOWERGOOD => gtpowergood_out(3), + GTREFCLK0 => gtrefclk0_in(3), + GTREFCLK1 => '0', + GTREFCLKMONITOR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_8\, + GTRESETSEL => '0', + GTRSVD(15 downto 0) => B"0000000000000000", + GTRXRESET => GTHE3_CHANNEL_GTRXRESET(0), + GTSOUTHREFCLK0 => '0', + GTSOUTHREFCLK1 => '0', + GTTXRESET => GTHE3_CHANNEL_GTTXRESET(0), + LOOPBACK(2 downto 0) => loopback_in(11 downto 9), + LPBKRXTXSEREN => '0', + LPBKTXRXSEREN => '0', + PCIEEQRXEQADAPTDONE => '0', + PCIERATEGEN3 => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_9\, + PCIERATEIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_10\, + PCIERATEQPLLPD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_275\, + PCIERATEQPLLPD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_276\, + PCIERATEQPLLRESET(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_277\, + PCIERATEQPLLRESET(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_278\, + PCIERSTIDLE => '0', + PCIERSTTXSYNCSTART => '0', + PCIESYNCTXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_11\, + PCIEUSERGEN3RDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_12\, + PCIEUSERPHYSTATUSRST => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_13\, + PCIEUSERRATEDONE => '0', + PCIEUSERRATESTART => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_14\, + PCSRSVDIN(15 downto 0) => B"0000000000000000", + PCSRSVDIN2(4 downto 0) => B"00000", + PCSRSVDOUT(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_70\, + PCSRSVDOUT(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_71\, + PCSRSVDOUT(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_72\, + PCSRSVDOUT(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_73\, + PCSRSVDOUT(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_74\, + PCSRSVDOUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_75\, + PCSRSVDOUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_76\, + PCSRSVDOUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_77\, + PCSRSVDOUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_78\, + PCSRSVDOUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_79\, + PCSRSVDOUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_80\, + PCSRSVDOUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_81\, + PHYSTATUS => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_15\, + PINRSRVDAS(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_325\, + PINRSRVDAS(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_326\, + PINRSRVDAS(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_327\, + PINRSRVDAS(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_328\, + PINRSRVDAS(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_329\, + PINRSRVDAS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_330\, + PINRSRVDAS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_331\, + PINRSRVDAS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_332\, + PMARSVDIN(4 downto 0) => B"00000", + QPLL0CLK => qpll0outclk_out(0), + QPLL0REFCLK => qpll0outrefclk_out(0), + QPLL1CLK => qpll1outclk_out(0), + QPLL1REFCLK => qpll1outrefclk_out(0), + RESETEXCEPTION => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_16\, + RESETOVRD => '0', + RSTCLKENTX => '0', + RX8B10BEN => '0', + RXBUFRESET => '0', + RXBUFSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_301\, + RXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_302\, + RXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_303\, + RXBYTEISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_17\, + RXBYTEREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_18\, + RXCDRFREQRESET => '0', + RXCDRHOLD => rxcdrhold_in(3), + RXCDRLOCK => rxcdrlock_out(3), + RXCDROVRDEN => '0', + RXCDRPHDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_20\, + RXCDRRESET => '0', + RXCDRRESETRSV => '0', + RXCHANBONDSEQ => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_21\, + RXCHANISALIGNED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_22\, + RXCHANREALIGN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_23\, + RXCHBONDEN => '0', + RXCHBONDI(4 downto 0) => B"00000", + RXCHBONDLEVEL(2 downto 0) => B"000", + RXCHBONDMASTER => '0', + RXCHBONDO(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_307\, + RXCHBONDO(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_308\, + RXCHBONDO(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_309\, + RXCHBONDO(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_310\, + RXCHBONDO(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_311\, + RXCHBONDSLAVE => '0', + RXCLKCORCNT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_279\, + RXCLKCORCNT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_280\, + RXCOMINITDET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_24\, + RXCOMMADET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_25\, + RXCOMMADETEN => '0', + RXCOMSASDET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_26\, + RXCOMWAKEDET => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_27\, + RXCTRL0(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_226\, + RXCTRL0(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_227\, + RXCTRL0(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_228\, + RXCTRL0(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_229\, + RXCTRL0(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_230\, + RXCTRL0(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_231\, + RXCTRL0(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_232\, + RXCTRL0(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_233\, + RXCTRL0(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_234\, + RXCTRL0(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_235\, + RXCTRL0(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_236\, + RXCTRL0(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_237\, + RXCTRL0(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_238\, + RXCTRL0(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_239\, + RXCTRL0(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_240\, + RXCTRL0(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_241\, + RXCTRL1(15) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_242\, + RXCTRL1(14) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_243\, + RXCTRL1(13) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_244\, + RXCTRL1(12) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_245\, + RXCTRL1(11) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_246\, + RXCTRL1(10) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_247\, + RXCTRL1(9) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_248\, + RXCTRL1(8) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_249\, + RXCTRL1(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_250\, + RXCTRL1(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_251\, + RXCTRL1(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_252\, + RXCTRL1(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_253\, + RXCTRL1(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_254\, + RXCTRL1(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_255\, + RXCTRL1(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_256\, + RXCTRL1(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_257\, + RXCTRL2(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_333\, + RXCTRL2(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_334\, + RXCTRL2(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_335\, + RXCTRL2(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_336\, + RXCTRL2(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_337\, + RXCTRL2(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_338\, + RXCTRL2(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_339\, + RXCTRL2(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_340\, + RXCTRL3(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_341\, + RXCTRL3(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_342\, + RXCTRL3(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_343\, + RXCTRL3(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_344\, + RXCTRL3(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_345\, + RXCTRL3(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_346\, + RXCTRL3(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_347\, + RXCTRL3(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_348\, + RXDATA(127) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_82\, + RXDATA(126) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_83\, + RXDATA(125) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_84\, + RXDATA(124) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_85\, + RXDATA(123) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_86\, + RXDATA(122) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_87\, + RXDATA(121) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_88\, + RXDATA(120) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_89\, + RXDATA(119) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_90\, + RXDATA(118) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_91\, + RXDATA(117) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_92\, + RXDATA(116) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_93\, + RXDATA(115) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_94\, + RXDATA(114) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_95\, + RXDATA(113) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_96\, + RXDATA(112) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_97\, + RXDATA(111) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_98\, + RXDATA(110) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_99\, + RXDATA(109) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_100\, + RXDATA(108) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_101\, + RXDATA(107) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_102\, + RXDATA(106) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_103\, + RXDATA(105) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_104\, + RXDATA(104) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_105\, + RXDATA(103) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_106\, + RXDATA(102) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_107\, + RXDATA(101) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_108\, + RXDATA(100) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_109\, + RXDATA(99) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_110\, + RXDATA(98) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_111\, + RXDATA(97) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_112\, + RXDATA(96) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_113\, + RXDATA(95) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_114\, + RXDATA(94) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_115\, + RXDATA(93) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_116\, + RXDATA(92) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_117\, + RXDATA(91) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_118\, + RXDATA(90) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_119\, + RXDATA(89) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_120\, + RXDATA(88) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_121\, + RXDATA(87) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_122\, + RXDATA(86) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_123\, + RXDATA(85) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_124\, + RXDATA(84) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_125\, + RXDATA(83) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_126\, + RXDATA(82) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_127\, + RXDATA(81) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_128\, + RXDATA(80) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_129\, + RXDATA(79) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_130\, + RXDATA(78) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_131\, + RXDATA(77) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_132\, + RXDATA(76) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_133\, + RXDATA(75) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_134\, + RXDATA(74) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_135\, + RXDATA(73) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_136\, + RXDATA(72) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_137\, + RXDATA(71) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_138\, + RXDATA(70) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_139\, + RXDATA(69) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_140\, + RXDATA(68) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_141\, + RXDATA(67) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_142\, + RXDATA(66) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_143\, + RXDATA(65) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_144\, + RXDATA(64) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_145\, + RXDATA(63) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_146\, + RXDATA(62) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_147\, + RXDATA(61) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_148\, + RXDATA(60) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_149\, + RXDATA(59) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_150\, + RXDATA(58) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_151\, + RXDATA(57) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_152\, + RXDATA(56) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_153\, + RXDATA(55) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_154\, + RXDATA(54) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_155\, + RXDATA(53) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_156\, + RXDATA(52) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_157\, + RXDATA(51) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_158\, + RXDATA(50) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_159\, + RXDATA(49) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_160\, + RXDATA(48) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_161\, + RXDATA(47) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_162\, + RXDATA(46) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_163\, + RXDATA(45) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_164\, + RXDATA(44) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_165\, + RXDATA(43) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_166\, + RXDATA(42) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_167\, + RXDATA(41) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_168\, + RXDATA(40) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_169\, + RXDATA(39) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_170\, + RXDATA(38) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_171\, + RXDATA(37) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_172\, + RXDATA(36) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_173\, + RXDATA(35) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_174\, + RXDATA(34) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_175\, + RXDATA(33) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_176\, + RXDATA(32) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_177\, + RXDATA(31) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_178\, + RXDATA(30) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_179\, + RXDATA(29) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_180\, + RXDATA(28) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_181\, + RXDATA(27) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_182\, + RXDATA(26) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_183\, + RXDATA(25) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_184\, + RXDATA(24) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_185\, + RXDATA(23) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_186\, + RXDATA(22) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_187\, + RXDATA(21) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_188\, + RXDATA(20) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_189\, + RXDATA(19) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_190\, + RXDATA(18) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_191\, + RXDATA(17) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_192\, + RXDATA(16) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_193\, + RXDATA(15 downto 0) => gtwiz_userdata_rx_out(63 downto 48), + RXDATAEXTENDRSVD(7) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_349\, + RXDATAEXTENDRSVD(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_350\, + RXDATAEXTENDRSVD(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_351\, + RXDATAEXTENDRSVD(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_352\, + RXDATAEXTENDRSVD(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_353\, + RXDATAEXTENDRSVD(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_354\, + RXDATAEXTENDRSVD(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_355\, + RXDATAEXTENDRSVD(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_356\, + RXDATAVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_281\, + RXDATAVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_282\, + RXDFEAGCCTRL(1 downto 0) => B"01", + RXDFEAGCHOLD => '0', + RXDFEAGCOVRDEN => '0', + RXDFELFHOLD => '0', + RXDFELFOVRDEN => '0', + RXDFELPMRESET => '0', + RXDFETAP10HOLD => '0', + RXDFETAP10OVRDEN => '0', + RXDFETAP11HOLD => '0', + RXDFETAP11OVRDEN => '0', + RXDFETAP12HOLD => '0', + RXDFETAP12OVRDEN => '0', + RXDFETAP13HOLD => '0', + RXDFETAP13OVRDEN => '0', + RXDFETAP14HOLD => '0', + RXDFETAP14OVRDEN => '0', + RXDFETAP15HOLD => '0', + RXDFETAP15OVRDEN => '0', + RXDFETAP2HOLD => '0', + RXDFETAP2OVRDEN => '0', + RXDFETAP3HOLD => '0', + RXDFETAP3OVRDEN => '0', + RXDFETAP4HOLD => '0', + RXDFETAP4OVRDEN => '0', + RXDFETAP5HOLD => '0', + RXDFETAP5OVRDEN => '0', + RXDFETAP6HOLD => '0', + RXDFETAP6OVRDEN => '0', + RXDFETAP7HOLD => '0', + RXDFETAP7OVRDEN => '0', + RXDFETAP8HOLD => '0', + RXDFETAP8OVRDEN => '0', + RXDFETAP9HOLD => '0', + RXDFETAP9OVRDEN => '0', + RXDFEUTHOLD => '0', + RXDFEUTOVRDEN => '0', + RXDFEVPHOLD => '0', + RXDFEVPOVRDEN => '0', + RXDFEVSEN => '0', + RXDFEXYDEN => '1', + RXDLYBYPASS => '1', + RXDLYEN => '0', + RXDLYOVRDEN => '0', + RXDLYSRESET => '0', + RXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_28\, + RXELECIDLE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_29\, + RXELECIDLEMODE(1 downto 0) => B"11", + RXGEARBOXSLIP => '0', + RXHEADER(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_312\, + RXHEADER(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_313\, + RXHEADER(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_314\, + RXHEADER(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_315\, + RXHEADER(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_316\, + RXHEADER(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_317\, + RXHEADERVALID(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_283\, + RXHEADERVALID(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_284\, + RXLATCLK => '0', + RXLPMEN => '0', + RXLPMGCHOLD => '0', + RXLPMGCOVRDEN => '0', + RXLPMHFHOLD => '0', + RXLPMHFOVRDEN => '0', + RXLPMLFHOLD => '0', + RXLPMLFKLOVRDEN => '0', + RXLPMOSHOLD => '0', + RXLPMOSOVRDEN => '0', + RXMCOMMAALIGNEN => '0', + RXMONITOROUT(6) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_318\, + RXMONITOROUT(5) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_319\, + RXMONITOROUT(4) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_320\, + RXMONITOROUT(3) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_321\, + RXMONITOROUT(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_322\, + RXMONITOROUT(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_323\, + RXMONITOROUT(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_324\, + RXMONITORSEL(1 downto 0) => B"00", + RXOOBRESET => '0', + RXOSCALRESET => '0', + RXOSHOLD => '0', + RXOSINTCFG(3 downto 0) => B"1101", + RXOSINTDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_30\, + RXOSINTEN => '1', + RXOSINTHOLD => '0', + RXOSINTOVRDEN => '0', + RXOSINTSTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_31\, + RXOSINTSTROBE => '0', + RXOSINTSTROBEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_32\, + RXOSINTSTROBESTARTED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_33\, + RXOSINTTESTOVRDEN => '0', + RXOSOVRDEN => '0', + RXOUTCLK => rxoutclk_out(3), + RXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_35\, + RXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_36\, + RXOUTCLKSEL(2 downto 0) => B"010", + RXPCOMMAALIGNEN => '0', + RXPCSRESET => '0', + RXPD(1 downto 0) => B"00", + RXPHALIGN => '0', + RXPHALIGNDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_37\, + RXPHALIGNEN => '0', + RXPHALIGNERR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_38\, + RXPHDLYPD => '1', + RXPHDLYRESET => '0', + RXPHOVRDEN => '0', + RXPLLCLKSEL(1 downto 0) => B"00", + RXPMARESET => '0', + RXPMARESETDONE => rxpmaresetdone_out(3), + RXPOLARITY => rxpolarity_in(3), + RXPRBSCNTRESET => '0', + RXPRBSERR => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_40\, + RXPRBSLOCKED => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_41\, + RXPRBSSEL(3 downto 0) => B"0000", + RXPRGDIVRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_42\, + RXPROGDIVRESET => GTHE3_CHANNEL_RXPROGDIVRESET(0), + RXQPIEN => '0', + RXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_43\, + RXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_44\, + RXRATE(2 downto 0) => B"000", + RXRATEDONE => rxratedone_out(3), + RXRATEMODE => '0', + RXRECCLKOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_46\, + RXRESETDONE => rxresetdone_out(3), + RXSLIDE => rxslide_in(3), + RXSLIDERDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_48\, + RXSLIPDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_49\, + RXSLIPOUTCLK => '0', + RXSLIPOUTCLKRDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_50\, + RXSLIPPMA => '0', + RXSLIPPMARDY => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_51\, + RXSTARTOFSEQ(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_285\, + RXSTARTOFSEQ(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_286\, + RXSTATUS(2) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_304\, + RXSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_305\, + RXSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_306\, + RXSYNCALLIN => '0', + RXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_52\, + RXSYNCIN => '0', + RXSYNCMODE => '0', + RXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_53\, + RXSYSCLKSEL(1 downto 0) => B"00", + RXUSERRDY => GTHE3_CHANNEL_RXUSERRDY(0), + RXUSRCLK => rxusrclk_in(3), + RXUSRCLK2 => rxusrclk2_in(3), + RXVALID => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_54\, + SIGVALIDCLK => '0', + TSTIN(19 downto 0) => B"00000000000000000000", + TX8B10BBYPASS(7 downto 0) => B"00000000", + TX8B10BEN => '0', + TXBUFDIFFCTRL(2 downto 0) => B"000", + TXBUFSTATUS(1) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_287\, + TXBUFSTATUS(0) => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_288\, + TXCOMFINISH => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_55\, + TXCOMINIT => '0', + TXCOMSAS => '0', + TXCOMWAKE => '0', + TXCTRL0(15 downto 0) => B"0000000000000000", + TXCTRL1(15 downto 0) => B"0000000000000000", + TXCTRL2(7 downto 0) => B"00000000", + TXDATA(127 downto 32) => B"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + TXDATA(31 downto 0) => gtwiz_userdata_tx_in(127 downto 96), + TXDATAEXTENDRSVD(7 downto 0) => B"00000000", + TXDEEMPH => '0', + TXDETECTRX => '0', + TXDIFFCTRL(3 downto 0) => B"1100", + TXDIFFPD => '0', + TXDLYBYPASS => '0', + TXDLYEN => '0', + TXDLYHOLD => '0', + TXDLYOVRDEN => '0', + TXDLYSRESET => GTHE3_CHANNEL_TXDLYSRESET(0), + TXDLYSRESETDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_56\, + TXDLYUPDOWN => '0', + TXELECIDLE => '0', + TXHEADER(5 downto 0) => B"000000", + TXINHIBIT => '0', + TXLATCLK => '0', + TXMAINCURSOR(6 downto 0) => B"1000000", + TXMARGIN(2 downto 0) => B"000", + TXOUTCLK => txoutclk_out(3), + TXOUTCLKFABRIC => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_58\, + TXOUTCLKPCS => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_59\, + TXOUTCLKSEL(2 downto 0) => B"101", + TXPCSRESET => '0', + TXPD(1 downto 0) => B"00", + TXPDELECIDLEMODE => '0', + TXPHALIGN => '0', + TXPHALIGNDONE => GTHE3_CHANNEL_TXPHALIGNDONE(3), + TXPHALIGNEN => '0', + TXPHDLYPD => '0', + TXPHDLYRESET => '0', + TXPHDLYTSTCLK => '0', + TXPHINIT => '0', + TXPHINITDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_61\, + TXPHOVRDEN => '0', + TXPIPPMEN => '0', + TXPIPPMOVRDEN => '0', + TXPIPPMPD => '0', + TXPIPPMSEL => '0', + TXPIPPMSTEPSIZE(4 downto 0) => B"00000", + TXPISOPD => '0', + TXPLLCLKSEL(1 downto 0) => B"10", + TXPMARESET => '0', + TXPMARESETDONE => txpmaresetdone_out(3), + TXPOLARITY => txpolarity_in(3), + TXPOSTCURSOR(4 downto 0) => B"00000", + TXPOSTCURSORINV => '0', + TXPRBSFORCEERR => '0', + TXPRBSSEL(3 downto 0) => B"0000", + TXPRECURSOR(4 downto 0) => B"00000", + TXPRECURSORINV => '0', + TXPRGDIVRESETDONE => txprgdivresetdone_out(3), + TXPROGDIVRESET => GTHE3_CHANNEL_TXPROGDIVRESET(0), + TXQPIBIASEN => '0', + TXQPISENN => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_64\, + TXQPISENP => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_65\, + TXQPISTRONGPDOWN => '0', + TXQPIWEAKPUP => '0', + TXRATE(2 downto 0) => B"000", + TXRATEDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_66\, + TXRATEMODE => '0', + TXRESETDONE => txresetdone_out(3), + TXSEQUENCE(6 downto 0) => B"0000000", + TXSWING => '0', + TXSYNCALLIN => GTHE3_CHANNEL_TXSYNCALLIN(0), + TXSYNCDONE => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_68\, + TXSYNCIN => \gthe3_channel_gen.gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYNCMODE => '0', + TXSYNCOUT => \gthe3_channel_gen.gen_gthe3_channel_inst[3].GTHE3_CHANNEL_PRIM_INST_n_69\, + TXSYSCLKSEL(1 downto 0) => B"11", + TXUSERRDY => GTHE3_CHANNEL_TXUSERRDY(0), + TXUSRCLK => txusrclk_in(3), + TXUSRCLK2 => txusrclk2_in(3) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_common is + port ( + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : out STD_LOGIC; + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_0\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_common : entity is "gtwizard_ultrascale_v1_7_18_gthe3_common"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_common; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_common is + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_0\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_10\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_11\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_12\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_13\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_14\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_15\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_16\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_17\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_18\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_19\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_20\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_21\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_22\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_23\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_24\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_25\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_26\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_27\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_28\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_29\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_30\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_31\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_32\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_33\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_34\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_35\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_36\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_37\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_38\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_39\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_40\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_41\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_42\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_43\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_44\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_45\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_46\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_47\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_48\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_49\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_5\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_50\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_51\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_52\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_53\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_54\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_55\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_56\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_57\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_58\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_59\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_60\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_61\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_62\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_63\ : STD_LOGIC; + signal \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_64\ : STD_LOGIC; + signal \^qpll1lock_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + attribute BOX_TYPE : string; + attribute BOX_TYPE of \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\ : label is "PRIMITIVE"; +begin + qpll1lock_out(0) <= \^qpll1lock_out\(0); +\gthe3_common_gen.GTHE3_COMMON_PRIM_INST\: unisim.vcomponents.GTHE3_COMMON + generic map( + BIAS_CFG0 => X"0000", + BIAS_CFG1 => X"0000", + BIAS_CFG2 => X"0000", + BIAS_CFG3 => X"0040", + BIAS_CFG4 => X"0000", + BIAS_CFG_RSVD => B"0000000000", + COMMON_CFG0 => X"0000", + COMMON_CFG1 => X"0000", + POR_CFG => X"0004", + QPLL0_CFG0 => X"321C", + QPLL0_CFG1 => X"1018", + QPLL0_CFG1_G3 => X"1018", + QPLL0_CFG2 => X"0048", + QPLL0_CFG2_G3 => X"0048", + QPLL0_CFG3 => X"0120", + QPLL0_CFG4 => X"0009", + QPLL0_CP => B"0000011111", + QPLL0_CP_G3 => B"1111111111", + QPLL0_FBDIV => 66, + QPLL0_FBDIV_G3 => 80, + QPLL0_INIT_CFG0 => X"02B2", + QPLL0_INIT_CFG1 => X"00", + QPLL0_LOCK_CFG => X"21E8", + QPLL0_LOCK_CFG_G3 => X"21E8", + QPLL0_LPF => B"1111111100", + QPLL0_LPF_G3 => B"0000010101", + QPLL0_REFCLK_DIV => 1, + QPLL0_SDM_CFG0 => B"0000000000000000", + QPLL0_SDM_CFG1 => B"0000000000000000", + QPLL0_SDM_CFG2 => B"0000000000000000", + QPLL1_CFG0 => X"321C", + QPLL1_CFG1 => X"1018", + QPLL1_CFG1_G3 => X"1018", + QPLL1_CFG2 => X"0040", + QPLL1_CFG2_G3 => X"0040", + QPLL1_CFG3 => X"0120", + QPLL1_CFG4 => X"0009", + QPLL1_CP => B"0111111111", + QPLL1_CP_G3 => B"1111111111", + QPLL1_FBDIV => 128, + QPLL1_FBDIV_G3 => 80, + QPLL1_INIT_CFG0 => X"02B2", + QPLL1_INIT_CFG1 => X"00", + QPLL1_LOCK_CFG => X"21E8", + QPLL1_LOCK_CFG_G3 => X"21E8", + QPLL1_LPF => B"1111111100", + QPLL1_LPF_G3 => B"0000010101", + QPLL1_REFCLK_DIV => 3, + QPLL1_SDM_CFG0 => B"0000000000000000", + QPLL1_SDM_CFG1 => B"0000000000000000", + QPLL1_SDM_CFG2 => B"0000000000000000", + RSVD_ATTR0 => X"0000", + RSVD_ATTR1 => X"0000", + RSVD_ATTR2 => X"0000", + RSVD_ATTR3 => X"0000", + RXRECCLKOUT0_SEL => B"00", + RXRECCLKOUT1_SEL => B"00", + SARC_EN => '1', + SARC_SEL => '0', + SDM0DATA1_0 => B"0000000000000000", + SDM0DATA1_1 => B"000000000", + SDM0INITSEED0_0 => B"0000000000000000", + SDM0INITSEED0_1 => B"000000000", + SDM0_DATA_PIN_SEL => '0', + SDM0_WIDTH_PIN_SEL => '0', + SDM1DATA1_0 => B"0000000000000000", + SDM1DATA1_1 => B"000000000", + SDM1INITSEED0_0 => B"0000000000000000", + SDM1INITSEED0_1 => B"000000000", + SDM1_DATA_PIN_SEL => '0', + SDM1_WIDTH_PIN_SEL => '0', + SIM_MODE => "FAST", + SIM_RESET_SPEEDUP => "TRUE", + SIM_VERSION => 2 + ) + port map ( + BGBYPASSB => '1', + BGMONITORENB => '1', + BGPDB => '1', + BGRCALOVRD(4 downto 0) => B"11111", + BGRCALOVRDENB => '1', + DRPADDR(8 downto 0) => B"000000000", + DRPCLK => '0', + DRPDI(15 downto 0) => B"0000000000000000", + DRPDO(15) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_13\, + DRPDO(14) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_14\, + DRPDO(13) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_15\, + DRPDO(12) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_16\, + DRPDO(11) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_17\, + DRPDO(10) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_18\, + DRPDO(9) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_19\, + DRPDO(8) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_20\, + DRPDO(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_21\, + DRPDO(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_22\, + DRPDO(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_23\, + DRPDO(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_24\, + DRPDO(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_25\, + DRPDO(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_26\, + DRPDO(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_27\, + DRPDO(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_28\, + DRPEN => '0', + DRPRDY => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_0\, + DRPWE => '0', + GTGREFCLK0 => '0', + GTGREFCLK1 => '0', + GTNORTHREFCLK00 => '0', + GTNORTHREFCLK01 => '0', + GTNORTHREFCLK10 => '0', + GTNORTHREFCLK11 => '0', + GTREFCLK00 => '0', + GTREFCLK01 => gtrefclk01_in(0), + GTREFCLK10 => '0', + GTREFCLK11 => '0', + GTSOUTHREFCLK00 => '0', + GTSOUTHREFCLK01 => '0', + GTSOUTHREFCLK10 => '0', + GTSOUTHREFCLK11 => '0', + PMARSVD0(7 downto 0) => B"00000000", + PMARSVD1(7 downto 0) => B"00000000", + PMARSVDOUT0(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_33\, + PMARSVDOUT0(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_34\, + PMARSVDOUT0(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_35\, + PMARSVDOUT0(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_36\, + PMARSVDOUT0(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_37\, + PMARSVDOUT0(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_38\, + PMARSVDOUT0(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_39\, + PMARSVDOUT0(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_40\, + PMARSVDOUT1(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_41\, + PMARSVDOUT1(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_42\, + PMARSVDOUT1(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_43\, + PMARSVDOUT1(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_44\, + PMARSVDOUT1(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_45\, + PMARSVDOUT1(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_46\, + PMARSVDOUT1(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_47\, + PMARSVDOUT1(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_48\, + QPLL0CLKRSVD0 => '0', + QPLL0CLKRSVD1 => '0', + QPLL0FBCLKLOST => qpll0fbclklost_out(0), + QPLL0LOCK => qpll0lock_out(0), + QPLL0LOCKDETCLK => '0', + QPLL0LOCKEN => '0', + QPLL0OUTCLK => qpll0outclk_out(0), + QPLL0OUTREFCLK => qpll0outrefclk_out(0), + QPLL0PD => '1', + QPLL0REFCLKLOST => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_5\, + QPLL0REFCLKSEL(2 downto 0) => B"001", + QPLL0RESET => '1', + QPLL1CLKRSVD0 => '0', + QPLL1CLKRSVD1 => '0', + QPLL1FBCLKLOST => qpll1fbclklost_out(0), + QPLL1LOCK => \^qpll1lock_out\(0), + QPLL1LOCKDETCLK => '0', + QPLL1LOCKEN => '1', + QPLL1OUTCLK => qpll1outclk_out(0), + QPLL1OUTREFCLK => qpll1outrefclk_out(0), + QPLL1PD => '0', + QPLL1REFCLKLOST => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_10\, + QPLL1REFCLKSEL(2 downto 0) => B"001", + QPLL1RESET => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_0\, + QPLLDMONITOR0(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_49\, + QPLLDMONITOR0(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_50\, + QPLLDMONITOR0(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_51\, + QPLLDMONITOR0(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_52\, + QPLLDMONITOR0(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_53\, + QPLLDMONITOR0(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_54\, + QPLLDMONITOR0(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_55\, + QPLLDMONITOR0(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_56\, + QPLLDMONITOR1(7) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_57\, + QPLLDMONITOR1(6) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_58\, + QPLLDMONITOR1(5) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_59\, + QPLLDMONITOR1(4) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_60\, + QPLLDMONITOR1(3) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_61\, + QPLLDMONITOR1(2) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_62\, + QPLLDMONITOR1(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_63\, + QPLLDMONITOR1(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_64\, + QPLLRSVD1(7 downto 0) => B"00000000", + QPLLRSVD2(4 downto 0) => B"00000", + QPLLRSVD3(4 downto 0) => B"00000", + QPLLRSVD4(7 downto 0) => B"00000000", + RCALENB => '1', + REFCLKOUTMONITOR0 => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_11\, + REFCLKOUTMONITOR1 => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_12\, + RXRECCLK0_SEL(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_29\, + RXRECCLK0_SEL(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_30\, + RXRECCLK1_SEL(1) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_31\, + RXRECCLK1_SEL(0) => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_n_32\ + ); +\rst_in_meta_i_1__3\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^qpll1lock_out\(0), + O => rst_in0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer is + port ( + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ : out STD_LOGIC; + E : out STD_LOGIC_VECTOR ( 0 to 0 ); + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ : out STD_LOGIC; + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync2_reg_0 : in STD_LOGIC; + Q : in STD_LOGIC_VECTOR ( 1 downto 0 ); + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ : in STD_LOGIC; + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : in STD_LOGIC; + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\ : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer : entity is "gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer is + signal \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ : STD_LOGIC; + signal p_0_in : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_3\ : label is "soft_lutpair21"; + attribute SOFT_HLUTNM of \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_done_out_i_1\ : label is "soft_lutpair21"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ <= \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\; +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AEFEAEAE" + ) + port map ( + I0 => Q(0), + I1 => p_0_in, + I2 => Q(1), + I3 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + I4 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + O => E(0) + ); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx[1]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"F4" + ) + port map ( + I0 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + I1 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + I2 => gtwiz_buffbypass_tx_start_user_in(0), + O => p_0_in + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_done_out_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"AAAA4454" + ) + port map ( + I0 => Q(0), + I1 => gtwiz_buffbypass_tx_start_user_in(0), + I2 => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + I3 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + I4 => Q(1), + O => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ + ); +rst_in_meta_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => '1', + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_sync3, + Q => \^gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ + ); +rst_in_sync1_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_meta, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_sync1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => rst_in_sync2_reg_0, + D => rst_in_sync2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 is + port ( + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync2_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 : entity is "gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal \rst_in_out_i_1__1_n_0\ : STD_LOGIC; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => '1', + Q => rst_in_meta + ); +\rst_in_out_i_1__1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => rst_in_sync2_reg_0, + O => \rst_in_out_i_1__1_n_0\ + ); +rst_in_out_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_sync3, + Q => gtwiz_reset_rx_done_out(0) + ); +rst_in_sync1_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_meta, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_sync1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => rxusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__1_n_0\, + D => rst_in_sync2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 is + port ( + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : out STD_LOGIC; + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync3_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 : entity is "gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 is + signal \^gtwiz_reset_tx_done_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal \rst_in_out_i_1__0_n_0\ : STD_LOGIC; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_tx_done_out(0) <= \^gtwiz_reset_tx_done_out\(0); +\rst_in_meta_i_1__4\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => \^gtwiz_reset_tx_done_out\(0), + O => rst_in_out_reg_0 + ); +rst_in_meta_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => '1', + Q => rst_in_meta + ); +\rst_in_out_i_1__0\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => rst_in_sync3_reg_0, + O => \rst_in_out_i_1__0_n_0\ + ); +rst_in_out_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_sync3, + Q => \^gtwiz_reset_tx_done_out\(0) + ); +rst_in_sync1_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_meta, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_sync1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDCE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + CLR => \rst_in_out_i_1__0_n_0\, + D => rst_in_sync2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer is + port ( + gtwiz_reset_all_sync : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_all_in(0), + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_all_in(0), + Q => gtwiz_reset_all_sync + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_all_in(0), + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_all_in(0), + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_all_in(0), + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 is + port ( + gtwiz_reset_rx_any_sync : out STD_LOGIC; + \FSM_sequential_sm_reset_rx_reg[1]\ : out STD_LOGIC; + rst_in_out_reg_0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + GTHE3_CHANNEL_CPLLPD : in STD_LOGIC_VECTOR ( 0 to 0 ); + \sm_reset_rx_timer_clr0__0\ : in STD_LOGIC; + GTHE3_CHANNEL_RXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_1 : in STD_LOGIC; + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_2 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 is + signal gtwiz_reset_rx_any : STD_LOGIC; + signal \^gtwiz_reset_rx_any_sync\ : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_rx_any_sync <= \^gtwiz_reset_rx_any_sync\; +pllreset_rx_out_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFDF0010" + ) + port map ( + I0 => Q(1), + I1 => Q(2), + I2 => Q(0), + I3 => \^gtwiz_reset_rx_any_sync\, + I4 => GTHE3_CHANNEL_CPLLPD(0), + O => \FSM_sequential_sm_reset_rx_reg[1]\ + ); +\rst_in_meta_i_1__0\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => rst_in_out_reg_1, + I1 => gtwiz_reset_rx_datapath_in(0), + I2 => gtwiz_reset_rx_pll_and_datapath_in(0), + I3 => rst_in_out_reg_2, + O => gtwiz_reset_rx_any + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_rx_any, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_rx_any, + Q => \^gtwiz_reset_rx_any_sync\ + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_rx_any, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_rx_any, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_rx_any, + Q => rst_in_sync3 + ); +rxuserrdy_out_i_1: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFAAF00400000" + ) + port map ( + I0 => \^gtwiz_reset_rx_any_sync\, + I1 => \sm_reset_rx_timer_clr0__0\, + I2 => Q(0), + I3 => Q(1), + I4 => Q(2), + I5 => GTHE3_CHANNEL_RXUSERRDY(0), + O => rst_in_out_reg_0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 is + signal rst_in0_2 : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +\rst_in_meta_i_1__2\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => gtwiz_reset_rx_datapath_in(0), + I1 => rst_in_out_reg_0, + O => rst_in0_2 + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => rst_in0_2, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => rst_in0_2, + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => rst_in0_2, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => rst_in0_2, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => rst_in0_2, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : in STD_LOGIC; + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 is + signal p_0_in_1 : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +\rst_in_meta_i_1__1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => rst_in_out_reg_0, + I1 => gtwiz_reset_rx_pll_and_datapath_in(0), + O => p_0_in_1 + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => p_0_in_1, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => p_0_in_1, + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => p_0_in_1, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => p_0_in_1, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => p_0_in_1, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 is + port ( + gtwiz_reset_tx_any_sync : out STD_LOGIC; + \FSM_sequential_sm_reset_tx_reg[1]\ : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + Q : in STD_LOGIC_VECTOR ( 2 downto 0 ); + pllreset_tx_out_reg : in STD_LOGIC; + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync3_reg_0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 is + signal gtwiz_reset_tx_any : STD_LOGIC; + signal \^gtwiz_reset_tx_any_sync\ : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin + gtwiz_reset_tx_any_sync <= \^gtwiz_reset_tx_any_sync\; +pllreset_tx_out_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFDF0010" + ) + port map ( + I0 => Q(1), + I1 => Q(2), + I2 => Q(0), + I3 => \^gtwiz_reset_tx_any_sync\, + I4 => pllreset_tx_out_reg, + O => \FSM_sequential_sm_reset_tx_reg[1]\ + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_tx_any, + Q => rst_in_meta + ); +rst_in_out_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"FE" + ) + port map ( + I0 => gtwiz_reset_tx_datapath_in(0), + I1 => gtwiz_reset_tx_pll_and_datapath_in(0), + I2 => rst_in_sync3_reg_0, + O => gtwiz_reset_tx_any + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_tx_any, + Q => \^gtwiz_reset_tx_any_sync\ + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_tx_any, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_tx_any, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_tx_any, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => gtwiz_reset_tx_datapath_in(0), + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 is + port ( + in0 : out STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg_0 : in STD_LOGIC; + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 is + signal p_1_in_0 : STD_LOGIC; + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_i_1: unisim.vcomponents.LUT2 + generic map( + INIT => X"E" + ) + port map ( + I0 => rst_in_out_reg_0, + I1 => gtwiz_reset_tx_pll_and_datapath_in(0), + O => p_1_in_0 + ); +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => p_1_in_0, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => p_1_in_0, + Q => in0 + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => p_1_in_0, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => p_1_in_0, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => p_1_in_0, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 is + port ( + GTHE3_CHANNEL_TXPROGDIVRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 : entity is "gtwizard_ultrascale_v1_7_18_reset_synchronizer"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 is + signal rst_in_meta : STD_LOGIC; + attribute async_reg : string; + attribute async_reg of rst_in_meta : signal is "true"; + signal rst_in_sync1 : STD_LOGIC; + attribute async_reg of rst_in_sync1 : signal is "true"; + signal rst_in_sync2 : STD_LOGIC; + attribute async_reg of rst_in_sync2 : signal is "true"; + signal rst_in_sync3 : STD_LOGIC; + attribute async_reg of rst_in_sync3 : signal is "true"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of rst_in_meta_reg : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of rst_in_meta_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync1_reg : label is std.standard.true; + attribute KEEP of rst_in_sync1_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync2_reg : label is std.standard.true; + attribute KEEP of rst_in_sync2_reg : label is "yes"; + attribute ASYNC_REG_boolean of rst_in_sync3_reg : label is std.standard.true; + attribute KEEP of rst_in_sync3_reg : label is "yes"; +begin +rst_in_meta_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => '0', + PRE => rst_in0, + Q => rst_in_meta + ); +rst_in_out_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync3, + PRE => rst_in0, + Q => GTHE3_CHANNEL_TXPROGDIVRESET(0) + ); +rst_in_sync1_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_meta, + PRE => rst_in0, + Q => rst_in_sync1 + ); +rst_in_sync2_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync1, + PRE => rst_in0, + Q => rst_in_sync2 + ); +rst_in_sync3_reg: unisim.vcomponents.FDPE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => rst_in_sync2, + PRE => rst_in0, + Q => rst_in_sync3 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_channel_wrapper is + port ( + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPHALIGNDONE : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXSYNCDONE : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + GTHE3_CHANNEL_CPLLPD : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_GTRXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_GTTXRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_RXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXDLYSRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + GTHE3_CHANNEL_TXPROGDIVRESET : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCALLIN : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXUSERRDY : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 127 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ) + ); +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_channel_wrapper; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_channel_wrapper is +begin +channel_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_channel + port map ( + GTHE3_CHANNEL_CPLLPD(0) => GTHE3_CHANNEL_CPLLPD(0), + GTHE3_CHANNEL_GTRXRESET(0) => GTHE3_CHANNEL_GTRXRESET(0), + GTHE3_CHANNEL_GTTXRESET(0) => GTHE3_CHANNEL_GTTXRESET(0), + GTHE3_CHANNEL_RXPROGDIVRESET(0) => GTHE3_CHANNEL_RXPROGDIVRESET(0), + GTHE3_CHANNEL_RXUSERRDY(0) => GTHE3_CHANNEL_RXUSERRDY(0), + GTHE3_CHANNEL_TXDLYSRESET(0) => GTHE3_CHANNEL_TXDLYSRESET(0), + GTHE3_CHANNEL_TXPHALIGNDONE(3 downto 0) => GTHE3_CHANNEL_TXPHALIGNDONE(3 downto 0), + GTHE3_CHANNEL_TXPROGDIVRESET(0) => GTHE3_CHANNEL_TXPROGDIVRESET(0), + GTHE3_CHANNEL_TXSYNCALLIN(0) => GTHE3_CHANNEL_TXSYNCALLIN(0), + GTHE3_CHANNEL_TXSYNCDONE(0) => GTHE3_CHANNEL_TXSYNCDONE(0), + GTHE3_CHANNEL_TXUSERRDY(0) => GTHE3_CHANNEL_TXUSERRDY(0), + cplllock_out(3 downto 0) => cplllock_out(3 downto 0), + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtpowergood_out(3 downto 0) => gtpowergood_out(3 downto 0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtwiz_userdata_rx_out(63 downto 0) => gtwiz_userdata_rx_out(63 downto 0), + gtwiz_userdata_tx_in(127 downto 0) => gtwiz_userdata_tx_in(127 downto 0), + loopback_in(11 downto 0) => loopback_in(11 downto 0), + qpll0outclk_out(0) => qpll0outclk_out(0), + qpll0outrefclk_out(0) => qpll0outrefclk_out(0), + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => rxcdrlock_out(3 downto 0), + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxratedone_out(3 downto 0) => rxratedone_out(3 downto 0), + rxresetdone_out(3 downto 0) => rxresetdone_out(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txprgdivresetdone_out(3 downto 0) => txprgdivresetdone_out(3 downto 0), + txresetdone_out(3 downto 0) => txresetdone_out(3 downto 0), + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_common_wrapper is + port ( + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : out STD_LOGIC; + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\ : in STD_LOGIC + ); +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_common_wrapper; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_common_wrapper is +begin +common_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gthe3_common + port map ( + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST_0\ => \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\, + gtrefclk01_in(0) => gtrefclk01_in(0), + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0lock_out(0) => qpll0lock_out(0), + qpll0outclk_out(0) => qpll0outclk_out(0), + qpll0outrefclk_out(0) => qpll0outrefclk_out(0), + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1lock_out(0) => qpll1lock_out(0), + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + rst_in0 => rst_in0 + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx is + port ( + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCALLIN : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXDLYSRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXSYNCDONE : in STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXPHALIGNDONE : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_sync2_reg : in STD_LOGIC; + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx : entity is "gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx is + signal \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\ : STD_LOGIC; + signal \^gthe3_channel_txdlysreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst_n_0\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\ : STD_LOGIC; + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\ : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1_n_0\ : STD_LOGIC; + attribute FSM_ENCODED_STATES : string; + attribute FSM_ENCODED_STATES of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ : label is "ST_BUFFBYPASS_TX_DEASSERT_TXDLYSRESET:01,ST_BUFFBYPASS_TX_WAIT_TXSYNCDONE:10,iSTATE:00,ST_BUFFBYPASS_TX_DONE:11"; + attribute FSM_ENCODED_STATES of \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ : label is "ST_BUFFBYPASS_TX_DEASSERT_TXDLYSRESET:01,ST_BUFFBYPASS_TX_WAIT_TXSYNCDONE:10,iSTATE:00,ST_BUFFBYPASS_TX_DONE:11"; +begin + GTHE3_CHANNEL_TXDLYSRESET(0) <= \^gthe3_channel_txdlysreset\(0); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\, + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\(0), + Q => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\, + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\(1), + Q => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_7 + port map ( + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[1]\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst_n_0\, + GTHE3_CHANNEL_TXPHALIGNDONE(0) => GTHE3_CHANNEL_TXPHALIGNDONE(0), + Q(0) => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_syncdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_8 + port map ( + D(1 downto 0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx\(1 downto 0), + GTHE3_CHANNEL_TXSYNCDONE(0) => GTHE3_CHANNEL_TXSYNCDONE(0), + Q(1) => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + Q(0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_done_out_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\, + D => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + Q => gtwiz_buffbypass_tx_done_out(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_error_out_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\, + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.bit_synchronizer_master_phaligndone_inst_n_0\, + Q => gtwiz_buffbypass_tx_error_out(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + Q => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + R => '0' + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg_reg\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + Q => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + R => gtwiz_buffbypass_tx_reset_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer + port map ( + E(0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_1\, + \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg[0]\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.reset_synchronizer_resetdone_inst_n_2\, + Q(1) => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + Q(0) => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_int\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_master_syncdone_sync_reg\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\ => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + rst_in_sync2_reg_0 => rst_in_sync2_reg, + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"AAAAFFFF00005510" + ) + port map ( + I0 => \FSM_sequential_gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx_reg_n_0_[1]\, + I1 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_reg\, + I2 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.gtwiz_buffbypass_tx_resetdone_sync_int\, + I3 => gtwiz_buffbypass_tx_start_user_in(0), + I4 => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.sm_buffbypass_tx__0\(0), + I5 => \^gthe3_channel_txdlysreset\(0), + O => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1_n_0\ + ); +\gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => txusrclk2_in(0), + CE => '1', + D => \gen_gtwiz_buffbypass_tx_main.gen_auto_mode.txdlysreset_out[3]_i_1_n_0\, + Q => \^gthe3_channel_txdlysreset\(0), + R => gtwiz_buffbypass_tx_reset_in(0) + ); +txsyncallin_out0: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => GTHE3_CHANNEL_TXPHALIGNDONE(1), + I1 => GTHE3_CHANNEL_TXPHALIGNDONE(0), + I2 => GTHE3_CHANNEL_TXPHALIGNDONE(3), + I3 => GTHE3_CHANNEL_TXPHALIGNDONE(2), + O => GTHE3_CHANNEL_TXSYNCALLIN(0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_reset is + port ( + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXPROGDIVRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + i_in_out_reg : out STD_LOGIC; + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + pllreset_tx_out_reg_0 : out STD_LOGIC; + GTHE3_CHANNEL_GTTXRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_TXUSERRDY : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_CPLLPD : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_RXPROGDIVRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_GTRXRESET : out STD_LOGIC_VECTOR ( 0 to 0 ); + GTHE3_CHANNEL_RXUSERRDY : out STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in_out_reg : out STD_LOGIC; + in0 : in STD_LOGIC; + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + i_in_meta_reg : in STD_LOGIC; + i_in_meta_reg_0 : in STD_LOGIC; + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rst_in0 : in STD_LOGIC; + rxusrclk2_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : in STD_LOGIC_VECTOR ( 3 downto 0 ); + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : in STD_LOGIC_VECTOR ( 3 downto 0 ) + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_reset : entity is "gtwizard_ultrascale_v1_7_18_gtwiz_reset"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_reset; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_reset is + signal \FSM_sequential_sm_reset_all[2]_i_3_n_0\ : STD_LOGIC; + signal \FSM_sequential_sm_reset_all[2]_i_4_n_0\ : STD_LOGIC; + signal \^gthe3_channel_cpllpd\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_gtrxreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_gttxreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_rxprogdivreset\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_rxuserrdy\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gthe3_channel_txuserrdy\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal bit_synchronizer_gtpowergood_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_1 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_3 : STD_LOGIC; + signal bit_synchronizer_plllock_rx_inst_n_4 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_0 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_1 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_plllock_tx_inst_n_3 : STD_LOGIC; + signal bit_synchronizer_rxcdrlock_inst_n_1 : STD_LOGIC; + signal bit_synchronizer_rxcdrlock_inst_n_2 : STD_LOGIC; + signal bit_synchronizer_rxcdrlock_inst_n_3 : STD_LOGIC; + signal gtwiz_reset_all_sync : STD_LOGIC; + signal gtwiz_reset_rx_any_sync : STD_LOGIC; + signal gtwiz_reset_rx_datapath_int_i_1_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_datapath_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_datapath_sync : STD_LOGIC; + signal gtwiz_reset_rx_done_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_dly : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_int_i_1_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_rx_pll_and_datapath_sync : STD_LOGIC; + signal gtwiz_reset_tx_any_sync : STD_LOGIC; + signal gtwiz_reset_tx_datapath_sync : STD_LOGIC; + signal \gtwiz_reset_tx_done_int0__0\ : STD_LOGIC; + signal gtwiz_reset_tx_done_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_dly : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_int_i_1_n_0 : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_int_reg_n_0 : STD_LOGIC; + signal gtwiz_reset_tx_pll_and_datapath_sync : STD_LOGIC; + signal p_0_in : STD_LOGIC; + signal \p_0_in11_out__0\ : STD_LOGIC; + signal \p_0_in__0\ : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal \p_0_in__1\ : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal p_1_in : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \^pllreset_tx_out_reg_0\ : STD_LOGIC; + signal reset_synchronizer_gtwiz_reset_rx_any_inst_n_1 : STD_LOGIC; + signal reset_synchronizer_gtwiz_reset_rx_any_inst_n_2 : STD_LOGIC; + signal reset_synchronizer_gtwiz_reset_tx_any_inst_n_1 : STD_LOGIC; + signal sel : STD_LOGIC; + signal sm_reset_all : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_all__0\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_all_timer_clr_i_1_n_0 : STD_LOGIC; + signal sm_reset_all_timer_clr_i_2_n_0 : STD_LOGIC; + signal sm_reset_all_timer_clr_reg_n_0 : STD_LOGIC; + signal sm_reset_all_timer_ctr : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_all_timer_ctr0_inferred__0/i__n_0\ : STD_LOGIC; + signal \sm_reset_all_timer_ctr[0]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_all_timer_ctr[1]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_all_timer_ctr[2]_i_1_n_0\ : STD_LOGIC; + signal sm_reset_all_timer_sat : STD_LOGIC; + signal sm_reset_all_timer_sat_i_1_n_0 : STD_LOGIC; + signal sm_reset_rx : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_rx__0\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_rx_cdr_to_clr : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_3_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr[0]_i_5_n_0\ : STD_LOGIC; + signal sm_reset_rx_cdr_to_ctr_reg : STD_LOGIC_VECTOR ( 25 downto 0 ); + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_1\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_10\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_11\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_12\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_13\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_2\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_3\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_4\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_5\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_6\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_8\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_9\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_1\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_10\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_11\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_12\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_13\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_2\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_3\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_4\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_5\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_6\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_8\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_9\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_1\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_10\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_11\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_12\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_13\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_14\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_15\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_2\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_3\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_4\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_5\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_6\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_7\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_8\ : STD_LOGIC; + signal \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_9\ : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_1_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_2_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_3_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_4_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_5_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_6_n_0 : STD_LOGIC; + signal sm_reset_rx_cdr_to_sat_i_7_n_0 : STD_LOGIC; + signal sm_reset_rx_pll_timer_clr_i_1_n_0 : STD_LOGIC; + signal sm_reset_rx_pll_timer_clr_reg_n_0 : STD_LOGIC; + signal \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_pll_timer_ctr[9]_i_3_n_0\ : STD_LOGIC; + signal \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\ : STD_LOGIC; + signal sm_reset_rx_pll_timer_ctr_reg : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal sm_reset_rx_pll_timer_sat : STD_LOGIC; + signal sm_reset_rx_pll_timer_sat_i_1_n_0 : STD_LOGIC; + signal \sm_reset_rx_timer_clr010_out__0\ : STD_LOGIC; + signal \sm_reset_rx_timer_clr0__0\ : STD_LOGIC; + signal sm_reset_rx_timer_clr_reg_n_0 : STD_LOGIC; + signal sm_reset_rx_timer_ctr : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\ : STD_LOGIC; + signal \sm_reset_rx_timer_ctr[0]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_timer_ctr[1]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_rx_timer_ctr[2]_i_1_n_0\ : STD_LOGIC; + signal sm_reset_rx_timer_sat : STD_LOGIC; + signal sm_reset_rx_timer_sat_i_1_n_0 : STD_LOGIC; + signal sm_reset_tx : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal \sm_reset_tx__0\ : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_tx_pll_timer_clr_i_1_n_0 : STD_LOGIC; + signal sm_reset_tx_pll_timer_clr_reg_n_0 : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[2]_i_1_n_0\ : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[6]_i_2_n_0\ : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[9]_i_3_n_0\ : STD_LOGIC; + signal \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\ : STD_LOGIC; + signal sm_reset_tx_pll_timer_ctr_reg : STD_LOGIC_VECTOR ( 9 downto 0 ); + signal sm_reset_tx_pll_timer_sat : STD_LOGIC; + signal sm_reset_tx_pll_timer_sat_i_1_n_0 : STD_LOGIC; + signal \sm_reset_tx_timer_clr0__0\ : STD_LOGIC; + signal sm_reset_tx_timer_clr_reg_n_0 : STD_LOGIC; + signal sm_reset_tx_timer_ctr : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal sm_reset_tx_timer_sat : STD_LOGIC; + signal sm_reset_tx_timer_sat_i_1_n_0 : STD_LOGIC; + signal \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_CO_UNCONNECTED\ : STD_LOGIC_VECTOR ( 7 downto 1 ); + signal \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_O_UNCONNECTED\ : STD_LOGIC_VECTOR ( 7 downto 2 ); + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[1]_i_1\ : label is "soft_lutpair19"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[2]_i_2\ : label is "soft_lutpair19"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[2]_i_3\ : label is "soft_lutpair11"; + attribute SOFT_HLUTNM of \FSM_sequential_sm_reset_all[2]_i_4\ : label is "soft_lutpair11"; + attribute FSM_ENCODED_STATES : string; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_all_reg[0]\ : label is "ST_RESET_ALL_BRANCH:000,ST_RESET_ALL_TX_PLL_WAIT:010,ST_RESET_ALL_RX_WAIT:101,ST_RESET_ALL_TX_PLL:001,ST_RESET_ALL_RX_PLL:100,ST_RESET_ALL_RX_DP:011,ST_RESET_ALL_INIT:111,iSTATE:110"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_all_reg[1]\ : label is "ST_RESET_ALL_BRANCH:000,ST_RESET_ALL_TX_PLL_WAIT:010,ST_RESET_ALL_RX_WAIT:101,ST_RESET_ALL_TX_PLL:001,ST_RESET_ALL_RX_PLL:100,ST_RESET_ALL_RX_DP:011,ST_RESET_ALL_INIT:111,iSTATE:110"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_all_reg[2]\ : label is "ST_RESET_ALL_BRANCH:000,ST_RESET_ALL_TX_PLL_WAIT:010,ST_RESET_ALL_RX_WAIT:101,ST_RESET_ALL_TX_PLL:001,ST_RESET_ALL_RX_PLL:100,ST_RESET_ALL_RX_DP:011,ST_RESET_ALL_INIT:111,iSTATE:110"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_rx_reg[0]\ : label is "ST_RESET_RX_WAIT_LOCK:011,ST_RESET_RX_WAIT_CDR:100,ST_RESET_RX_WAIT_USERRDY:101,ST_RESET_RX_WAIT_RESETDONE:110,ST_RESET_RX_DATAPATH:010,ST_RESET_RX_PLL:001,ST_RESET_RX_BRANCH:000,ST_RESET_RX_IDLE:111"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_rx_reg[1]\ : label is "ST_RESET_RX_WAIT_LOCK:011,ST_RESET_RX_WAIT_CDR:100,ST_RESET_RX_WAIT_USERRDY:101,ST_RESET_RX_WAIT_RESETDONE:110,ST_RESET_RX_DATAPATH:010,ST_RESET_RX_PLL:001,ST_RESET_RX_BRANCH:000,ST_RESET_RX_IDLE:111"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_rx_reg[2]\ : label is "ST_RESET_RX_WAIT_LOCK:011,ST_RESET_RX_WAIT_CDR:100,ST_RESET_RX_WAIT_USERRDY:101,ST_RESET_RX_WAIT_RESETDONE:110,ST_RESET_RX_DATAPATH:010,ST_RESET_RX_PLL:001,ST_RESET_RX_BRANCH:000,ST_RESET_RX_IDLE:111"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_tx_reg[0]\ : label is "ST_RESET_TX_BRANCH:000,ST_RESET_TX_WAIT_LOCK:011,ST_RESET_TX_WAIT_USERRDY:100,ST_RESET_TX_WAIT_RESETDONE:101,ST_RESET_TX_IDLE:110,ST_RESET_TX_DATAPATH:010,ST_RESET_TX_PLL:001"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_tx_reg[1]\ : label is "ST_RESET_TX_BRANCH:000,ST_RESET_TX_WAIT_LOCK:011,ST_RESET_TX_WAIT_USERRDY:100,ST_RESET_TX_WAIT_RESETDONE:101,ST_RESET_TX_IDLE:110,ST_RESET_TX_DATAPATH:010,ST_RESET_TX_PLL:001"; + attribute FSM_ENCODED_STATES of \FSM_sequential_sm_reset_tx_reg[2]\ : label is "ST_RESET_TX_BRANCH:000,ST_RESET_TX_WAIT_LOCK:011,ST_RESET_TX_WAIT_USERRDY:100,ST_RESET_TX_WAIT_RESETDONE:101,ST_RESET_TX_IDLE:110,ST_RESET_TX_DATAPATH:010,ST_RESET_TX_PLL:001"; + attribute SOFT_HLUTNM of gtwiz_reset_rx_datapath_int_i_1 : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of gtwiz_reset_tx_pll_and_datapath_int_i_1 : label is "soft_lutpair10"; + attribute SOFT_HLUTNM of \sm_reset_all_timer_ctr[1]_i_1\ : label is "soft_lutpair17"; + attribute SOFT_HLUTNM of \sm_reset_all_timer_ctr[2]_i_1\ : label is "soft_lutpair17"; + attribute SOFT_HLUTNM of \sm_reset_rx_cdr_to_ctr[0]_i_3\ : label is "soft_lutpair4"; + attribute ADDER_THRESHOLD : integer; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[0]_i_2\ : label is 16; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[16]_i_1\ : label is 16; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[24]_i_1\ : label is 16; + attribute ADDER_THRESHOLD of \sm_reset_rx_cdr_to_ctr_reg[8]_i_1\ : label is 16; + attribute SOFT_HLUTNM of sm_reset_rx_cdr_to_sat_i_5 : label is "soft_lutpair4"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[1]_i_1\ : label is "soft_lutpair14"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[2]_i_1\ : label is "soft_lutpair14"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[3]_i_1\ : label is "soft_lutpair8"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[4]_i_1\ : label is "soft_lutpair8"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[6]_i_1\ : label is "soft_lutpair12"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[7]_i_1\ : label is "soft_lutpair12"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[8]_i_1\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of \sm_reset_rx_pll_timer_ctr[9]_i_2\ : label is "soft_lutpair6"; + attribute SOFT_HLUTNM of sm_reset_rx_timer_clr_i_4 : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \sm_reset_rx_timer_ctr[1]_i_1\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of \sm_reset_rx_timer_ctr[2]_i_1\ : label is "soft_lutpair16"; + attribute SOFT_HLUTNM of sm_reset_rx_timer_sat_i_1 : label is "soft_lutpair9"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[0]_i_1\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[1]_i_1\ : label is "soft_lutpair18"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[2]_i_1\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[3]_i_1\ : label is "soft_lutpair7"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[4]_i_1\ : label is "soft_lutpair7"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[6]_i_2\ : label is "soft_lutpair13"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[8]_i_1\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of \sm_reset_tx_pll_timer_ctr[9]_i_2\ : label is "soft_lutpair5"; + attribute SOFT_HLUTNM of \sm_reset_tx_timer_ctr[1]_i_1\ : label is "soft_lutpair15"; + attribute SOFT_HLUTNM of \sm_reset_tx_timer_ctr[2]_i_1\ : label is "soft_lutpair15"; +begin + GTHE3_CHANNEL_CPLLPD(0) <= \^gthe3_channel_cpllpd\(0); + GTHE3_CHANNEL_GTRXRESET(0) <= \^gthe3_channel_gtrxreset\(0); + GTHE3_CHANNEL_GTTXRESET(0) <= \^gthe3_channel_gttxreset\(0); + GTHE3_CHANNEL_RXPROGDIVRESET(0) <= \^gthe3_channel_rxprogdivreset\(0); + GTHE3_CHANNEL_RXUSERRDY(0) <= \^gthe3_channel_rxuserrdy\(0); + GTHE3_CHANNEL_TXUSERRDY(0) <= \^gthe3_channel_txuserrdy\(0); + pllreset_tx_out_reg_0 <= \^pllreset_tx_out_reg_0\; +\FSM_sequential_sm_reset_all[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"00FFF7000000FFFF" + ) + port map ( + I0 => gtwiz_reset_rx_done_int_reg_n_0, + I1 => sm_reset_all_timer_sat, + I2 => sm_reset_all_timer_clr_reg_n_0, + I3 => sm_reset_all(2), + I4 => sm_reset_all(1), + I5 => sm_reset_all(0), + O => \sm_reset_all__0\(0) + ); +\FSM_sequential_sm_reset_all[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => sm_reset_all(0), + I1 => sm_reset_all(1), + O => \sm_reset_all__0\(1) + ); +\FSM_sequential_sm_reset_all[2]_i_2\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_all(2), + I1 => sm_reset_all(1), + O => \sm_reset_all__0\(2) + ); +\FSM_sequential_sm_reset_all[2]_i_3\: unisim.vcomponents.LUT3 + generic map( + INIT => X"08" + ) + port map ( + I0 => sm_reset_all_timer_sat, + I1 => gtwiz_reset_rx_done_int_reg_n_0, + I2 => sm_reset_all_timer_clr_reg_n_0, + O => \FSM_sequential_sm_reset_all[2]_i_3_n_0\ + ); +\FSM_sequential_sm_reset_all[2]_i_4\: unisim.vcomponents.LUT3 + generic map( + INIT => X"40" + ) + port map ( + I0 => sm_reset_all_timer_clr_reg_n_0, + I1 => sm_reset_all_timer_sat, + I2 => gtwiz_reset_tx_done_int_reg_n_0, + O => \FSM_sequential_sm_reset_all[2]_i_4_n_0\ + ); +\FSM_sequential_sm_reset_all_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtpowergood_inst_n_0, + D => \sm_reset_all__0\(0), + Q => sm_reset_all(0), + R => gtwiz_reset_all_sync + ); +\FSM_sequential_sm_reset_all_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtpowergood_inst_n_0, + D => \sm_reset_all__0\(1), + Q => sm_reset_all(1), + R => gtwiz_reset_all_sync + ); +\FSM_sequential_sm_reset_all_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtpowergood_inst_n_0, + D => \sm_reset_all__0\(2), + Q => sm_reset_all(2), + R => gtwiz_reset_all_sync + ); +\FSM_sequential_sm_reset_rx[2]_i_2\: unisim.vcomponents.LUT4 + generic map( + INIT => X"F8B8" + ) + port map ( + I0 => sm_reset_rx(0), + I1 => sm_reset_rx(1), + I2 => sm_reset_rx(2), + I3 => \p_0_in11_out__0\, + O => \sm_reset_rx__0\(2) + ); +\FSM_sequential_sm_reset_rx[2]_i_6\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000800000000000" + ) + port map ( + I0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(2), + I1 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3), + I2 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + I3 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(1), + I4 => sm_reset_rx_timer_clr_reg_n_0, + I5 => sm_reset_rx_timer_sat, + O => \p_0_in11_out__0\ + ); +\FSM_sequential_sm_reset_rx_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + D => \sm_reset_rx__0\(0), + Q => sm_reset_rx(0), + R => gtwiz_reset_rx_any_sync + ); +\FSM_sequential_sm_reset_rx_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + D => \sm_reset_rx__0\(1), + Q => sm_reset_rx(1), + R => gtwiz_reset_rx_any_sync + ); +\FSM_sequential_sm_reset_rx_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + D => \sm_reset_rx__0\(2), + Q => sm_reset_rx(2), + R => gtwiz_reset_rx_any_sync + ); +\FSM_sequential_sm_reset_tx[2]_i_2\: unisim.vcomponents.LUT3 + generic map( + INIT => X"2C" + ) + port map ( + I0 => sm_reset_tx(0), + I1 => sm_reset_tx(2), + I2 => sm_reset_tx(1), + O => \sm_reset_tx__0\(2) + ); +\FSM_sequential_sm_reset_tx[2]_i_4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000800000000000" + ) + port map ( + I0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(2), + I1 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3), + I2 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + I3 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(1), + I4 => sm_reset_tx_timer_clr_reg_n_0, + I5 => sm_reset_tx_timer_sat, + O => \gtwiz_reset_tx_done_int0__0\ + ); +\FSM_sequential_sm_reset_tx_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + D => \sm_reset_tx__0\(0), + Q => sm_reset_tx(0), + R => gtwiz_reset_tx_any_sync + ); +\FSM_sequential_sm_reset_tx_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + D => \sm_reset_tx__0\(1), + Q => sm_reset_tx(1), + R => gtwiz_reset_tx_any_sync + ); +\FSM_sequential_sm_reset_tx_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + D => \sm_reset_tx__0\(2), + Q => sm_reset_tx(2), + R => gtwiz_reset_tx_any_sync + ); +bit_synchronizer_gtpowergood_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_9 + port map ( + E(0) => bit_synchronizer_gtpowergood_inst_n_0, + \FSM_sequential_sm_reset_all_reg[0]\ => \FSM_sequential_sm_reset_all[2]_i_3_n_0\, + \FSM_sequential_sm_reset_all_reg[0]_0\ => \FSM_sequential_sm_reset_all[2]_i_4_n_0\, + Q(2 downto 0) => sm_reset_all(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + in0 => in0 + ); +bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_10 + port map ( + E(0) => bit_synchronizer_gtwiz_reset_rx_datapath_dly_inst_n_0, + \FSM_sequential_sm_reset_rx_reg[0]\ => bit_synchronizer_plllock_rx_inst_n_4, + \FSM_sequential_sm_reset_rx_reg[0]_0\ => bit_synchronizer_rxcdrlock_inst_n_2, + \FSM_sequential_sm_reset_rx_reg[0]_1\ => sm_reset_rx_pll_timer_clr_reg_n_0, + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_pll_and_datapath_dly => gtwiz_reset_rx_pll_and_datapath_dly, + in0 => gtwiz_reset_rx_datapath_sync, + sm_reset_rx_pll_timer_sat => sm_reset_rx_pll_timer_sat + ); +bit_synchronizer_gtwiz_reset_rx_pll_and_datapath_dly_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_11 + port map ( + D(1 downto 0) => \sm_reset_rx__0\(1 downto 0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_pll_and_datapath_dly => gtwiz_reset_rx_pll_and_datapath_dly, + in0 => gtwiz_reset_rx_pll_and_datapath_sync, + \p_0_in11_out__0\ => \p_0_in11_out__0\ + ); +bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_12 + port map ( + \FSM_sequential_sm_reset_tx[2]_i_5\ => sm_reset_tx_pll_timer_clr_reg_n_0, + Q(0) => sm_reset_tx(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_pll_and_datapath_dly => gtwiz_reset_tx_pll_and_datapath_dly, + i_in_out_reg_0 => bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst_n_0, + in0 => gtwiz_reset_tx_datapath_sync, + sm_reset_tx_pll_timer_sat => sm_reset_tx_pll_timer_sat + ); +bit_synchronizer_gtwiz_reset_tx_pll_and_datapath_dly_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_13 + port map ( + D(1 downto 0) => \sm_reset_tx__0\(1 downto 0), + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_pll_and_datapath_dly => gtwiz_reset_tx_pll_and_datapath_dly, + in0 => gtwiz_reset_tx_pll_and_datapath_sync + ); +bit_synchronizer_gtwiz_reset_userclk_rx_active_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_14 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + rxuserrdy_out_reg => sm_reset_rx_timer_clr_reg_n_0, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\, + sm_reset_rx_timer_sat => sm_reset_rx_timer_sat + ); +bit_synchronizer_gtwiz_reset_userclk_tx_active_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_15 + port map ( + E(0) => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_2, + \FSM_sequential_sm_reset_tx_reg[0]\ => bit_synchronizer_plllock_tx_inst_n_3, + \FSM_sequential_sm_reset_tx_reg[1]\ => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_0, + GTHE3_CHANNEL_TXUSERRDY(0) => \^gthe3_channel_txuserrdy\(0), + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_any_sync => gtwiz_reset_tx_any_sync, + \gtwiz_reset_tx_done_int0__0\ => \gtwiz_reset_tx_done_int0__0\, + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + \sm_reset_tx_timer_clr0__0\ => \sm_reset_tx_timer_clr0__0\, + sm_reset_tx_timer_sat => sm_reset_tx_timer_sat, + txuserrdy_out_reg => sm_reset_tx_timer_clr_reg_n_0 + ); +bit_synchronizer_plllock_rx_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_16 + port map ( + \FSM_sequential_sm_reset_rx_reg[0]\ => bit_synchronizer_plllock_rx_inst_n_1, + \FSM_sequential_sm_reset_rx_reg[2]\ => bit_synchronizer_plllock_rx_inst_n_2, + \FSM_sequential_sm_reset_rx_reg[2]_0\ => bit_synchronizer_plllock_rx_inst_n_3, + GTHE3_CHANNEL_GTRXRESET(0) => \^gthe3_channel_gtrxreset\(0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_any_sync => gtwiz_reset_rx_any_sync, + gtwiz_reset_rx_done_int_reg => gtwiz_reset_rx_done_int_reg_n_0, + i_in_meta_reg_0 => i_in_meta_reg, + i_in_out_reg_0 => bit_synchronizer_plllock_rx_inst_n_0, + i_in_out_reg_1 => bit_synchronizer_plllock_rx_inst_n_4, + \p_0_in11_out__0\ => \p_0_in11_out__0\, + sm_reset_rx_cdr_to_clr => sm_reset_rx_cdr_to_clr, + sm_reset_rx_cdr_to_clr_reg => bit_synchronizer_rxcdrlock_inst_n_3, + \sm_reset_rx_timer_clr010_out__0\ => \sm_reset_rx_timer_clr010_out__0\, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\, + sm_reset_rx_timer_clr_reg => sm_reset_rx_timer_clr_reg_n_0, + sm_reset_rx_timer_sat => sm_reset_rx_timer_sat + ); +bit_synchronizer_plllock_tx_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_17 + port map ( + \FSM_sequential_sm_reset_tx_reg[0]\ => bit_synchronizer_plllock_tx_inst_n_2, + \FSM_sequential_sm_reset_tx_reg[0]_0\ => bit_synchronizer_gtwiz_reset_tx_datapath_dly_inst_n_0, + \FSM_sequential_sm_reset_tx_reg[2]\ => bit_synchronizer_plllock_tx_inst_n_1, + GTHE3_CHANNEL_GTTXRESET(0) => \^gthe3_channel_gttxreset\(0), + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_any_sync => gtwiz_reset_tx_any_sync, + \gtwiz_reset_tx_done_int0__0\ => \gtwiz_reset_tx_done_int0__0\, + gtwiz_reset_tx_done_int_reg => gtwiz_reset_tx_done_int_reg_n_0, + i_in_out_reg_0 => bit_synchronizer_plllock_tx_inst_n_0, + i_in_out_reg_1 => bit_synchronizer_plllock_tx_inst_n_3, + qpll1lock_out(0) => qpll1lock_out(0), + \sm_reset_tx_timer_clr0__0\ => \sm_reset_tx_timer_clr0__0\, + sm_reset_tx_timer_clr_reg => sm_reset_tx_timer_clr_reg_n_0, + sm_reset_tx_timer_sat => sm_reset_tx_timer_sat + ); +bit_synchronizer_rxcdrlock_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_18 + port map ( + \FSM_sequential_sm_reset_rx_reg[2]\ => bit_synchronizer_rxcdrlock_inst_n_1, + \FSM_sequential_sm_reset_rx_reg[2]_0\ => bit_synchronizer_rxcdrlock_inst_n_3, + GTHE3_CHANNEL_RXPROGDIVRESET(0) => \^gthe3_channel_rxprogdivreset\(0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_any_sync => gtwiz_reset_rx_any_sync, + i_in_meta_reg_0 => i_in_meta_reg_0, + i_in_out_reg_0 => i_in_out_reg, + i_in_out_reg_1 => bit_synchronizer_rxcdrlock_inst_n_2, + \p_0_in11_out__0\ => \p_0_in11_out__0\, + sm_reset_rx_cdr_to_sat => sm_reset_rx_cdr_to_sat, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\ + ); +gtrxreset_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_3, + Q => \^gthe3_channel_gtrxreset\(0), + R => '0' + ); +gttxreset_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_tx_inst_n_2, + Q => \^gthe3_channel_gttxreset\(0), + R => '0' + ); +gtwiz_reset_rx_datapath_int_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"F740" + ) + port map ( + I0 => sm_reset_all(2), + I1 => sm_reset_all(0), + I2 => sm_reset_all(1), + I3 => gtwiz_reset_rx_datapath_int_reg_n_0, + O => gtwiz_reset_rx_datapath_int_i_1_n_0 + ); +gtwiz_reset_rx_datapath_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_reset_rx_datapath_int_i_1_n_0, + Q => gtwiz_reset_rx_datapath_int_reg_n_0, + R => gtwiz_reset_all_sync + ); +gtwiz_reset_rx_done_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_0, + Q => gtwiz_reset_rx_done_int_reg_n_0, + R => gtwiz_reset_rx_any_sync + ); +gtwiz_reset_rx_pll_and_datapath_int_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"F704" + ) + port map ( + I0 => sm_reset_all(0), + I1 => sm_reset_all(2), + I2 => sm_reset_all(1), + I3 => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0, + O => gtwiz_reset_rx_pll_and_datapath_int_i_1_n_0 + ); +gtwiz_reset_rx_pll_and_datapath_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_reset_rx_pll_and_datapath_int_i_1_n_0, + Q => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0, + R => gtwiz_reset_all_sync + ); +gtwiz_reset_tx_done_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_tx_inst_n_0, + Q => gtwiz_reset_tx_done_int_reg_n_0, + R => gtwiz_reset_tx_any_sync + ); +gtwiz_reset_tx_pll_and_datapath_int_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"FB02" + ) + port map ( + I0 => sm_reset_all(0), + I1 => sm_reset_all(1), + I2 => sm_reset_all(2), + I3 => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0, + O => gtwiz_reset_tx_pll_and_datapath_int_i_1_n_0 + ); +gtwiz_reset_tx_pll_and_datapath_int_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => gtwiz_reset_tx_pll_and_datapath_int_i_1_n_0, + Q => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0, + R => gtwiz_reset_all_sync + ); +pllreset_rx_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => reset_synchronizer_gtwiz_reset_rx_any_inst_n_1, + Q => \^gthe3_channel_cpllpd\(0), + R => '0' + ); +pllreset_tx_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => reset_synchronizer_gtwiz_reset_tx_any_inst_n_1, + Q => \^pllreset_tx_out_reg_0\, + R => '0' + ); +reset_synchronizer_gtwiz_reset_all_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer + port map ( + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_all_sync => gtwiz_reset_all_sync, + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0) + ); +reset_synchronizer_gtwiz_reset_rx_any_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_19 + port map ( + \FSM_sequential_sm_reset_rx_reg[1]\ => reset_synchronizer_gtwiz_reset_rx_any_inst_n_1, + GTHE3_CHANNEL_CPLLPD(0) => \^gthe3_channel_cpllpd\(0), + GTHE3_CHANNEL_RXUSERRDY(0) => \^gthe3_channel_rxuserrdy\(0), + Q(2 downto 0) => sm_reset_rx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_any_sync => gtwiz_reset_rx_any_sync, + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + rst_in_out_reg_0 => reset_synchronizer_gtwiz_reset_rx_any_inst_n_2, + rst_in_out_reg_1 => gtwiz_reset_rx_datapath_int_reg_n_0, + rst_in_out_reg_2 => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0, + \sm_reset_rx_timer_clr0__0\ => \sm_reset_rx_timer_clr0__0\ + ); +reset_synchronizer_gtwiz_reset_rx_datapath_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_20 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + in0 => gtwiz_reset_rx_datapath_sync, + rst_in_out_reg_0 => gtwiz_reset_rx_datapath_int_reg_n_0 + ); +reset_synchronizer_gtwiz_reset_rx_pll_and_datapath_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_21 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + in0 => gtwiz_reset_rx_pll_and_datapath_sync, + rst_in_out_reg_0 => gtwiz_reset_rx_pll_and_datapath_int_reg_n_0 + ); +reset_synchronizer_gtwiz_reset_tx_any_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_22 + port map ( + \FSM_sequential_sm_reset_tx_reg[1]\ => reset_synchronizer_gtwiz_reset_tx_any_inst_n_1, + Q(2 downto 0) => sm_reset_tx(2 downto 0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_any_sync => gtwiz_reset_tx_any_sync, + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + pllreset_tx_out_reg => \^pllreset_tx_out_reg_0\, + rst_in_sync3_reg_0 => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0 + ); +reset_synchronizer_gtwiz_reset_tx_datapath_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_23 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + in0 => gtwiz_reset_tx_datapath_sync + ); +reset_synchronizer_gtwiz_reset_tx_pll_and_datapath_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_24 + port map ( + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + in0 => gtwiz_reset_tx_pll_and_datapath_sync, + rst_in_out_reg_0 => gtwiz_reset_tx_pll_and_datapath_int_reg_n_0 + ); +reset_synchronizer_rx_done_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_25 + port map ( + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + rst_in_sync2_reg_0 => gtwiz_reset_rx_done_int_reg_n_0, + rxusrclk2_in(0) => rxusrclk2_in(0) + ); +reset_synchronizer_tx_done_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_inv_synchronizer_26 + port map ( + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + rst_in_out_reg_0 => rst_in_out_reg, + rst_in_sync3_reg_0 => gtwiz_reset_tx_done_int_reg_n_0, + txusrclk2_in(0) => txusrclk2_in(0) + ); +reset_synchronizer_txprogdivreset_inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_reset_synchronizer_27 + port map ( + GTHE3_CHANNEL_TXPROGDIVRESET(0) => GTHE3_CHANNEL_TXPROGDIVRESET(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rst_in0 => rst_in0 + ); +rxprogdivreset_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_rxcdrlock_inst_n_1, + Q => \^gthe3_channel_rxprogdivreset\(0), + R => '0' + ); +rxuserrdy_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => reset_synchronizer_gtwiz_reset_rx_any_inst_n_2, + Q => \^gthe3_channel_rxuserrdy\(0), + R => '0' + ); +sm_reset_all_timer_clr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"EFFA200A" + ) + port map ( + I0 => sm_reset_all_timer_clr_i_2_n_0, + I1 => sm_reset_all(1), + I2 => sm_reset_all(2), + I3 => sm_reset_all(0), + I4 => sm_reset_all_timer_clr_reg_n_0, + O => sm_reset_all_timer_clr_i_1_n_0 + ); +sm_reset_all_timer_clr_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"0000B0003333BB33" + ) + port map ( + I0 => gtwiz_reset_rx_done_int_reg_n_0, + I1 => sm_reset_all(2), + I2 => gtwiz_reset_tx_done_int_reg_n_0, + I3 => sm_reset_all_timer_sat, + I4 => sm_reset_all_timer_clr_reg_n_0, + I5 => sm_reset_all(1), + O => sm_reset_all_timer_clr_i_2_n_0 + ); +sm_reset_all_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_all_timer_clr_i_1_n_0, + Q => sm_reset_all_timer_clr_reg_n_0, + S => gtwiz_reset_all_sync + ); +\sm_reset_all_timer_ctr0_inferred__0/i_\: unisim.vcomponents.LUT3 + generic map( + INIT => X"7F" + ) + port map ( + I0 => sm_reset_all_timer_ctr(2), + I1 => sm_reset_all_timer_ctr(0), + I2 => sm_reset_all_timer_ctr(1), + O => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\ + ); +\sm_reset_all_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_all_timer_ctr(0), + O => \sm_reset_all_timer_ctr[0]_i_1_n_0\ + ); +\sm_reset_all_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_all_timer_ctr(0), + I1 => sm_reset_all_timer_ctr(1), + O => \sm_reset_all_timer_ctr[1]_i_1_n_0\ + ); +\sm_reset_all_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_all_timer_ctr(0), + I1 => sm_reset_all_timer_ctr(1), + I2 => sm_reset_all_timer_ctr(2), + O => \sm_reset_all_timer_ctr[2]_i_1_n_0\ + ); +\sm_reset_all_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_all_timer_ctr[0]_i_1_n_0\, + Q => sm_reset_all_timer_ctr(0), + R => sm_reset_all_timer_clr_reg_n_0 + ); +\sm_reset_all_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_all_timer_ctr[1]_i_1_n_0\, + Q => sm_reset_all_timer_ctr(1), + R => sm_reset_all_timer_clr_reg_n_0 + ); +\sm_reset_all_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_all_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_all_timer_ctr[2]_i_1_n_0\, + Q => sm_reset_all_timer_ctr(2), + R => sm_reset_all_timer_clr_reg_n_0 + ); +sm_reset_all_timer_sat_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FF80" + ) + port map ( + I0 => sm_reset_all_timer_ctr(2), + I1 => sm_reset_all_timer_ctr(0), + I2 => sm_reset_all_timer_ctr(1), + I3 => sm_reset_all_timer_sat, + I4 => sm_reset_all_timer_clr_reg_n_0, + O => sm_reset_all_timer_sat_i_1_n_0 + ); +sm_reset_all_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_all_timer_sat_i_1_n_0, + Q => sm_reset_all_timer_sat, + R => '0' + ); +sm_reset_rx_cdr_to_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_2, + Q => sm_reset_rx_cdr_to_clr, + S => gtwiz_reset_rx_any_sync + ); +\sm_reset_rx_cdr_to_ctr[0]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFFFEF" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(24), + I1 => sm_reset_rx_cdr_to_ctr_reg(21), + I2 => \sm_reset_rx_cdr_to_ctr[0]_i_3_n_0\, + I3 => \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\, + I4 => sm_reset_rx_cdr_to_sat_i_3_n_0, + O => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\ + ); +\sm_reset_rx_cdr_to_ctr[0]_i_3\: unisim.vcomponents.LUT5 + generic map( + INIT => X"02000000" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat_i_4_n_0, + I1 => sm_reset_rx_cdr_to_ctr_reg(2), + I2 => sm_reset_rx_cdr_to_ctr_reg(1), + I3 => sm_reset_rx_cdr_to_ctr_reg(0), + I4 => sm_reset_rx_cdr_to_sat_i_6_n_0, + O => \sm_reset_rx_cdr_to_ctr[0]_i_3_n_0\ + ); +\sm_reset_rx_cdr_to_ctr[0]_i_4\: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(15), + I1 => sm_reset_rx_cdr_to_ctr_reg(14), + I2 => sm_reset_rx_cdr_to_ctr_reg(9), + I3 => sm_reset_rx_cdr_to_ctr_reg(5), + O => \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\ + ); +\sm_reset_rx_cdr_to_ctr[0]_i_5\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(0), + O => \sm_reset_rx_cdr_to_ctr[0]_i_5_n_0\ + ); +\sm_reset_rx_cdr_to_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(0), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[0]_i_2\: unisim.vcomponents.CARRY8 + port map ( + CI => '0', + CI_TOP => '0', + CO(7) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_0\, + CO(6) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_1\, + CO(5) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_2\, + CO(4) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_3\, + CO(3) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_4\, + CO(2) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_5\, + CO(1) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_6\, + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_7\, + DI(7 downto 0) => B"00000001", + O(7) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_8\, + O(6) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_9\, + O(5) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_10\, + O(4) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_11\, + O(3) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_12\, + O(2) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_13\, + O(1) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_15\, + S(7 downto 1) => sm_reset_rx_cdr_to_ctr_reg(7 downto 1), + S(0) => \sm_reset_rx_cdr_to_ctr[0]_i_5_n_0\ + ); +\sm_reset_rx_cdr_to_ctr_reg[10]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_13\, + Q => sm_reset_rx_cdr_to_ctr_reg(10), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[11]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_12\, + Q => sm_reset_rx_cdr_to_ctr_reg(11), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[12]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_11\, + Q => sm_reset_rx_cdr_to_ctr_reg(12), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[13]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_10\, + Q => sm_reset_rx_cdr_to_ctr_reg(13), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[14]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_9\, + Q => sm_reset_rx_cdr_to_ctr_reg(14), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[15]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_8\, + Q => sm_reset_rx_cdr_to_ctr_reg(15), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[16]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(16), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[16]_i_1\: unisim.vcomponents.CARRY8 + port map ( + CI => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_0\, + CI_TOP => '0', + CO(7) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_0\, + CO(6) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_1\, + CO(5) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_2\, + CO(4) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_3\, + CO(3) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_4\, + CO(2) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_5\, + CO(1) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_6\, + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_7\, + DI(7 downto 0) => B"00000000", + O(7) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_8\, + O(6) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_9\, + O(5) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_10\, + O(4) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_11\, + O(3) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_12\, + O(2) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_13\, + O(1) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_15\, + S(7 downto 0) => sm_reset_rx_cdr_to_ctr_reg(23 downto 16) + ); +\sm_reset_rx_cdr_to_ctr_reg[17]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(17), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[18]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_13\, + Q => sm_reset_rx_cdr_to_ctr_reg(18), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[19]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_12\, + Q => sm_reset_rx_cdr_to_ctr_reg(19), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(1), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[20]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_11\, + Q => sm_reset_rx_cdr_to_ctr_reg(20), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[21]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_10\, + Q => sm_reset_rx_cdr_to_ctr_reg(21), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[22]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_9\, + Q => sm_reset_rx_cdr_to_ctr_reg(22), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[23]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_8\, + Q => sm_reset_rx_cdr_to_ctr_reg(23), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[24]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(24), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[24]_i_1\: unisim.vcomponents.CARRY8 + port map ( + CI => \sm_reset_rx_cdr_to_ctr_reg[16]_i_1_n_0\, + CI_TOP => '0', + CO(7 downto 1) => \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_CO_UNCONNECTED\(7 downto 1), + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_7\, + DI(7 downto 0) => B"00000000", + O(7 downto 2) => \NLW_sm_reset_rx_cdr_to_ctr_reg[24]_i_1_O_UNCONNECTED\(7 downto 2), + O(1) => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_15\, + S(7 downto 2) => B"000000", + S(1 downto 0) => sm_reset_rx_cdr_to_ctr_reg(25 downto 24) + ); +\sm_reset_rx_cdr_to_ctr_reg[25]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[24]_i_1_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(25), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_13\, + Q => sm_reset_rx_cdr_to_ctr_reg(2), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_12\, + Q => sm_reset_rx_cdr_to_ctr_reg(3), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_11\, + Q => sm_reset_rx_cdr_to_ctr_reg(4), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_10\, + Q => sm_reset_rx_cdr_to_ctr_reg(5), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[6]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_9\, + Q => sm_reset_rx_cdr_to_ctr_reg(6), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[7]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_8\, + Q => sm_reset_rx_cdr_to_ctr_reg(7), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[8]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_15\, + Q => sm_reset_rx_cdr_to_ctr_reg(8), + R => sm_reset_rx_cdr_to_clr + ); +\sm_reset_rx_cdr_to_ctr_reg[8]_i_1\: unisim.vcomponents.CARRY8 + port map ( + CI => \sm_reset_rx_cdr_to_ctr_reg[0]_i_2_n_0\, + CI_TOP => '0', + CO(7) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_0\, + CO(6) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_1\, + CO(5) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_2\, + CO(4) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_3\, + CO(3) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_4\, + CO(2) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_5\, + CO(1) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_6\, + CO(0) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_7\, + DI(7 downto 0) => B"00000000", + O(7) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_8\, + O(6) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_9\, + O(5) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_10\, + O(4) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_11\, + O(3) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_12\, + O(2) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_13\, + O(1) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_14\, + O(0) => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_15\, + S(7 downto 0) => sm_reset_rx_cdr_to_ctr_reg(15 downto 8) + ); +\sm_reset_rx_cdr_to_ctr_reg[9]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_cdr_to_ctr[0]_i_1_n_0\, + D => \sm_reset_rx_cdr_to_ctr_reg[8]_i_1_n_14\, + Q => sm_reset_rx_cdr_to_ctr_reg(9), + R => sm_reset_rx_cdr_to_clr + ); +sm_reset_rx_cdr_to_sat_i_1: unisim.vcomponents.LUT4 + generic map( + INIT => X"00F1" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat_i_2_n_0, + I1 => sm_reset_rx_cdr_to_sat_i_3_n_0, + I2 => sm_reset_rx_cdr_to_sat, + I3 => sm_reset_rx_cdr_to_clr, + O => sm_reset_rx_cdr_to_sat_i_1_n_0 + ); +sm_reset_rx_cdr_to_sat_i_2: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFFFFFFBFFF" + ) + port map ( + I0 => \sm_reset_rx_cdr_to_ctr[0]_i_4_n_0\, + I1 => sm_reset_rx_cdr_to_sat_i_4_n_0, + I2 => sm_reset_rx_cdr_to_sat_i_5_n_0, + I3 => sm_reset_rx_cdr_to_sat_i_6_n_0, + I4 => sm_reset_rx_cdr_to_ctr_reg(21), + I5 => sm_reset_rx_cdr_to_ctr_reg(24), + O => sm_reset_rx_cdr_to_sat_i_2_n_0 + ); +sm_reset_rx_cdr_to_sat_i_3: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => sm_reset_rx_cdr_to_sat_i_7_n_0, + I1 => sm_reset_rx_cdr_to_ctr_reg(16), + I2 => sm_reset_rx_cdr_to_ctr_reg(23), + I3 => sm_reset_rx_cdr_to_ctr_reg(25), + O => sm_reset_rx_cdr_to_sat_i_3_n_0 + ); +sm_reset_rx_cdr_to_sat_i_4: unisim.vcomponents.LUT4 + generic map( + INIT => X"0008" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(7), + I1 => sm_reset_rx_cdr_to_ctr_reg(6), + I2 => sm_reset_rx_cdr_to_ctr_reg(4), + I3 => sm_reset_rx_cdr_to_ctr_reg(3), + O => sm_reset_rx_cdr_to_sat_i_4_n_0 + ); +sm_reset_rx_cdr_to_sat_i_5: unisim.vcomponents.LUT3 + generic map( + INIT => X"10" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(2), + I1 => sm_reset_rx_cdr_to_ctr_reg(1), + I2 => sm_reset_rx_cdr_to_ctr_reg(0), + O => sm_reset_rx_cdr_to_sat_i_5_n_0 + ); +sm_reset_rx_cdr_to_sat_i_6: unisim.vcomponents.LUT6 + generic map( + INIT => X"8000000000000000" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(8), + I1 => sm_reset_rx_cdr_to_ctr_reg(10), + I2 => sm_reset_rx_cdr_to_ctr_reg(11), + I3 => sm_reset_rx_cdr_to_ctr_reg(17), + I4 => sm_reset_rx_cdr_to_ctr_reg(20), + I5 => sm_reset_rx_cdr_to_ctr_reg(18), + O => sm_reset_rx_cdr_to_sat_i_6_n_0 + ); +sm_reset_rx_cdr_to_sat_i_7: unisim.vcomponents.LUT4 + generic map( + INIT => X"FFFE" + ) + port map ( + I0 => sm_reset_rx_cdr_to_ctr_reg(13), + I1 => sm_reset_rx_cdr_to_ctr_reg(12), + I2 => sm_reset_rx_cdr_to_ctr_reg(19), + I3 => sm_reset_rx_cdr_to_ctr_reg(22), + O => sm_reset_rx_cdr_to_sat_i_7_n_0 + ); +sm_reset_rx_cdr_to_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_cdr_to_sat_i_1_n_0, + Q => sm_reset_rx_cdr_to_sat, + R => '0' + ); +sm_reset_rx_pll_timer_clr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFF3000B" + ) + port map ( + I0 => sm_reset_rx_pll_timer_sat, + I1 => sm_reset_rx(0), + I2 => sm_reset_rx(1), + I3 => sm_reset_rx(2), + I4 => sm_reset_rx_pll_timer_clr_reg_n_0, + O => sm_reset_rx_pll_timer_clr_i_1_n_0 + ); +sm_reset_rx_pll_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_pll_timer_clr_i_1_n_0, + Q => sm_reset_rx_pll_timer_clr_reg_n_0, + S => gtwiz_reset_rx_any_sync + ); +\sm_reset_rx_pll_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + O => \p_0_in__1\(0) + ); +\sm_reset_rx_pll_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + I1 => sm_reset_rx_pll_timer_ctr_reg(1), + O => \p_0_in__1\(1) + ); +\sm_reset_rx_pll_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + I1 => sm_reset_rx_pll_timer_ctr_reg(1), + I2 => sm_reset_rx_pll_timer_ctr_reg(2), + O => \p_0_in__1\(2) + ); +\sm_reset_rx_pll_timer_ctr[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(1), + I1 => sm_reset_rx_pll_timer_ctr_reg(0), + I2 => sm_reset_rx_pll_timer_ctr_reg(2), + I3 => sm_reset_rx_pll_timer_ctr_reg(3), + O => \p_0_in__1\(3) + ); +\sm_reset_rx_pll_timer_ctr[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(2), + I1 => sm_reset_rx_pll_timer_ctr_reg(0), + I2 => sm_reset_rx_pll_timer_ctr_reg(1), + I3 => sm_reset_rx_pll_timer_ctr_reg(3), + I4 => sm_reset_rx_pll_timer_ctr_reg(4), + O => \p_0_in__1\(4) + ); +\sm_reset_rx_pll_timer_ctr[5]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"7FFFFFFF80000000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(3), + I1 => sm_reset_rx_pll_timer_ctr_reg(1), + I2 => sm_reset_rx_pll_timer_ctr_reg(0), + I3 => sm_reset_rx_pll_timer_ctr_reg(2), + I4 => sm_reset_rx_pll_timer_ctr_reg(4), + I5 => sm_reset_rx_pll_timer_ctr_reg(5), + O => \p_0_in__1\(5) + ); +\sm_reset_rx_pll_timer_ctr[6]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I1 => sm_reset_rx_pll_timer_ctr_reg(6), + O => \p_0_in__1\(6) + ); +\sm_reset_rx_pll_timer_ctr[7]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I1 => sm_reset_rx_pll_timer_ctr_reg(6), + I2 => sm_reset_rx_pll_timer_ctr_reg(7), + O => \p_0_in__1\(7) + ); +\sm_reset_rx_pll_timer_ctr[8]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(6), + I1 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_rx_pll_timer_ctr_reg(7), + I3 => sm_reset_rx_pll_timer_ctr_reg(8), + O => \p_0_in__1\(8) + ); +\sm_reset_rx_pll_timer_ctr[9]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFFFEF" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_3_n_0\, + I1 => sm_reset_rx_pll_timer_ctr_reg(9), + I2 => sm_reset_rx_pll_timer_ctr_reg(7), + I3 => sm_reset_rx_pll_timer_ctr_reg(3), + I4 => sm_reset_rx_pll_timer_ctr_reg(6), + O => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\ + ); +\sm_reset_rx_pll_timer_ctr[9]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(7), + I1 => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_rx_pll_timer_ctr_reg(6), + I3 => sm_reset_rx_pll_timer_ctr_reg(8), + I4 => sm_reset_rx_pll_timer_ctr_reg(9), + O => \p_0_in__1\(9) + ); +\sm_reset_rx_pll_timer_ctr[9]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFFFFFFBFFF" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(0), + I1 => sm_reset_rx_pll_timer_ctr_reg(8), + I2 => sm_reset_rx_pll_timer_ctr_reg(1), + I3 => sm_reset_rx_pll_timer_ctr_reg(4), + I4 => sm_reset_rx_pll_timer_ctr_reg(2), + I5 => sm_reset_rx_pll_timer_ctr_reg(5), + O => \sm_reset_rx_pll_timer_ctr[9]_i_3_n_0\ + ); +\sm_reset_rx_pll_timer_ctr[9]_i_4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8000000000000000" + ) + port map ( + I0 => sm_reset_rx_pll_timer_ctr_reg(5), + I1 => sm_reset_rx_pll_timer_ctr_reg(3), + I2 => sm_reset_rx_pll_timer_ctr_reg(1), + I3 => sm_reset_rx_pll_timer_ctr_reg(0), + I4 => sm_reset_rx_pll_timer_ctr_reg(2), + I5 => sm_reset_rx_pll_timer_ctr_reg(4), + O => \sm_reset_rx_pll_timer_ctr[9]_i_4_n_0\ + ); +\sm_reset_rx_pll_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(0), + Q => sm_reset_rx_pll_timer_ctr_reg(0), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(1), + Q => sm_reset_rx_pll_timer_ctr_reg(1), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(2), + Q => sm_reset_rx_pll_timer_ctr_reg(2), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(3), + Q => sm_reset_rx_pll_timer_ctr_reg(3), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(4), + Q => sm_reset_rx_pll_timer_ctr_reg(4), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(5), + Q => sm_reset_rx_pll_timer_ctr_reg(5), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[6]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(6), + Q => sm_reset_rx_pll_timer_ctr_reg(6), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[7]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(7), + Q => sm_reset_rx_pll_timer_ctr_reg(7), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[8]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(8), + Q => sm_reset_rx_pll_timer_ctr_reg(8), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +\sm_reset_rx_pll_timer_ctr_reg[9]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + D => \p_0_in__1\(9), + Q => sm_reset_rx_pll_timer_ctr_reg(9), + R => sm_reset_rx_pll_timer_clr_reg_n_0 + ); +sm_reset_rx_pll_timer_sat_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"0D" + ) + port map ( + I0 => \sm_reset_rx_pll_timer_ctr[9]_i_1_n_0\, + I1 => sm_reset_rx_pll_timer_sat, + I2 => sm_reset_rx_pll_timer_clr_reg_n_0, + O => sm_reset_rx_pll_timer_sat_i_1_n_0 + ); +sm_reset_rx_pll_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_pll_timer_sat_i_1_n_0, + Q => sm_reset_rx_pll_timer_sat, + R => '0' + ); +sm_reset_rx_timer_clr_i_4: unisim.vcomponents.LUT2 + generic map( + INIT => X"2" + ) + port map ( + I0 => sm_reset_rx_timer_sat, + I1 => sm_reset_rx_timer_clr_reg_n_0, + O => \sm_reset_rx_timer_clr010_out__0\ + ); +sm_reset_rx_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_rx_inst_n_1, + Q => sm_reset_rx_timer_clr_reg_n_0, + S => gtwiz_reset_rx_any_sync + ); +\sm_reset_rx_timer_ctr0_inferred__0/i_\: unisim.vcomponents.LUT3 + generic map( + INIT => X"7F" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(2), + I1 => sm_reset_rx_timer_ctr(0), + I2 => sm_reset_rx_timer_ctr(1), + O => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\ + ); +\sm_reset_rx_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(0), + O => \sm_reset_rx_timer_ctr[0]_i_1_n_0\ + ); +\sm_reset_rx_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(0), + I1 => sm_reset_rx_timer_ctr(1), + O => \sm_reset_rx_timer_ctr[1]_i_1_n_0\ + ); +\sm_reset_rx_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(0), + I1 => sm_reset_rx_timer_ctr(1), + I2 => sm_reset_rx_timer_ctr(2), + O => \sm_reset_rx_timer_ctr[2]_i_1_n_0\ + ); +\sm_reset_rx_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_rx_timer_ctr[0]_i_1_n_0\, + Q => sm_reset_rx_timer_ctr(0), + R => sm_reset_rx_timer_clr_reg_n_0 + ); +\sm_reset_rx_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_rx_timer_ctr[1]_i_1_n_0\, + Q => sm_reset_rx_timer_ctr(1), + R => sm_reset_rx_timer_clr_reg_n_0 + ); +\sm_reset_rx_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => \sm_reset_rx_timer_ctr0_inferred__0/i__n_0\, + D => \sm_reset_rx_timer_ctr[2]_i_1_n_0\, + Q => sm_reset_rx_timer_ctr(2), + R => sm_reset_rx_timer_clr_reg_n_0 + ); +sm_reset_rx_timer_sat_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FF80" + ) + port map ( + I0 => sm_reset_rx_timer_ctr(2), + I1 => sm_reset_rx_timer_ctr(0), + I2 => sm_reset_rx_timer_ctr(1), + I3 => sm_reset_rx_timer_sat, + I4 => sm_reset_rx_timer_clr_reg_n_0, + O => sm_reset_rx_timer_sat_i_1_n_0 + ); +sm_reset_rx_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_rx_timer_sat_i_1_n_0, + Q => sm_reset_rx_timer_sat, + R => '0' + ); +sm_reset_tx_pll_timer_clr_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFF3000B" + ) + port map ( + I0 => sm_reset_tx_pll_timer_sat, + I1 => sm_reset_tx(0), + I2 => sm_reset_tx(1), + I3 => sm_reset_tx(2), + I4 => sm_reset_tx_pll_timer_clr_reg_n_0, + O => sm_reset_tx_pll_timer_clr_i_1_n_0 + ); +sm_reset_tx_pll_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_tx_pll_timer_clr_i_1_n_0, + Q => sm_reset_tx_pll_timer_clr_reg_n_0, + S => gtwiz_reset_tx_any_sync + ); +\sm_reset_tx_pll_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + O => \p_0_in__0\(0) + ); +\sm_reset_tx_pll_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + O => \p_0_in__0\(1) + ); +\sm_reset_tx_pll_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(1), + I1 => sm_reset_tx_pll_timer_ctr_reg(0), + I2 => sm_reset_tx_pll_timer_ctr_reg(2), + O => \sm_reset_tx_pll_timer_ctr[2]_i_1_n_0\ + ); +\sm_reset_tx_pll_timer_ctr[3]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + I2 => sm_reset_tx_pll_timer_ctr_reg(2), + I3 => sm_reset_tx_pll_timer_ctr_reg(3), + O => \p_0_in__0\(3) + ); +\sm_reset_tx_pll_timer_ctr[4]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(2), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + I2 => sm_reset_tx_pll_timer_ctr_reg(0), + I3 => sm_reset_tx_pll_timer_ctr_reg(3), + I4 => sm_reset_tx_pll_timer_ctr_reg(4), + O => \p_0_in__0\(4) + ); +\sm_reset_tx_pll_timer_ctr[5]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"7FFFFFFF80000000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(3), + I1 => sm_reset_tx_pll_timer_ctr_reg(0), + I2 => sm_reset_tx_pll_timer_ctr_reg(1), + I3 => sm_reset_tx_pll_timer_ctr_reg(2), + I4 => sm_reset_tx_pll_timer_ctr_reg(4), + I5 => sm_reset_tx_pll_timer_ctr_reg(5), + O => \p_0_in__0\(5) + ); +\sm_reset_tx_pll_timer_ctr[6]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"F7FFFFFF08000000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(4), + I1 => sm_reset_tx_pll_timer_ctr_reg(2), + I2 => \sm_reset_tx_pll_timer_ctr[6]_i_2_n_0\, + I3 => sm_reset_tx_pll_timer_ctr_reg(3), + I4 => sm_reset_tx_pll_timer_ctr_reg(5), + I5 => sm_reset_tx_pll_timer_ctr_reg(6), + O => \p_0_in__0\(6) + ); +\sm_reset_tx_pll_timer_ctr[6]_i_2\: unisim.vcomponents.LUT2 + generic map( + INIT => X"7" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(0), + I1 => sm_reset_tx_pll_timer_ctr_reg(1), + O => \sm_reset_tx_pll_timer_ctr[6]_i_2_n_0\ + ); +\sm_reset_tx_pll_timer_ctr[7]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\, + I1 => sm_reset_tx_pll_timer_ctr_reg(6), + I2 => sm_reset_tx_pll_timer_ctr_reg(7), + O => \p_0_in__0\(7) + ); +\sm_reset_tx_pll_timer_ctr[8]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"7F80" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(6), + I1 => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_tx_pll_timer_ctr_reg(7), + I3 => sm_reset_tx_pll_timer_ctr_reg(8), + O => \p_0_in__0\(8) + ); +\sm_reset_tx_pll_timer_ctr[9]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"FFFFFFEF" + ) + port map ( + I0 => \sm_reset_tx_pll_timer_ctr[9]_i_3_n_0\, + I1 => sm_reset_tx_pll_timer_ctr_reg(8), + I2 => sm_reset_tx_pll_timer_ctr_reg(2), + I3 => sm_reset_tx_pll_timer_ctr_reg(6), + I4 => sm_reset_tx_pll_timer_ctr_reg(9), + O => sel + ); +\sm_reset_tx_pll_timer_ctr[9]_i_2\: unisim.vcomponents.LUT5 + generic map( + INIT => X"7FFF8000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(7), + I1 => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\, + I2 => sm_reset_tx_pll_timer_ctr_reg(6), + I3 => sm_reset_tx_pll_timer_ctr_reg(8), + I4 => sm_reset_tx_pll_timer_ctr_reg(9), + O => \p_0_in__0\(9) + ); +\sm_reset_tx_pll_timer_ctr[9]_i_3\: unisim.vcomponents.LUT6 + generic map( + INIT => X"FFFFFFFFFFFFEFFF" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(3), + I1 => sm_reset_tx_pll_timer_ctr_reg(4), + I2 => sm_reset_tx_pll_timer_ctr_reg(0), + I3 => sm_reset_tx_pll_timer_ctr_reg(1), + I4 => sm_reset_tx_pll_timer_ctr_reg(5), + I5 => sm_reset_tx_pll_timer_ctr_reg(7), + O => \sm_reset_tx_pll_timer_ctr[9]_i_3_n_0\ + ); +\sm_reset_tx_pll_timer_ctr[9]_i_4\: unisim.vcomponents.LUT6 + generic map( + INIT => X"8000000000000000" + ) + port map ( + I0 => sm_reset_tx_pll_timer_ctr_reg(5), + I1 => sm_reset_tx_pll_timer_ctr_reg(3), + I2 => sm_reset_tx_pll_timer_ctr_reg(0), + I3 => sm_reset_tx_pll_timer_ctr_reg(1), + I4 => sm_reset_tx_pll_timer_ctr_reg(2), + I5 => sm_reset_tx_pll_timer_ctr_reg(4), + O => \sm_reset_tx_pll_timer_ctr[9]_i_4_n_0\ + ); +\sm_reset_tx_pll_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(0), + Q => sm_reset_tx_pll_timer_ctr_reg(0), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(1), + Q => sm_reset_tx_pll_timer_ctr_reg(1), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \sm_reset_tx_pll_timer_ctr[2]_i_1_n_0\, + Q => sm_reset_tx_pll_timer_ctr_reg(2), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(3), + Q => sm_reset_tx_pll_timer_ctr_reg(3), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(4), + Q => sm_reset_tx_pll_timer_ctr_reg(4), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[5]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(5), + Q => sm_reset_tx_pll_timer_ctr_reg(5), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[6]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(6), + Q => sm_reset_tx_pll_timer_ctr_reg(6), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[7]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(7), + Q => sm_reset_tx_pll_timer_ctr_reg(7), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[8]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(8), + Q => sm_reset_tx_pll_timer_ctr_reg(8), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +\sm_reset_tx_pll_timer_ctr_reg[9]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => sel, + D => \p_0_in__0\(9), + Q => sm_reset_tx_pll_timer_ctr_reg(9), + R => sm_reset_tx_pll_timer_clr_reg_n_0 + ); +sm_reset_tx_pll_timer_sat_i_1: unisim.vcomponents.LUT3 + generic map( + INIT => X"0D" + ) + port map ( + I0 => sel, + I1 => sm_reset_tx_pll_timer_sat, + I2 => sm_reset_tx_pll_timer_clr_reg_n_0, + O => sm_reset_tx_pll_timer_sat_i_1_n_0 + ); +sm_reset_tx_pll_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_tx_pll_timer_sat_i_1_n_0, + Q => sm_reset_tx_pll_timer_sat, + R => '0' + ); +sm_reset_tx_timer_clr_reg: unisim.vcomponents.FDSE + generic map( + INIT => '1' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_plllock_tx_inst_n_1, + Q => sm_reset_tx_timer_clr_reg_n_0, + S => gtwiz_reset_tx_any_sync + ); +\sm_reset_tx_timer_ctr0_inferred__0/i_\: unisim.vcomponents.LUT3 + generic map( + INIT => X"7F" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(2), + I1 => sm_reset_tx_timer_ctr(0), + I2 => sm_reset_tx_timer_ctr(1), + O => p_0_in + ); +\sm_reset_tx_timer_ctr[0]_i_1\: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(0), + O => p_1_in(0) + ); +\sm_reset_tx_timer_ctr[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(0), + I1 => sm_reset_tx_timer_ctr(1), + O => p_1_in(1) + ); +\sm_reset_tx_timer_ctr[2]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"78" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(0), + I1 => sm_reset_tx_timer_ctr(1), + I2 => sm_reset_tx_timer_ctr(2), + O => p_1_in(2) + ); +\sm_reset_tx_timer_ctr_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => p_0_in, + D => p_1_in(0), + Q => sm_reset_tx_timer_ctr(0), + R => sm_reset_tx_timer_clr_reg_n_0 + ); +\sm_reset_tx_timer_ctr_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => p_0_in, + D => p_1_in(1), + Q => sm_reset_tx_timer_ctr(1), + R => sm_reset_tx_timer_clr_reg_n_0 + ); +\sm_reset_tx_timer_ctr_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => p_0_in, + D => p_1_in(2), + Q => sm_reset_tx_timer_ctr(2), + R => sm_reset_tx_timer_clr_reg_n_0 + ); +sm_reset_tx_timer_sat_i_1: unisim.vcomponents.LUT5 + generic map( + INIT => X"0000FF80" + ) + port map ( + I0 => sm_reset_tx_timer_ctr(2), + I1 => sm_reset_tx_timer_ctr(0), + I2 => sm_reset_tx_timer_ctr(1), + I3 => sm_reset_tx_timer_sat, + I4 => sm_reset_tx_timer_clr_reg_n_0, + O => sm_reset_tx_timer_sat_i_1_n_0 + ); +sm_reset_tx_timer_sat_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => sm_reset_tx_timer_sat_i_1_n_0, + Q => sm_reset_tx_timer_sat, + R => '0' + ); +txuserrdy_out_reg: unisim.vcomponents.FDRE + generic map( + INIT => '0' + ) + port map ( + C => gtwiz_reset_clk_freerun_in(0), + CE => '1', + D => bit_synchronizer_gtwiz_reset_userclk_tx_active_inst_n_0, + Q => \^gthe3_channel_txuserrdy\(0), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_gthe3 is + port ( + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_cdr_stable_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 127 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_gthe3; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_gthe3 is + signal \^cplllock_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_40\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_41\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_42\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_43\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_56\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_2\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_3\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int__0\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtrxreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gttxreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_11\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_4\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int__0\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_pllreset_rx_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int__0\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxprogdivreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxuserrdy_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txprogdivreset_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txuserrdy_int\ : STD_LOGIC; + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \gen_gtwizard_gthe3.txdlysreset_int\ : STD_LOGIC_VECTOR ( 3 to 3 ); + signal \gen_gtwizard_gthe3.txsyncallin_int\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^gtpowergood_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^qpll1lock_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^qpll1outclk_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal \^qpll1outrefclk_out\ : STD_LOGIC_VECTOR ( 0 to 0 ); + signal rst_in0 : STD_LOGIC; + signal \^rxcdrlock_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^rxresetdone_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal \^txresetdone_out\ : STD_LOGIC_VECTOR ( 3 downto 0 ); +begin + cplllock_out(3 downto 0) <= \^cplllock_out\(3 downto 0); + gtpowergood_out(3 downto 0) <= \^gtpowergood_out\(3 downto 0); + qpll1lock_out(0) <= \^qpll1lock_out\(0); + qpll1outclk_out(0) <= \^qpll1outclk_out\(0); + qpll1outrefclk_out(0) <= \^qpll1outrefclk_out\(0); + rxcdrlock_out(3 downto 0) <= \^rxcdrlock_out\(3 downto 0); + rxresetdone_out(3 downto 0) <= \^rxresetdone_out\(3 downto 0); + txresetdone_out(3 downto 0) <= \^txresetdone_out\(3 downto 0); +\gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_channel_wrapper + port map ( + GTHE3_CHANNEL_CPLLPD(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_pllreset_rx_int\, + GTHE3_CHANNEL_GTRXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtrxreset_int\, + GTHE3_CHANNEL_GTTXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gttxreset_int\, + GTHE3_CHANNEL_RXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxprogdivreset_int\, + GTHE3_CHANNEL_RXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxuserrdy_int\, + GTHE3_CHANNEL_TXDLYSRESET(0) => \gen_gtwizard_gthe3.txdlysreset_int\(3), + GTHE3_CHANNEL_TXPHALIGNDONE(3) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_40\, + GTHE3_CHANNEL_TXPHALIGNDONE(2) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_41\, + GTHE3_CHANNEL_TXPHALIGNDONE(1) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_42\, + GTHE3_CHANNEL_TXPHALIGNDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_43\, + GTHE3_CHANNEL_TXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txprogdivreset_int\, + GTHE3_CHANNEL_TXSYNCALLIN(0) => \gen_gtwizard_gthe3.txsyncallin_int\(0), + GTHE3_CHANNEL_TXSYNCDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_56\, + GTHE3_CHANNEL_TXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txuserrdy_int\, + cplllock_out(3 downto 0) => \^cplllock_out\(3 downto 0), + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtpowergood_out(3 downto 0) => \^gtpowergood_out\(3 downto 0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtwiz_userdata_rx_out(63 downto 0) => gtwiz_userdata_rx_out(63 downto 0), + gtwiz_userdata_tx_in(127 downto 0) => gtwiz_userdata_tx_in(127 downto 0), + loopback_in(11 downto 0) => loopback_in(11 downto 0), + qpll0outclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_2\, + qpll0outrefclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_3\, + qpll1outclk_out(0) => \^qpll1outclk_out\(0), + qpll1outrefclk_out(0) => \^qpll1outrefclk_out\(0), + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => \^rxcdrlock_out\(3 downto 0), + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxratedone_out(3 downto 0) => rxratedone_out(3 downto 0), + rxresetdone_out(3 downto 0) => \^rxresetdone_out\(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txprgdivresetdone_out(3 downto 0) => txprgdivresetdone_out(3 downto 0), + txresetdone_out(3 downto 0) => \^txresetdone_out\(3 downto 0), + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0) + ); +\gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gthe3_common_wrapper + port map ( + \gthe3_common_gen.GTHE3_COMMON_PRIM_INST\ => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_4\, + gtrefclk01_in(0) => gtrefclk01_in(0), + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0lock_out(0) => qpll0lock_out(0), + qpll0outclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_2\, + qpll0outrefclk_out(0) => \gen_gtwizard_gthe3.gen_common.gen_common_container[2].gen_enabled_common.gthe3_common_wrapper_inst_n_3\, + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1lock_out(0) => \^qpll1lock_out\(0), + qpll1outclk_out(0) => \^qpll1outclk_out\(0), + qpll1outrefclk_out(0) => \^qpll1outrefclk_out\(0), + rst_in0 => rst_in0 + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[0].bit_synchronizer_rxresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(0) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[0].bit_synchronizer_txresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_0 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(0) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[1].bit_synchronizer_rxresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_1 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(1), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(1) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[1].bit_synchronizer_txresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_2 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(1), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(1) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[2].bit_synchronizer_rxresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_3 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(2), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(2) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[2].bit_synchronizer_txresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_4 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(2), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(2) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[3].bit_synchronizer_rxresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_5 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + rxresetdone_out(0) => \^rxresetdone_out\(3) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gen_ch_xrd[3].bit_synchronizer_txresetdone_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_bit_synchronizer_6 + port map ( + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + txresetdone_out(0) => \^txresetdone_out\(3) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int\: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => \^gtpowergood_out\(1), + I1 => \^gtpowergood_out\(0), + I2 => \^gtpowergood_out\(3), + I3 => \^gtpowergood_out\(2), + O => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int__0\ + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_reset + port map ( + GTHE3_CHANNEL_CPLLPD(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_pllreset_rx_int\, + GTHE3_CHANNEL_GTRXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtrxreset_int\, + GTHE3_CHANNEL_GTTXRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gttxreset_int\, + GTHE3_CHANNEL_RXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxprogdivreset_int\, + GTHE3_CHANNEL_RXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxuserrdy_int\, + GTHE3_CHANNEL_TXPROGDIVRESET(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txprogdivreset_int\, + GTHE3_CHANNEL_TXUSERRDY(0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_txuserrdy_int\, + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3 downto 0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.rxresetdone_sync\(3 downto 0), + \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3 downto 0) => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.txresetdone_sync\(3 downto 0), + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + i_in_meta_reg => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int__0\, + i_in_meta_reg_0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int__0\, + i_in_out_reg => gtwiz_reset_rx_cdr_stable_out(0), + in0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_gtpowergood_int__0\, + pllreset_tx_out_reg_0 => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_4\, + qpll1lock_out(0) => \^qpll1lock_out\(0), + rst_in0 => rst_in0, + rst_in_out_reg => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_11\, + rxusrclk2_in(0) => rxusrclk2_in(0), + txusrclk2_in(0) => txusrclk2_in(0) + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int\: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => \^cplllock_out\(1), + I1 => \^cplllock_out\(0), + I2 => \^cplllock_out\(3), + I3 => \^cplllock_out\(2), + O => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_plllock_rx_int__0\ + ); +\gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int\: unisim.vcomponents.LUT4 + generic map( + INIT => X"8000" + ) + port map ( + I0 => \^rxcdrlock_out\(1), + I1 => \^rxcdrlock_out\(0), + I2 => \^rxcdrlock_out\(3), + I3 => \^rxcdrlock_out\(2), + O => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_rxcdrlock_int__0\ + ); +\gen_gtwizard_gthe3.gen_tx_buffer_bypass_internal.gen_single_instance.gtwiz_buffbypass_tx_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_ultrascale_v1_7_18_gtwiz_buffbypass_tx + port map ( + GTHE3_CHANNEL_TXDLYSRESET(0) => \gen_gtwizard_gthe3.txdlysreset_int\(3), + GTHE3_CHANNEL_TXPHALIGNDONE(3) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_40\, + GTHE3_CHANNEL_TXPHALIGNDONE(2) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_41\, + GTHE3_CHANNEL_TXPHALIGNDONE(1) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_42\, + GTHE3_CHANNEL_TXPHALIGNDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_43\, + GTHE3_CHANNEL_TXSYNCALLIN(0) => \gen_gtwizard_gthe3.txsyncallin_int\(0), + GTHE3_CHANNEL_TXSYNCDONE(0) => \gen_gtwizard_gthe3.gen_channel_container[2].gen_enabled_channel.gthe3_channel_wrapper_inst_n_56\, + gtwiz_buffbypass_tx_done_out(0) => gtwiz_buffbypass_tx_done_out(0), + gtwiz_buffbypass_tx_error_out(0) => gtwiz_buffbypass_tx_error_out(0), + gtwiz_buffbypass_tx_reset_in(0) => gtwiz_buffbypass_tx_reset_in(0), + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + rst_in_sync2_reg => \gen_gtwizard_gthe3.gen_reset_controller_internal.gen_single_instance.gtwiz_reset_inst_n_11\, + txusrclk2_in(0) => txusrclk2_in(0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top is + port ( + gtwiz_userclk_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_srcclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_usrclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_usrclk2_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_tx_active_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_srcclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_usrclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_usrclk2_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_rx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_done_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll0lock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll1lock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_cdr_stable_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll0reset_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_qpll1reset_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_gthe3_cpll_cal_txoutclk_period_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe3_cpll_cal_cnt_tol_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe3_cpll_cal_bufg_ce_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_gthe4_cpll_cal_txoutclk_period_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe4_cpll_cal_cnt_tol_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gthe4_cpll_cal_bufg_ce_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_gtye4_cpll_cal_txoutclk_period_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gtye4_cpll_cal_cnt_tol_in : in STD_LOGIC_VECTOR ( 71 downto 0 ); + gtwiz_gtye4_cpll_cal_bufg_ce_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 127 downto 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + bgbypassb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + bgmonitorenb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + bgpdb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + bgrcalovrd_in : in STD_LOGIC_VECTOR ( 4 downto 0 ); + bgrcalovrdenb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpaddr_common_in : in STD_LOGIC_VECTOR ( 8 downto 0 ); + drpclk_common_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpdi_common_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + drpen_common_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpwe_common_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtgrefclk0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtgrefclk1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk00_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk10_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtnorthrefclk11_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk00_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk10_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtrefclk11_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk00_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk10_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk11_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + pcierateqpll0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + pcierateqpll1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + pmarsvd0_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + pmarsvd1_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + qpll0clkrsvd0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0clkrsvd1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0fbdiv_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lockdetclk_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0locken_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0pd_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0refclksel_in : in STD_LOGIC_VECTOR ( 2 downto 0 ); + qpll0reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1clkrsvd0_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1clkrsvd1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbdiv_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lockdetclk_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1locken_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1pd_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1refclksel_in : in STD_LOGIC_VECTOR ( 2 downto 0 ); + qpll1reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpllrsvd1_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + qpllrsvd2_in : in STD_LOGIC_VECTOR ( 4 downto 0 ); + qpllrsvd3_in : in STD_LOGIC_VECTOR ( 4 downto 0 ); + qpllrsvd4_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rcalenb_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0data_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0toggle_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0width_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1data_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1toggle_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1width_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tcongpi_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tconpowerup_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tconreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + tconrsvdin1_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubcfgstreamen_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubdo_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubdrdy_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubenable_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubgpi_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubintr_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubiolmbrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmbrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmcapture_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmdbgrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmdbgupdate_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmregen_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmshift_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmsysrst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmtck_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmtdi_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpdo_common_out : out STD_LOGIC_VECTOR ( 15 downto 0 ); + drprdy_common_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + pmarsvdout0_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + pmarsvdout1_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0refclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1refclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qplldmonitor0_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + qplldmonitor1_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + refclkoutmonitor0_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + refclkoutmonitor1_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxrecclk0_sel_out : out STD_LOGIC_VECTOR ( 1 downto 0 ); + rxrecclk1_sel_out : out STD_LOGIC_VECTOR ( 1 downto 0 ); + rxrecclk0sel_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxrecclk1sel_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0finalout_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm0testdata_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1finalout_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + sdm1testdata_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + tcongpo_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + tconrsvdout0_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubdaddr_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubden_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubdi_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubdwe_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubmdmtdo_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubrsvdout_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + ubtxuart_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + cdrstepdir_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cdrstepsq_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cdrstepsx_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cfgreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + clkrsvd0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + clkrsvd1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllfreqlock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + cplllockdetclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cplllocken_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllpd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllrefclksel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + cpllreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + dmonfiforeset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + dmonitorclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + drpaddr_in : in STD_LOGIC_VECTOR ( 35 downto 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + drpdi_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + drpen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + drprst_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + drpwe_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + elpcaldvorwren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + elpcalpaorwren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + evoddphicaldone_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphicalstart_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphidrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphidwren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphixrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + evoddphixwren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescanmode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescanreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescantrigger_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + freqos_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtgrefclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtnorthrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtnorthrefclk1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtresetsel_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrsvd_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + gtrxreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrxresetsel_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtsouthrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtsouthrefclk1_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gttxreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gttxresetsel_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + incpctrl_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtyrxn_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtyrxp_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + looprsvd_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + lpbkrxtxseren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + lpbktxrxseren_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieeqrxeqadaptdone_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcierstidle_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pciersttxsyncstart_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieuserratedone_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + pcsrsvdin_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + pcsrsvdin2_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + pmarsvdin_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + qpll0clk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + qpll0freqlock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0refclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + qpll1clk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + qpll1freqlock_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1refclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + resetovrd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rstclkentx_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rx8b10ben_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxafecfoken_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxbufreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrfreqreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrresetrsv_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbonden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbondi_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + rxchbondlevel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxchbondmaster_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbondslave_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxckcalreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxckcalstart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxcommadeten_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeagcctrl_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxdccforcestart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfeagchold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeagcovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfecfokfcnum_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokfen_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokfpulse_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokhold_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfecfokovren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfekhhold_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfekhovrden_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxdfelfhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfelfovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfelpmreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap10hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap10ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap11hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap11ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap12hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap12ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap13hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap13ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap14hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap14ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap15hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap15ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap2hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap2ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap3hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap3ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap4hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap4ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap5hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap5ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap6hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap6ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap7hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap7ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap8hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap8ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap9hold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfetap9ovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeuthold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfeutovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfevphold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfevpovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfevsen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdfexyden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlybypass_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlyen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlyovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxdlysreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxelecidlemode_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxeqtraining_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxgearboxslip_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlatclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmgchold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmgcovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmhfhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmhfovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmlfhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmlfklovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmoshold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxlpmosovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxmcommaalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxmonitorsel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxoobreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoscalreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoshold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintcfg_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + rxosinten_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosinthold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstrobe_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosinttestovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclksel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxpcommaalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpcsreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpd_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxphalign_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphdlypd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphdlyreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpllclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxpmareset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbscntreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbssel_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + rxprogdivreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxqpien_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxrate_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxratemode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslipoutclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslippma_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncallin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncmode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsysclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + rxtermination_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + rxuserrdy_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + sigvalidclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + tstin_in : in STD_LOGIC_VECTOR ( 79 downto 0 ); + tx8b10bbypass_in : in STD_LOGIC_VECTOR ( 31 downto 0 ); + tx8b10ben_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txbufdiffctrl_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txcominit_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txcomsas_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txcomwake_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txctrl0_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + txctrl1_in : in STD_LOGIC_VECTOR ( 63 downto 0 ); + txctrl2_in : in STD_LOGIC_VECTOR ( 31 downto 0 ); + txdata_in : in STD_LOGIC_VECTOR ( 511 downto 0 ); + txdataextendrsvd_in : in STD_LOGIC_VECTOR ( 31 downto 0 ); + txdccforcestart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txdccreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txdeemph_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdetectrx_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdiffctrl_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + txdiffpd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlybypass_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlysreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txdlyupdown_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txelecidle_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txelforcestart_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txheader_in : in STD_LOGIC_VECTOR ( 23 downto 0 ); + txinhibit_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txlatclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txlfpstreset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txlfpsu2lpexit_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txlfpsu3wake_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txmaincursor_in : in STD_LOGIC_VECTOR ( 27 downto 0 ); + txmargin_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txmuxdcdexhold_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txmuxdcdorwren_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txoneszeros_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + txoutclksel_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txpcsreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpd_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + txpdelecidlemode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphalign_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphalignen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphdlypd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphdlyreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphdlytstclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphinit_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txphovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmovrden_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmpd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmsel_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpippmstepsize_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + txpisopd_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpllclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + txpmareset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpostcursor_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + txpostcursorinv_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txprbsforceerr_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txprbssel_in : in STD_LOGIC_VECTOR ( 15 downto 0 ); + txprecursor_in : in STD_LOGIC_VECTOR ( 19 downto 0 ); + txprecursorinv_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txprogdivreset_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpibiasen_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpistrongpdown_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpiweakpup_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txrate_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + txratemode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsequence_in : in STD_LOGIC_VECTOR ( 27 downto 0 ); + txswing_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncallin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncin_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncmode_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txsysclksel_in : in STD_LOGIC_VECTOR ( 7 downto 0 ); + txuserrdy_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + bufgtce_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + bufgtcemask_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + bufgtdiv_out : out STD_LOGIC_VECTOR ( 35 downto 0 ); + bufgtreset_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + bufgtrstmask_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + cpllfbclklost_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + cpllrefclklost_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + dmonitorout_out : out STD_LOGIC_VECTOR ( 67 downto 0 ); + dmonitoroutclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + drpdo_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + drprdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + eyescandataerror_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclkmonitor_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtytxn_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtytxp_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + pcierategen3_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcierateidle_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcierateqpllpd_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + pcierateqpllreset_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + pciesynctxsyncdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieusergen3rdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieuserphystatusrst_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcieuserratestart_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pcsrsvdout_out : out STD_LOGIC_VECTOR ( 47 downto 0 ); + phystatus_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + pinrsrvdas_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + powerpresent_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + resetexception_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxbufstatus_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + rxbyteisaligned_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxbyterealign_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrphdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchanbondseq_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchanisaligned_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchanrealign_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxchbondo_out : out STD_LOGIC_VECTOR ( 19 downto 0 ); + rxckcaldone_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxclkcorcnt_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxcominitdet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcommadet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcomsasdet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcomwakedet_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxctrl0_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + rxctrl1_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + rxctrl2_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + rxctrl3_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + rxdata_out : out STD_LOGIC_VECTOR ( 511 downto 0 ); + rxdataextendrsvd_out : out STD_LOGIC_VECTOR ( 31 downto 0 ); + rxdatavalid_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxdlysresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxelecidle_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxheader_out : out STD_LOGIC_VECTOR ( 23 downto 0 ); + rxheadervalid_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxlfpstresetdet_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxlfpsu2lpexitdet_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxlfpsu3wakedet_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + rxmonitorout_out : out STD_LOGIC_VECTOR ( 27 downto 0 ); + rxosintdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstarted_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstrobedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxosintstrobestarted_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclkfabric_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclkpcs_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphaligndone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxphalignerr_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbserr_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprbslocked_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxqpisenn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxqpisenp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxrecclkout_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsliderdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslipdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslipoutclkrdy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslippmardy_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxstartofseq_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + rxstatus_out : out STD_LOGIC_VECTOR ( 11 downto 0 ); + rxsyncdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxsyncout_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxvalid_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txbufstatus_out : out STD_LOGIC_VECTOR ( 7 downto 0 ); + txcomfinish_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txdccdone_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + txdlysresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclkfabric_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclkpcs_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txphaligndone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txphinitdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpisenn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txqpisenp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txsyncout_out : out STD_LOGIC_VECTOR ( 3 downto 0 ) + ); + attribute C_CHANNEL_ENABLE : string; + attribute C_CHANNEL_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100000000"; + attribute C_COMMON_SCALING_FACTOR : integer; + attribute C_COMMON_SCALING_FACTOR of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_CPLL_VCO_FREQUENCY : string; + attribute C_CPLL_VCO_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "2560.000000"; + attribute C_ENABLE_COMMON_USRCLK : integer; + attribute C_ENABLE_COMMON_USRCLK of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_FORCE_COMMONS : integer; + attribute C_FORCE_COMMONS of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_FREERUN_FREQUENCY : string; + attribute C_FREERUN_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "200.000000"; + attribute C_GT_REV : integer; + attribute C_GT_REV of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 17; + attribute C_GT_TYPE : integer; + attribute C_GT_TYPE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_INCLUDE_CPLL_CAL : integer; + attribute C_INCLUDE_CPLL_CAL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 2; + attribute C_LOCATE_COMMON : integer; + attribute C_LOCATE_COMMON of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE : integer; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 2; + attribute C_LOCATE_RESET_CONTROLLER : integer; + attribute C_LOCATE_RESET_CONTROLLER of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_LOCATE_RX_USER_CLOCKING : integer; + attribute C_LOCATE_RX_USER_CLOCKING of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_LOCATE_TX_USER_CLOCKING : integer; + attribute C_LOCATE_TX_USER_CLOCKING of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING : integer; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_PCIE_CORECLK_FREQ : integer; + attribute C_PCIE_CORECLK_FREQ of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 250; + attribute C_PCIE_ENABLE : integer; + attribute C_PCIE_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL : integer; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RESET_SEQUENCE_INTERVAL : integer; + attribute C_RESET_SEQUENCE_INTERVAL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_BUFFBYPASS_MODE : integer; + attribute C_RX_BUFFBYPASS_MODE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_BUFFER_MODE : integer; + attribute C_RX_BUFFER_MODE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_CB_DISP : string; + attribute C_RX_CB_DISP of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CB_K : string; + attribute C_RX_CB_K of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CB_LEN_SEQ : integer; + attribute C_RX_CB_LEN_SEQ of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_CB_MAX_LEVEL : integer; + attribute C_RX_CB_MAX_LEVEL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 2; + attribute C_RX_CB_NUM_SEQ : integer; + attribute C_RX_CB_NUM_SEQ of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_CB_VAL : string; + attribute C_RX_CB_VAL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_CC_DISP : string; + attribute C_RX_CC_DISP of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CC_ENABLE : integer; + attribute C_RX_CC_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_CC_K : string; + attribute C_RX_CC_K of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "8'b00000000"; + attribute C_RX_CC_LEN_SEQ : integer; + attribute C_RX_CC_LEN_SEQ of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_CC_NUM_SEQ : integer; + attribute C_RX_CC_NUM_SEQ of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_CC_PERIODICITY : integer; + attribute C_RX_CC_PERIODICITY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 5000; + attribute C_RX_CC_VAL : string; + attribute C_RX_CC_VAL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_COMMA_M_ENABLE : integer; + attribute C_RX_COMMA_M_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_COMMA_M_VAL : string; + attribute C_RX_COMMA_M_VAL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "10'b1010000011"; + attribute C_RX_COMMA_P_ENABLE : integer; + attribute C_RX_COMMA_P_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_COMMA_P_VAL : string; + attribute C_RX_COMMA_P_VAL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "10'b0101111100"; + attribute C_RX_DATA_DECODING : integer; + attribute C_RX_DATA_DECODING of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_ENABLE : integer; + attribute C_RX_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_INT_DATA_WIDTH : integer; + attribute C_RX_INT_DATA_WIDTH of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 16; + attribute C_RX_LINE_RATE : string; + attribute C_RX_LINE_RATE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "5.120000"; + attribute C_RX_MASTER_CHANNEL_IDX : integer; + attribute C_RX_MASTER_CHANNEL_IDX of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 8; + attribute C_RX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_RX_OUTCLK_BUFG_GT_DIV of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_OUTCLK_FREQUENCY : string; + attribute C_RX_OUTCLK_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_RX_OUTCLK_SOURCE : integer; + attribute C_RX_OUTCLK_SOURCE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_PLL_TYPE : integer; + attribute C_RX_PLL_TYPE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 2; + attribute C_RX_RECCLK_OUTPUT : string; + attribute C_RX_RECCLK_OUTPUT of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_REFCLK_FREQUENCY : string; + attribute C_RX_REFCLK_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_RX_SLIDE_MODE : integer; + attribute C_RX_SLIDE_MODE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_USER_CLOCKING_CONTENTS : integer; + attribute C_RX_USER_CLOCKING_CONTENTS of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_RX_USER_CLOCKING_SOURCE : integer; + attribute C_RX_USER_CLOCKING_SOURCE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_RX_USER_DATA_WIDTH : integer; + attribute C_RX_USER_DATA_WIDTH of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 16; + attribute C_RX_USRCLK2_FREQUENCY : string; + attribute C_RX_USRCLK2_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_RX_USRCLK_FREQUENCY : string; + attribute C_RX_USRCLK_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_SECONDARY_QPLL_ENABLE : integer; + attribute C_SECONDARY_QPLL_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY : string; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "257.812500"; + attribute C_SIM_CPLL_CAL_BYPASS : integer; + attribute C_SIM_CPLL_CAL_BYPASS of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TOTAL_NUM_CHANNELS : integer; + attribute C_TOTAL_NUM_CHANNELS of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 4; + attribute C_TOTAL_NUM_COMMONS : integer; + attribute C_TOTAL_NUM_COMMONS of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE : integer; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TXPROGDIV_FREQ_ENABLE : integer; + attribute C_TXPROGDIV_FREQ_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TXPROGDIV_FREQ_SOURCE : integer; + attribute C_TXPROGDIV_FREQ_SOURCE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TXPROGDIV_FREQ_VAL : string; + attribute C_TXPROGDIV_FREQ_VAL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_TX_BUFFBYPASS_MODE : integer; + attribute C_TX_BUFFBYPASS_MODE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TX_BUFFER_MODE : integer; + attribute C_TX_BUFFER_MODE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TX_DATA_ENCODING : integer; + attribute C_TX_DATA_ENCODING of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TX_ENABLE : integer; + attribute C_TX_ENABLE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TX_INT_DATA_WIDTH : integer; + attribute C_TX_INT_DATA_WIDTH of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 32; + attribute C_TX_LINE_RATE : string; + attribute C_TX_LINE_RATE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "10.240000"; + attribute C_TX_MASTER_CHANNEL_IDX : integer; + attribute C_TX_MASTER_CHANNEL_IDX of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 8; + attribute C_TX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_TX_OUTCLK_BUFG_GT_DIV of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TX_OUTCLK_FREQUENCY : string; + attribute C_TX_OUTCLK_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_TX_OUTCLK_SOURCE : integer; + attribute C_TX_OUTCLK_SOURCE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 4; + attribute C_TX_PLL_TYPE : integer; + attribute C_TX_PLL_TYPE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TX_REFCLK_FREQUENCY : string; + attribute C_TX_REFCLK_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "240.000000"; + attribute C_TX_USER_CLOCKING_CONTENTS : integer; + attribute C_TX_USER_CLOCKING_CONTENTS of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 1; + attribute C_TX_USER_CLOCKING_SOURCE : integer; + attribute C_TX_USER_CLOCKING_SOURCE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; + attribute C_TX_USER_DATA_WIDTH : integer; + attribute C_TX_USER_DATA_WIDTH of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 32; + attribute C_TX_USRCLK2_FREQUENCY : string; + attribute C_TX_USRCLK2_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_TX_USRCLK_FREQUENCY : string; + attribute C_TX_USRCLK_FREQUENCY of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is "320.000000"; + attribute C_USER_GTPOWERGOOD_DELAY_EN : integer; + attribute C_USER_GTPOWERGOOD_DELAY_EN of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top : entity is 0; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top is + signal \<const0>\ : STD_LOGIC; +begin + bufgtce_out(11) <= \<const0>\; + bufgtce_out(10) <= \<const0>\; + bufgtce_out(9) <= \<const0>\; + bufgtce_out(8) <= \<const0>\; + bufgtce_out(7) <= \<const0>\; + bufgtce_out(6) <= \<const0>\; + bufgtce_out(5) <= \<const0>\; + bufgtce_out(4) <= \<const0>\; + bufgtce_out(3) <= \<const0>\; + bufgtce_out(2) <= \<const0>\; + bufgtce_out(1) <= \<const0>\; + bufgtce_out(0) <= \<const0>\; + bufgtcemask_out(11) <= \<const0>\; + bufgtcemask_out(10) <= \<const0>\; + bufgtcemask_out(9) <= \<const0>\; + bufgtcemask_out(8) <= \<const0>\; + bufgtcemask_out(7) <= \<const0>\; + bufgtcemask_out(6) <= \<const0>\; + bufgtcemask_out(5) <= \<const0>\; + bufgtcemask_out(4) <= \<const0>\; + bufgtcemask_out(3) <= \<const0>\; + bufgtcemask_out(2) <= \<const0>\; + bufgtcemask_out(1) <= \<const0>\; + bufgtcemask_out(0) <= \<const0>\; + bufgtdiv_out(35) <= \<const0>\; + bufgtdiv_out(34) <= \<const0>\; + bufgtdiv_out(33) <= \<const0>\; + bufgtdiv_out(32) <= \<const0>\; + bufgtdiv_out(31) <= \<const0>\; + bufgtdiv_out(30) <= \<const0>\; + bufgtdiv_out(29) <= \<const0>\; + bufgtdiv_out(28) <= \<const0>\; + bufgtdiv_out(27) <= \<const0>\; + bufgtdiv_out(26) <= \<const0>\; + bufgtdiv_out(25) <= \<const0>\; + bufgtdiv_out(24) <= \<const0>\; + bufgtdiv_out(23) <= \<const0>\; + bufgtdiv_out(22) <= \<const0>\; + bufgtdiv_out(21) <= \<const0>\; + bufgtdiv_out(20) <= \<const0>\; + bufgtdiv_out(19) <= \<const0>\; + bufgtdiv_out(18) <= \<const0>\; + bufgtdiv_out(17) <= \<const0>\; + bufgtdiv_out(16) <= \<const0>\; + bufgtdiv_out(15) <= \<const0>\; + bufgtdiv_out(14) <= \<const0>\; + bufgtdiv_out(13) <= \<const0>\; + bufgtdiv_out(12) <= \<const0>\; + bufgtdiv_out(11) <= \<const0>\; + bufgtdiv_out(10) <= \<const0>\; + bufgtdiv_out(9) <= \<const0>\; + bufgtdiv_out(8) <= \<const0>\; + bufgtdiv_out(7) <= \<const0>\; + bufgtdiv_out(6) <= \<const0>\; + bufgtdiv_out(5) <= \<const0>\; + bufgtdiv_out(4) <= \<const0>\; + bufgtdiv_out(3) <= \<const0>\; + bufgtdiv_out(2) <= \<const0>\; + bufgtdiv_out(1) <= \<const0>\; + bufgtdiv_out(0) <= \<const0>\; + bufgtreset_out(11) <= \<const0>\; + bufgtreset_out(10) <= \<const0>\; + bufgtreset_out(9) <= \<const0>\; + bufgtreset_out(8) <= \<const0>\; + bufgtreset_out(7) <= \<const0>\; + bufgtreset_out(6) <= \<const0>\; + bufgtreset_out(5) <= \<const0>\; + bufgtreset_out(4) <= \<const0>\; + bufgtreset_out(3) <= \<const0>\; + bufgtreset_out(2) <= \<const0>\; + bufgtreset_out(1) <= \<const0>\; + bufgtreset_out(0) <= \<const0>\; + bufgtrstmask_out(11) <= \<const0>\; + bufgtrstmask_out(10) <= \<const0>\; + bufgtrstmask_out(9) <= \<const0>\; + bufgtrstmask_out(8) <= \<const0>\; + bufgtrstmask_out(7) <= \<const0>\; + bufgtrstmask_out(6) <= \<const0>\; + bufgtrstmask_out(5) <= \<const0>\; + bufgtrstmask_out(4) <= \<const0>\; + bufgtrstmask_out(3) <= \<const0>\; + bufgtrstmask_out(2) <= \<const0>\; + bufgtrstmask_out(1) <= \<const0>\; + bufgtrstmask_out(0) <= \<const0>\; + cpllfbclklost_out(3) <= \<const0>\; + cpllfbclklost_out(2) <= \<const0>\; + cpllfbclklost_out(1) <= \<const0>\; + cpllfbclklost_out(0) <= \<const0>\; + cpllrefclklost_out(3) <= \<const0>\; + cpllrefclklost_out(2) <= \<const0>\; + cpllrefclklost_out(1) <= \<const0>\; + cpllrefclklost_out(0) <= \<const0>\; + dmonitorout_out(67) <= \<const0>\; + dmonitorout_out(66) <= \<const0>\; + dmonitorout_out(65) <= \<const0>\; + dmonitorout_out(64) <= \<const0>\; + dmonitorout_out(63) <= \<const0>\; + dmonitorout_out(62) <= \<const0>\; + dmonitorout_out(61) <= \<const0>\; + dmonitorout_out(60) <= \<const0>\; + dmonitorout_out(59) <= \<const0>\; + dmonitorout_out(58) <= \<const0>\; + dmonitorout_out(57) <= \<const0>\; + dmonitorout_out(56) <= \<const0>\; + dmonitorout_out(55) <= \<const0>\; + dmonitorout_out(54) <= \<const0>\; + dmonitorout_out(53) <= \<const0>\; + dmonitorout_out(52) <= \<const0>\; + dmonitorout_out(51) <= \<const0>\; + dmonitorout_out(50) <= \<const0>\; + dmonitorout_out(49) <= \<const0>\; + dmonitorout_out(48) <= \<const0>\; + dmonitorout_out(47) <= \<const0>\; + dmonitorout_out(46) <= \<const0>\; + dmonitorout_out(45) <= \<const0>\; + dmonitorout_out(44) <= \<const0>\; + dmonitorout_out(43) <= \<const0>\; + dmonitorout_out(42) <= \<const0>\; + dmonitorout_out(41) <= \<const0>\; + dmonitorout_out(40) <= \<const0>\; + dmonitorout_out(39) <= \<const0>\; + dmonitorout_out(38) <= \<const0>\; + dmonitorout_out(37) <= \<const0>\; + dmonitorout_out(36) <= \<const0>\; + dmonitorout_out(35) <= \<const0>\; + dmonitorout_out(34) <= \<const0>\; + dmonitorout_out(33) <= \<const0>\; + dmonitorout_out(32) <= \<const0>\; + dmonitorout_out(31) <= \<const0>\; + dmonitorout_out(30) <= \<const0>\; + dmonitorout_out(29) <= \<const0>\; + dmonitorout_out(28) <= \<const0>\; + dmonitorout_out(27) <= \<const0>\; + dmonitorout_out(26) <= \<const0>\; + dmonitorout_out(25) <= \<const0>\; + dmonitorout_out(24) <= \<const0>\; + dmonitorout_out(23) <= \<const0>\; + dmonitorout_out(22) <= \<const0>\; + dmonitorout_out(21) <= \<const0>\; + dmonitorout_out(20) <= \<const0>\; + dmonitorout_out(19) <= \<const0>\; + dmonitorout_out(18) <= \<const0>\; + dmonitorout_out(17) <= \<const0>\; + dmonitorout_out(16) <= \<const0>\; + dmonitorout_out(15) <= \<const0>\; + dmonitorout_out(14) <= \<const0>\; + dmonitorout_out(13) <= \<const0>\; + dmonitorout_out(12) <= \<const0>\; + dmonitorout_out(11) <= \<const0>\; + dmonitorout_out(10) <= \<const0>\; + dmonitorout_out(9) <= \<const0>\; + dmonitorout_out(8) <= \<const0>\; + dmonitorout_out(7) <= \<const0>\; + dmonitorout_out(6) <= \<const0>\; + dmonitorout_out(5) <= \<const0>\; + dmonitorout_out(4) <= \<const0>\; + dmonitorout_out(3) <= \<const0>\; + dmonitorout_out(2) <= \<const0>\; + dmonitorout_out(1) <= \<const0>\; + dmonitorout_out(0) <= \<const0>\; + dmonitoroutclk_out(0) <= \<const0>\; + drpdo_common_out(15) <= \<const0>\; + drpdo_common_out(14) <= \<const0>\; + drpdo_common_out(13) <= \<const0>\; + drpdo_common_out(12) <= \<const0>\; + drpdo_common_out(11) <= \<const0>\; + drpdo_common_out(10) <= \<const0>\; + drpdo_common_out(9) <= \<const0>\; + drpdo_common_out(8) <= \<const0>\; + drpdo_common_out(7) <= \<const0>\; + drpdo_common_out(6) <= \<const0>\; + drpdo_common_out(5) <= \<const0>\; + drpdo_common_out(4) <= \<const0>\; + drpdo_common_out(3) <= \<const0>\; + drpdo_common_out(2) <= \<const0>\; + drpdo_common_out(1) <= \<const0>\; + drpdo_common_out(0) <= \<const0>\; + drpdo_out(63) <= \<const0>\; + drpdo_out(62) <= \<const0>\; + drpdo_out(61) <= \<const0>\; + drpdo_out(60) <= \<const0>\; + drpdo_out(59) <= \<const0>\; + drpdo_out(58) <= \<const0>\; + drpdo_out(57) <= \<const0>\; + drpdo_out(56) <= \<const0>\; + drpdo_out(55) <= \<const0>\; + drpdo_out(54) <= \<const0>\; + drpdo_out(53) <= \<const0>\; + drpdo_out(52) <= \<const0>\; + drpdo_out(51) <= \<const0>\; + drpdo_out(50) <= \<const0>\; + drpdo_out(49) <= \<const0>\; + drpdo_out(48) <= \<const0>\; + drpdo_out(47) <= \<const0>\; + drpdo_out(46) <= \<const0>\; + drpdo_out(45) <= \<const0>\; + drpdo_out(44) <= \<const0>\; + drpdo_out(43) <= \<const0>\; + drpdo_out(42) <= \<const0>\; + drpdo_out(41) <= \<const0>\; + drpdo_out(40) <= \<const0>\; + drpdo_out(39) <= \<const0>\; + drpdo_out(38) <= \<const0>\; + drpdo_out(37) <= \<const0>\; + drpdo_out(36) <= \<const0>\; + drpdo_out(35) <= \<const0>\; + drpdo_out(34) <= \<const0>\; + drpdo_out(33) <= \<const0>\; + drpdo_out(32) <= \<const0>\; + drpdo_out(31) <= \<const0>\; + drpdo_out(30) <= \<const0>\; + drpdo_out(29) <= \<const0>\; + drpdo_out(28) <= \<const0>\; + drpdo_out(27) <= \<const0>\; + drpdo_out(26) <= \<const0>\; + drpdo_out(25) <= \<const0>\; + drpdo_out(24) <= \<const0>\; + drpdo_out(23) <= \<const0>\; + drpdo_out(22) <= \<const0>\; + drpdo_out(21) <= \<const0>\; + drpdo_out(20) <= \<const0>\; + drpdo_out(19) <= \<const0>\; + drpdo_out(18) <= \<const0>\; + drpdo_out(17) <= \<const0>\; + drpdo_out(16) <= \<const0>\; + drpdo_out(15) <= \<const0>\; + drpdo_out(14) <= \<const0>\; + drpdo_out(13) <= \<const0>\; + drpdo_out(12) <= \<const0>\; + drpdo_out(11) <= \<const0>\; + drpdo_out(10) <= \<const0>\; + drpdo_out(9) <= \<const0>\; + drpdo_out(8) <= \<const0>\; + drpdo_out(7) <= \<const0>\; + drpdo_out(6) <= \<const0>\; + drpdo_out(5) <= \<const0>\; + drpdo_out(4) <= \<const0>\; + drpdo_out(3) <= \<const0>\; + drpdo_out(2) <= \<const0>\; + drpdo_out(1) <= \<const0>\; + drpdo_out(0) <= \<const0>\; + drprdy_common_out(0) <= \<const0>\; + drprdy_out(3) <= \<const0>\; + drprdy_out(2) <= \<const0>\; + drprdy_out(1) <= \<const0>\; + drprdy_out(0) <= \<const0>\; + eyescandataerror_out(3) <= \<const0>\; + eyescandataerror_out(2) <= \<const0>\; + eyescandataerror_out(1) <= \<const0>\; + eyescandataerror_out(0) <= \<const0>\; + gtrefclkmonitor_out(3) <= \<const0>\; + gtrefclkmonitor_out(2) <= \<const0>\; + gtrefclkmonitor_out(1) <= \<const0>\; + gtrefclkmonitor_out(0) <= \<const0>\; + gtwiz_buffbypass_rx_done_out(0) <= \<const0>\; + gtwiz_buffbypass_rx_error_out(0) <= \<const0>\; + gtwiz_reset_qpll0reset_out(0) <= \<const0>\; + gtwiz_reset_qpll1reset_out(0) <= \<const0>\; + gtwiz_userclk_rx_active_out(0) <= \<const0>\; + gtwiz_userclk_rx_srcclk_out(0) <= \<const0>\; + gtwiz_userclk_rx_usrclk2_out(0) <= \<const0>\; + gtwiz_userclk_rx_usrclk_out(0) <= \<const0>\; + gtwiz_userclk_tx_active_out(0) <= \<const0>\; + gtwiz_userclk_tx_srcclk_out(0) <= \<const0>\; + gtwiz_userclk_tx_usrclk2_out(0) <= \<const0>\; + gtwiz_userclk_tx_usrclk_out(0) <= \<const0>\; + gtytxn_out(0) <= \<const0>\; + gtytxp_out(0) <= \<const0>\; + pcierategen3_out(3) <= \<const0>\; + pcierategen3_out(2) <= \<const0>\; + pcierategen3_out(1) <= \<const0>\; + pcierategen3_out(0) <= \<const0>\; + pcierateidle_out(3) <= \<const0>\; + pcierateidle_out(2) <= \<const0>\; + pcierateidle_out(1) <= \<const0>\; + pcierateidle_out(0) <= \<const0>\; + pcierateqpllpd_out(7) <= \<const0>\; + pcierateqpllpd_out(6) <= \<const0>\; + pcierateqpllpd_out(5) <= \<const0>\; + pcierateqpllpd_out(4) <= \<const0>\; + pcierateqpllpd_out(3) <= \<const0>\; + pcierateqpllpd_out(2) <= \<const0>\; + pcierateqpllpd_out(1) <= \<const0>\; + pcierateqpllpd_out(0) <= \<const0>\; + pcierateqpllreset_out(7) <= \<const0>\; + pcierateqpllreset_out(6) <= \<const0>\; + pcierateqpllreset_out(5) <= \<const0>\; + pcierateqpllreset_out(4) <= \<const0>\; + pcierateqpllreset_out(3) <= \<const0>\; + pcierateqpllreset_out(2) <= \<const0>\; + pcierateqpllreset_out(1) <= \<const0>\; + pcierateqpllreset_out(0) <= \<const0>\; + pciesynctxsyncdone_out(3) <= \<const0>\; + pciesynctxsyncdone_out(2) <= \<const0>\; + pciesynctxsyncdone_out(1) <= \<const0>\; + pciesynctxsyncdone_out(0) <= \<const0>\; + pcieusergen3rdy_out(3) <= \<const0>\; + pcieusergen3rdy_out(2) <= \<const0>\; + pcieusergen3rdy_out(1) <= \<const0>\; + pcieusergen3rdy_out(0) <= \<const0>\; + pcieuserphystatusrst_out(3) <= \<const0>\; + pcieuserphystatusrst_out(2) <= \<const0>\; + pcieuserphystatusrst_out(1) <= \<const0>\; + pcieuserphystatusrst_out(0) <= \<const0>\; + pcieuserratestart_out(3) <= \<const0>\; + pcieuserratestart_out(2) <= \<const0>\; + pcieuserratestart_out(1) <= \<const0>\; + pcieuserratestart_out(0) <= \<const0>\; + pcsrsvdout_out(47) <= \<const0>\; + pcsrsvdout_out(46) <= \<const0>\; + pcsrsvdout_out(45) <= \<const0>\; + pcsrsvdout_out(44) <= \<const0>\; + pcsrsvdout_out(43) <= \<const0>\; + pcsrsvdout_out(42) <= \<const0>\; + pcsrsvdout_out(41) <= \<const0>\; + pcsrsvdout_out(40) <= \<const0>\; + pcsrsvdout_out(39) <= \<const0>\; + pcsrsvdout_out(38) <= \<const0>\; + pcsrsvdout_out(37) <= \<const0>\; + pcsrsvdout_out(36) <= \<const0>\; + pcsrsvdout_out(35) <= \<const0>\; + pcsrsvdout_out(34) <= \<const0>\; + pcsrsvdout_out(33) <= \<const0>\; + pcsrsvdout_out(32) <= \<const0>\; + pcsrsvdout_out(31) <= \<const0>\; + pcsrsvdout_out(30) <= \<const0>\; + pcsrsvdout_out(29) <= \<const0>\; + pcsrsvdout_out(28) <= \<const0>\; + pcsrsvdout_out(27) <= \<const0>\; + pcsrsvdout_out(26) <= \<const0>\; + pcsrsvdout_out(25) <= \<const0>\; + pcsrsvdout_out(24) <= \<const0>\; + pcsrsvdout_out(23) <= \<const0>\; + pcsrsvdout_out(22) <= \<const0>\; + pcsrsvdout_out(21) <= \<const0>\; + pcsrsvdout_out(20) <= \<const0>\; + pcsrsvdout_out(19) <= \<const0>\; + pcsrsvdout_out(18) <= \<const0>\; + pcsrsvdout_out(17) <= \<const0>\; + pcsrsvdout_out(16) <= \<const0>\; + pcsrsvdout_out(15) <= \<const0>\; + pcsrsvdout_out(14) <= \<const0>\; + pcsrsvdout_out(13) <= \<const0>\; + pcsrsvdout_out(12) <= \<const0>\; + pcsrsvdout_out(11) <= \<const0>\; + pcsrsvdout_out(10) <= \<const0>\; + pcsrsvdout_out(9) <= \<const0>\; + pcsrsvdout_out(8) <= \<const0>\; + pcsrsvdout_out(7) <= \<const0>\; + pcsrsvdout_out(6) <= \<const0>\; + pcsrsvdout_out(5) <= \<const0>\; + pcsrsvdout_out(4) <= \<const0>\; + pcsrsvdout_out(3) <= \<const0>\; + pcsrsvdout_out(2) <= \<const0>\; + pcsrsvdout_out(1) <= \<const0>\; + pcsrsvdout_out(0) <= \<const0>\; + phystatus_out(3) <= \<const0>\; + phystatus_out(2) <= \<const0>\; + phystatus_out(1) <= \<const0>\; + phystatus_out(0) <= \<const0>\; + pinrsrvdas_out(31) <= \<const0>\; + pinrsrvdas_out(30) <= \<const0>\; + pinrsrvdas_out(29) <= \<const0>\; + pinrsrvdas_out(28) <= \<const0>\; + pinrsrvdas_out(27) <= \<const0>\; + pinrsrvdas_out(26) <= \<const0>\; + pinrsrvdas_out(25) <= \<const0>\; + pinrsrvdas_out(24) <= \<const0>\; + pinrsrvdas_out(23) <= \<const0>\; + pinrsrvdas_out(22) <= \<const0>\; + pinrsrvdas_out(21) <= \<const0>\; + pinrsrvdas_out(20) <= \<const0>\; + pinrsrvdas_out(19) <= \<const0>\; + pinrsrvdas_out(18) <= \<const0>\; + pinrsrvdas_out(17) <= \<const0>\; + pinrsrvdas_out(16) <= \<const0>\; + pinrsrvdas_out(15) <= \<const0>\; + pinrsrvdas_out(14) <= \<const0>\; + pinrsrvdas_out(13) <= \<const0>\; + pinrsrvdas_out(12) <= \<const0>\; + pinrsrvdas_out(11) <= \<const0>\; + pinrsrvdas_out(10) <= \<const0>\; + pinrsrvdas_out(9) <= \<const0>\; + pinrsrvdas_out(8) <= \<const0>\; + pinrsrvdas_out(7) <= \<const0>\; + pinrsrvdas_out(6) <= \<const0>\; + pinrsrvdas_out(5) <= \<const0>\; + pinrsrvdas_out(4) <= \<const0>\; + pinrsrvdas_out(3) <= \<const0>\; + pinrsrvdas_out(2) <= \<const0>\; + pinrsrvdas_out(1) <= \<const0>\; + pinrsrvdas_out(0) <= \<const0>\; + pmarsvdout0_out(7) <= \<const0>\; + pmarsvdout0_out(6) <= \<const0>\; + pmarsvdout0_out(5) <= \<const0>\; + pmarsvdout0_out(4) <= \<const0>\; + pmarsvdout0_out(3) <= \<const0>\; + pmarsvdout0_out(2) <= \<const0>\; + pmarsvdout0_out(1) <= \<const0>\; + pmarsvdout0_out(0) <= \<const0>\; + pmarsvdout1_out(7) <= \<const0>\; + pmarsvdout1_out(6) <= \<const0>\; + pmarsvdout1_out(5) <= \<const0>\; + pmarsvdout1_out(4) <= \<const0>\; + pmarsvdout1_out(3) <= \<const0>\; + pmarsvdout1_out(2) <= \<const0>\; + pmarsvdout1_out(1) <= \<const0>\; + pmarsvdout1_out(0) <= \<const0>\; + powerpresent_out(0) <= \<const0>\; + qpll0outclk_out(0) <= \<const0>\; + qpll0outrefclk_out(0) <= \<const0>\; + qpll0refclklost_out(0) <= \<const0>\; + qpll1refclklost_out(0) <= \<const0>\; + qplldmonitor0_out(7) <= \<const0>\; + qplldmonitor0_out(6) <= \<const0>\; + qplldmonitor0_out(5) <= \<const0>\; + qplldmonitor0_out(4) <= \<const0>\; + qplldmonitor0_out(3) <= \<const0>\; + qplldmonitor0_out(2) <= \<const0>\; + qplldmonitor0_out(1) <= \<const0>\; + qplldmonitor0_out(0) <= \<const0>\; + qplldmonitor1_out(7) <= \<const0>\; + qplldmonitor1_out(6) <= \<const0>\; + qplldmonitor1_out(5) <= \<const0>\; + qplldmonitor1_out(4) <= \<const0>\; + qplldmonitor1_out(3) <= \<const0>\; + qplldmonitor1_out(2) <= \<const0>\; + qplldmonitor1_out(1) <= \<const0>\; + qplldmonitor1_out(0) <= \<const0>\; + refclkoutmonitor0_out(0) <= \<const0>\; + refclkoutmonitor1_out(0) <= \<const0>\; + resetexception_out(3) <= \<const0>\; + resetexception_out(2) <= \<const0>\; + resetexception_out(1) <= \<const0>\; + resetexception_out(0) <= \<const0>\; + rxbufstatus_out(11) <= \<const0>\; + rxbufstatus_out(10) <= \<const0>\; + rxbufstatus_out(9) <= \<const0>\; + rxbufstatus_out(8) <= \<const0>\; + rxbufstatus_out(7) <= \<const0>\; + rxbufstatus_out(6) <= \<const0>\; + rxbufstatus_out(5) <= \<const0>\; + rxbufstatus_out(4) <= \<const0>\; + rxbufstatus_out(3) <= \<const0>\; + rxbufstatus_out(2) <= \<const0>\; + rxbufstatus_out(1) <= \<const0>\; + rxbufstatus_out(0) <= \<const0>\; + rxbyteisaligned_out(3) <= \<const0>\; + rxbyteisaligned_out(2) <= \<const0>\; + rxbyteisaligned_out(1) <= \<const0>\; + rxbyteisaligned_out(0) <= \<const0>\; + rxbyterealign_out(3) <= \<const0>\; + rxbyterealign_out(2) <= \<const0>\; + rxbyterealign_out(1) <= \<const0>\; + rxbyterealign_out(0) <= \<const0>\; + rxcdrphdone_out(3) <= \<const0>\; + rxcdrphdone_out(2) <= \<const0>\; + rxcdrphdone_out(1) <= \<const0>\; + rxcdrphdone_out(0) <= \<const0>\; + rxchanbondseq_out(3) <= \<const0>\; + rxchanbondseq_out(2) <= \<const0>\; + rxchanbondseq_out(1) <= \<const0>\; + rxchanbondseq_out(0) <= \<const0>\; + rxchanisaligned_out(3) <= \<const0>\; + rxchanisaligned_out(2) <= \<const0>\; + rxchanisaligned_out(1) <= \<const0>\; + rxchanisaligned_out(0) <= \<const0>\; + rxchanrealign_out(3) <= \<const0>\; + rxchanrealign_out(2) <= \<const0>\; + rxchanrealign_out(1) <= \<const0>\; + rxchanrealign_out(0) <= \<const0>\; + rxchbondo_out(19) <= \<const0>\; + rxchbondo_out(18) <= \<const0>\; + rxchbondo_out(17) <= \<const0>\; + rxchbondo_out(16) <= \<const0>\; + rxchbondo_out(15) <= \<const0>\; + rxchbondo_out(14) <= \<const0>\; + rxchbondo_out(13) <= \<const0>\; + rxchbondo_out(12) <= \<const0>\; + rxchbondo_out(11) <= \<const0>\; + rxchbondo_out(10) <= \<const0>\; + rxchbondo_out(9) <= \<const0>\; + rxchbondo_out(8) <= \<const0>\; + rxchbondo_out(7) <= \<const0>\; + rxchbondo_out(6) <= \<const0>\; + rxchbondo_out(5) <= \<const0>\; + rxchbondo_out(4) <= \<const0>\; + rxchbondo_out(3) <= \<const0>\; + rxchbondo_out(2) <= \<const0>\; + rxchbondo_out(1) <= \<const0>\; + rxchbondo_out(0) <= \<const0>\; + rxckcaldone_out(0) <= \<const0>\; + rxclkcorcnt_out(7) <= \<const0>\; + rxclkcorcnt_out(6) <= \<const0>\; + rxclkcorcnt_out(5) <= \<const0>\; + rxclkcorcnt_out(4) <= \<const0>\; + rxclkcorcnt_out(3) <= \<const0>\; + rxclkcorcnt_out(2) <= \<const0>\; + rxclkcorcnt_out(1) <= \<const0>\; + rxclkcorcnt_out(0) <= \<const0>\; + rxcominitdet_out(3) <= \<const0>\; + rxcominitdet_out(2) <= \<const0>\; + rxcominitdet_out(1) <= \<const0>\; + rxcominitdet_out(0) <= \<const0>\; + rxcommadet_out(3) <= \<const0>\; + rxcommadet_out(2) <= \<const0>\; + rxcommadet_out(1) <= \<const0>\; + rxcommadet_out(0) <= \<const0>\; + rxcomsasdet_out(3) <= \<const0>\; + rxcomsasdet_out(2) <= \<const0>\; + rxcomsasdet_out(1) <= \<const0>\; + rxcomsasdet_out(0) <= \<const0>\; + rxcomwakedet_out(3) <= \<const0>\; + rxcomwakedet_out(2) <= \<const0>\; + rxcomwakedet_out(1) <= \<const0>\; + rxcomwakedet_out(0) <= \<const0>\; + rxctrl0_out(63) <= \<const0>\; + rxctrl0_out(62) <= \<const0>\; + rxctrl0_out(61) <= \<const0>\; + rxctrl0_out(60) <= \<const0>\; + rxctrl0_out(59) <= \<const0>\; + rxctrl0_out(58) <= \<const0>\; + rxctrl0_out(57) <= \<const0>\; + rxctrl0_out(56) <= \<const0>\; + rxctrl0_out(55) <= \<const0>\; + rxctrl0_out(54) <= \<const0>\; + rxctrl0_out(53) <= \<const0>\; + rxctrl0_out(52) <= \<const0>\; + rxctrl0_out(51) <= \<const0>\; + rxctrl0_out(50) <= \<const0>\; + rxctrl0_out(49) <= \<const0>\; + rxctrl0_out(48) <= \<const0>\; + rxctrl0_out(47) <= \<const0>\; + rxctrl0_out(46) <= \<const0>\; + rxctrl0_out(45) <= \<const0>\; + rxctrl0_out(44) <= \<const0>\; + rxctrl0_out(43) <= \<const0>\; + rxctrl0_out(42) <= \<const0>\; + rxctrl0_out(41) <= \<const0>\; + rxctrl0_out(40) <= \<const0>\; + rxctrl0_out(39) <= \<const0>\; + rxctrl0_out(38) <= \<const0>\; + rxctrl0_out(37) <= \<const0>\; + rxctrl0_out(36) <= \<const0>\; + rxctrl0_out(35) <= \<const0>\; + rxctrl0_out(34) <= \<const0>\; + rxctrl0_out(33) <= \<const0>\; + rxctrl0_out(32) <= \<const0>\; + rxctrl0_out(31) <= \<const0>\; + rxctrl0_out(30) <= \<const0>\; + rxctrl0_out(29) <= \<const0>\; + rxctrl0_out(28) <= \<const0>\; + rxctrl0_out(27) <= \<const0>\; + rxctrl0_out(26) <= \<const0>\; + rxctrl0_out(25) <= \<const0>\; + rxctrl0_out(24) <= \<const0>\; + rxctrl0_out(23) <= \<const0>\; + rxctrl0_out(22) <= \<const0>\; + rxctrl0_out(21) <= \<const0>\; + rxctrl0_out(20) <= \<const0>\; + rxctrl0_out(19) <= \<const0>\; + rxctrl0_out(18) <= \<const0>\; + rxctrl0_out(17) <= \<const0>\; + rxctrl0_out(16) <= \<const0>\; + rxctrl0_out(15) <= \<const0>\; + rxctrl0_out(14) <= \<const0>\; + rxctrl0_out(13) <= \<const0>\; + rxctrl0_out(12) <= \<const0>\; + rxctrl0_out(11) <= \<const0>\; + rxctrl0_out(10) <= \<const0>\; + rxctrl0_out(9) <= \<const0>\; + rxctrl0_out(8) <= \<const0>\; + rxctrl0_out(7) <= \<const0>\; + rxctrl0_out(6) <= \<const0>\; + rxctrl0_out(5) <= \<const0>\; + rxctrl0_out(4) <= \<const0>\; + rxctrl0_out(3) <= \<const0>\; + rxctrl0_out(2) <= \<const0>\; + rxctrl0_out(1) <= \<const0>\; + rxctrl0_out(0) <= \<const0>\; + rxctrl1_out(63) <= \<const0>\; + rxctrl1_out(62) <= \<const0>\; + rxctrl1_out(61) <= \<const0>\; + rxctrl1_out(60) <= \<const0>\; + rxctrl1_out(59) <= \<const0>\; + rxctrl1_out(58) <= \<const0>\; + rxctrl1_out(57) <= \<const0>\; + rxctrl1_out(56) <= \<const0>\; + rxctrl1_out(55) <= \<const0>\; + rxctrl1_out(54) <= \<const0>\; + rxctrl1_out(53) <= \<const0>\; + rxctrl1_out(52) <= \<const0>\; + rxctrl1_out(51) <= \<const0>\; + rxctrl1_out(50) <= \<const0>\; + rxctrl1_out(49) <= \<const0>\; + rxctrl1_out(48) <= \<const0>\; + rxctrl1_out(47) <= \<const0>\; + rxctrl1_out(46) <= \<const0>\; + rxctrl1_out(45) <= \<const0>\; + rxctrl1_out(44) <= \<const0>\; + rxctrl1_out(43) <= \<const0>\; + rxctrl1_out(42) <= \<const0>\; + rxctrl1_out(41) <= \<const0>\; + rxctrl1_out(40) <= \<const0>\; + rxctrl1_out(39) <= \<const0>\; + rxctrl1_out(38) <= \<const0>\; + rxctrl1_out(37) <= \<const0>\; + rxctrl1_out(36) <= \<const0>\; + rxctrl1_out(35) <= \<const0>\; + rxctrl1_out(34) <= \<const0>\; + rxctrl1_out(33) <= \<const0>\; + rxctrl1_out(32) <= \<const0>\; + rxctrl1_out(31) <= \<const0>\; + rxctrl1_out(30) <= \<const0>\; + rxctrl1_out(29) <= \<const0>\; + rxctrl1_out(28) <= \<const0>\; + rxctrl1_out(27) <= \<const0>\; + rxctrl1_out(26) <= \<const0>\; + rxctrl1_out(25) <= \<const0>\; + rxctrl1_out(24) <= \<const0>\; + rxctrl1_out(23) <= \<const0>\; + rxctrl1_out(22) <= \<const0>\; + rxctrl1_out(21) <= \<const0>\; + rxctrl1_out(20) <= \<const0>\; + rxctrl1_out(19) <= \<const0>\; + rxctrl1_out(18) <= \<const0>\; + rxctrl1_out(17) <= \<const0>\; + rxctrl1_out(16) <= \<const0>\; + rxctrl1_out(15) <= \<const0>\; + rxctrl1_out(14) <= \<const0>\; + rxctrl1_out(13) <= \<const0>\; + rxctrl1_out(12) <= \<const0>\; + rxctrl1_out(11) <= \<const0>\; + rxctrl1_out(10) <= \<const0>\; + rxctrl1_out(9) <= \<const0>\; + rxctrl1_out(8) <= \<const0>\; + rxctrl1_out(7) <= \<const0>\; + rxctrl1_out(6) <= \<const0>\; + rxctrl1_out(5) <= \<const0>\; + rxctrl1_out(4) <= \<const0>\; + rxctrl1_out(3) <= \<const0>\; + rxctrl1_out(2) <= \<const0>\; + rxctrl1_out(1) <= \<const0>\; + rxctrl1_out(0) <= \<const0>\; + rxctrl2_out(31) <= \<const0>\; + rxctrl2_out(30) <= \<const0>\; + rxctrl2_out(29) <= \<const0>\; + rxctrl2_out(28) <= \<const0>\; + rxctrl2_out(27) <= \<const0>\; + rxctrl2_out(26) <= \<const0>\; + rxctrl2_out(25) <= \<const0>\; + rxctrl2_out(24) <= \<const0>\; + rxctrl2_out(23) <= \<const0>\; + rxctrl2_out(22) <= \<const0>\; + rxctrl2_out(21) <= \<const0>\; + rxctrl2_out(20) <= \<const0>\; + rxctrl2_out(19) <= \<const0>\; + rxctrl2_out(18) <= \<const0>\; + rxctrl2_out(17) <= \<const0>\; + rxctrl2_out(16) <= \<const0>\; + rxctrl2_out(15) <= \<const0>\; + rxctrl2_out(14) <= \<const0>\; + rxctrl2_out(13) <= \<const0>\; + rxctrl2_out(12) <= \<const0>\; + rxctrl2_out(11) <= \<const0>\; + rxctrl2_out(10) <= \<const0>\; + rxctrl2_out(9) <= \<const0>\; + rxctrl2_out(8) <= \<const0>\; + rxctrl2_out(7) <= \<const0>\; + rxctrl2_out(6) <= \<const0>\; + rxctrl2_out(5) <= \<const0>\; + rxctrl2_out(4) <= \<const0>\; + rxctrl2_out(3) <= \<const0>\; + rxctrl2_out(2) <= \<const0>\; + rxctrl2_out(1) <= \<const0>\; + rxctrl2_out(0) <= \<const0>\; + rxctrl3_out(31) <= \<const0>\; + rxctrl3_out(30) <= \<const0>\; + rxctrl3_out(29) <= \<const0>\; + rxctrl3_out(28) <= \<const0>\; + rxctrl3_out(27) <= \<const0>\; + rxctrl3_out(26) <= \<const0>\; + rxctrl3_out(25) <= \<const0>\; + rxctrl3_out(24) <= \<const0>\; + rxctrl3_out(23) <= \<const0>\; + rxctrl3_out(22) <= \<const0>\; + rxctrl3_out(21) <= \<const0>\; + rxctrl3_out(20) <= \<const0>\; + rxctrl3_out(19) <= \<const0>\; + rxctrl3_out(18) <= \<const0>\; + rxctrl3_out(17) <= \<const0>\; + rxctrl3_out(16) <= \<const0>\; + rxctrl3_out(15) <= \<const0>\; + rxctrl3_out(14) <= \<const0>\; + rxctrl3_out(13) <= \<const0>\; + rxctrl3_out(12) <= \<const0>\; + rxctrl3_out(11) <= \<const0>\; + rxctrl3_out(10) <= \<const0>\; + rxctrl3_out(9) <= \<const0>\; + rxctrl3_out(8) <= \<const0>\; + rxctrl3_out(7) <= \<const0>\; + rxctrl3_out(6) <= \<const0>\; + rxctrl3_out(5) <= \<const0>\; + rxctrl3_out(4) <= \<const0>\; + rxctrl3_out(3) <= \<const0>\; + rxctrl3_out(2) <= \<const0>\; + rxctrl3_out(1) <= \<const0>\; + rxctrl3_out(0) <= \<const0>\; + rxdata_out(511) <= \<const0>\; + rxdata_out(510) <= \<const0>\; + rxdata_out(509) <= \<const0>\; + rxdata_out(508) <= \<const0>\; + rxdata_out(507) <= \<const0>\; + rxdata_out(506) <= \<const0>\; + rxdata_out(505) <= \<const0>\; + rxdata_out(504) <= \<const0>\; + rxdata_out(503) <= \<const0>\; + rxdata_out(502) <= \<const0>\; + rxdata_out(501) <= \<const0>\; + rxdata_out(500) <= \<const0>\; + rxdata_out(499) <= \<const0>\; + rxdata_out(498) <= \<const0>\; + rxdata_out(497) <= \<const0>\; + rxdata_out(496) <= \<const0>\; + rxdata_out(495) <= \<const0>\; + rxdata_out(494) <= \<const0>\; + rxdata_out(493) <= \<const0>\; + rxdata_out(492) <= \<const0>\; + rxdata_out(491) <= \<const0>\; + rxdata_out(490) <= \<const0>\; + rxdata_out(489) <= \<const0>\; + rxdata_out(488) <= \<const0>\; + rxdata_out(487) <= \<const0>\; + rxdata_out(486) <= \<const0>\; + rxdata_out(485) <= \<const0>\; + rxdata_out(484) <= \<const0>\; + rxdata_out(483) <= \<const0>\; + rxdata_out(482) <= \<const0>\; + rxdata_out(481) <= \<const0>\; + rxdata_out(480) <= \<const0>\; + rxdata_out(479) <= \<const0>\; + rxdata_out(478) <= \<const0>\; + rxdata_out(477) <= \<const0>\; + rxdata_out(476) <= \<const0>\; + rxdata_out(475) <= \<const0>\; + rxdata_out(474) <= \<const0>\; + rxdata_out(473) <= \<const0>\; + rxdata_out(472) <= \<const0>\; + rxdata_out(471) <= \<const0>\; + rxdata_out(470) <= \<const0>\; + rxdata_out(469) <= \<const0>\; + rxdata_out(468) <= \<const0>\; + rxdata_out(467) <= \<const0>\; + rxdata_out(466) <= \<const0>\; + rxdata_out(465) <= \<const0>\; + rxdata_out(464) <= \<const0>\; + rxdata_out(463) <= \<const0>\; + rxdata_out(462) <= \<const0>\; + rxdata_out(461) <= \<const0>\; + rxdata_out(460) <= \<const0>\; + rxdata_out(459) <= \<const0>\; + rxdata_out(458) <= \<const0>\; + rxdata_out(457) <= \<const0>\; + rxdata_out(456) <= \<const0>\; + rxdata_out(455) <= \<const0>\; + rxdata_out(454) <= \<const0>\; + rxdata_out(453) <= \<const0>\; + rxdata_out(452) <= \<const0>\; + rxdata_out(451) <= \<const0>\; + rxdata_out(450) <= \<const0>\; + rxdata_out(449) <= \<const0>\; + rxdata_out(448) <= \<const0>\; + rxdata_out(447) <= \<const0>\; + rxdata_out(446) <= \<const0>\; + rxdata_out(445) <= \<const0>\; + rxdata_out(444) <= \<const0>\; + rxdata_out(443) <= \<const0>\; + rxdata_out(442) <= \<const0>\; + rxdata_out(441) <= \<const0>\; + rxdata_out(440) <= \<const0>\; + rxdata_out(439) <= \<const0>\; + rxdata_out(438) <= \<const0>\; + rxdata_out(437) <= \<const0>\; + rxdata_out(436) <= \<const0>\; + rxdata_out(435) <= \<const0>\; + rxdata_out(434) <= \<const0>\; + rxdata_out(433) <= \<const0>\; + rxdata_out(432) <= \<const0>\; + rxdata_out(431) <= \<const0>\; + rxdata_out(430) <= \<const0>\; + rxdata_out(429) <= \<const0>\; + rxdata_out(428) <= \<const0>\; + rxdata_out(427) <= \<const0>\; + rxdata_out(426) <= \<const0>\; + rxdata_out(425) <= \<const0>\; + rxdata_out(424) <= \<const0>\; + rxdata_out(423) <= \<const0>\; + rxdata_out(422) <= \<const0>\; + rxdata_out(421) <= \<const0>\; + rxdata_out(420) <= \<const0>\; + rxdata_out(419) <= \<const0>\; + rxdata_out(418) <= \<const0>\; + rxdata_out(417) <= \<const0>\; + rxdata_out(416) <= \<const0>\; + rxdata_out(415) <= \<const0>\; + rxdata_out(414) <= \<const0>\; + rxdata_out(413) <= \<const0>\; + rxdata_out(412) <= \<const0>\; + rxdata_out(411) <= \<const0>\; + rxdata_out(410) <= \<const0>\; + rxdata_out(409) <= \<const0>\; + rxdata_out(408) <= \<const0>\; + rxdata_out(407) <= \<const0>\; + rxdata_out(406) <= \<const0>\; + rxdata_out(405) <= \<const0>\; + rxdata_out(404) <= \<const0>\; + rxdata_out(403) <= \<const0>\; + rxdata_out(402) <= \<const0>\; + rxdata_out(401) <= \<const0>\; + rxdata_out(400) <= \<const0>\; + rxdata_out(399) <= \<const0>\; + rxdata_out(398) <= \<const0>\; + rxdata_out(397) <= \<const0>\; + rxdata_out(396) <= \<const0>\; + rxdata_out(395) <= \<const0>\; + rxdata_out(394) <= \<const0>\; + rxdata_out(393) <= \<const0>\; + rxdata_out(392) <= \<const0>\; + rxdata_out(391) <= \<const0>\; + rxdata_out(390) <= \<const0>\; + rxdata_out(389) <= \<const0>\; + rxdata_out(388) <= \<const0>\; + rxdata_out(387) <= \<const0>\; + rxdata_out(386) <= \<const0>\; + rxdata_out(385) <= \<const0>\; + rxdata_out(384) <= \<const0>\; + rxdata_out(383) <= \<const0>\; + rxdata_out(382) <= \<const0>\; + rxdata_out(381) <= \<const0>\; + rxdata_out(380) <= \<const0>\; + rxdata_out(379) <= \<const0>\; + rxdata_out(378) <= \<const0>\; + rxdata_out(377) <= \<const0>\; + rxdata_out(376) <= \<const0>\; + rxdata_out(375) <= \<const0>\; + rxdata_out(374) <= \<const0>\; + rxdata_out(373) <= \<const0>\; + rxdata_out(372) <= \<const0>\; + rxdata_out(371) <= \<const0>\; + rxdata_out(370) <= \<const0>\; + rxdata_out(369) <= \<const0>\; + rxdata_out(368) <= \<const0>\; + rxdata_out(367) <= \<const0>\; + rxdata_out(366) <= \<const0>\; + rxdata_out(365) <= \<const0>\; + rxdata_out(364) <= \<const0>\; + rxdata_out(363) <= \<const0>\; + rxdata_out(362) <= \<const0>\; + rxdata_out(361) <= \<const0>\; + rxdata_out(360) <= \<const0>\; + rxdata_out(359) <= \<const0>\; + rxdata_out(358) <= \<const0>\; + rxdata_out(357) <= \<const0>\; + rxdata_out(356) <= \<const0>\; + rxdata_out(355) <= \<const0>\; + rxdata_out(354) <= \<const0>\; + rxdata_out(353) <= \<const0>\; + rxdata_out(352) <= \<const0>\; + rxdata_out(351) <= \<const0>\; + rxdata_out(350) <= \<const0>\; + rxdata_out(349) <= \<const0>\; + rxdata_out(348) <= \<const0>\; + rxdata_out(347) <= \<const0>\; + rxdata_out(346) <= \<const0>\; + rxdata_out(345) <= \<const0>\; + rxdata_out(344) <= \<const0>\; + rxdata_out(343) <= \<const0>\; + rxdata_out(342) <= \<const0>\; + rxdata_out(341) <= \<const0>\; + rxdata_out(340) <= \<const0>\; + rxdata_out(339) <= \<const0>\; + rxdata_out(338) <= \<const0>\; + rxdata_out(337) <= \<const0>\; + rxdata_out(336) <= \<const0>\; + rxdata_out(335) <= \<const0>\; + rxdata_out(334) <= \<const0>\; + rxdata_out(333) <= \<const0>\; + rxdata_out(332) <= \<const0>\; + rxdata_out(331) <= \<const0>\; + rxdata_out(330) <= \<const0>\; + rxdata_out(329) <= \<const0>\; + rxdata_out(328) <= \<const0>\; + rxdata_out(327) <= \<const0>\; + rxdata_out(326) <= \<const0>\; + rxdata_out(325) <= \<const0>\; + rxdata_out(324) <= \<const0>\; + rxdata_out(323) <= \<const0>\; + rxdata_out(322) <= \<const0>\; + rxdata_out(321) <= \<const0>\; + rxdata_out(320) <= \<const0>\; + rxdata_out(319) <= \<const0>\; + rxdata_out(318) <= \<const0>\; + rxdata_out(317) <= \<const0>\; + rxdata_out(316) <= \<const0>\; + rxdata_out(315) <= \<const0>\; + rxdata_out(314) <= \<const0>\; + rxdata_out(313) <= \<const0>\; + rxdata_out(312) <= \<const0>\; + rxdata_out(311) <= \<const0>\; + rxdata_out(310) <= \<const0>\; + rxdata_out(309) <= \<const0>\; + rxdata_out(308) <= \<const0>\; + rxdata_out(307) <= \<const0>\; + rxdata_out(306) <= \<const0>\; + rxdata_out(305) <= \<const0>\; + rxdata_out(304) <= \<const0>\; + rxdata_out(303) <= \<const0>\; + rxdata_out(302) <= \<const0>\; + rxdata_out(301) <= \<const0>\; + rxdata_out(300) <= \<const0>\; + rxdata_out(299) <= \<const0>\; + rxdata_out(298) <= \<const0>\; + rxdata_out(297) <= \<const0>\; + rxdata_out(296) <= \<const0>\; + rxdata_out(295) <= \<const0>\; + rxdata_out(294) <= \<const0>\; + rxdata_out(293) <= \<const0>\; + rxdata_out(292) <= \<const0>\; + rxdata_out(291) <= \<const0>\; + rxdata_out(290) <= \<const0>\; + rxdata_out(289) <= \<const0>\; + rxdata_out(288) <= \<const0>\; + rxdata_out(287) <= \<const0>\; + rxdata_out(286) <= \<const0>\; + rxdata_out(285) <= \<const0>\; + rxdata_out(284) <= \<const0>\; + rxdata_out(283) <= \<const0>\; + rxdata_out(282) <= \<const0>\; + rxdata_out(281) <= \<const0>\; + rxdata_out(280) <= \<const0>\; + rxdata_out(279) <= \<const0>\; + rxdata_out(278) <= \<const0>\; + rxdata_out(277) <= \<const0>\; + rxdata_out(276) <= \<const0>\; + rxdata_out(275) <= \<const0>\; + rxdata_out(274) <= \<const0>\; + rxdata_out(273) <= \<const0>\; + rxdata_out(272) <= \<const0>\; + rxdata_out(271) <= \<const0>\; + rxdata_out(270) <= \<const0>\; + rxdata_out(269) <= \<const0>\; + rxdata_out(268) <= \<const0>\; + rxdata_out(267) <= \<const0>\; + rxdata_out(266) <= \<const0>\; + rxdata_out(265) <= \<const0>\; + rxdata_out(264) <= \<const0>\; + rxdata_out(263) <= \<const0>\; + rxdata_out(262) <= \<const0>\; + rxdata_out(261) <= \<const0>\; + rxdata_out(260) <= \<const0>\; + rxdata_out(259) <= \<const0>\; + rxdata_out(258) <= \<const0>\; + rxdata_out(257) <= \<const0>\; + rxdata_out(256) <= \<const0>\; + rxdata_out(255) <= \<const0>\; + rxdata_out(254) <= \<const0>\; + rxdata_out(253) <= \<const0>\; + rxdata_out(252) <= \<const0>\; + rxdata_out(251) <= \<const0>\; + rxdata_out(250) <= \<const0>\; + rxdata_out(249) <= \<const0>\; + rxdata_out(248) <= \<const0>\; + rxdata_out(247) <= \<const0>\; + rxdata_out(246) <= \<const0>\; + rxdata_out(245) <= \<const0>\; + rxdata_out(244) <= \<const0>\; + rxdata_out(243) <= \<const0>\; + rxdata_out(242) <= \<const0>\; + rxdata_out(241) <= \<const0>\; + rxdata_out(240) <= \<const0>\; + rxdata_out(239) <= \<const0>\; + rxdata_out(238) <= \<const0>\; + rxdata_out(237) <= \<const0>\; + rxdata_out(236) <= \<const0>\; + rxdata_out(235) <= \<const0>\; + rxdata_out(234) <= \<const0>\; + rxdata_out(233) <= \<const0>\; + rxdata_out(232) <= \<const0>\; + rxdata_out(231) <= \<const0>\; + rxdata_out(230) <= \<const0>\; + rxdata_out(229) <= \<const0>\; + rxdata_out(228) <= \<const0>\; + rxdata_out(227) <= \<const0>\; + rxdata_out(226) <= \<const0>\; + rxdata_out(225) <= \<const0>\; + rxdata_out(224) <= \<const0>\; + rxdata_out(223) <= \<const0>\; + rxdata_out(222) <= \<const0>\; + rxdata_out(221) <= \<const0>\; + rxdata_out(220) <= \<const0>\; + rxdata_out(219) <= \<const0>\; + rxdata_out(218) <= \<const0>\; + rxdata_out(217) <= \<const0>\; + rxdata_out(216) <= \<const0>\; + rxdata_out(215) <= \<const0>\; + rxdata_out(214) <= \<const0>\; + rxdata_out(213) <= \<const0>\; + rxdata_out(212) <= \<const0>\; + rxdata_out(211) <= \<const0>\; + rxdata_out(210) <= \<const0>\; + rxdata_out(209) <= \<const0>\; + rxdata_out(208) <= \<const0>\; + rxdata_out(207) <= \<const0>\; + rxdata_out(206) <= \<const0>\; + rxdata_out(205) <= \<const0>\; + rxdata_out(204) <= \<const0>\; + rxdata_out(203) <= \<const0>\; + rxdata_out(202) <= \<const0>\; + rxdata_out(201) <= \<const0>\; + rxdata_out(200) <= \<const0>\; + rxdata_out(199) <= \<const0>\; + rxdata_out(198) <= \<const0>\; + rxdata_out(197) <= \<const0>\; + rxdata_out(196) <= \<const0>\; + rxdata_out(195) <= \<const0>\; + rxdata_out(194) <= \<const0>\; + rxdata_out(193) <= \<const0>\; + rxdata_out(192) <= \<const0>\; + rxdata_out(191) <= \<const0>\; + rxdata_out(190) <= \<const0>\; + rxdata_out(189) <= \<const0>\; + rxdata_out(188) <= \<const0>\; + rxdata_out(187) <= \<const0>\; + rxdata_out(186) <= \<const0>\; + rxdata_out(185) <= \<const0>\; + rxdata_out(184) <= \<const0>\; + rxdata_out(183) <= \<const0>\; + rxdata_out(182) <= \<const0>\; + rxdata_out(181) <= \<const0>\; + rxdata_out(180) <= \<const0>\; + rxdata_out(179) <= \<const0>\; + rxdata_out(178) <= \<const0>\; + rxdata_out(177) <= \<const0>\; + rxdata_out(176) <= \<const0>\; + rxdata_out(175) <= \<const0>\; + rxdata_out(174) <= \<const0>\; + rxdata_out(173) <= \<const0>\; + rxdata_out(172) <= \<const0>\; + rxdata_out(171) <= \<const0>\; + rxdata_out(170) <= \<const0>\; + rxdata_out(169) <= \<const0>\; + rxdata_out(168) <= \<const0>\; + rxdata_out(167) <= \<const0>\; + rxdata_out(166) <= \<const0>\; + rxdata_out(165) <= \<const0>\; + rxdata_out(164) <= \<const0>\; + rxdata_out(163) <= \<const0>\; + rxdata_out(162) <= \<const0>\; + rxdata_out(161) <= \<const0>\; + rxdata_out(160) <= \<const0>\; + rxdata_out(159) <= \<const0>\; + rxdata_out(158) <= \<const0>\; + rxdata_out(157) <= \<const0>\; + rxdata_out(156) <= \<const0>\; + rxdata_out(155) <= \<const0>\; + rxdata_out(154) <= \<const0>\; + rxdata_out(153) <= \<const0>\; + rxdata_out(152) <= \<const0>\; + rxdata_out(151) <= \<const0>\; + rxdata_out(150) <= \<const0>\; + rxdata_out(149) <= \<const0>\; + rxdata_out(148) <= \<const0>\; + rxdata_out(147) <= \<const0>\; + rxdata_out(146) <= \<const0>\; + rxdata_out(145) <= \<const0>\; + rxdata_out(144) <= \<const0>\; + rxdata_out(143) <= \<const0>\; + rxdata_out(142) <= \<const0>\; + rxdata_out(141) <= \<const0>\; + rxdata_out(140) <= \<const0>\; + rxdata_out(139) <= \<const0>\; + rxdata_out(138) <= \<const0>\; + rxdata_out(137) <= \<const0>\; + rxdata_out(136) <= \<const0>\; + rxdata_out(135) <= \<const0>\; + rxdata_out(134) <= \<const0>\; + rxdata_out(133) <= \<const0>\; + rxdata_out(132) <= \<const0>\; + rxdata_out(131) <= \<const0>\; + rxdata_out(130) <= \<const0>\; + rxdata_out(129) <= \<const0>\; + rxdata_out(128) <= \<const0>\; + rxdata_out(127) <= \<const0>\; + rxdata_out(126) <= \<const0>\; + rxdata_out(125) <= \<const0>\; + rxdata_out(124) <= \<const0>\; + rxdata_out(123) <= \<const0>\; + rxdata_out(122) <= \<const0>\; + rxdata_out(121) <= \<const0>\; + rxdata_out(120) <= \<const0>\; + rxdata_out(119) <= \<const0>\; + rxdata_out(118) <= \<const0>\; + rxdata_out(117) <= \<const0>\; + rxdata_out(116) <= \<const0>\; + rxdata_out(115) <= \<const0>\; + rxdata_out(114) <= \<const0>\; + rxdata_out(113) <= \<const0>\; + rxdata_out(112) <= \<const0>\; + rxdata_out(111) <= \<const0>\; + rxdata_out(110) <= \<const0>\; + rxdata_out(109) <= \<const0>\; + rxdata_out(108) <= \<const0>\; + rxdata_out(107) <= \<const0>\; + rxdata_out(106) <= \<const0>\; + rxdata_out(105) <= \<const0>\; + rxdata_out(104) <= \<const0>\; + rxdata_out(103) <= \<const0>\; + rxdata_out(102) <= \<const0>\; + rxdata_out(101) <= \<const0>\; + rxdata_out(100) <= \<const0>\; + rxdata_out(99) <= \<const0>\; + rxdata_out(98) <= \<const0>\; + rxdata_out(97) <= \<const0>\; + rxdata_out(96) <= \<const0>\; + rxdata_out(95) <= \<const0>\; + rxdata_out(94) <= \<const0>\; + rxdata_out(93) <= \<const0>\; + rxdata_out(92) <= \<const0>\; + rxdata_out(91) <= \<const0>\; + rxdata_out(90) <= \<const0>\; + rxdata_out(89) <= \<const0>\; + rxdata_out(88) <= \<const0>\; + rxdata_out(87) <= \<const0>\; + rxdata_out(86) <= \<const0>\; + rxdata_out(85) <= \<const0>\; + rxdata_out(84) <= \<const0>\; + rxdata_out(83) <= \<const0>\; + rxdata_out(82) <= \<const0>\; + rxdata_out(81) <= \<const0>\; + rxdata_out(80) <= \<const0>\; + rxdata_out(79) <= \<const0>\; + rxdata_out(78) <= \<const0>\; + rxdata_out(77) <= \<const0>\; + rxdata_out(76) <= \<const0>\; + rxdata_out(75) <= \<const0>\; + rxdata_out(74) <= \<const0>\; + rxdata_out(73) <= \<const0>\; + rxdata_out(72) <= \<const0>\; + rxdata_out(71) <= \<const0>\; + rxdata_out(70) <= \<const0>\; + rxdata_out(69) <= \<const0>\; + rxdata_out(68) <= \<const0>\; + rxdata_out(67) <= \<const0>\; + rxdata_out(66) <= \<const0>\; + rxdata_out(65) <= \<const0>\; + rxdata_out(64) <= \<const0>\; + rxdata_out(63) <= \<const0>\; + rxdata_out(62) <= \<const0>\; + rxdata_out(61) <= \<const0>\; + rxdata_out(60) <= \<const0>\; + rxdata_out(59) <= \<const0>\; + rxdata_out(58) <= \<const0>\; + rxdata_out(57) <= \<const0>\; + rxdata_out(56) <= \<const0>\; + rxdata_out(55) <= \<const0>\; + rxdata_out(54) <= \<const0>\; + rxdata_out(53) <= \<const0>\; + rxdata_out(52) <= \<const0>\; + rxdata_out(51) <= \<const0>\; + rxdata_out(50) <= \<const0>\; + rxdata_out(49) <= \<const0>\; + rxdata_out(48) <= \<const0>\; + rxdata_out(47) <= \<const0>\; + rxdata_out(46) <= \<const0>\; + rxdata_out(45) <= \<const0>\; + rxdata_out(44) <= \<const0>\; + rxdata_out(43) <= \<const0>\; + rxdata_out(42) <= \<const0>\; + rxdata_out(41) <= \<const0>\; + rxdata_out(40) <= \<const0>\; + rxdata_out(39) <= \<const0>\; + rxdata_out(38) <= \<const0>\; + rxdata_out(37) <= \<const0>\; + rxdata_out(36) <= \<const0>\; + rxdata_out(35) <= \<const0>\; + rxdata_out(34) <= \<const0>\; + rxdata_out(33) <= \<const0>\; + rxdata_out(32) <= \<const0>\; + rxdata_out(31) <= \<const0>\; + rxdata_out(30) <= \<const0>\; + rxdata_out(29) <= \<const0>\; + rxdata_out(28) <= \<const0>\; + rxdata_out(27) <= \<const0>\; + rxdata_out(26) <= \<const0>\; + rxdata_out(25) <= \<const0>\; + rxdata_out(24) <= \<const0>\; + rxdata_out(23) <= \<const0>\; + rxdata_out(22) <= \<const0>\; + rxdata_out(21) <= \<const0>\; + rxdata_out(20) <= \<const0>\; + rxdata_out(19) <= \<const0>\; + rxdata_out(18) <= \<const0>\; + rxdata_out(17) <= \<const0>\; + rxdata_out(16) <= \<const0>\; + rxdata_out(15) <= \<const0>\; + rxdata_out(14) <= \<const0>\; + rxdata_out(13) <= \<const0>\; + rxdata_out(12) <= \<const0>\; + rxdata_out(11) <= \<const0>\; + rxdata_out(10) <= \<const0>\; + rxdata_out(9) <= \<const0>\; + rxdata_out(8) <= \<const0>\; + rxdata_out(7) <= \<const0>\; + rxdata_out(6) <= \<const0>\; + rxdata_out(5) <= \<const0>\; + rxdata_out(4) <= \<const0>\; + rxdata_out(3) <= \<const0>\; + rxdata_out(2) <= \<const0>\; + rxdata_out(1) <= \<const0>\; + rxdata_out(0) <= \<const0>\; + rxdataextendrsvd_out(31) <= \<const0>\; + rxdataextendrsvd_out(30) <= \<const0>\; + rxdataextendrsvd_out(29) <= \<const0>\; + rxdataextendrsvd_out(28) <= \<const0>\; + rxdataextendrsvd_out(27) <= \<const0>\; + rxdataextendrsvd_out(26) <= \<const0>\; + rxdataextendrsvd_out(25) <= \<const0>\; + rxdataextendrsvd_out(24) <= \<const0>\; + rxdataextendrsvd_out(23) <= \<const0>\; + rxdataextendrsvd_out(22) <= \<const0>\; + rxdataextendrsvd_out(21) <= \<const0>\; + rxdataextendrsvd_out(20) <= \<const0>\; + rxdataextendrsvd_out(19) <= \<const0>\; + rxdataextendrsvd_out(18) <= \<const0>\; + rxdataextendrsvd_out(17) <= \<const0>\; + rxdataextendrsvd_out(16) <= \<const0>\; + rxdataextendrsvd_out(15) <= \<const0>\; + rxdataextendrsvd_out(14) <= \<const0>\; + rxdataextendrsvd_out(13) <= \<const0>\; + rxdataextendrsvd_out(12) <= \<const0>\; + rxdataextendrsvd_out(11) <= \<const0>\; + rxdataextendrsvd_out(10) <= \<const0>\; + rxdataextendrsvd_out(9) <= \<const0>\; + rxdataextendrsvd_out(8) <= \<const0>\; + rxdataextendrsvd_out(7) <= \<const0>\; + rxdataextendrsvd_out(6) <= \<const0>\; + rxdataextendrsvd_out(5) <= \<const0>\; + rxdataextendrsvd_out(4) <= \<const0>\; + rxdataextendrsvd_out(3) <= \<const0>\; + rxdataextendrsvd_out(2) <= \<const0>\; + rxdataextendrsvd_out(1) <= \<const0>\; + rxdataextendrsvd_out(0) <= \<const0>\; + rxdatavalid_out(7) <= \<const0>\; + rxdatavalid_out(6) <= \<const0>\; + rxdatavalid_out(5) <= \<const0>\; + rxdatavalid_out(4) <= \<const0>\; + rxdatavalid_out(3) <= \<const0>\; + rxdatavalid_out(2) <= \<const0>\; + rxdatavalid_out(1) <= \<const0>\; + rxdatavalid_out(0) <= \<const0>\; + rxdlysresetdone_out(3) <= \<const0>\; + rxdlysresetdone_out(2) <= \<const0>\; + rxdlysresetdone_out(1) <= \<const0>\; + rxdlysresetdone_out(0) <= \<const0>\; + rxelecidle_out(3) <= \<const0>\; + rxelecidle_out(2) <= \<const0>\; + rxelecidle_out(1) <= \<const0>\; + rxelecidle_out(0) <= \<const0>\; + rxheader_out(23) <= \<const0>\; + rxheader_out(22) <= \<const0>\; + rxheader_out(21) <= \<const0>\; + rxheader_out(20) <= \<const0>\; + rxheader_out(19) <= \<const0>\; + rxheader_out(18) <= \<const0>\; + rxheader_out(17) <= \<const0>\; + rxheader_out(16) <= \<const0>\; + rxheader_out(15) <= \<const0>\; + rxheader_out(14) <= \<const0>\; + rxheader_out(13) <= \<const0>\; + rxheader_out(12) <= \<const0>\; + rxheader_out(11) <= \<const0>\; + rxheader_out(10) <= \<const0>\; + rxheader_out(9) <= \<const0>\; + rxheader_out(8) <= \<const0>\; + rxheader_out(7) <= \<const0>\; + rxheader_out(6) <= \<const0>\; + rxheader_out(5) <= \<const0>\; + rxheader_out(4) <= \<const0>\; + rxheader_out(3) <= \<const0>\; + rxheader_out(2) <= \<const0>\; + rxheader_out(1) <= \<const0>\; + rxheader_out(0) <= \<const0>\; + rxheadervalid_out(7) <= \<const0>\; + rxheadervalid_out(6) <= \<const0>\; + rxheadervalid_out(5) <= \<const0>\; + rxheadervalid_out(4) <= \<const0>\; + rxheadervalid_out(3) <= \<const0>\; + rxheadervalid_out(2) <= \<const0>\; + rxheadervalid_out(1) <= \<const0>\; + rxheadervalid_out(0) <= \<const0>\; + rxlfpstresetdet_out(0) <= \<const0>\; + rxlfpsu2lpexitdet_out(0) <= \<const0>\; + rxlfpsu3wakedet_out(0) <= \<const0>\; + rxmonitorout_out(27) <= \<const0>\; + rxmonitorout_out(26) <= \<const0>\; + rxmonitorout_out(25) <= \<const0>\; + rxmonitorout_out(24) <= \<const0>\; + rxmonitorout_out(23) <= \<const0>\; + rxmonitorout_out(22) <= \<const0>\; + rxmonitorout_out(21) <= \<const0>\; + rxmonitorout_out(20) <= \<const0>\; + rxmonitorout_out(19) <= \<const0>\; + rxmonitorout_out(18) <= \<const0>\; + rxmonitorout_out(17) <= \<const0>\; + rxmonitorout_out(16) <= \<const0>\; + rxmonitorout_out(15) <= \<const0>\; + rxmonitorout_out(14) <= \<const0>\; + rxmonitorout_out(13) <= \<const0>\; + rxmonitorout_out(12) <= \<const0>\; + rxmonitorout_out(11) <= \<const0>\; + rxmonitorout_out(10) <= \<const0>\; + rxmonitorout_out(9) <= \<const0>\; + rxmonitorout_out(8) <= \<const0>\; + rxmonitorout_out(7) <= \<const0>\; + rxmonitorout_out(6) <= \<const0>\; + rxmonitorout_out(5) <= \<const0>\; + rxmonitorout_out(4) <= \<const0>\; + rxmonitorout_out(3) <= \<const0>\; + rxmonitorout_out(2) <= \<const0>\; + rxmonitorout_out(1) <= \<const0>\; + rxmonitorout_out(0) <= \<const0>\; + rxosintdone_out(3) <= \<const0>\; + rxosintdone_out(2) <= \<const0>\; + rxosintdone_out(1) <= \<const0>\; + rxosintdone_out(0) <= \<const0>\; + rxosintstarted_out(3) <= \<const0>\; + rxosintstarted_out(2) <= \<const0>\; + rxosintstarted_out(1) <= \<const0>\; + rxosintstarted_out(0) <= \<const0>\; + rxosintstrobedone_out(3) <= \<const0>\; + rxosintstrobedone_out(2) <= \<const0>\; + rxosintstrobedone_out(1) <= \<const0>\; + rxosintstrobedone_out(0) <= \<const0>\; + rxosintstrobestarted_out(3) <= \<const0>\; + rxosintstrobestarted_out(2) <= \<const0>\; + rxosintstrobestarted_out(1) <= \<const0>\; + rxosintstrobestarted_out(0) <= \<const0>\; + rxoutclkfabric_out(3) <= \<const0>\; + rxoutclkfabric_out(2) <= \<const0>\; + rxoutclkfabric_out(1) <= \<const0>\; + rxoutclkfabric_out(0) <= \<const0>\; + rxoutclkpcs_out(3) <= \<const0>\; + rxoutclkpcs_out(2) <= \<const0>\; + rxoutclkpcs_out(1) <= \<const0>\; + rxoutclkpcs_out(0) <= \<const0>\; + rxphaligndone_out(3) <= \<const0>\; + rxphaligndone_out(2) <= \<const0>\; + rxphaligndone_out(1) <= \<const0>\; + rxphaligndone_out(0) <= \<const0>\; + rxphalignerr_out(3) <= \<const0>\; + rxphalignerr_out(2) <= \<const0>\; + rxphalignerr_out(1) <= \<const0>\; + rxphalignerr_out(0) <= \<const0>\; + rxprbserr_out(3) <= \<const0>\; + rxprbserr_out(2) <= \<const0>\; + rxprbserr_out(1) <= \<const0>\; + rxprbserr_out(0) <= \<const0>\; + rxprbslocked_out(3) <= \<const0>\; + rxprbslocked_out(2) <= \<const0>\; + rxprbslocked_out(1) <= \<const0>\; + rxprbslocked_out(0) <= \<const0>\; + rxprgdivresetdone_out(3) <= \<const0>\; + rxprgdivresetdone_out(2) <= \<const0>\; + rxprgdivresetdone_out(1) <= \<const0>\; + rxprgdivresetdone_out(0) <= \<const0>\; + rxqpisenn_out(3) <= \<const0>\; + rxqpisenn_out(2) <= \<const0>\; + rxqpisenn_out(1) <= \<const0>\; + rxqpisenn_out(0) <= \<const0>\; + rxqpisenp_out(3) <= \<const0>\; + rxqpisenp_out(2) <= \<const0>\; + rxqpisenp_out(1) <= \<const0>\; + rxqpisenp_out(0) <= \<const0>\; + rxrecclk0_sel_out(1) <= \<const0>\; + rxrecclk0_sel_out(0) <= \<const0>\; + rxrecclk0sel_out(0) <= \<const0>\; + rxrecclk1_sel_out(1) <= \<const0>\; + rxrecclk1_sel_out(0) <= \<const0>\; + rxrecclk1sel_out(0) <= \<const0>\; + rxrecclkout_out(3) <= \<const0>\; + rxrecclkout_out(2) <= \<const0>\; + rxrecclkout_out(1) <= \<const0>\; + rxrecclkout_out(0) <= \<const0>\; + rxsliderdy_out(3) <= \<const0>\; + rxsliderdy_out(2) <= \<const0>\; + rxsliderdy_out(1) <= \<const0>\; + rxsliderdy_out(0) <= \<const0>\; + rxslipdone_out(3) <= \<const0>\; + rxslipdone_out(2) <= \<const0>\; + rxslipdone_out(1) <= \<const0>\; + rxslipdone_out(0) <= \<const0>\; + rxslipoutclkrdy_out(3) <= \<const0>\; + rxslipoutclkrdy_out(2) <= \<const0>\; + rxslipoutclkrdy_out(1) <= \<const0>\; + rxslipoutclkrdy_out(0) <= \<const0>\; + rxslippmardy_out(3) <= \<const0>\; + rxslippmardy_out(2) <= \<const0>\; + rxslippmardy_out(1) <= \<const0>\; + rxslippmardy_out(0) <= \<const0>\; + rxstartofseq_out(7) <= \<const0>\; + rxstartofseq_out(6) <= \<const0>\; + rxstartofseq_out(5) <= \<const0>\; + rxstartofseq_out(4) <= \<const0>\; + rxstartofseq_out(3) <= \<const0>\; + rxstartofseq_out(2) <= \<const0>\; + rxstartofseq_out(1) <= \<const0>\; + rxstartofseq_out(0) <= \<const0>\; + rxstatus_out(11) <= \<const0>\; + rxstatus_out(10) <= \<const0>\; + rxstatus_out(9) <= \<const0>\; + rxstatus_out(8) <= \<const0>\; + rxstatus_out(7) <= \<const0>\; + rxstatus_out(6) <= \<const0>\; + rxstatus_out(5) <= \<const0>\; + rxstatus_out(4) <= \<const0>\; + rxstatus_out(3) <= \<const0>\; + rxstatus_out(2) <= \<const0>\; + rxstatus_out(1) <= \<const0>\; + rxstatus_out(0) <= \<const0>\; + rxsyncdone_out(3) <= \<const0>\; + rxsyncdone_out(2) <= \<const0>\; + rxsyncdone_out(1) <= \<const0>\; + rxsyncdone_out(0) <= \<const0>\; + rxsyncout_out(3) <= \<const0>\; + rxsyncout_out(2) <= \<const0>\; + rxsyncout_out(1) <= \<const0>\; + rxsyncout_out(0) <= \<const0>\; + rxvalid_out(3) <= \<const0>\; + rxvalid_out(2) <= \<const0>\; + rxvalid_out(1) <= \<const0>\; + rxvalid_out(0) <= \<const0>\; + sdm0finalout_out(0) <= \<const0>\; + sdm0testdata_out(0) <= \<const0>\; + sdm1finalout_out(0) <= \<const0>\; + sdm1testdata_out(0) <= \<const0>\; + tcongpo_out(0) <= \<const0>\; + tconrsvdout0_out(0) <= \<const0>\; + txbufstatus_out(7) <= \<const0>\; + txbufstatus_out(6) <= \<const0>\; + txbufstatus_out(5) <= \<const0>\; + txbufstatus_out(4) <= \<const0>\; + txbufstatus_out(3) <= \<const0>\; + txbufstatus_out(2) <= \<const0>\; + txbufstatus_out(1) <= \<const0>\; + txbufstatus_out(0) <= \<const0>\; + txcomfinish_out(3) <= \<const0>\; + txcomfinish_out(2) <= \<const0>\; + txcomfinish_out(1) <= \<const0>\; + txcomfinish_out(0) <= \<const0>\; + txdccdone_out(0) <= \<const0>\; + txdlysresetdone_out(3) <= \<const0>\; + txdlysresetdone_out(2) <= \<const0>\; + txdlysresetdone_out(1) <= \<const0>\; + txdlysresetdone_out(0) <= \<const0>\; + txoutclkfabric_out(3) <= \<const0>\; + txoutclkfabric_out(2) <= \<const0>\; + txoutclkfabric_out(1) <= \<const0>\; + txoutclkfabric_out(0) <= \<const0>\; + txoutclkpcs_out(3) <= \<const0>\; + txoutclkpcs_out(2) <= \<const0>\; + txoutclkpcs_out(1) <= \<const0>\; + txoutclkpcs_out(0) <= \<const0>\; + txphaligndone_out(3) <= \<const0>\; + txphaligndone_out(2) <= \<const0>\; + txphaligndone_out(1) <= \<const0>\; + txphaligndone_out(0) <= \<const0>\; + txphinitdone_out(3) <= \<const0>\; + txphinitdone_out(2) <= \<const0>\; + txphinitdone_out(1) <= \<const0>\; + txphinitdone_out(0) <= \<const0>\; + txqpisenn_out(3) <= \<const0>\; + txqpisenn_out(2) <= \<const0>\; + txqpisenn_out(1) <= \<const0>\; + txqpisenn_out(0) <= \<const0>\; + txqpisenp_out(3) <= \<const0>\; + txqpisenp_out(2) <= \<const0>\; + txqpisenp_out(1) <= \<const0>\; + txqpisenp_out(0) <= \<const0>\; + txratedone_out(3) <= \<const0>\; + txratedone_out(2) <= \<const0>\; + txratedone_out(1) <= \<const0>\; + txratedone_out(0) <= \<const0>\; + txsyncdone_out(3) <= \<const0>\; + txsyncdone_out(2) <= \<const0>\; + txsyncdone_out(1) <= \<const0>\; + txsyncdone_out(0) <= \<const0>\; + txsyncout_out(3) <= \<const0>\; + txsyncout_out(2) <= \<const0>\; + txsyncout_out(1) <= \<const0>\; + txsyncout_out(0) <= \<const0>\; + ubdaddr_out(0) <= \<const0>\; + ubden_out(0) <= \<const0>\; + ubdi_out(0) <= \<const0>\; + ubdwe_out(0) <= \<const0>\; + ubmdmtdo_out(0) <= \<const0>\; + ubrsvdout_out(0) <= \<const0>\; + ubtxuart_out(0) <= \<const0>\; +GND: unisim.vcomponents.GND + port map ( + G => \<const0>\ + ); +\gen_gtwizard_gthe3_top.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_gthe3_inst\: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_gthe3 + port map ( + cplllock_out(3 downto 0) => cplllock_out(3 downto 0), + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtpowergood_out(3 downto 0) => gtpowergood_out(3 downto 0), + gtrefclk01_in(0) => gtrefclk01_in(0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtwiz_buffbypass_tx_done_out(0) => gtwiz_buffbypass_tx_done_out(0), + gtwiz_buffbypass_tx_error_out(0) => gtwiz_buffbypass_tx_error_out(0), + gtwiz_buffbypass_tx_reset_in(0) => gtwiz_buffbypass_tx_reset_in(0), + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_rx_cdr_stable_out(0) => gtwiz_reset_rx_cdr_stable_out(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + gtwiz_userdata_rx_out(63 downto 0) => gtwiz_userdata_rx_out(63 downto 0), + gtwiz_userdata_tx_in(127 downto 0) => gtwiz_userdata_tx_in(127 downto 0), + loopback_in(11 downto 0) => loopback_in(11 downto 0), + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0lock_out(0) => qpll0lock_out(0), + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1lock_out(0) => qpll1lock_out(0), + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => rxcdrlock_out(3 downto 0), + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxratedone_out(3 downto 0) => rxratedone_out(3 downto 0), + rxresetdone_out(3 downto 0) => rxresetdone_out(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txprgdivresetdone_out(3 downto 0) => txprgdivresetdone_out(3 downto 0), + txresetdone_out(3 downto 0) => txresetdone_out(3 downto 0), + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0) + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH is + port ( + gtwiz_userclk_tx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userclk_rx_active_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_reset_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_start_user_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_buffbypass_tx_error_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_clk_freerun_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_all_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_pll_and_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_datapath_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_cdr_stable_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_tx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_reset_rx_done_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + gtwiz_userdata_tx_in : in STD_LOGIC_VECTOR ( 127 downto 0 ); + gtwiz_userdata_rx_out : out STD_LOGIC_VECTOR ( 63 downto 0 ); + gtrefclk01_in : in STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll0lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1fbclklost_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1lock_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + qpll1outrefclk_out : out STD_LOGIC_VECTOR ( 0 to 0 ); + drpclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxn_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gthrxp_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + gtrefclk0_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + loopback_in : in STD_LOGIC_VECTOR ( 11 downto 0 ); + rxcdrhold_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxslide_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + rxusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txpolarity_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + txusrclk2_in : in STD_LOGIC_VECTOR ( 3 downto 0 ); + cplllock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxn_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gthtxp_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + gtpowergood_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxcdrlock_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxratedone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + rxresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txoutclk_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txpmaresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txprgdivresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ); + txresetdone_out : out STD_LOGIC_VECTOR ( 3 downto 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH : entity is "KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH,KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top,{}"; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH : entity is "yes"; + attribute X_CORE_INFO : string; + attribute X_CORE_INFO of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH : entity is "KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top,Vivado 2024.1"; +end KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH; + +architecture STRUCTURE of KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH is + signal NLW_inst_bufgtce_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_bufgtcemask_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_bufgtdiv_out_UNCONNECTED : STD_LOGIC_VECTOR ( 35 downto 0 ); + signal NLW_inst_bufgtreset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_bufgtrstmask_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_cpllfbclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_cpllrefclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_dmonitorout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 67 downto 0 ); + signal NLW_inst_dmonitoroutclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_drpdo_common_out_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 ); + signal NLW_inst_drpdo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_drprdy_common_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_drprdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_eyescandataerror_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_gtrefclkmonitor_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_gtwiz_buffbypass_rx_done_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_buffbypass_rx_error_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_reset_qpll0reset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_reset_qpll1reset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_active_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_srcclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_usrclk2_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_rx_usrclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_active_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_srcclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_usrclk2_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtwiz_userclk_tx_usrclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtytxn_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_gtytxp_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_pcierategen3_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcierateidle_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcierateqpllpd_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_pcierateqpllreset_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_pciesynctxsyncdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcieusergen3rdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcieuserphystatusrst_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcieuserratestart_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pcsrsvdout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 47 downto 0 ); + signal NLW_inst_phystatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_pinrsrvdas_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_pmarsvdout0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_pmarsvdout1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_powerpresent_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll0outclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll0outrefclk_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll0refclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qpll1refclklost_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_qplldmonitor0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_qplldmonitor1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_refclkoutmonitor0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_refclkoutmonitor1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_resetexception_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxbufstatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_rxbyteisaligned_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxbyterealign_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcdrphdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchanbondseq_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchanisaligned_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchanrealign_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxchbondo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 19 downto 0 ); + signal NLW_inst_rxckcaldone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxclkcorcnt_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxcominitdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcommadet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcomsasdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxcomwakedet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxctrl0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_rxctrl1_out_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_inst_rxctrl2_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_rxctrl3_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_rxdata_out_UNCONNECTED : STD_LOGIC_VECTOR ( 511 downto 0 ); + signal NLW_inst_rxdataextendrsvd_out_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_inst_rxdatavalid_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxdlysresetdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxelecidle_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxheader_out_UNCONNECTED : STD_LOGIC_VECTOR ( 23 downto 0 ); + signal NLW_inst_rxheadervalid_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxlfpstresetdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxlfpsu2lpexitdet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxlfpsu3wakedet_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxmonitorout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 27 downto 0 ); + signal NLW_inst_rxosintdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxosintstarted_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxosintstrobedone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxosintstrobestarted_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxoutclkfabric_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxoutclkpcs_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxphaligndone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxphalignerr_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxprbserr_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxprbslocked_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxprgdivresetdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxqpisenn_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxqpisenp_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxrecclk0_sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_rxrecclk0sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxrecclk1_sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_inst_rxrecclk1sel_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_rxrecclkout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxsliderdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxslipdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxslipoutclkrdy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxslippmardy_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxstartofseq_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_rxstatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 11 downto 0 ); + signal NLW_inst_rxsyncdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxsyncout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_rxvalid_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_sdm0finalout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_sdm0testdata_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_sdm1finalout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_sdm1testdata_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_tcongpo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_tconrsvdout0_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_txbufstatus_out_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_inst_txcomfinish_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txdccdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_txdlysresetdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txoutclkfabric_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txoutclkpcs_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txphaligndone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txphinitdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txqpisenn_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txqpisenp_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txratedone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txsyncdone_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_txsyncout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_inst_ubdaddr_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubden_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubdi_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubdwe_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubmdmtdo_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubrsvdout_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_ubtxuart_out_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + attribute C_CHANNEL_ENABLE : string; + attribute C_CHANNEL_ENABLE of inst : label is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111100000000"; + attribute C_COMMON_SCALING_FACTOR : integer; + attribute C_COMMON_SCALING_FACTOR of inst : label is 1; + attribute C_CPLL_VCO_FREQUENCY : string; + attribute C_CPLL_VCO_FREQUENCY of inst : label is "2560.000000"; + attribute C_ENABLE_COMMON_USRCLK : integer; + attribute C_ENABLE_COMMON_USRCLK of inst : label is 0; + attribute C_FORCE_COMMONS : integer; + attribute C_FORCE_COMMONS of inst : label is 0; + attribute C_FREERUN_FREQUENCY : string; + attribute C_FREERUN_FREQUENCY of inst : label is "200.000000"; + attribute C_GT_REV : integer; + attribute C_GT_REV of inst : label is 17; + attribute C_GT_TYPE : integer; + attribute C_GT_TYPE of inst : label is 0; + attribute C_INCLUDE_CPLL_CAL : integer; + attribute C_INCLUDE_CPLL_CAL of inst : label is 2; + attribute C_LOCATE_COMMON : integer; + attribute C_LOCATE_COMMON of inst : label is 0; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE : integer; + attribute C_LOCATE_IN_SYSTEM_IBERT_CORE of inst : label is 2; + attribute C_LOCATE_RESET_CONTROLLER : integer; + attribute C_LOCATE_RESET_CONTROLLER of inst : label is 0; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER of inst : label is 0; + attribute C_LOCATE_RX_USER_CLOCKING : integer; + attribute C_LOCATE_RX_USER_CLOCKING of inst : label is 1; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER : integer; + attribute C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER of inst : label is 0; + attribute C_LOCATE_TX_USER_CLOCKING : integer; + attribute C_LOCATE_TX_USER_CLOCKING of inst : label is 1; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING : integer; + attribute C_LOCATE_USER_DATA_WIDTH_SIZING of inst : label is 0; + attribute C_PCIE_CORECLK_FREQ : integer; + attribute C_PCIE_CORECLK_FREQ of inst : label is 250; + attribute C_PCIE_ENABLE : integer; + attribute C_PCIE_ENABLE of inst : label is 0; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL : integer; + attribute C_RESET_CONTROLLER_INSTANCE_CTRL of inst : label is 0; + attribute C_RESET_SEQUENCE_INTERVAL : integer; + attribute C_RESET_SEQUENCE_INTERVAL of inst : label is 0; + attribute C_RX_BUFFBYPASS_MODE : integer; + attribute C_RX_BUFFBYPASS_MODE of inst : label is 0; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_RX_BUFFER_BYPASS_INSTANCE_CTRL of inst : label is 0; + attribute C_RX_BUFFER_MODE : integer; + attribute C_RX_BUFFER_MODE of inst : label is 1; + attribute C_RX_CB_DISP : string; + attribute C_RX_CB_DISP of inst : label is "8'b00000000"; + attribute C_RX_CB_K : string; + attribute C_RX_CB_K of inst : label is "8'b00000000"; + attribute C_RX_CB_LEN_SEQ : integer; + attribute C_RX_CB_LEN_SEQ of inst : label is 1; + attribute C_RX_CB_MAX_LEVEL : integer; + attribute C_RX_CB_MAX_LEVEL of inst : label is 2; + attribute C_RX_CB_NUM_SEQ : integer; + attribute C_RX_CB_NUM_SEQ of inst : label is 0; + attribute C_RX_CB_VAL : string; + attribute C_RX_CB_VAL of inst : label is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_CC_DISP : string; + attribute C_RX_CC_DISP of inst : label is "8'b00000000"; + attribute C_RX_CC_ENABLE : integer; + attribute C_RX_CC_ENABLE of inst : label is 0; + attribute C_RX_CC_K : string; + attribute C_RX_CC_K of inst : label is "8'b00000000"; + attribute C_RX_CC_LEN_SEQ : integer; + attribute C_RX_CC_LEN_SEQ of inst : label is 1; + attribute C_RX_CC_NUM_SEQ : integer; + attribute C_RX_CC_NUM_SEQ of inst : label is 0; + attribute C_RX_CC_PERIODICITY : integer; + attribute C_RX_CC_PERIODICITY of inst : label is 5000; + attribute C_RX_CC_VAL : string; + attribute C_RX_CC_VAL of inst : label is "80'b00000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_COMMA_M_ENABLE : integer; + attribute C_RX_COMMA_M_ENABLE of inst : label is 0; + attribute C_RX_COMMA_M_VAL : string; + attribute C_RX_COMMA_M_VAL of inst : label is "10'b1010000011"; + attribute C_RX_COMMA_P_ENABLE : integer; + attribute C_RX_COMMA_P_ENABLE of inst : label is 0; + attribute C_RX_COMMA_P_VAL : string; + attribute C_RX_COMMA_P_VAL of inst : label is "10'b0101111100"; + attribute C_RX_DATA_DECODING : integer; + attribute C_RX_DATA_DECODING of inst : label is 0; + attribute C_RX_ENABLE : integer; + attribute C_RX_ENABLE of inst : label is 1; + attribute C_RX_INT_DATA_WIDTH : integer; + attribute C_RX_INT_DATA_WIDTH of inst : label is 16; + attribute C_RX_LINE_RATE : string; + attribute C_RX_LINE_RATE of inst : label is "5.120000"; + attribute C_RX_MASTER_CHANNEL_IDX : integer; + attribute C_RX_MASTER_CHANNEL_IDX of inst : label is 8; + attribute C_RX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_RX_OUTCLK_BUFG_GT_DIV of inst : label is 1; + attribute C_RX_OUTCLK_FREQUENCY : string; + attribute C_RX_OUTCLK_FREQUENCY of inst : label is "320.000000"; + attribute C_RX_OUTCLK_SOURCE : integer; + attribute C_RX_OUTCLK_SOURCE of inst : label is 1; + attribute C_RX_PLL_TYPE : integer; + attribute C_RX_PLL_TYPE of inst : label is 2; + attribute C_RX_RECCLK_OUTPUT : string; + attribute C_RX_RECCLK_OUTPUT of inst : label is "192'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_RX_REFCLK_FREQUENCY : string; + attribute C_RX_REFCLK_FREQUENCY of inst : label is "320.000000"; + attribute C_RX_SLIDE_MODE : integer; + attribute C_RX_SLIDE_MODE of inst : label is 0; + attribute C_RX_USER_CLOCKING_CONTENTS : integer; + attribute C_RX_USER_CLOCKING_CONTENTS of inst : label is 0; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_RX_USER_CLOCKING_INSTANCE_CTRL of inst : label is 0; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of inst : label is 1; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of inst : label is 1; + attribute C_RX_USER_CLOCKING_SOURCE : integer; + attribute C_RX_USER_CLOCKING_SOURCE of inst : label is 0; + attribute C_RX_USER_DATA_WIDTH : integer; + attribute C_RX_USER_DATA_WIDTH of inst : label is 16; + attribute C_RX_USRCLK2_FREQUENCY : string; + attribute C_RX_USRCLK2_FREQUENCY of inst : label is "320.000000"; + attribute C_RX_USRCLK_FREQUENCY : string; + attribute C_RX_USRCLK_FREQUENCY of inst : label is "320.000000"; + attribute C_SECONDARY_QPLL_ENABLE : integer; + attribute C_SECONDARY_QPLL_ENABLE of inst : label is 0; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY : string; + attribute C_SECONDARY_QPLL_REFCLK_FREQUENCY of inst : label is "257.812500"; + attribute C_SIM_CPLL_CAL_BYPASS : integer; + attribute C_SIM_CPLL_CAL_BYPASS of inst : label is 1; + attribute C_TOTAL_NUM_CHANNELS : integer; + attribute C_TOTAL_NUM_CHANNELS of inst : label is 4; + attribute C_TOTAL_NUM_COMMONS : integer; + attribute C_TOTAL_NUM_COMMONS of inst : label is 1; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE : integer; + attribute C_TOTAL_NUM_COMMONS_EXAMPLE of inst : label is 0; + attribute C_TXPROGDIV_FREQ_ENABLE : integer; + attribute C_TXPROGDIV_FREQ_ENABLE of inst : label is 0; + attribute C_TXPROGDIV_FREQ_SOURCE : integer; + attribute C_TXPROGDIV_FREQ_SOURCE of inst : label is 1; + attribute C_TXPROGDIV_FREQ_VAL : string; + attribute C_TXPROGDIV_FREQ_VAL of inst : label is "320.000000"; + attribute C_TX_BUFFBYPASS_MODE : integer; + attribute C_TX_BUFFBYPASS_MODE of inst : label is 0; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL : integer; + attribute C_TX_BUFFER_BYPASS_INSTANCE_CTRL of inst : label is 0; + attribute C_TX_BUFFER_MODE : integer; + attribute C_TX_BUFFER_MODE of inst : label is 0; + attribute C_TX_DATA_ENCODING : integer; + attribute C_TX_DATA_ENCODING of inst : label is 0; + attribute C_TX_ENABLE : integer; + attribute C_TX_ENABLE of inst : label is 1; + attribute C_TX_INT_DATA_WIDTH : integer; + attribute C_TX_INT_DATA_WIDTH of inst : label is 32; + attribute C_TX_LINE_RATE : string; + attribute C_TX_LINE_RATE of inst : label is "10.240000"; + attribute C_TX_MASTER_CHANNEL_IDX : integer; + attribute C_TX_MASTER_CHANNEL_IDX of inst : label is 8; + attribute C_TX_OUTCLK_BUFG_GT_DIV : integer; + attribute C_TX_OUTCLK_BUFG_GT_DIV of inst : label is 1; + attribute C_TX_OUTCLK_FREQUENCY : string; + attribute C_TX_OUTCLK_FREQUENCY of inst : label is "320.000000"; + attribute C_TX_OUTCLK_SOURCE : integer; + attribute C_TX_OUTCLK_SOURCE of inst : label is 4; + attribute C_TX_PLL_TYPE : integer; + attribute C_TX_PLL_TYPE of inst : label is 1; + attribute C_TX_REFCLK_FREQUENCY : string; + attribute C_TX_REFCLK_FREQUENCY of inst : label is "240.000000"; + attribute C_TX_USER_CLOCKING_CONTENTS : integer; + attribute C_TX_USER_CLOCKING_CONTENTS of inst : label is 0; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL : integer; + attribute C_TX_USER_CLOCKING_INSTANCE_CTRL of inst : label is 0; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK : integer; + attribute C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK of inst : label is 1; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 : integer; + attribute C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 of inst : label is 1; + attribute C_TX_USER_CLOCKING_SOURCE : integer; + attribute C_TX_USER_CLOCKING_SOURCE of inst : label is 0; + attribute C_TX_USER_DATA_WIDTH : integer; + attribute C_TX_USER_DATA_WIDTH of inst : label is 32; + attribute C_TX_USRCLK2_FREQUENCY : string; + attribute C_TX_USRCLK2_FREQUENCY of inst : label is "320.000000"; + attribute C_TX_USRCLK_FREQUENCY : string; + attribute C_TX_USRCLK_FREQUENCY of inst : label is "320.000000"; + attribute C_USER_GTPOWERGOOD_DELAY_EN : integer; + attribute C_USER_GTPOWERGOOD_DELAY_EN of inst : label is 0; +begin +inst: entity work.KCU_TXQPLLREFCLK10g24_RXCPLLREFCLK05g12_FELIG4CH_gtwizard_top + port map ( + bgbypassb_in(0) => '1', + bgmonitorenb_in(0) => '1', + bgpdb_in(0) => '1', + bgrcalovrd_in(4 downto 0) => B"11111", + bgrcalovrdenb_in(0) => '1', + bufgtce_out(11 downto 0) => NLW_inst_bufgtce_out_UNCONNECTED(11 downto 0), + bufgtcemask_out(11 downto 0) => NLW_inst_bufgtcemask_out_UNCONNECTED(11 downto 0), + bufgtdiv_out(35 downto 0) => NLW_inst_bufgtdiv_out_UNCONNECTED(35 downto 0), + bufgtreset_out(11 downto 0) => NLW_inst_bufgtreset_out_UNCONNECTED(11 downto 0), + bufgtrstmask_out(11 downto 0) => NLW_inst_bufgtrstmask_out_UNCONNECTED(11 downto 0), + cdrstepdir_in(0) => '0', + cdrstepsq_in(0) => '0', + cdrstepsx_in(0) => '0', + cfgreset_in(3 downto 0) => B"0000", + clkrsvd0_in(3 downto 0) => B"0000", + clkrsvd1_in(3 downto 0) => B"0000", + cpllfbclklost_out(3 downto 0) => NLW_inst_cpllfbclklost_out_UNCONNECTED(3 downto 0), + cpllfreqlock_in(0) => '0', + cplllock_out(3 downto 0) => cplllock_out(3 downto 0), + cplllockdetclk_in(3 downto 0) => B"0000", + cplllocken_in(3 downto 0) => B"1111", + cpllpd_in(3 downto 0) => B"0000", + cpllrefclklost_out(3 downto 0) => NLW_inst_cpllrefclklost_out_UNCONNECTED(3 downto 0), + cpllrefclksel_in(11 downto 0) => B"001001001001", + cpllreset_in(3 downto 0) => B"0000", + dmonfiforeset_in(3 downto 0) => B"0000", + dmonitorclk_in(3 downto 0) => B"0000", + dmonitorout_out(67 downto 0) => NLW_inst_dmonitorout_out_UNCONNECTED(67 downto 0), + dmonitoroutclk_out(0) => NLW_inst_dmonitoroutclk_out_UNCONNECTED(0), + drpaddr_common_in(8 downto 0) => B"000000000", + drpaddr_in(35 downto 0) => B"000000000000000000000000000000000000", + drpclk_common_in(0) => '0', + drpclk_in(3 downto 0) => drpclk_in(3 downto 0), + drpdi_common_in(15 downto 0) => B"0000000000000000", + drpdi_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + drpdo_common_out(15 downto 0) => NLW_inst_drpdo_common_out_UNCONNECTED(15 downto 0), + drpdo_out(63 downto 0) => NLW_inst_drpdo_out_UNCONNECTED(63 downto 0), + drpen_common_in(0) => '0', + drpen_in(3 downto 0) => B"0000", + drprdy_common_out(0) => NLW_inst_drprdy_common_out_UNCONNECTED(0), + drprdy_out(3 downto 0) => NLW_inst_drprdy_out_UNCONNECTED(3 downto 0), + drprst_in(0) => '0', + drpwe_common_in(0) => '0', + drpwe_in(3 downto 0) => B"0000", + elpcaldvorwren_in(0) => '0', + elpcalpaorwren_in(0) => '0', + evoddphicaldone_in(3 downto 0) => B"0000", + evoddphicalstart_in(3 downto 0) => B"0000", + evoddphidrden_in(3 downto 0) => B"0000", + evoddphidwren_in(3 downto 0) => B"0000", + evoddphixrden_in(3 downto 0) => B"0000", + evoddphixwren_in(3 downto 0) => B"0000", + eyescandataerror_out(3 downto 0) => NLW_inst_eyescandataerror_out_UNCONNECTED(3 downto 0), + eyescanmode_in(3 downto 0) => B"0000", + eyescanreset_in(3 downto 0) => B"0000", + eyescantrigger_in(3 downto 0) => B"0000", + freqos_in(0) => '0', + gtgrefclk0_in(0) => '0', + gtgrefclk1_in(0) => '0', + gtgrefclk_in(3 downto 0) => B"0000", + gthrxn_in(3 downto 0) => gthrxn_in(3 downto 0), + gthrxp_in(3 downto 0) => gthrxp_in(3 downto 0), + gthtxn_out(3 downto 0) => gthtxn_out(3 downto 0), + gthtxp_out(3 downto 0) => gthtxp_out(3 downto 0), + gtnorthrefclk00_in(0) => '0', + gtnorthrefclk01_in(0) => '0', + gtnorthrefclk0_in(3 downto 0) => B"0000", + gtnorthrefclk10_in(0) => '0', + gtnorthrefclk11_in(0) => '0', + gtnorthrefclk1_in(3 downto 0) => B"0000", + gtpowergood_out(3 downto 0) => gtpowergood_out(3 downto 0), + gtrefclk00_in(0) => '0', + gtrefclk01_in(0) => gtrefclk01_in(0), + gtrefclk0_in(3 downto 0) => gtrefclk0_in(3 downto 0), + gtrefclk10_in(0) => '0', + gtrefclk11_in(0) => '0', + gtrefclk1_in(3 downto 0) => B"0000", + gtrefclkmonitor_out(3 downto 0) => NLW_inst_gtrefclkmonitor_out_UNCONNECTED(3 downto 0), + gtresetsel_in(3 downto 0) => B"0000", + gtrsvd_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + gtrxreset_in(3 downto 0) => B"0000", + gtrxresetsel_in(0) => '0', + gtsouthrefclk00_in(0) => '0', + gtsouthrefclk01_in(0) => '0', + gtsouthrefclk0_in(3 downto 0) => B"0000", + gtsouthrefclk10_in(0) => '0', + gtsouthrefclk11_in(0) => '0', + gtsouthrefclk1_in(3 downto 0) => B"0000", + gttxreset_in(3 downto 0) => B"0000", + gttxresetsel_in(0) => '0', + gtwiz_buffbypass_rx_done_out(0) => NLW_inst_gtwiz_buffbypass_rx_done_out_UNCONNECTED(0), + gtwiz_buffbypass_rx_error_out(0) => NLW_inst_gtwiz_buffbypass_rx_error_out_UNCONNECTED(0), + gtwiz_buffbypass_rx_reset_in(0) => '0', + gtwiz_buffbypass_rx_start_user_in(0) => '0', + gtwiz_buffbypass_tx_done_out(0) => gtwiz_buffbypass_tx_done_out(0), + gtwiz_buffbypass_tx_error_out(0) => gtwiz_buffbypass_tx_error_out(0), + gtwiz_buffbypass_tx_reset_in(0) => gtwiz_buffbypass_tx_reset_in(0), + gtwiz_buffbypass_tx_start_user_in(0) => gtwiz_buffbypass_tx_start_user_in(0), + gtwiz_gthe3_cpll_cal_bufg_ce_in(3 downto 0) => B"0000", + gtwiz_gthe3_cpll_cal_cnt_tol_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gthe3_cpll_cal_txoutclk_period_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gthe4_cpll_cal_bufg_ce_in(3 downto 0) => B"0000", + gtwiz_gthe4_cpll_cal_cnt_tol_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gthe4_cpll_cal_txoutclk_period_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gtye4_cpll_cal_bufg_ce_in(3 downto 0) => B"0000", + gtwiz_gtye4_cpll_cal_cnt_tol_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_gtye4_cpll_cal_txoutclk_period_in(71 downto 0) => B"000000000000000000000000000000000000000000000000000000000000000000000000", + gtwiz_reset_all_in(0) => gtwiz_reset_all_in(0), + gtwiz_reset_clk_freerun_in(0) => gtwiz_reset_clk_freerun_in(0), + gtwiz_reset_qpll0lock_in(0) => '0', + gtwiz_reset_qpll0reset_out(0) => NLW_inst_gtwiz_reset_qpll0reset_out_UNCONNECTED(0), + gtwiz_reset_qpll1lock_in(0) => '0', + gtwiz_reset_qpll1reset_out(0) => NLW_inst_gtwiz_reset_qpll1reset_out_UNCONNECTED(0), + gtwiz_reset_rx_cdr_stable_out(0) => gtwiz_reset_rx_cdr_stable_out(0), + gtwiz_reset_rx_datapath_in(0) => gtwiz_reset_rx_datapath_in(0), + gtwiz_reset_rx_done_in(0) => '0', + gtwiz_reset_rx_done_out(0) => gtwiz_reset_rx_done_out(0), + gtwiz_reset_rx_pll_and_datapath_in(0) => gtwiz_reset_rx_pll_and_datapath_in(0), + gtwiz_reset_tx_datapath_in(0) => gtwiz_reset_tx_datapath_in(0), + gtwiz_reset_tx_done_in(0) => '0', + gtwiz_reset_tx_done_out(0) => gtwiz_reset_tx_done_out(0), + gtwiz_reset_tx_pll_and_datapath_in(0) => gtwiz_reset_tx_pll_and_datapath_in(0), + gtwiz_userclk_rx_active_in(0) => gtwiz_userclk_rx_active_in(0), + gtwiz_userclk_rx_active_out(0) => NLW_inst_gtwiz_userclk_rx_active_out_UNCONNECTED(0), + gtwiz_userclk_rx_reset_in(0) => '0', + gtwiz_userclk_rx_srcclk_out(0) => NLW_inst_gtwiz_userclk_rx_srcclk_out_UNCONNECTED(0), + gtwiz_userclk_rx_usrclk2_out(0) => NLW_inst_gtwiz_userclk_rx_usrclk2_out_UNCONNECTED(0), + gtwiz_userclk_rx_usrclk_out(0) => NLW_inst_gtwiz_userclk_rx_usrclk_out_UNCONNECTED(0), + gtwiz_userclk_tx_active_in(0) => gtwiz_userclk_tx_active_in(0), + gtwiz_userclk_tx_active_out(0) => NLW_inst_gtwiz_userclk_tx_active_out_UNCONNECTED(0), + gtwiz_userclk_tx_reset_in(0) => '0', + gtwiz_userclk_tx_srcclk_out(0) => NLW_inst_gtwiz_userclk_tx_srcclk_out_UNCONNECTED(0), + gtwiz_userclk_tx_usrclk2_out(0) => NLW_inst_gtwiz_userclk_tx_usrclk2_out_UNCONNECTED(0), + gtwiz_userclk_tx_usrclk_out(0) => NLW_inst_gtwiz_userclk_tx_usrclk_out_UNCONNECTED(0), + gtwiz_userdata_rx_out(63 downto 0) => gtwiz_userdata_rx_out(63 downto 0), + gtwiz_userdata_tx_in(127 downto 0) => gtwiz_userdata_tx_in(127 downto 0), + gtyrxn_in(0) => '0', + gtyrxp_in(0) => '0', + gtytxn_out(0) => NLW_inst_gtytxn_out_UNCONNECTED(0), + gtytxp_out(0) => NLW_inst_gtytxp_out_UNCONNECTED(0), + incpctrl_in(0) => '0', + loopback_in(11 downto 0) => loopback_in(11 downto 0), + looprsvd_in(0) => '0', + lpbkrxtxseren_in(3 downto 0) => B"0000", + lpbktxrxseren_in(3 downto 0) => B"0000", + pcieeqrxeqadaptdone_in(3 downto 0) => B"0000", + pcierategen3_out(3 downto 0) => NLW_inst_pcierategen3_out_UNCONNECTED(3 downto 0), + pcierateidle_out(3 downto 0) => NLW_inst_pcierateidle_out_UNCONNECTED(3 downto 0), + pcierateqpll0_in(0) => '0', + pcierateqpll1_in(0) => '0', + pcierateqpllpd_out(7 downto 0) => NLW_inst_pcierateqpllpd_out_UNCONNECTED(7 downto 0), + pcierateqpllreset_out(7 downto 0) => NLW_inst_pcierateqpllreset_out_UNCONNECTED(7 downto 0), + pcierstidle_in(3 downto 0) => B"0000", + pciersttxsyncstart_in(3 downto 0) => B"0000", + pciesynctxsyncdone_out(3 downto 0) => NLW_inst_pciesynctxsyncdone_out_UNCONNECTED(3 downto 0), + pcieusergen3rdy_out(3 downto 0) => NLW_inst_pcieusergen3rdy_out_UNCONNECTED(3 downto 0), + pcieuserphystatusrst_out(3 downto 0) => NLW_inst_pcieuserphystatusrst_out_UNCONNECTED(3 downto 0), + pcieuserratedone_in(3 downto 0) => B"0000", + pcieuserratestart_out(3 downto 0) => NLW_inst_pcieuserratestart_out_UNCONNECTED(3 downto 0), + pcsrsvdin2_in(19 downto 0) => B"00000000000000000000", + pcsrsvdin_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + pcsrsvdout_out(47 downto 0) => NLW_inst_pcsrsvdout_out_UNCONNECTED(47 downto 0), + phystatus_out(3 downto 0) => NLW_inst_phystatus_out_UNCONNECTED(3 downto 0), + pinrsrvdas_out(31 downto 0) => NLW_inst_pinrsrvdas_out_UNCONNECTED(31 downto 0), + pmarsvd0_in(7 downto 0) => B"00000000", + pmarsvd1_in(7 downto 0) => B"00000000", + pmarsvdin_in(19 downto 0) => B"00000000000000000000", + pmarsvdout0_out(7 downto 0) => NLW_inst_pmarsvdout0_out_UNCONNECTED(7 downto 0), + pmarsvdout1_out(7 downto 0) => NLW_inst_pmarsvdout1_out_UNCONNECTED(7 downto 0), + powerpresent_out(0) => NLW_inst_powerpresent_out_UNCONNECTED(0), + qpll0clk_in(3 downto 0) => B"0000", + qpll0clkrsvd0_in(0) => '0', + qpll0clkrsvd1_in(0) => '0', + qpll0fbclklost_out(0) => qpll0fbclklost_out(0), + qpll0fbdiv_in(0) => '0', + qpll0freqlock_in(0) => '0', + qpll0lock_out(0) => qpll0lock_out(0), + qpll0lockdetclk_in(0) => '0', + qpll0locken_in(0) => '0', + qpll0outclk_out(0) => NLW_inst_qpll0outclk_out_UNCONNECTED(0), + qpll0outrefclk_out(0) => NLW_inst_qpll0outrefclk_out_UNCONNECTED(0), + qpll0pd_in(0) => '1', + qpll0refclk_in(3 downto 0) => B"0000", + qpll0refclklost_out(0) => NLW_inst_qpll0refclklost_out_UNCONNECTED(0), + qpll0refclksel_in(2 downto 0) => B"001", + qpll0reset_in(0) => '1', + qpll1clk_in(3 downto 0) => B"0000", + qpll1clkrsvd0_in(0) => '0', + qpll1clkrsvd1_in(0) => '0', + qpll1fbclklost_out(0) => qpll1fbclklost_out(0), + qpll1fbdiv_in(0) => '0', + qpll1freqlock_in(0) => '0', + qpll1lock_out(0) => qpll1lock_out(0), + qpll1lockdetclk_in(0) => '0', + qpll1locken_in(0) => '1', + qpll1outclk_out(0) => qpll1outclk_out(0), + qpll1outrefclk_out(0) => qpll1outrefclk_out(0), + qpll1pd_in(0) => '0', + qpll1refclk_in(3 downto 0) => B"0000", + qpll1refclklost_out(0) => NLW_inst_qpll1refclklost_out_UNCONNECTED(0), + qpll1refclksel_in(2 downto 0) => B"001", + qpll1reset_in(0) => '0', + qplldmonitor0_out(7 downto 0) => NLW_inst_qplldmonitor0_out_UNCONNECTED(7 downto 0), + qplldmonitor1_out(7 downto 0) => NLW_inst_qplldmonitor1_out_UNCONNECTED(7 downto 0), + qpllrsvd1_in(7 downto 0) => B"00000000", + qpllrsvd2_in(4 downto 0) => B"00000", + qpllrsvd3_in(4 downto 0) => B"00000", + qpllrsvd4_in(7 downto 0) => B"00000000", + rcalenb_in(0) => '1', + refclkoutmonitor0_out(0) => NLW_inst_refclkoutmonitor0_out_UNCONNECTED(0), + refclkoutmonitor1_out(0) => NLW_inst_refclkoutmonitor1_out_UNCONNECTED(0), + resetexception_out(3 downto 0) => NLW_inst_resetexception_out_UNCONNECTED(3 downto 0), + resetovrd_in(3 downto 0) => B"0000", + rstclkentx_in(3 downto 0) => B"0000", + rx8b10ben_in(3 downto 0) => B"0000", + rxafecfoken_in(0) => '0', + rxbufreset_in(3 downto 0) => B"0000", + rxbufstatus_out(11 downto 0) => NLW_inst_rxbufstatus_out_UNCONNECTED(11 downto 0), + rxbyteisaligned_out(3 downto 0) => NLW_inst_rxbyteisaligned_out_UNCONNECTED(3 downto 0), + rxbyterealign_out(3 downto 0) => NLW_inst_rxbyterealign_out_UNCONNECTED(3 downto 0), + rxcdrfreqreset_in(3 downto 0) => B"0000", + rxcdrhold_in(3 downto 0) => rxcdrhold_in(3 downto 0), + rxcdrlock_out(3 downto 0) => rxcdrlock_out(3 downto 0), + rxcdrovrden_in(3 downto 0) => B"0000", + rxcdrphdone_out(3 downto 0) => NLW_inst_rxcdrphdone_out_UNCONNECTED(3 downto 0), + rxcdrreset_in(3 downto 0) => B"0000", + rxcdrresetrsv_in(3 downto 0) => B"0000", + rxchanbondseq_out(3 downto 0) => NLW_inst_rxchanbondseq_out_UNCONNECTED(3 downto 0), + rxchanisaligned_out(3 downto 0) => NLW_inst_rxchanisaligned_out_UNCONNECTED(3 downto 0), + rxchanrealign_out(3 downto 0) => NLW_inst_rxchanrealign_out_UNCONNECTED(3 downto 0), + rxchbonden_in(3 downto 0) => B"0000", + rxchbondi_in(19 downto 0) => B"00000000000000000000", + rxchbondlevel_in(11 downto 0) => B"000000000000", + rxchbondmaster_in(3 downto 0) => B"0000", + rxchbondo_out(19 downto 0) => NLW_inst_rxchbondo_out_UNCONNECTED(19 downto 0), + rxchbondslave_in(3 downto 0) => B"0000", + rxckcaldone_out(0) => NLW_inst_rxckcaldone_out_UNCONNECTED(0), + rxckcalreset_in(0) => '0', + rxckcalstart_in(0) => '0', + rxclkcorcnt_out(7 downto 0) => NLW_inst_rxclkcorcnt_out_UNCONNECTED(7 downto 0), + rxcominitdet_out(3 downto 0) => NLW_inst_rxcominitdet_out_UNCONNECTED(3 downto 0), + rxcommadet_out(3 downto 0) => NLW_inst_rxcommadet_out_UNCONNECTED(3 downto 0), + rxcommadeten_in(3 downto 0) => B"0000", + rxcomsasdet_out(3 downto 0) => NLW_inst_rxcomsasdet_out_UNCONNECTED(3 downto 0), + rxcomwakedet_out(3 downto 0) => NLW_inst_rxcomwakedet_out_UNCONNECTED(3 downto 0), + rxctrl0_out(63 downto 0) => NLW_inst_rxctrl0_out_UNCONNECTED(63 downto 0), + rxctrl1_out(63 downto 0) => NLW_inst_rxctrl1_out_UNCONNECTED(63 downto 0), + rxctrl2_out(31 downto 0) => NLW_inst_rxctrl2_out_UNCONNECTED(31 downto 0), + rxctrl3_out(31 downto 0) => NLW_inst_rxctrl3_out_UNCONNECTED(31 downto 0), + rxdata_out(511 downto 0) => NLW_inst_rxdata_out_UNCONNECTED(511 downto 0), + rxdataextendrsvd_out(31 downto 0) => NLW_inst_rxdataextendrsvd_out_UNCONNECTED(31 downto 0), + rxdatavalid_out(7 downto 0) => NLW_inst_rxdatavalid_out_UNCONNECTED(7 downto 0), + rxdccforcestart_in(0) => '0', + rxdfeagcctrl_in(7 downto 0) => B"01010101", + rxdfeagchold_in(3 downto 0) => B"0000", + rxdfeagcovrden_in(3 downto 0) => B"0000", + rxdfecfokfcnum_in(0) => '0', + rxdfecfokfen_in(0) => '0', + rxdfecfokfpulse_in(0) => '0', + rxdfecfokhold_in(0) => '0', + rxdfecfokovren_in(0) => '0', + rxdfekhhold_in(0) => '0', + rxdfekhovrden_in(0) => '0', + rxdfelfhold_in(3 downto 0) => B"0000", + rxdfelfovrden_in(3 downto 0) => B"0000", + rxdfelpmreset_in(3 downto 0) => B"0000", + rxdfetap10hold_in(3 downto 0) => B"0000", + rxdfetap10ovrden_in(3 downto 0) => B"0000", + rxdfetap11hold_in(3 downto 0) => B"0000", + rxdfetap11ovrden_in(3 downto 0) => B"0000", + rxdfetap12hold_in(3 downto 0) => B"0000", + rxdfetap12ovrden_in(3 downto 0) => B"0000", + rxdfetap13hold_in(3 downto 0) => B"0000", + rxdfetap13ovrden_in(3 downto 0) => B"0000", + rxdfetap14hold_in(3 downto 0) => B"0000", + rxdfetap14ovrden_in(3 downto 0) => B"0000", + rxdfetap15hold_in(3 downto 0) => B"0000", + rxdfetap15ovrden_in(3 downto 0) => B"0000", + rxdfetap2hold_in(3 downto 0) => B"0000", + rxdfetap2ovrden_in(3 downto 0) => B"0000", + rxdfetap3hold_in(3 downto 0) => B"0000", + rxdfetap3ovrden_in(3 downto 0) => B"0000", + rxdfetap4hold_in(3 downto 0) => B"0000", + rxdfetap4ovrden_in(3 downto 0) => B"0000", + rxdfetap5hold_in(3 downto 0) => B"0000", + rxdfetap5ovrden_in(3 downto 0) => B"0000", + rxdfetap6hold_in(3 downto 0) => B"0000", + rxdfetap6ovrden_in(3 downto 0) => B"0000", + rxdfetap7hold_in(3 downto 0) => B"0000", + rxdfetap7ovrden_in(3 downto 0) => B"0000", + rxdfetap8hold_in(3 downto 0) => B"0000", + rxdfetap8ovrden_in(3 downto 0) => B"0000", + rxdfetap9hold_in(3 downto 0) => B"0000", + rxdfetap9ovrden_in(3 downto 0) => B"0000", + rxdfeuthold_in(3 downto 0) => B"0000", + rxdfeutovrden_in(3 downto 0) => B"0000", + rxdfevphold_in(3 downto 0) => B"0000", + rxdfevpovrden_in(3 downto 0) => B"0000", + rxdfevsen_in(3 downto 0) => B"0000", + rxdfexyden_in(3 downto 0) => B"1111", + rxdlybypass_in(3 downto 0) => B"1111", + rxdlyen_in(3 downto 0) => B"0000", + rxdlyovrden_in(3 downto 0) => B"0000", + rxdlysreset_in(3 downto 0) => B"0000", + rxdlysresetdone_out(3 downto 0) => NLW_inst_rxdlysresetdone_out_UNCONNECTED(3 downto 0), + rxelecidle_out(3 downto 0) => NLW_inst_rxelecidle_out_UNCONNECTED(3 downto 0), + rxelecidlemode_in(7 downto 0) => B"11111111", + rxeqtraining_in(0) => '0', + rxgearboxslip_in(3 downto 0) => B"0000", + rxheader_out(23 downto 0) => NLW_inst_rxheader_out_UNCONNECTED(23 downto 0), + rxheadervalid_out(7 downto 0) => NLW_inst_rxheadervalid_out_UNCONNECTED(7 downto 0), + rxlatclk_in(3 downto 0) => B"0000", + rxlfpstresetdet_out(0) => NLW_inst_rxlfpstresetdet_out_UNCONNECTED(0), + rxlfpsu2lpexitdet_out(0) => NLW_inst_rxlfpsu2lpexitdet_out_UNCONNECTED(0), + rxlfpsu3wakedet_out(0) => NLW_inst_rxlfpsu3wakedet_out_UNCONNECTED(0), + rxlpmen_in(3 downto 0) => B"0000", + rxlpmgchold_in(3 downto 0) => B"0000", + rxlpmgcovrden_in(3 downto 0) => B"0000", + rxlpmhfhold_in(3 downto 0) => B"0000", + rxlpmhfovrden_in(3 downto 0) => B"0000", + rxlpmlfhold_in(3 downto 0) => B"0000", + rxlpmlfklovrden_in(3 downto 0) => B"0000", + rxlpmoshold_in(3 downto 0) => B"0000", + rxlpmosovrden_in(3 downto 0) => B"0000", + rxmcommaalignen_in(3 downto 0) => B"0000", + rxmonitorout_out(27 downto 0) => NLW_inst_rxmonitorout_out_UNCONNECTED(27 downto 0), + rxmonitorsel_in(7 downto 0) => B"00000000", + rxoobreset_in(3 downto 0) => B"0000", + rxoscalreset_in(3 downto 0) => B"0000", + rxoshold_in(3 downto 0) => B"0000", + rxosintcfg_in(15 downto 0) => B"1101110111011101", + rxosintdone_out(3 downto 0) => NLW_inst_rxosintdone_out_UNCONNECTED(3 downto 0), + rxosinten_in(3 downto 0) => B"1111", + rxosinthold_in(3 downto 0) => B"0000", + rxosintovrden_in(3 downto 0) => B"0000", + rxosintstarted_out(3 downto 0) => NLW_inst_rxosintstarted_out_UNCONNECTED(3 downto 0), + rxosintstrobe_in(3 downto 0) => B"0000", + rxosintstrobedone_out(3 downto 0) => NLW_inst_rxosintstrobedone_out_UNCONNECTED(3 downto 0), + rxosintstrobestarted_out(3 downto 0) => NLW_inst_rxosintstrobestarted_out_UNCONNECTED(3 downto 0), + rxosinttestovrden_in(3 downto 0) => B"0000", + rxosovrden_in(3 downto 0) => B"0000", + rxoutclk_out(3 downto 0) => rxoutclk_out(3 downto 0), + rxoutclkfabric_out(3 downto 0) => NLW_inst_rxoutclkfabric_out_UNCONNECTED(3 downto 0), + rxoutclkpcs_out(3 downto 0) => NLW_inst_rxoutclkpcs_out_UNCONNECTED(3 downto 0), + rxoutclksel_in(11 downto 0) => B"010010010010", + rxpcommaalignen_in(3 downto 0) => B"0000", + rxpcsreset_in(3 downto 0) => B"0000", + rxpd_in(7 downto 0) => B"00000000", + rxphalign_in(3 downto 0) => B"0000", + rxphaligndone_out(3 downto 0) => NLW_inst_rxphaligndone_out_UNCONNECTED(3 downto 0), + rxphalignen_in(3 downto 0) => B"0000", + rxphalignerr_out(3 downto 0) => NLW_inst_rxphalignerr_out_UNCONNECTED(3 downto 0), + rxphdlypd_in(3 downto 0) => B"1111", + rxphdlyreset_in(3 downto 0) => B"0000", + rxphovrden_in(3 downto 0) => B"0000", + rxpllclksel_in(7 downto 0) => B"00000000", + rxpmareset_in(3 downto 0) => B"0000", + rxpmaresetdone_out(3 downto 0) => rxpmaresetdone_out(3 downto 0), + rxpolarity_in(3 downto 0) => rxpolarity_in(3 downto 0), + rxprbscntreset_in(3 downto 0) => B"0000", + rxprbserr_out(3 downto 0) => NLW_inst_rxprbserr_out_UNCONNECTED(3 downto 0), + rxprbslocked_out(3 downto 0) => NLW_inst_rxprbslocked_out_UNCONNECTED(3 downto 0), + rxprbssel_in(15 downto 0) => B"0000000000000000", + rxprgdivresetdone_out(3 downto 0) => NLW_inst_rxprgdivresetdone_out_UNCONNECTED(3 downto 0), + rxprogdivreset_in(3 downto 0) => B"0000", + rxqpien_in(3 downto 0) => B"0000", + rxqpisenn_out(3 downto 0) => NLW_inst_rxqpisenn_out_UNCONNECTED(3 downto 0), + rxqpisenp_out(3 downto 0) => NLW_inst_rxqpisenp_out_UNCONNECTED(3 downto 0), + rxrate_in(11 downto 0) => B"000000000000", + rxratedone_out(3 downto 0) => rxratedone_out(3 downto 0), + rxratemode_in(3 downto 0) => B"0000", + rxrecclk0_sel_out(1 downto 0) => NLW_inst_rxrecclk0_sel_out_UNCONNECTED(1 downto 0), + rxrecclk0sel_out(0) => NLW_inst_rxrecclk0sel_out_UNCONNECTED(0), + rxrecclk1_sel_out(1 downto 0) => NLW_inst_rxrecclk1_sel_out_UNCONNECTED(1 downto 0), + rxrecclk1sel_out(0) => NLW_inst_rxrecclk1sel_out_UNCONNECTED(0), + rxrecclkout_out(3 downto 0) => NLW_inst_rxrecclkout_out_UNCONNECTED(3 downto 0), + rxresetdone_out(3 downto 0) => rxresetdone_out(3 downto 0), + rxslide_in(3 downto 0) => rxslide_in(3 downto 0), + rxsliderdy_out(3 downto 0) => NLW_inst_rxsliderdy_out_UNCONNECTED(3 downto 0), + rxslipdone_out(3 downto 0) => NLW_inst_rxslipdone_out_UNCONNECTED(3 downto 0), + rxslipoutclk_in(3 downto 0) => B"0000", + rxslipoutclkrdy_out(3 downto 0) => NLW_inst_rxslipoutclkrdy_out_UNCONNECTED(3 downto 0), + rxslippma_in(3 downto 0) => B"0000", + rxslippmardy_out(3 downto 0) => NLW_inst_rxslippmardy_out_UNCONNECTED(3 downto 0), + rxstartofseq_out(7 downto 0) => NLW_inst_rxstartofseq_out_UNCONNECTED(7 downto 0), + rxstatus_out(11 downto 0) => NLW_inst_rxstatus_out_UNCONNECTED(11 downto 0), + rxsyncallin_in(3 downto 0) => B"0000", + rxsyncdone_out(3 downto 0) => NLW_inst_rxsyncdone_out_UNCONNECTED(3 downto 0), + rxsyncin_in(3 downto 0) => B"0000", + rxsyncmode_in(3 downto 0) => B"0000", + rxsyncout_out(3 downto 0) => NLW_inst_rxsyncout_out_UNCONNECTED(3 downto 0), + rxsysclksel_in(7 downto 0) => B"00000000", + rxtermination_in(0) => '0', + rxuserrdy_in(3 downto 0) => B"1111", + rxusrclk2_in(3 downto 0) => rxusrclk2_in(3 downto 0), + rxusrclk_in(3 downto 0) => rxusrclk_in(3 downto 0), + rxvalid_out(3 downto 0) => NLW_inst_rxvalid_out_UNCONNECTED(3 downto 0), + sdm0data_in(0) => '0', + sdm0finalout_out(0) => NLW_inst_sdm0finalout_out_UNCONNECTED(0), + sdm0reset_in(0) => '0', + sdm0testdata_out(0) => NLW_inst_sdm0testdata_out_UNCONNECTED(0), + sdm0toggle_in(0) => '0', + sdm0width_in(0) => '0', + sdm1data_in(0) => '0', + sdm1finalout_out(0) => NLW_inst_sdm1finalout_out_UNCONNECTED(0), + sdm1reset_in(0) => '0', + sdm1testdata_out(0) => NLW_inst_sdm1testdata_out_UNCONNECTED(0), + sdm1toggle_in(0) => '0', + sdm1width_in(0) => '0', + sigvalidclk_in(3 downto 0) => B"0000", + tcongpi_in(0) => '0', + tcongpo_out(0) => NLW_inst_tcongpo_out_UNCONNECTED(0), + tconpowerup_in(0) => '0', + tconreset_in(0) => '0', + tconrsvdin1_in(0) => '0', + tconrsvdout0_out(0) => NLW_inst_tconrsvdout0_out_UNCONNECTED(0), + tstin_in(79 downto 0) => B"00000000000000000000000000000000000000000000000000000000000000000000000000000000", + tx8b10bbypass_in(31 downto 0) => B"00000000000000000000000000000000", + tx8b10ben_in(3 downto 0) => B"0000", + txbufdiffctrl_in(11 downto 0) => B"000000000000", + txbufstatus_out(7 downto 0) => NLW_inst_txbufstatus_out_UNCONNECTED(7 downto 0), + txcomfinish_out(3 downto 0) => NLW_inst_txcomfinish_out_UNCONNECTED(3 downto 0), + txcominit_in(3 downto 0) => B"0000", + txcomsas_in(3 downto 0) => B"0000", + txcomwake_in(3 downto 0) => B"0000", + txctrl0_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + txctrl1_in(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + txctrl2_in(31 downto 0) => B"00000000000000000000000000000000", + txdata_in(511 downto 0) => B"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + txdataextendrsvd_in(31 downto 0) => B"00000000000000000000000000000000", + txdccdone_out(0) => NLW_inst_txdccdone_out_UNCONNECTED(0), + txdccforcestart_in(0) => '0', + txdccreset_in(0) => '0', + txdeemph_in(3 downto 0) => B"0000", + txdetectrx_in(3 downto 0) => B"0000", + txdiffctrl_in(15 downto 0) => B"1100110011001100", + txdiffpd_in(3 downto 0) => B"0000", + txdlybypass_in(3 downto 0) => B"0000", + txdlyen_in(3 downto 0) => B"0000", + txdlyhold_in(3 downto 0) => B"0000", + txdlyovrden_in(3 downto 0) => B"0000", + txdlysreset_in(3 downto 0) => B"0000", + txdlysresetdone_out(3 downto 0) => NLW_inst_txdlysresetdone_out_UNCONNECTED(3 downto 0), + txdlyupdown_in(3 downto 0) => B"0000", + txelecidle_in(3 downto 0) => B"0000", + txelforcestart_in(0) => '0', + txheader_in(23 downto 0) => B"000000000000000000000000", + txinhibit_in(3 downto 0) => B"0000", + txlatclk_in(3 downto 0) => B"0000", + txlfpstreset_in(0) => '0', + txlfpsu2lpexit_in(0) => '0', + txlfpsu3wake_in(0) => '0', + txmaincursor_in(27 downto 0) => B"1000000100000010000001000000", + txmargin_in(11 downto 0) => B"000000000000", + txmuxdcdexhold_in(0) => '0', + txmuxdcdorwren_in(0) => '0', + txoneszeros_in(0) => '0', + txoutclk_out(3 downto 0) => txoutclk_out(3 downto 0), + txoutclkfabric_out(3 downto 0) => NLW_inst_txoutclkfabric_out_UNCONNECTED(3 downto 0), + txoutclkpcs_out(3 downto 0) => NLW_inst_txoutclkpcs_out_UNCONNECTED(3 downto 0), + txoutclksel_in(11 downto 0) => B"101101101101", + txpcsreset_in(3 downto 0) => B"0000", + txpd_in(7 downto 0) => B"00000000", + txpdelecidlemode_in(3 downto 0) => B"0000", + txphalign_in(3 downto 0) => B"0000", + txphaligndone_out(3 downto 0) => NLW_inst_txphaligndone_out_UNCONNECTED(3 downto 0), + txphalignen_in(3 downto 0) => B"0000", + txphdlypd_in(3 downto 0) => B"0000", + txphdlyreset_in(3 downto 0) => B"0000", + txphdlytstclk_in(3 downto 0) => B"0000", + txphinit_in(3 downto 0) => B"0000", + txphinitdone_out(3 downto 0) => NLW_inst_txphinitdone_out_UNCONNECTED(3 downto 0), + txphovrden_in(3 downto 0) => B"0000", + txpippmen_in(3 downto 0) => B"0000", + txpippmovrden_in(3 downto 0) => B"0000", + txpippmpd_in(3 downto 0) => B"0000", + txpippmsel_in(3 downto 0) => B"0000", + txpippmstepsize_in(19 downto 0) => B"00000000000000000000", + txpisopd_in(3 downto 0) => B"0000", + txpllclksel_in(7 downto 0) => B"10101010", + txpmareset_in(3 downto 0) => B"0000", + txpmaresetdone_out(3 downto 0) => txpmaresetdone_out(3 downto 0), + txpolarity_in(3 downto 0) => txpolarity_in(3 downto 0), + txpostcursor_in(19 downto 0) => B"00000000000000000000", + txpostcursorinv_in(3 downto 0) => B"0000", + txprbsforceerr_in(3 downto 0) => B"0000", + txprbssel_in(15 downto 0) => B"0000000000000000", + txprecursor_in(19 downto 0) => B"00000000000000000000", + txprecursorinv_in(3 downto 0) => B"0000", + txprgdivresetdone_out(3 downto 0) => txprgdivresetdone_out(3 downto 0), + txprogdivreset_in(3 downto 0) => B"0000", + txqpibiasen_in(3 downto 0) => B"0000", + txqpisenn_out(3 downto 0) => NLW_inst_txqpisenn_out_UNCONNECTED(3 downto 0), + txqpisenp_out(3 downto 0) => NLW_inst_txqpisenp_out_UNCONNECTED(3 downto 0), + txqpistrongpdown_in(3 downto 0) => B"0000", + txqpiweakpup_in(3 downto 0) => B"0000", + txrate_in(11 downto 0) => B"000000000000", + txratedone_out(3 downto 0) => NLW_inst_txratedone_out_UNCONNECTED(3 downto 0), + txratemode_in(3 downto 0) => B"0000", + txresetdone_out(3 downto 0) => txresetdone_out(3 downto 0), + txsequence_in(27 downto 0) => B"0000000000000000000000000000", + txswing_in(3 downto 0) => B"0000", + txsyncallin_in(3 downto 0) => B"0000", + txsyncdone_out(3 downto 0) => NLW_inst_txsyncdone_out_UNCONNECTED(3 downto 0), + txsyncin_in(3 downto 0) => B"0000", + txsyncmode_in(3 downto 0) => B"0000", + txsyncout_out(3 downto 0) => NLW_inst_txsyncout_out_UNCONNECTED(3 downto 0), + txsysclksel_in(7 downto 0) => B"11111111", + txuserrdy_in(3 downto 0) => B"1111", + txusrclk2_in(3 downto 0) => txusrclk2_in(3 downto 0), + txusrclk_in(3 downto 0) => txusrclk_in(3 downto 0), + ubcfgstreamen_in(0) => '0', + ubdaddr_out(0) => NLW_inst_ubdaddr_out_UNCONNECTED(0), + ubden_out(0) => NLW_inst_ubden_out_UNCONNECTED(0), + ubdi_out(0) => NLW_inst_ubdi_out_UNCONNECTED(0), + ubdo_in(0) => '0', + ubdrdy_in(0) => '0', + ubdwe_out(0) => NLW_inst_ubdwe_out_UNCONNECTED(0), + ubenable_in(0) => '0', + ubgpi_in(0) => '0', + ubintr_in(0) => '0', + ubiolmbrst_in(0) => '0', + ubmbrst_in(0) => '0', + ubmdmcapture_in(0) => '0', + ubmdmdbgrst_in(0) => '0', + ubmdmdbgupdate_in(0) => '0', + ubmdmregen_in(0) => '0', + ubmdmshift_in(0) => '0', + ubmdmsysrst_in(0) => '0', + ubmdmtck_in(0) => '0', + ubmdmtdi_in(0) => '0', + ubmdmtdo_out(0) => NLW_inst_ubmdmtdo_out_UNCONNECTED(0), + ubrsvdout_out(0) => NLW_inst_ubrsvdout_out_UNCONNECTED(0), + ubtxuart_out(0) => NLW_inst_ubtxuart_out_UNCONNECTED(0) + ); +end STRUCTURE; diff --git a/sources/ip_cores/sim/fifo_generator_fe_sim_netlist.vhdl b/sources/ip_cores/sim/fifo_generator_fe_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..a0ba0d7c940f5c47f5adb74b746ae9b22e78ccc1 --- /dev/null +++ b/sources/ip_cores/sim/fifo_generator_fe_sim_netlist.vhdl @@ -0,0 +1,4842 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Fri Jun 14 11:28:36 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FELIG/FLX712_FELIG.gen/sources_1/ip/fifo_generator_fe/fifo_generator_fe_sim_netlist.vhdl +-- Design : fifo_generator_fe +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity fifo_generator_fe_xpm_cdc_gray is + port ( + src_clk : in STD_LOGIC; + src_in_bin : in STD_LOGIC_VECTOR ( 5 downto 0 ); + dest_clk : in STD_LOGIC; + dest_out_bin : out STD_LOGIC_VECTOR ( 5 downto 0 ) + ); + attribute DEST_SYNC_FF : integer; + attribute DEST_SYNC_FF of fifo_generator_fe_xpm_cdc_gray : entity is 2; + attribute INIT_SYNC_FF : integer; + attribute INIT_SYNC_FF of fifo_generator_fe_xpm_cdc_gray : entity is 0; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of fifo_generator_fe_xpm_cdc_gray : entity is "xpm_cdc_gray"; + attribute REG_OUTPUT : integer; + attribute REG_OUTPUT of fifo_generator_fe_xpm_cdc_gray : entity is 1; + attribute SIM_ASSERT_CHK : integer; + attribute SIM_ASSERT_CHK of fifo_generator_fe_xpm_cdc_gray : entity is 0; + attribute SIM_LOSSLESS_GRAY_CHK : integer; + attribute SIM_LOSSLESS_GRAY_CHK of fifo_generator_fe_xpm_cdc_gray : entity is 0; + attribute VERSION : integer; + attribute VERSION of fifo_generator_fe_xpm_cdc_gray : entity is 0; + attribute WIDTH : integer; + attribute WIDTH of fifo_generator_fe_xpm_cdc_gray : entity is 6; + attribute XPM_MODULE : string; + attribute XPM_MODULE of fifo_generator_fe_xpm_cdc_gray : entity is "TRUE"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of fifo_generator_fe_xpm_cdc_gray : entity is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of fifo_generator_fe_xpm_cdc_gray : entity is "true"; + attribute xpm_cdc : string; + attribute xpm_cdc of fifo_generator_fe_xpm_cdc_gray : entity is "GRAY"; +end fifo_generator_fe_xpm_cdc_gray; + +architecture STRUCTURE of fifo_generator_fe_xpm_cdc_gray is + signal async_path : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal binval : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal \dest_graysync_ff[0]\ : STD_LOGIC_VECTOR ( 5 downto 0 ); + attribute RTL_KEEP : string; + attribute RTL_KEEP of \dest_graysync_ff[0]\ : signal is "true"; + attribute async_reg : string; + attribute async_reg of \dest_graysync_ff[0]\ : signal is "true"; + attribute xpm_cdc of \dest_graysync_ff[0]\ : signal is "GRAY"; + signal \dest_graysync_ff[1]\ : STD_LOGIC_VECTOR ( 5 downto 0 ); + attribute RTL_KEEP of \dest_graysync_ff[1]\ : signal is "true"; + attribute async_reg of \dest_graysync_ff[1]\ : signal is "true"; + attribute xpm_cdc of \dest_graysync_ff[1]\ : signal is "GRAY"; + signal gray_enc : STD_LOGIC_VECTOR ( 4 downto 0 ); + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][0]\ : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of \dest_graysync_ff_reg[0][0]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][0]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][1]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][1]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][1]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][2]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][2]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][2]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][3]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][3]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][3]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][4]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][4]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][4]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][5]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][5]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][5]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][0]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][0]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][0]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][1]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][1]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][1]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][2]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][2]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][2]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][3]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][3]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][3]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][4]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][4]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][4]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][5]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][5]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][5]\ : label is "GRAY"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \src_gray_ff[0]_i_1\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \src_gray_ff[1]_i_1\ : label is "soft_lutpair2"; + attribute SOFT_HLUTNM of \src_gray_ff[2]_i_1\ : label is "soft_lutpair3"; + attribute SOFT_HLUTNM of \src_gray_ff[3]_i_1\ : label is "soft_lutpair3"; +begin +\dest_graysync_ff_reg[0][0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(0), + Q => \dest_graysync_ff[0]\(0), + R => '0' + ); +\dest_graysync_ff_reg[0][1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(1), + Q => \dest_graysync_ff[0]\(1), + R => '0' + ); +\dest_graysync_ff_reg[0][2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(2), + Q => \dest_graysync_ff[0]\(2), + R => '0' + ); +\dest_graysync_ff_reg[0][3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(3), + Q => \dest_graysync_ff[0]\(3), + R => '0' + ); +\dest_graysync_ff_reg[0][4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(4), + Q => \dest_graysync_ff[0]\(4), + R => '0' + ); +\dest_graysync_ff_reg[0][5]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(5), + Q => \dest_graysync_ff[0]\(5), + R => '0' + ); +\dest_graysync_ff_reg[1][0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(0), + Q => \dest_graysync_ff[1]\(0), + R => '0' + ); +\dest_graysync_ff_reg[1][1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(1), + Q => \dest_graysync_ff[1]\(1), + R => '0' + ); +\dest_graysync_ff_reg[1][2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(2), + Q => \dest_graysync_ff[1]\(2), + R => '0' + ); +\dest_graysync_ff_reg[1][3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(3), + Q => \dest_graysync_ff[1]\(3), + R => '0' + ); +\dest_graysync_ff_reg[1][4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(4), + Q => \dest_graysync_ff[1]\(4), + R => '0' + ); +\dest_graysync_ff_reg[1][5]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(5), + Q => \dest_graysync_ff[1]\(5), + R => '0' + ); +\dest_out_bin_ff[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"6996966996696996" + ) + port map ( + I0 => \dest_graysync_ff[1]\(0), + I1 => \dest_graysync_ff[1]\(2), + I2 => \dest_graysync_ff[1]\(4), + I3 => \dest_graysync_ff[1]\(5), + I4 => \dest_graysync_ff[1]\(3), + I5 => \dest_graysync_ff[1]\(1), + O => binval(0) + ); +\dest_out_bin_ff[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"96696996" + ) + port map ( + I0 => \dest_graysync_ff[1]\(1), + I1 => \dest_graysync_ff[1]\(3), + I2 => \dest_graysync_ff[1]\(5), + I3 => \dest_graysync_ff[1]\(4), + I4 => \dest_graysync_ff[1]\(2), + O => binval(1) + ); +\dest_out_bin_ff[2]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"6996" + ) + port map ( + I0 => \dest_graysync_ff[1]\(2), + I1 => \dest_graysync_ff[1]\(4), + I2 => \dest_graysync_ff[1]\(5), + I3 => \dest_graysync_ff[1]\(3), + O => binval(2) + ); +\dest_out_bin_ff[3]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"96" + ) + port map ( + I0 => \dest_graysync_ff[1]\(3), + I1 => \dest_graysync_ff[1]\(5), + I2 => \dest_graysync_ff[1]\(4), + O => binval(3) + ); +\dest_out_bin_ff[4]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => \dest_graysync_ff[1]\(4), + I1 => \dest_graysync_ff[1]\(5), + O => binval(4) + ); +\dest_out_bin_ff_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(0), + Q => dest_out_bin(0), + R => '0' + ); +\dest_out_bin_ff_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(1), + Q => dest_out_bin(1), + R => '0' + ); +\dest_out_bin_ff_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(2), + Q => dest_out_bin(2), + R => '0' + ); +\dest_out_bin_ff_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(3), + Q => dest_out_bin(3), + R => '0' + ); +\dest_out_bin_ff_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(4), + Q => dest_out_bin(4), + R => '0' + ); +\dest_out_bin_ff_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[1]\(5), + Q => dest_out_bin(5), + R => '0' + ); +\src_gray_ff[0]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(1), + I1 => src_in_bin(0), + O => gray_enc(0) + ); +\src_gray_ff[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(2), + I1 => src_in_bin(1), + O => gray_enc(1) + ); +\src_gray_ff[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(3), + I1 => src_in_bin(2), + O => gray_enc(2) + ); +\src_gray_ff[3]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(4), + I1 => src_in_bin(3), + O => gray_enc(3) + ); +\src_gray_ff[4]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(5), + I1 => src_in_bin(4), + O => gray_enc(4) + ); +\src_gray_ff_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(0), + Q => async_path(0), + R => '0' + ); +\src_gray_ff_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(1), + Q => async_path(1), + R => '0' + ); +\src_gray_ff_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(2), + Q => async_path(2), + R => '0' + ); +\src_gray_ff_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(3), + Q => async_path(3), + R => '0' + ); +\src_gray_ff_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(4), + Q => async_path(4), + R => '0' + ); +\src_gray_ff_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => src_in_bin(5), + Q => async_path(5), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \fifo_generator_fe_xpm_cdc_gray__2\ is + port ( + src_clk : in STD_LOGIC; + src_in_bin : in STD_LOGIC_VECTOR ( 5 downto 0 ); + dest_clk : in STD_LOGIC; + dest_out_bin : out STD_LOGIC_VECTOR ( 5 downto 0 ) + ); + attribute DEST_SYNC_FF : integer; + attribute DEST_SYNC_FF of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is 2; + attribute INIT_SYNC_FF : integer; + attribute INIT_SYNC_FF of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is 0; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is "xpm_cdc_gray"; + attribute REG_OUTPUT : integer; + attribute REG_OUTPUT of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is 1; + attribute SIM_ASSERT_CHK : integer; + attribute SIM_ASSERT_CHK of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is 0; + attribute SIM_LOSSLESS_GRAY_CHK : integer; + attribute SIM_LOSSLESS_GRAY_CHK of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is 0; + attribute VERSION : integer; + attribute VERSION of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is 0; + attribute WIDTH : integer; + attribute WIDTH of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is 6; + attribute XPM_MODULE : string; + attribute XPM_MODULE of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is "TRUE"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is "true"; + attribute xpm_cdc : string; + attribute xpm_cdc of \fifo_generator_fe_xpm_cdc_gray__2\ : entity is "GRAY"; +end \fifo_generator_fe_xpm_cdc_gray__2\; + +architecture STRUCTURE of \fifo_generator_fe_xpm_cdc_gray__2\ is + signal async_path : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal binval : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal \dest_graysync_ff[0]\ : STD_LOGIC_VECTOR ( 5 downto 0 ); + attribute RTL_KEEP : string; + attribute RTL_KEEP of \dest_graysync_ff[0]\ : signal is "true"; + attribute async_reg : string; + attribute async_reg of \dest_graysync_ff[0]\ : signal is "true"; + attribute xpm_cdc of \dest_graysync_ff[0]\ : signal is "GRAY"; + signal \dest_graysync_ff[1]\ : STD_LOGIC_VECTOR ( 5 downto 0 ); + attribute RTL_KEEP of \dest_graysync_ff[1]\ : signal is "true"; + attribute async_reg of \dest_graysync_ff[1]\ : signal is "true"; + attribute xpm_cdc of \dest_graysync_ff[1]\ : signal is "GRAY"; + signal gray_enc : STD_LOGIC_VECTOR ( 4 downto 0 ); + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][0]\ : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of \dest_graysync_ff_reg[0][0]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][0]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][1]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][1]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][1]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][2]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][2]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][2]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][3]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][3]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][3]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][4]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][4]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][4]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[0][5]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[0][5]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[0][5]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][0]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][0]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][0]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][1]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][1]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][1]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][2]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][2]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][2]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][3]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][3]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][3]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][4]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][4]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][4]\ : label is "GRAY"; + attribute ASYNC_REG_boolean of \dest_graysync_ff_reg[1][5]\ : label is std.standard.true; + attribute KEEP of \dest_graysync_ff_reg[1][5]\ : label is "true"; + attribute XPM_CDC of \dest_graysync_ff_reg[1][5]\ : label is "GRAY"; + attribute SOFT_HLUTNM : string; + attribute SOFT_HLUTNM of \src_gray_ff[0]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \src_gray_ff[1]_i_1\ : label is "soft_lutpair0"; + attribute SOFT_HLUTNM of \src_gray_ff[2]_i_1\ : label is "soft_lutpair1"; + attribute SOFT_HLUTNM of \src_gray_ff[3]_i_1\ : label is "soft_lutpair1"; +begin +\dest_graysync_ff_reg[0][0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(0), + Q => \dest_graysync_ff[0]\(0), + R => '0' + ); +\dest_graysync_ff_reg[0][1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(1), + Q => \dest_graysync_ff[0]\(1), + R => '0' + ); +\dest_graysync_ff_reg[0][2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(2), + Q => \dest_graysync_ff[0]\(2), + R => '0' + ); +\dest_graysync_ff_reg[0][3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(3), + Q => \dest_graysync_ff[0]\(3), + R => '0' + ); +\dest_graysync_ff_reg[0][4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(4), + Q => \dest_graysync_ff[0]\(4), + R => '0' + ); +\dest_graysync_ff_reg[0][5]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => async_path(5), + Q => \dest_graysync_ff[0]\(5), + R => '0' + ); +\dest_graysync_ff_reg[1][0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(0), + Q => \dest_graysync_ff[1]\(0), + R => '0' + ); +\dest_graysync_ff_reg[1][1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(1), + Q => \dest_graysync_ff[1]\(1), + R => '0' + ); +\dest_graysync_ff_reg[1][2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(2), + Q => \dest_graysync_ff[1]\(2), + R => '0' + ); +\dest_graysync_ff_reg[1][3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(3), + Q => \dest_graysync_ff[1]\(3), + R => '0' + ); +\dest_graysync_ff_reg[1][4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(4), + Q => \dest_graysync_ff[1]\(4), + R => '0' + ); +\dest_graysync_ff_reg[1][5]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[0]\(5), + Q => \dest_graysync_ff[1]\(5), + R => '0' + ); +\dest_out_bin_ff[0]_i_1\: unisim.vcomponents.LUT6 + generic map( + INIT => X"6996966996696996" + ) + port map ( + I0 => \dest_graysync_ff[1]\(0), + I1 => \dest_graysync_ff[1]\(2), + I2 => \dest_graysync_ff[1]\(4), + I3 => \dest_graysync_ff[1]\(5), + I4 => \dest_graysync_ff[1]\(3), + I5 => \dest_graysync_ff[1]\(1), + O => binval(0) + ); +\dest_out_bin_ff[1]_i_1\: unisim.vcomponents.LUT5 + generic map( + INIT => X"96696996" + ) + port map ( + I0 => \dest_graysync_ff[1]\(1), + I1 => \dest_graysync_ff[1]\(3), + I2 => \dest_graysync_ff[1]\(5), + I3 => \dest_graysync_ff[1]\(4), + I4 => \dest_graysync_ff[1]\(2), + O => binval(1) + ); +\dest_out_bin_ff[2]_i_1\: unisim.vcomponents.LUT4 + generic map( + INIT => X"6996" + ) + port map ( + I0 => \dest_graysync_ff[1]\(2), + I1 => \dest_graysync_ff[1]\(4), + I2 => \dest_graysync_ff[1]\(5), + I3 => \dest_graysync_ff[1]\(3), + O => binval(2) + ); +\dest_out_bin_ff[3]_i_1\: unisim.vcomponents.LUT3 + generic map( + INIT => X"96" + ) + port map ( + I0 => \dest_graysync_ff[1]\(3), + I1 => \dest_graysync_ff[1]\(5), + I2 => \dest_graysync_ff[1]\(4), + O => binval(3) + ); +\dest_out_bin_ff[4]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => \dest_graysync_ff[1]\(4), + I1 => \dest_graysync_ff[1]\(5), + O => binval(4) + ); +\dest_out_bin_ff_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(0), + Q => dest_out_bin(0), + R => '0' + ); +\dest_out_bin_ff_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(1), + Q => dest_out_bin(1), + R => '0' + ); +\dest_out_bin_ff_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(2), + Q => dest_out_bin(2), + R => '0' + ); +\dest_out_bin_ff_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(3), + Q => dest_out_bin(3), + R => '0' + ); +\dest_out_bin_ff_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => binval(4), + Q => dest_out_bin(4), + R => '0' + ); +\dest_out_bin_ff_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => \dest_graysync_ff[1]\(5), + Q => dest_out_bin(5), + R => '0' + ); +\src_gray_ff[0]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(1), + I1 => src_in_bin(0), + O => gray_enc(0) + ); +\src_gray_ff[1]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(2), + I1 => src_in_bin(1), + O => gray_enc(1) + ); +\src_gray_ff[2]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(3), + I1 => src_in_bin(2), + O => gray_enc(2) + ); +\src_gray_ff[3]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(4), + I1 => src_in_bin(3), + O => gray_enc(3) + ); +\src_gray_ff[4]_i_1\: unisim.vcomponents.LUT2 + generic map( + INIT => X"6" + ) + port map ( + I0 => src_in_bin(5), + I1 => src_in_bin(4), + O => gray_enc(4) + ); +\src_gray_ff_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(0), + Q => async_path(0), + R => '0' + ); +\src_gray_ff_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(1), + Q => async_path(1), + R => '0' + ); +\src_gray_ff_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(2), + Q => async_path(2), + R => '0' + ); +\src_gray_ff_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(3), + Q => async_path(3), + R => '0' + ); +\src_gray_ff_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => gray_enc(4), + Q => async_path(4), + R => '0' + ); +\src_gray_ff_reg[5]\: unisim.vcomponents.FDRE + port map ( + C => src_clk, + CE => '1', + D => src_in_bin(5), + Q => async_path(5), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity fifo_generator_fe_xpm_cdc_single is + port ( + src_clk : in STD_LOGIC; + src_in : in STD_LOGIC; + dest_clk : in STD_LOGIC; + dest_out : out STD_LOGIC + ); + attribute DEST_SYNC_FF : integer; + attribute DEST_SYNC_FF of fifo_generator_fe_xpm_cdc_single : entity is 5; + attribute INIT_SYNC_FF : integer; + attribute INIT_SYNC_FF of fifo_generator_fe_xpm_cdc_single : entity is 0; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of fifo_generator_fe_xpm_cdc_single : entity is "xpm_cdc_single"; + attribute SIM_ASSERT_CHK : integer; + attribute SIM_ASSERT_CHK of fifo_generator_fe_xpm_cdc_single : entity is 0; + attribute SRC_INPUT_REG : integer; + attribute SRC_INPUT_REG of fifo_generator_fe_xpm_cdc_single : entity is 0; + attribute VERSION : integer; + attribute VERSION of fifo_generator_fe_xpm_cdc_single : entity is 0; + attribute XPM_MODULE : string; + attribute XPM_MODULE of fifo_generator_fe_xpm_cdc_single : entity is "TRUE"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of fifo_generator_fe_xpm_cdc_single : entity is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of fifo_generator_fe_xpm_cdc_single : entity is "true"; + attribute xpm_cdc : string; + attribute xpm_cdc of fifo_generator_fe_xpm_cdc_single : entity is "SINGLE"; +end fifo_generator_fe_xpm_cdc_single; + +architecture STRUCTURE of fifo_generator_fe_xpm_cdc_single is + signal syncstages_ff : STD_LOGIC_VECTOR ( 4 downto 0 ); + attribute RTL_KEEP : string; + attribute RTL_KEEP of syncstages_ff : signal is "true"; + attribute async_reg : string; + attribute async_reg of syncstages_ff : signal is "true"; + attribute xpm_cdc of syncstages_ff : signal is "SINGLE"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[0]\ : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of \syncstages_ff_reg[0]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[0]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[1]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[1]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[1]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[2]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[2]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[2]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[3]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[3]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[3]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[4]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[4]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[4]\ : label is "SINGLE"; +begin + dest_out <= syncstages_ff(4); +\syncstages_ff_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => src_in, + Q => syncstages_ff(0), + R => '0' + ); +\syncstages_ff_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(0), + Q => syncstages_ff(1), + R => '0' + ); +\syncstages_ff_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(1), + Q => syncstages_ff(2), + R => '0' + ); +\syncstages_ff_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(2), + Q => syncstages_ff(3), + R => '0' + ); +\syncstages_ff_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(3), + Q => syncstages_ff(4), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \fifo_generator_fe_xpm_cdc_single__2\ is + port ( + src_clk : in STD_LOGIC; + src_in : in STD_LOGIC; + dest_clk : in STD_LOGIC; + dest_out : out STD_LOGIC + ); + attribute DEST_SYNC_FF : integer; + attribute DEST_SYNC_FF of \fifo_generator_fe_xpm_cdc_single__2\ : entity is 5; + attribute INIT_SYNC_FF : integer; + attribute INIT_SYNC_FF of \fifo_generator_fe_xpm_cdc_single__2\ : entity is 0; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \fifo_generator_fe_xpm_cdc_single__2\ : entity is "xpm_cdc_single"; + attribute SIM_ASSERT_CHK : integer; + attribute SIM_ASSERT_CHK of \fifo_generator_fe_xpm_cdc_single__2\ : entity is 0; + attribute SRC_INPUT_REG : integer; + attribute SRC_INPUT_REG of \fifo_generator_fe_xpm_cdc_single__2\ : entity is 0; + attribute VERSION : integer; + attribute VERSION of \fifo_generator_fe_xpm_cdc_single__2\ : entity is 0; + attribute XPM_MODULE : string; + attribute XPM_MODULE of \fifo_generator_fe_xpm_cdc_single__2\ : entity is "TRUE"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of \fifo_generator_fe_xpm_cdc_single__2\ : entity is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of \fifo_generator_fe_xpm_cdc_single__2\ : entity is "true"; + attribute xpm_cdc : string; + attribute xpm_cdc of \fifo_generator_fe_xpm_cdc_single__2\ : entity is "SINGLE"; +end \fifo_generator_fe_xpm_cdc_single__2\; + +architecture STRUCTURE of \fifo_generator_fe_xpm_cdc_single__2\ is + signal syncstages_ff : STD_LOGIC_VECTOR ( 4 downto 0 ); + attribute RTL_KEEP : string; + attribute RTL_KEEP of syncstages_ff : signal is "true"; + attribute async_reg : string; + attribute async_reg of syncstages_ff : signal is "true"; + attribute xpm_cdc of syncstages_ff : signal is "SINGLE"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[0]\ : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of \syncstages_ff_reg[0]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[0]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[1]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[1]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[1]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[2]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[2]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[2]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[3]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[3]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[3]\ : label is "SINGLE"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[4]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[4]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[4]\ : label is "SINGLE"; +begin + dest_out <= syncstages_ff(4); +\syncstages_ff_reg[0]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => src_in, + Q => syncstages_ff(0), + R => '0' + ); +\syncstages_ff_reg[1]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(0), + Q => syncstages_ff(1), + R => '0' + ); +\syncstages_ff_reg[2]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(1), + Q => syncstages_ff(2), + R => '0' + ); +\syncstages_ff_reg[3]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(2), + Q => syncstages_ff(3), + R => '0' + ); +\syncstages_ff_reg[4]\: unisim.vcomponents.FDRE + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(3), + Q => syncstages_ff(4), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity fifo_generator_fe_xpm_cdc_sync_rst is + port ( + src_rst : in STD_LOGIC; + dest_clk : in STD_LOGIC; + dest_rst : out STD_LOGIC + ); + attribute DEF_VAL : string; + attribute DEF_VAL of fifo_generator_fe_xpm_cdc_sync_rst : entity is "1'b1"; + attribute DEST_SYNC_FF : integer; + attribute DEST_SYNC_FF of fifo_generator_fe_xpm_cdc_sync_rst : entity is 5; + attribute INIT : string; + attribute INIT of fifo_generator_fe_xpm_cdc_sync_rst : entity is "1"; + attribute INIT_SYNC_FF : integer; + attribute INIT_SYNC_FF of fifo_generator_fe_xpm_cdc_sync_rst : entity is 0; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of fifo_generator_fe_xpm_cdc_sync_rst : entity is "xpm_cdc_sync_rst"; + attribute SIM_ASSERT_CHK : integer; + attribute SIM_ASSERT_CHK of fifo_generator_fe_xpm_cdc_sync_rst : entity is 0; + attribute VERSION : integer; + attribute VERSION of fifo_generator_fe_xpm_cdc_sync_rst : entity is 0; + attribute XPM_MODULE : string; + attribute XPM_MODULE of fifo_generator_fe_xpm_cdc_sync_rst : entity is "TRUE"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of fifo_generator_fe_xpm_cdc_sync_rst : entity is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of fifo_generator_fe_xpm_cdc_sync_rst : entity is "true"; + attribute xpm_cdc : string; + attribute xpm_cdc of fifo_generator_fe_xpm_cdc_sync_rst : entity is "SYNC_RST"; +end fifo_generator_fe_xpm_cdc_sync_rst; + +architecture STRUCTURE of fifo_generator_fe_xpm_cdc_sync_rst is + signal syncstages_ff : STD_LOGIC_VECTOR ( 4 downto 0 ); + attribute RTL_KEEP : string; + attribute RTL_KEEP of syncstages_ff : signal is "true"; + attribute async_reg : string; + attribute async_reg of syncstages_ff : signal is "true"; + attribute xpm_cdc of syncstages_ff : signal is "SYNC_RST"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[0]\ : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of \syncstages_ff_reg[0]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[0]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[1]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[1]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[1]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[2]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[2]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[2]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[3]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[3]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[3]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[4]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[4]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[4]\ : label is "SYNC_RST"; +begin + dest_rst <= syncstages_ff(4); +\syncstages_ff_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => src_rst, + Q => syncstages_ff(0), + R => '0' + ); +\syncstages_ff_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(0), + Q => syncstages_ff(1), + R => '0' + ); +\syncstages_ff_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(1), + Q => syncstages_ff(2), + R => '0' + ); +\syncstages_ff_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(2), + Q => syncstages_ff(3), + R => '0' + ); +\syncstages_ff_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(3), + Q => syncstages_ff(4), + R => '0' + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity \fifo_generator_fe_xpm_cdc_sync_rst__2\ is + port ( + src_rst : in STD_LOGIC; + dest_clk : in STD_LOGIC; + dest_rst : out STD_LOGIC + ); + attribute DEF_VAL : string; + attribute DEF_VAL of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is "1'b1"; + attribute DEST_SYNC_FF : integer; + attribute DEST_SYNC_FF of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is 5; + attribute INIT : string; + attribute INIT of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is "1"; + attribute INIT_SYNC_FF : integer; + attribute INIT_SYNC_FF of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is 0; + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is "xpm_cdc_sync_rst"; + attribute SIM_ASSERT_CHK : integer; + attribute SIM_ASSERT_CHK of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is 0; + attribute VERSION : integer; + attribute VERSION of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is 0; + attribute XPM_MODULE : string; + attribute XPM_MODULE of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is "TRUE"; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is "true"; + attribute xpm_cdc : string; + attribute xpm_cdc of \fifo_generator_fe_xpm_cdc_sync_rst__2\ : entity is "SYNC_RST"; +end \fifo_generator_fe_xpm_cdc_sync_rst__2\; + +architecture STRUCTURE of \fifo_generator_fe_xpm_cdc_sync_rst__2\ is + signal syncstages_ff : STD_LOGIC_VECTOR ( 4 downto 0 ); + attribute RTL_KEEP : string; + attribute RTL_KEEP of syncstages_ff : signal is "true"; + attribute async_reg : string; + attribute async_reg of syncstages_ff : signal is "true"; + attribute xpm_cdc of syncstages_ff : signal is "SYNC_RST"; + attribute ASYNC_REG_boolean : boolean; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[0]\ : label is std.standard.true; + attribute KEEP : string; + attribute KEEP of \syncstages_ff_reg[0]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[0]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[1]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[1]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[1]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[2]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[2]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[2]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[3]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[3]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[3]\ : label is "SYNC_RST"; + attribute ASYNC_REG_boolean of \syncstages_ff_reg[4]\ : label is std.standard.true; + attribute KEEP of \syncstages_ff_reg[4]\ : label is "true"; + attribute XPM_CDC of \syncstages_ff_reg[4]\ : label is "SYNC_RST"; +begin + dest_rst <= syncstages_ff(4); +\syncstages_ff_reg[0]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => src_rst, + Q => syncstages_ff(0), + R => '0' + ); +\syncstages_ff_reg[1]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(0), + Q => syncstages_ff(1), + R => '0' + ); +\syncstages_ff_reg[2]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(1), + Q => syncstages_ff(2), + R => '0' + ); +\syncstages_ff_reg[3]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(2), + Q => syncstages_ff(3), + R => '0' + ); +\syncstages_ff_reg[4]\: unisim.vcomponents.FDRE + generic map( + INIT => '1' + ) + port map ( + C => dest_clk, + CE => '1', + D => syncstages_ff(3), + Q => syncstages_ff(4), + R => '0' + ); +end STRUCTURE; +`protect begin_protected +`protect version = 1 +`protect encrypt_agent = "XILINX" +`protect encrypt_agent_info = "Xilinx Encryption Tool 2024.1" +`protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +RSqbsRZSIb+QlYJMfFv1T7uHQ7PiCEXQkl687MHGm2LgPB15GIYcPmqKUSXgtkLsIFes91PTAyyB +9H9cyY4ZUxedcRg/9ZOB5pm3zPqAbcvGPmg1ivMhr/MlS19t5lYKM2tQo+0Yd+arJXlVZu2BMnvn ++I3G9t9tJuWUIWKjI+I= + +`protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +VRSQ05ZaB6bIhFIQ823mTvlJaG9+5iW5C3+KxGjq0sq9ziCshKOLpOGPDMmOWDqA4uBaxC5IKISr +w8+A8mqbYjXo5m1g8sGjNaETS0HKJsK+l5Y++tN4IEUs+DwxgrPR/+LWtChuOzVkfC7BG3LVUEMj +zM3GAyGcXGJ3sdBItZAfsevyiy7kr4Fw+nk2hWytGteu1NZk3VzPE7KQHLkOlHBPXf6P0j8LpKcr +2oNDgQ/WaEmg6OOvFeJuaWDaee8Sn6wKP/caMyoGdSeczsPtRrJeoSRlbNHlxhCv7zg+Cn2AgwrR +PTqGsMrkhv9U0sq+waS0CmwChsk4WB7RspGYUg== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +tNziOjCznlvIl4dadmB9r23Duf+HQHWOuHmupEU3PJxrazHVtZdNKspG9sRXhF9mjbpnSiKYCdFK +Jr9W/dxUid36faFIPKQazVTuOiE0hkzVQAGpYxXjT/ITB/9EFBvgvP5L3EAhHv32x6MA1vkFSI7x +HrZ09YNFEF6T7DPTZE4= + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +QCYfxgkUHlX1cre1q9aS3sVDIOX36YBK4ZwJXAVUwA6f1OQ77XibjpWJHt5FK9F0PcYp/j21pqzO +BRdkDcFLVAjxER4J5t5iMVhoeMk+3fpiKfYrm4WFl1ygsJsfFJP0jqO1OkjC8iFBtm3n6b7CTl1o +cjBbcBp8UgW6E8rf5inXA0dRqybnyxKJSnMFYLinvpVU6QEc4OKO7mi/i/s9p/efiP+CdQf0yDRU +Fw7o7x0D7tjBv943g5L+4wGZ2JYU+ISqn4Ajxy/bWTTJDe6T/15evhngS61MC8Xjamzc4YLZBP8o +ShfSLoeZeO+Hk5n3xzJRghM0DQ6Sj7NqXFY68w== + +`protect key_keyowner="Real Intent", key_keyname="RI-RSA-KEY-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Uy8FDDy3dZQGAnMQV0HBesEs+/oZdaq35Kj1PGhy9J/+EBZm0nhhQgYtku8tWABW2jKAC1GtNTvo +uReQyr1hteMxTbD5OIuqv86eb1hXZVENlZ7ichG8auUjkeHAkaSYNbHOuDLIhSqHEL67XbcZ9zPG +1JOY3+VONSww0KYPcQbGSo/2DaC5C0Y+mZODRfJ4+b0WXjce6UaJetilBc3VtqqmodIM2d3HDawF +R0xVJfHj86rXmUkY+SNUw60zsV6raCY6G3k/rXpei1d6zn8tCThkKG5fwiWY8zA7kRdTFIlVKP9h +fb6kfzRBRT/BgVQ8d4RgEcEVV8m3u/Mf4KIlTw== + +`protect key_keyowner="Xilinx", key_keyname="xilinxt_2023_11", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Pk1GeRlkUK9lt6DVXYVdtOABlzDEWQDcBsP/p+Wo5HaglDLG5b8gk08xTP3IcJ1RKcfuARPMGO2s +/VqFbnVADV90T1rhjIuWMcBnzYQK/ALUvwv11Uju9Gn0fvPIz52l3QBnpjHI1nlsFB7WeqkzVfHZ +tg9gO9bPHjHLjVd9BzH6McrEWY5RkZ0UBy0Fmh/SownJX1b0YGE7LdwKydEMEpyvb28bwTOwfEv/ +4RtsfYtEvTjo6e1ZBm66D9IQmKUu32wzTfn5bFZHdyjZg6+HcTzvHMtQX2+AggXfP6FsO2/83qkb +0bfj226fnLhr32dJxtsaJS5OR63GYtzDJ05ITA== + +`protect key_keyowner="Metrics Technologies Inc.", key_keyname="DSim", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +LCfWqKmUoUSVOTKNAl5p8n1hfz7SMU2kDOUMBjsDncgSFqiu2zUy1I6GSDrVnF/2umJG5/mWcpvi +rQaFJOlrJ8DNctSuavdlopRAwTMsVi6dAlNGrAawSiDIxtI3tN3MDVdMiH5H+pJMqMt59yXneyCf +2RRSRz2sUQK/aj0lXlqKjVJzVbk8HaBQ8akBJF4iWSMK4foIzJ6iO1EupYovuW6uEiO7jQRWezlW +pbbDenOHHWbfinuX5cbkjpTKHGsEKct65q+ZXJp60m3sconSK3Y2eLQxusuJ1FHDJ4GGKO8mEzCv +3cfGdXX3pVL81OfGO/JD1aMs9H98CO5ssbHqlw== + +`protect key_keyowner="Atrenta", key_keyname="ATR-SG-RSA-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=384) +`protect key_block +A4S1e3DHcTeWzaDVuWDRb3Yf1BjiEsR1RtAeL0BJ7J/oPWMNj96MeGsUiHtZoiYqteTZxqax2cyZ +PV0cMLoBK4Ya8CyM+BTnkFA2ablsGt5Es4TgG/nFS9VEhmeKxu8boAsqW5697aiqOATJf/LucQh5 +GOnPXHAuPrDj0A/fu8N2QduqGyysWUSc1KsoJ0/0noJYvLJ2yOhFi4uIUYQfG5LOuOrca5P43pqA +iwUKW/RrFXal2acJdFeXIKffZpKanSV97urdzKyBvf9EPV/M8g9uPFJJ1z6aS+FbknhVPs0pt6eD ++J/qib4gVp/HGnRo4YlxauUMv6Yv9wxiaObY6ttDfYf5p3uzWZMlf3i7YOzZwcd4aS/6+vkD28LG +L9piBIpLx2dvQy74RdvCVdvaP1LC6RMju9RfuXJhuX4ZAmDxRi0zQyRda838ikzwYeOCSKLIvRPb +nuJ8Zx2ot8EFqSeGaaRFaEMU6Zf5SptCUuVMHvSkinBewcwrLB5uiJTJ + +`protect key_keyowner="Cadence Design Systems.", key_keyname="CDS_RSA_KEY_VER_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +gj+uMxV+tK4Di7pgSOE82FOBeWmUB1A7OKFOSMUW3qrmQ4/YhryfHMlWPxfAq8avQL7tnBTnRFEg +czbErdIcNzYjrM7Qq00QC/mTqmeQX4/apbqGvN+rwK4RR5oj22wfTib/UQNEQX6fbpi6PtmAeUR9 +eShsfq+YWcf7z2Zw4Q+o4+E6m4/3CzU68vglNpzNsJ8S9/8XpdIrvAA/WRAX6OEOC4wlNIKDZsq/ ++zMbFgSzN1rP844I/CDmxYM0NIzBWWhYBkPfJyQyigmUoXb84lDip0/Dmnq4EHvu7D/tZNnDl5st +JpftRfEpT6S8e/5MBeKUuhbfg6etHo/oFZvPKQ== + +`protect key_keyowner="Synplicity", key_keyname="SYNP15_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +aWTy3xv6SqKsldtLS2gY4KrTS8U+KtFNRHS314f6EYZy1MHE9t7oICJ8eNB8up8A+odoE23N3fJb +1alhaadeRWU2GjlIiK1LjZ5PQw+jb1u1GWtRiY+TcTlD75XUlqwykVBrCDfm565DmgZjZle9T3/t +WEfLo+m/8GfBe8trVnoftsk/XI00BMFXRzw8doPGDhNECS1NUrLebryb9iO5Hf4A/40dtslTARsR +nicN0KoIIyiQ+QzliqyXU/8VjS45inON8R0Kv9Qx46EXUp7bds5uQ7QycRhpLG0IPnMIweudU67w +eQmpHJzvZKBCZks/R0OafZx44H6Jib2+QazBCw== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-PREC-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +UGdPiChIPj1lSozqzCQx17Bi+8FWSuMUMzXUkDLH5zcP1t8tZLzh4CU4WAR8lmJxn8gH763fLp5c +RYU6zA0yxHzl2ksc5YRU1XEfQQT9ha8fQnz+18wVKcsa5UIOfMbGDwnS9yfX59ntG8CB0uF8bJKE +y1CS6U/1Stfs1w2mF94iDxI2n2GJlb1UPtWpmxMBI88hY0GktTPXP2Y7JKl8zRl/Lq0wIF8pHwXk +B4nOgKm6hfzPj0xZ6E/TuER/JE3fy8RSm24IlL/CUgpReEslEOYjQ4EKKZRG9/fxg26utQWW9p+G +fWVU53qrFGzBhKQ96Paj1ROkv6hDHyUb6n7uSw== + +`protect data_method = "AES128-CBC" +`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 154560) +`protect data_block +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 +`protect end_protected +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity fifo_generator_fe is + port ( + rst : in STD_LOGIC; + wr_clk : in STD_LOGIC; + rd_clk : in STD_LOGIC; + din : in STD_LOGIC_VECTOR ( 35 downto 0 ); + wr_en : in STD_LOGIC; + rd_en : in STD_LOGIC; + dout : out STD_LOGIC_VECTOR ( 35 downto 0 ); + full : out STD_LOGIC; + empty : out STD_LOGIC; + prog_full : out STD_LOGIC; + prog_empty : out STD_LOGIC; + wr_rst_busy : out STD_LOGIC; + rd_rst_busy : out STD_LOGIC + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of fifo_generator_fe : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of fifo_generator_fe : entity is "fifo_generator_fe,fifo_generator_v13_2_10,{}"; + attribute downgradeipidentifiedwarnings : string; + attribute downgradeipidentifiedwarnings of fifo_generator_fe : entity is "yes"; + attribute x_core_info : string; + attribute x_core_info of fifo_generator_fe : entity is "fifo_generator_v13_2_10,Vivado 2024.1"; +end fifo_generator_fe; + +architecture STRUCTURE of fifo_generator_fe is + signal NLW_U0_almost_empty_UNCONNECTED : STD_LOGIC; + signal NLW_U0_almost_full_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_ar_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_ar_overflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_ar_prog_empty_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_ar_prog_full_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_ar_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_ar_underflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_aw_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_aw_overflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_aw_prog_empty_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_aw_prog_full_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_aw_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_aw_underflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_b_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_b_overflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_b_prog_empty_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_b_prog_full_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_b_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_b_underflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_r_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_r_overflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_r_prog_empty_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_r_prog_full_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_r_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_r_underflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_w_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_w_overflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_w_prog_empty_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_w_prog_full_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_w_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_w_underflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axis_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axis_overflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axis_prog_empty_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axis_prog_full_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axis_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axis_underflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_dbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axi_arvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axi_awvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axi_bready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axi_rready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axi_wlast_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axi_wvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axis_tlast_UNCONNECTED : STD_LOGIC; + signal NLW_U0_m_axis_tvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_overflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_arready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_awready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_bvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_rlast_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_rvalid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axi_wready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_s_axis_tready_UNCONNECTED : STD_LOGIC; + signal NLW_U0_sbiterr_UNCONNECTED : STD_LOGIC; + signal NLW_U0_underflow_UNCONNECTED : STD_LOGIC; + signal NLW_U0_valid_UNCONNECTED : STD_LOGIC; + signal NLW_U0_wr_ack_UNCONNECTED : STD_LOGIC; + signal NLW_U0_axi_ar_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_ar_rd_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_ar_wr_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_aw_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_aw_rd_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_aw_wr_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_b_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_b_rd_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_b_wr_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 4 downto 0 ); + signal NLW_U0_axi_r_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axi_r_rd_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axi_r_wr_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axi_w_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axi_w_rd_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axi_w_wr_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axis_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axis_rd_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_axis_wr_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 10 downto 0 ); + signal NLW_U0_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_U0_m_axi_araddr_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_U0_m_axi_arburst_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_U0_m_axi_arcache_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_m_axi_arid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axi_arlen_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_U0_m_axi_arlock_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axi_arprot_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_U0_m_axi_arqos_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_m_axi_arregion_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_m_axi_arsize_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_U0_m_axi_aruser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axi_awaddr_UNCONNECTED : STD_LOGIC_VECTOR ( 31 downto 0 ); + signal NLW_U0_m_axi_awburst_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_U0_m_axi_awcache_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_m_axi_awid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axi_awlen_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_U0_m_axi_awlock_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axi_awprot_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_U0_m_axi_awqos_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_m_axi_awregion_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_m_axi_awsize_UNCONNECTED : STD_LOGIC_VECTOR ( 2 downto 0 ); + signal NLW_U0_m_axi_awuser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axi_wdata_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_U0_m_axi_wid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axi_wstrb_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_U0_m_axi_wuser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axis_tdata_UNCONNECTED : STD_LOGIC_VECTOR ( 7 downto 0 ); + signal NLW_U0_m_axis_tdest_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axis_tid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axis_tkeep_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axis_tstrb_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_m_axis_tuser_UNCONNECTED : STD_LOGIC_VECTOR ( 3 downto 0 ); + signal NLW_U0_rd_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + signal NLW_U0_s_axi_bid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_s_axi_bresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_U0_s_axi_buser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_s_axi_rdata_UNCONNECTED : STD_LOGIC_VECTOR ( 63 downto 0 ); + signal NLW_U0_s_axi_rid_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_s_axi_rresp_UNCONNECTED : STD_LOGIC_VECTOR ( 1 downto 0 ); + signal NLW_U0_s_axi_ruser_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_U0_wr_data_count_UNCONNECTED : STD_LOGIC_VECTOR ( 5 downto 0 ); + attribute C_ADD_NGC_CONSTRAINT : integer; + attribute C_ADD_NGC_CONSTRAINT of U0 : label is 0; + attribute C_APPLICATION_TYPE_AXIS : integer; + attribute C_APPLICATION_TYPE_AXIS of U0 : label is 0; + attribute C_APPLICATION_TYPE_RACH : integer; + attribute C_APPLICATION_TYPE_RACH of U0 : label is 0; + attribute C_APPLICATION_TYPE_RDCH : integer; + attribute C_APPLICATION_TYPE_RDCH of U0 : label is 0; + attribute C_APPLICATION_TYPE_WACH : integer; + attribute C_APPLICATION_TYPE_WACH of U0 : label is 0; + attribute C_APPLICATION_TYPE_WDCH : integer; + attribute C_APPLICATION_TYPE_WDCH of U0 : label is 0; + attribute C_APPLICATION_TYPE_WRCH : integer; + attribute C_APPLICATION_TYPE_WRCH of U0 : label is 0; + attribute C_AXIS_TDATA_WIDTH : integer; + attribute C_AXIS_TDATA_WIDTH of U0 : label is 8; + attribute C_AXIS_TDEST_WIDTH : integer; + attribute C_AXIS_TDEST_WIDTH of U0 : label is 1; + attribute C_AXIS_TID_WIDTH : integer; + attribute C_AXIS_TID_WIDTH of U0 : label is 1; + attribute C_AXIS_TKEEP_WIDTH : integer; + attribute C_AXIS_TKEEP_WIDTH of U0 : label is 1; + attribute C_AXIS_TSTRB_WIDTH : integer; + attribute C_AXIS_TSTRB_WIDTH of U0 : label is 1; + attribute C_AXIS_TUSER_WIDTH : integer; + attribute C_AXIS_TUSER_WIDTH of U0 : label is 4; + attribute C_AXIS_TYPE : integer; + attribute C_AXIS_TYPE of U0 : label is 0; + attribute C_AXI_ADDR_WIDTH : integer; + attribute C_AXI_ADDR_WIDTH of U0 : label is 32; + attribute C_AXI_ARUSER_WIDTH : integer; + attribute C_AXI_ARUSER_WIDTH of U0 : label is 1; + attribute C_AXI_AWUSER_WIDTH : integer; + attribute C_AXI_AWUSER_WIDTH of U0 : label is 1; + attribute C_AXI_BUSER_WIDTH : integer; + attribute C_AXI_BUSER_WIDTH of U0 : label is 1; + attribute C_AXI_DATA_WIDTH : integer; + attribute C_AXI_DATA_WIDTH of U0 : label is 64; + attribute C_AXI_ID_WIDTH : integer; + attribute C_AXI_ID_WIDTH of U0 : label is 1; + attribute C_AXI_LEN_WIDTH : integer; + attribute C_AXI_LEN_WIDTH of U0 : label is 8; + attribute C_AXI_LOCK_WIDTH : integer; + attribute C_AXI_LOCK_WIDTH of U0 : label is 1; + attribute C_AXI_RUSER_WIDTH : integer; + attribute C_AXI_RUSER_WIDTH of U0 : label is 1; + attribute C_AXI_TYPE : integer; + attribute C_AXI_TYPE of U0 : label is 1; + attribute C_AXI_WUSER_WIDTH : integer; + attribute C_AXI_WUSER_WIDTH of U0 : label is 1; + attribute C_COMMON_CLOCK : integer; + attribute C_COMMON_CLOCK of U0 : label is 0; + attribute C_COUNT_TYPE : integer; + attribute C_COUNT_TYPE of U0 : label is 0; + attribute C_DATA_COUNT_WIDTH : integer; + attribute C_DATA_COUNT_WIDTH of U0 : label is 6; + attribute C_DEFAULT_VALUE : string; + attribute C_DEFAULT_VALUE of U0 : label is "BlankString"; + attribute C_DIN_WIDTH : integer; + attribute C_DIN_WIDTH of U0 : label is 36; + attribute C_DIN_WIDTH_AXIS : integer; + attribute C_DIN_WIDTH_AXIS of U0 : label is 1; + attribute C_DIN_WIDTH_RACH : integer; + attribute C_DIN_WIDTH_RACH of U0 : label is 32; + attribute C_DIN_WIDTH_RDCH : integer; + attribute C_DIN_WIDTH_RDCH of U0 : label is 64; + attribute C_DIN_WIDTH_WACH : integer; + attribute C_DIN_WIDTH_WACH of U0 : label is 1; + attribute C_DIN_WIDTH_WDCH : integer; + attribute C_DIN_WIDTH_WDCH of U0 : label is 64; + attribute C_DIN_WIDTH_WRCH : integer; + attribute C_DIN_WIDTH_WRCH of U0 : label is 2; + attribute C_DOUT_RST_VAL : string; + attribute C_DOUT_RST_VAL of U0 : label is "0"; + attribute C_DOUT_WIDTH : integer; + attribute C_DOUT_WIDTH of U0 : label is 36; + attribute C_ENABLE_RLOCS : integer; + attribute C_ENABLE_RLOCS of U0 : label is 0; + attribute C_ENABLE_RST_SYNC : integer; + attribute C_ENABLE_RST_SYNC of U0 : label is 1; + attribute C_EN_SAFETY_CKT : integer; + attribute C_EN_SAFETY_CKT of U0 : label is 1; + attribute C_ERROR_INJECTION_TYPE : integer; + attribute C_ERROR_INJECTION_TYPE of U0 : label is 0; + attribute C_ERROR_INJECTION_TYPE_AXIS : integer; + attribute C_ERROR_INJECTION_TYPE_AXIS of U0 : label is 0; + attribute C_ERROR_INJECTION_TYPE_RACH : integer; + attribute C_ERROR_INJECTION_TYPE_RACH of U0 : label is 0; + attribute C_ERROR_INJECTION_TYPE_RDCH : integer; + attribute C_ERROR_INJECTION_TYPE_RDCH of U0 : label is 0; + attribute C_ERROR_INJECTION_TYPE_WACH : integer; + attribute C_ERROR_INJECTION_TYPE_WACH of U0 : label is 0; + attribute C_ERROR_INJECTION_TYPE_WDCH : integer; + attribute C_ERROR_INJECTION_TYPE_WDCH of U0 : label is 0; + attribute C_ERROR_INJECTION_TYPE_WRCH : integer; + attribute C_ERROR_INJECTION_TYPE_WRCH of U0 : label is 0; + attribute C_FAMILY : string; + attribute C_FAMILY of U0 : label is "kintexu"; + attribute C_FULL_FLAGS_RST_VAL : integer; + attribute C_FULL_FLAGS_RST_VAL of U0 : label is 1; + attribute C_HAS_ALMOST_EMPTY : integer; + attribute C_HAS_ALMOST_EMPTY of U0 : label is 0; + attribute C_HAS_ALMOST_FULL : integer; + attribute C_HAS_ALMOST_FULL of U0 : label is 0; + attribute C_HAS_AXIS_TDATA : integer; + attribute C_HAS_AXIS_TDATA of U0 : label is 1; + attribute C_HAS_AXIS_TDEST : integer; + attribute C_HAS_AXIS_TDEST of U0 : label is 0; + attribute C_HAS_AXIS_TID : integer; + attribute C_HAS_AXIS_TID of U0 : label is 0; + attribute C_HAS_AXIS_TKEEP : integer; + attribute C_HAS_AXIS_TKEEP of U0 : label is 0; + attribute C_HAS_AXIS_TLAST : integer; + attribute C_HAS_AXIS_TLAST of U0 : label is 0; + attribute C_HAS_AXIS_TREADY : integer; + attribute C_HAS_AXIS_TREADY of U0 : label is 1; + attribute C_HAS_AXIS_TSTRB : integer; + attribute C_HAS_AXIS_TSTRB of U0 : label is 0; + attribute C_HAS_AXIS_TUSER : integer; + attribute C_HAS_AXIS_TUSER of U0 : label is 1; + attribute C_HAS_AXI_ARUSER : integer; + attribute C_HAS_AXI_ARUSER of U0 : label is 0; + attribute C_HAS_AXI_AWUSER : integer; + attribute C_HAS_AXI_AWUSER of U0 : label is 0; + attribute C_HAS_AXI_BUSER : integer; + attribute C_HAS_AXI_BUSER of U0 : label is 0; + attribute C_HAS_AXI_ID : integer; + attribute C_HAS_AXI_ID of U0 : label is 0; + attribute C_HAS_AXI_RD_CHANNEL : integer; + attribute C_HAS_AXI_RD_CHANNEL of U0 : label is 1; + attribute C_HAS_AXI_RUSER : integer; + attribute C_HAS_AXI_RUSER of U0 : label is 0; + attribute C_HAS_AXI_WR_CHANNEL : integer; + attribute C_HAS_AXI_WR_CHANNEL of U0 : label is 1; + attribute C_HAS_AXI_WUSER : integer; + attribute C_HAS_AXI_WUSER of U0 : label is 0; + attribute C_HAS_BACKUP : integer; + attribute C_HAS_BACKUP of U0 : label is 0; + attribute C_HAS_DATA_COUNT : integer; + attribute C_HAS_DATA_COUNT of U0 : label is 0; + attribute C_HAS_DATA_COUNTS_AXIS : integer; + attribute C_HAS_DATA_COUNTS_AXIS of U0 : label is 0; + attribute C_HAS_DATA_COUNTS_RACH : integer; + attribute C_HAS_DATA_COUNTS_RACH of U0 : label is 0; + attribute C_HAS_DATA_COUNTS_RDCH : integer; + attribute C_HAS_DATA_COUNTS_RDCH of U0 : label is 0; + attribute C_HAS_DATA_COUNTS_WACH : integer; + attribute C_HAS_DATA_COUNTS_WACH of U0 : label is 0; + attribute C_HAS_DATA_COUNTS_WDCH : integer; + attribute C_HAS_DATA_COUNTS_WDCH of U0 : label is 0; + attribute C_HAS_DATA_COUNTS_WRCH : integer; + attribute C_HAS_DATA_COUNTS_WRCH of U0 : label is 0; + attribute C_HAS_INT_CLK : integer; + attribute C_HAS_INT_CLK of U0 : label is 0; + attribute C_HAS_MASTER_CE : integer; + attribute C_HAS_MASTER_CE of U0 : label is 0; + attribute C_HAS_MEMINIT_FILE : integer; + attribute C_HAS_MEMINIT_FILE of U0 : label is 0; + attribute C_HAS_OVERFLOW : integer; + attribute C_HAS_OVERFLOW of U0 : label is 0; + attribute C_HAS_PROG_FLAGS_AXIS : integer; + attribute C_HAS_PROG_FLAGS_AXIS of U0 : label is 0; + attribute C_HAS_PROG_FLAGS_RACH : integer; + attribute C_HAS_PROG_FLAGS_RACH of U0 : label is 0; + attribute C_HAS_PROG_FLAGS_RDCH : integer; + attribute C_HAS_PROG_FLAGS_RDCH of U0 : label is 0; + attribute C_HAS_PROG_FLAGS_WACH : integer; + attribute C_HAS_PROG_FLAGS_WACH of U0 : label is 0; + attribute C_HAS_PROG_FLAGS_WDCH : integer; + attribute C_HAS_PROG_FLAGS_WDCH of U0 : label is 0; + attribute C_HAS_PROG_FLAGS_WRCH : integer; + attribute C_HAS_PROG_FLAGS_WRCH of U0 : label is 0; + attribute C_HAS_RD_DATA_COUNT : integer; + attribute C_HAS_RD_DATA_COUNT of U0 : label is 0; + attribute C_HAS_RD_RST : integer; + attribute C_HAS_RD_RST of U0 : label is 0; + attribute C_HAS_RST : integer; + attribute C_HAS_RST of U0 : label is 1; + attribute C_HAS_SLAVE_CE : integer; + attribute C_HAS_SLAVE_CE of U0 : label is 0; + attribute C_HAS_SRST : integer; + attribute C_HAS_SRST of U0 : label is 0; + attribute C_HAS_UNDERFLOW : integer; + attribute C_HAS_UNDERFLOW of U0 : label is 0; + attribute C_HAS_VALID : integer; + attribute C_HAS_VALID of U0 : label is 0; + attribute C_HAS_WR_ACK : integer; + attribute C_HAS_WR_ACK of U0 : label is 0; + attribute C_HAS_WR_DATA_COUNT : integer; + attribute C_HAS_WR_DATA_COUNT of U0 : label is 0; + attribute C_HAS_WR_RST : integer; + attribute C_HAS_WR_RST of U0 : label is 0; + attribute C_IMPLEMENTATION_TYPE : integer; + attribute C_IMPLEMENTATION_TYPE of U0 : label is 2; + attribute C_IMPLEMENTATION_TYPE_AXIS : integer; + attribute C_IMPLEMENTATION_TYPE_AXIS of U0 : label is 1; + attribute C_IMPLEMENTATION_TYPE_RACH : integer; + attribute C_IMPLEMENTATION_TYPE_RACH of U0 : label is 1; + attribute C_IMPLEMENTATION_TYPE_RDCH : integer; + attribute C_IMPLEMENTATION_TYPE_RDCH of U0 : label is 1; + attribute C_IMPLEMENTATION_TYPE_WACH : integer; + attribute C_IMPLEMENTATION_TYPE_WACH of U0 : label is 1; + attribute C_IMPLEMENTATION_TYPE_WDCH : integer; + attribute C_IMPLEMENTATION_TYPE_WDCH of U0 : label is 1; + attribute C_IMPLEMENTATION_TYPE_WRCH : integer; + attribute C_IMPLEMENTATION_TYPE_WRCH of U0 : label is 1; + attribute C_INIT_WR_PNTR_VAL : integer; + attribute C_INIT_WR_PNTR_VAL of U0 : label is 0; + attribute C_INTERFACE_TYPE : integer; + attribute C_INTERFACE_TYPE of U0 : label is 0; + attribute C_MEMORY_TYPE : integer; + attribute C_MEMORY_TYPE of U0 : label is 1; + attribute C_MIF_FILE_NAME : string; + attribute C_MIF_FILE_NAME of U0 : label is "BlankString"; + attribute C_MSGON_VAL : integer; + attribute C_MSGON_VAL of U0 : label is 1; + attribute C_OPTIMIZATION_MODE : integer; + attribute C_OPTIMIZATION_MODE of U0 : label is 0; + attribute C_OVERFLOW_LOW : integer; + attribute C_OVERFLOW_LOW of U0 : label is 0; + attribute C_POWER_SAVING_MODE : integer; + attribute C_POWER_SAVING_MODE of U0 : label is 0; + attribute C_PRELOAD_LATENCY : integer; + attribute C_PRELOAD_LATENCY of U0 : label is 2; + attribute C_PRELOAD_REGS : integer; + attribute C_PRELOAD_REGS of U0 : label is 1; + attribute C_PRIM_FIFO_TYPE : string; + attribute C_PRIM_FIFO_TYPE of U0 : label is "512x36"; + attribute C_PRIM_FIFO_TYPE_AXIS : string; + attribute C_PRIM_FIFO_TYPE_AXIS of U0 : label is "1kx18"; + attribute C_PRIM_FIFO_TYPE_RACH : string; + attribute C_PRIM_FIFO_TYPE_RACH of U0 : label is "512x36"; + attribute C_PRIM_FIFO_TYPE_RDCH : string; + attribute C_PRIM_FIFO_TYPE_RDCH of U0 : label is "512x72"; + attribute C_PRIM_FIFO_TYPE_WACH : string; + attribute C_PRIM_FIFO_TYPE_WACH of U0 : label is "512x36"; + attribute C_PRIM_FIFO_TYPE_WDCH : string; + attribute C_PRIM_FIFO_TYPE_WDCH of U0 : label is "512x72"; + attribute C_PRIM_FIFO_TYPE_WRCH : string; + attribute C_PRIM_FIFO_TYPE_WRCH of U0 : label is "512x36"; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL : integer; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL of U0 : label is 6; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS : integer; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS of U0 : label is 1022; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH : integer; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH of U0 : label is 1022; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH : integer; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH of U0 : label is 1022; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH : integer; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH of U0 : label is 1022; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH : integer; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH of U0 : label is 1022; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH : integer; + attribute C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH of U0 : label is 1022; + attribute C_PROG_EMPTY_THRESH_NEGATE_VAL : integer; + attribute C_PROG_EMPTY_THRESH_NEGATE_VAL of U0 : label is 12; + attribute C_PROG_EMPTY_TYPE : integer; + attribute C_PROG_EMPTY_TYPE of U0 : label is 2; + attribute C_PROG_EMPTY_TYPE_AXIS : integer; + attribute C_PROG_EMPTY_TYPE_AXIS of U0 : label is 0; + attribute C_PROG_EMPTY_TYPE_RACH : integer; + attribute C_PROG_EMPTY_TYPE_RACH of U0 : label is 0; + attribute C_PROG_EMPTY_TYPE_RDCH : integer; + attribute C_PROG_EMPTY_TYPE_RDCH of U0 : label is 0; + attribute C_PROG_EMPTY_TYPE_WACH : integer; + attribute C_PROG_EMPTY_TYPE_WACH of U0 : label is 0; + attribute C_PROG_EMPTY_TYPE_WDCH : integer; + attribute C_PROG_EMPTY_TYPE_WDCH of U0 : label is 0; + attribute C_PROG_EMPTY_TYPE_WRCH : integer; + attribute C_PROG_EMPTY_TYPE_WRCH of U0 : label is 0; + attribute C_PROG_FULL_THRESH_ASSERT_VAL : integer; + attribute C_PROG_FULL_THRESH_ASSERT_VAL of U0 : label is 50; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_AXIS : integer; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_AXIS of U0 : label is 1023; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_RACH : integer; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_RACH of U0 : label is 1023; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_RDCH : integer; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_RDCH of U0 : label is 1023; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_WACH : integer; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_WACH of U0 : label is 1023; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_WDCH : integer; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_WDCH of U0 : label is 1023; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_WRCH : integer; + attribute C_PROG_FULL_THRESH_ASSERT_VAL_WRCH of U0 : label is 1023; + attribute C_PROG_FULL_THRESH_NEGATE_VAL : integer; + attribute C_PROG_FULL_THRESH_NEGATE_VAL of U0 : label is 45; + attribute C_PROG_FULL_TYPE : integer; + attribute C_PROG_FULL_TYPE of U0 : label is 2; + attribute C_PROG_FULL_TYPE_AXIS : integer; + attribute C_PROG_FULL_TYPE_AXIS of U0 : label is 0; + attribute C_PROG_FULL_TYPE_RACH : integer; + attribute C_PROG_FULL_TYPE_RACH of U0 : label is 0; + attribute C_PROG_FULL_TYPE_RDCH : integer; + attribute C_PROG_FULL_TYPE_RDCH of U0 : label is 0; + attribute C_PROG_FULL_TYPE_WACH : integer; + attribute C_PROG_FULL_TYPE_WACH of U0 : label is 0; + attribute C_PROG_FULL_TYPE_WDCH : integer; + attribute C_PROG_FULL_TYPE_WDCH of U0 : label is 0; + attribute C_PROG_FULL_TYPE_WRCH : integer; + attribute C_PROG_FULL_TYPE_WRCH of U0 : label is 0; + attribute C_RACH_TYPE : integer; + attribute C_RACH_TYPE of U0 : label is 0; + attribute C_RDCH_TYPE : integer; + attribute C_RDCH_TYPE of U0 : label is 0; + attribute C_RD_DATA_COUNT_WIDTH : integer; + attribute C_RD_DATA_COUNT_WIDTH of U0 : label is 6; + attribute C_RD_DEPTH : integer; + attribute C_RD_DEPTH of U0 : label is 64; + attribute C_RD_FREQ : integer; + attribute C_RD_FREQ of U0 : label is 1; + attribute C_RD_PNTR_WIDTH : integer; + attribute C_RD_PNTR_WIDTH of U0 : label is 6; + attribute C_REG_SLICE_MODE_AXIS : integer; + attribute C_REG_SLICE_MODE_AXIS of U0 : label is 0; + attribute C_REG_SLICE_MODE_RACH : integer; + attribute C_REG_SLICE_MODE_RACH of U0 : label is 0; + attribute C_REG_SLICE_MODE_RDCH : integer; + attribute C_REG_SLICE_MODE_RDCH of U0 : label is 0; + attribute C_REG_SLICE_MODE_WACH : integer; + attribute C_REG_SLICE_MODE_WACH of U0 : label is 0; + attribute C_REG_SLICE_MODE_WDCH : integer; + attribute C_REG_SLICE_MODE_WDCH of U0 : label is 0; + attribute C_REG_SLICE_MODE_WRCH : integer; + attribute C_REG_SLICE_MODE_WRCH of U0 : label is 0; + attribute C_SELECT_XPM : integer; + attribute C_SELECT_XPM of U0 : label is 0; + attribute C_SYNCHRONIZER_STAGE : integer; + attribute C_SYNCHRONIZER_STAGE of U0 : label is 2; + attribute C_UNDERFLOW_LOW : integer; + attribute C_UNDERFLOW_LOW of U0 : label is 0; + attribute C_USE_COMMON_OVERFLOW : integer; + attribute C_USE_COMMON_OVERFLOW of U0 : label is 0; + attribute C_USE_COMMON_UNDERFLOW : integer; + attribute C_USE_COMMON_UNDERFLOW of U0 : label is 0; + attribute C_USE_DEFAULT_SETTINGS : integer; + attribute C_USE_DEFAULT_SETTINGS of U0 : label is 0; + attribute C_USE_DOUT_RST : integer; + attribute C_USE_DOUT_RST of U0 : label is 1; + attribute C_USE_ECC : integer; + attribute C_USE_ECC of U0 : label is 0; + attribute C_USE_ECC_AXIS : integer; + attribute C_USE_ECC_AXIS of U0 : label is 0; + attribute C_USE_ECC_RACH : integer; + attribute C_USE_ECC_RACH of U0 : label is 0; + attribute C_USE_ECC_RDCH : integer; + attribute C_USE_ECC_RDCH of U0 : label is 0; + attribute C_USE_ECC_WACH : integer; + attribute C_USE_ECC_WACH of U0 : label is 0; + attribute C_USE_ECC_WDCH : integer; + attribute C_USE_ECC_WDCH of U0 : label is 0; + attribute C_USE_ECC_WRCH : integer; + attribute C_USE_ECC_WRCH of U0 : label is 0; + attribute C_USE_EMBEDDED_REG : integer; + attribute C_USE_EMBEDDED_REG of U0 : label is 1; + attribute C_USE_FIFO16_FLAGS : integer; + attribute C_USE_FIFO16_FLAGS of U0 : label is 0; + attribute C_USE_FWFT_DATA_COUNT : integer; + attribute C_USE_FWFT_DATA_COUNT of U0 : label is 0; + attribute C_USE_PIPELINE_REG : integer; + attribute C_USE_PIPELINE_REG of U0 : label is 0; + attribute C_VALID_LOW : integer; + attribute C_VALID_LOW of U0 : label is 0; + attribute C_WACH_TYPE : integer; + attribute C_WACH_TYPE of U0 : label is 0; + attribute C_WDCH_TYPE : integer; + attribute C_WDCH_TYPE of U0 : label is 0; + attribute C_WRCH_TYPE : integer; + attribute C_WRCH_TYPE of U0 : label is 0; + attribute C_WR_ACK_LOW : integer; + attribute C_WR_ACK_LOW of U0 : label is 0; + attribute C_WR_DATA_COUNT_WIDTH : integer; + attribute C_WR_DATA_COUNT_WIDTH of U0 : label is 6; + attribute C_WR_DEPTH : integer; + attribute C_WR_DEPTH of U0 : label is 64; + attribute C_WR_DEPTH_AXIS : integer; + attribute C_WR_DEPTH_AXIS of U0 : label is 1024; + attribute C_WR_DEPTH_RACH : integer; + attribute C_WR_DEPTH_RACH of U0 : label is 16; + attribute C_WR_DEPTH_RDCH : integer; + attribute C_WR_DEPTH_RDCH of U0 : label is 1024; + attribute C_WR_DEPTH_WACH : integer; + attribute C_WR_DEPTH_WACH of U0 : label is 16; + attribute C_WR_DEPTH_WDCH : integer; + attribute C_WR_DEPTH_WDCH of U0 : label is 1024; + attribute C_WR_DEPTH_WRCH : integer; + attribute C_WR_DEPTH_WRCH of U0 : label is 16; + attribute C_WR_FREQ : integer; + attribute C_WR_FREQ of U0 : label is 1; + attribute C_WR_PNTR_WIDTH : integer; + attribute C_WR_PNTR_WIDTH of U0 : label is 6; + attribute C_WR_PNTR_WIDTH_AXIS : integer; + attribute C_WR_PNTR_WIDTH_AXIS of U0 : label is 10; + attribute C_WR_PNTR_WIDTH_RACH : integer; + attribute C_WR_PNTR_WIDTH_RACH of U0 : label is 4; + attribute C_WR_PNTR_WIDTH_RDCH : integer; + attribute C_WR_PNTR_WIDTH_RDCH of U0 : label is 10; + attribute C_WR_PNTR_WIDTH_WACH : integer; + attribute C_WR_PNTR_WIDTH_WACH of U0 : label is 4; + attribute C_WR_PNTR_WIDTH_WDCH : integer; + attribute C_WR_PNTR_WIDTH_WDCH of U0 : label is 10; + attribute C_WR_PNTR_WIDTH_WRCH : integer; + attribute C_WR_PNTR_WIDTH_WRCH of U0 : label is 4; + attribute C_WR_RESPONSE_LATENCY : integer; + attribute C_WR_RESPONSE_LATENCY of U0 : label is 1; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of U0 : label is "true"; + attribute x_interface_info : string; + attribute x_interface_info of empty : signal is "xilinx.com:interface:fifo_read:1.0 FIFO_READ EMPTY"; + attribute x_interface_info of full : signal is "xilinx.com:interface:fifo_write:1.0 FIFO_WRITE FULL"; + attribute x_interface_info of rd_clk : signal is "xilinx.com:signal:clock:1.0 read_clk CLK"; + attribute x_interface_parameter : string; + attribute x_interface_parameter of rd_clk : signal is "XIL_INTERFACENAME read_clk, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, INSERT_VIP 0"; + attribute x_interface_info of rd_en : signal is "xilinx.com:interface:fifo_read:1.0 FIFO_READ RD_EN"; + attribute x_interface_info of wr_clk : signal is "xilinx.com:signal:clock:1.0 write_clk CLK"; + attribute x_interface_parameter of wr_clk : signal is "XIL_INTERFACENAME write_clk, FREQ_HZ 100000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, INSERT_VIP 0"; + attribute x_interface_info of wr_en : signal is "xilinx.com:interface:fifo_write:1.0 FIFO_WRITE WR_EN"; + attribute x_interface_info of din : signal is "xilinx.com:interface:fifo_write:1.0 FIFO_WRITE WR_DATA"; + attribute x_interface_info of dout : signal is "xilinx.com:interface:fifo_read:1.0 FIFO_READ RD_DATA"; +begin +U0: entity work.fifo_generator_fe_fifo_generator_v13_2_10 + port map ( + almost_empty => NLW_U0_almost_empty_UNCONNECTED, + almost_full => NLW_U0_almost_full_UNCONNECTED, + axi_ar_data_count(4 downto 0) => NLW_U0_axi_ar_data_count_UNCONNECTED(4 downto 0), + axi_ar_dbiterr => NLW_U0_axi_ar_dbiterr_UNCONNECTED, + axi_ar_injectdbiterr => '0', + axi_ar_injectsbiterr => '0', + axi_ar_overflow => NLW_U0_axi_ar_overflow_UNCONNECTED, + axi_ar_prog_empty => NLW_U0_axi_ar_prog_empty_UNCONNECTED, + axi_ar_prog_empty_thresh(3 downto 0) => B"0000", + axi_ar_prog_full => NLW_U0_axi_ar_prog_full_UNCONNECTED, + axi_ar_prog_full_thresh(3 downto 0) => B"0000", + axi_ar_rd_data_count(4 downto 0) => NLW_U0_axi_ar_rd_data_count_UNCONNECTED(4 downto 0), + axi_ar_sbiterr => NLW_U0_axi_ar_sbiterr_UNCONNECTED, + axi_ar_underflow => NLW_U0_axi_ar_underflow_UNCONNECTED, + axi_ar_wr_data_count(4 downto 0) => NLW_U0_axi_ar_wr_data_count_UNCONNECTED(4 downto 0), + axi_aw_data_count(4 downto 0) => NLW_U0_axi_aw_data_count_UNCONNECTED(4 downto 0), + axi_aw_dbiterr => NLW_U0_axi_aw_dbiterr_UNCONNECTED, + axi_aw_injectdbiterr => '0', + axi_aw_injectsbiterr => '0', + axi_aw_overflow => NLW_U0_axi_aw_overflow_UNCONNECTED, + axi_aw_prog_empty => NLW_U0_axi_aw_prog_empty_UNCONNECTED, + axi_aw_prog_empty_thresh(3 downto 0) => B"0000", + axi_aw_prog_full => NLW_U0_axi_aw_prog_full_UNCONNECTED, + axi_aw_prog_full_thresh(3 downto 0) => B"0000", + axi_aw_rd_data_count(4 downto 0) => NLW_U0_axi_aw_rd_data_count_UNCONNECTED(4 downto 0), + axi_aw_sbiterr => NLW_U0_axi_aw_sbiterr_UNCONNECTED, + axi_aw_underflow => NLW_U0_axi_aw_underflow_UNCONNECTED, + axi_aw_wr_data_count(4 downto 0) => NLW_U0_axi_aw_wr_data_count_UNCONNECTED(4 downto 0), + axi_b_data_count(4 downto 0) => NLW_U0_axi_b_data_count_UNCONNECTED(4 downto 0), + axi_b_dbiterr => NLW_U0_axi_b_dbiterr_UNCONNECTED, + axi_b_injectdbiterr => '0', + axi_b_injectsbiterr => '0', + axi_b_overflow => NLW_U0_axi_b_overflow_UNCONNECTED, + axi_b_prog_empty => NLW_U0_axi_b_prog_empty_UNCONNECTED, + axi_b_prog_empty_thresh(3 downto 0) => B"0000", + axi_b_prog_full => NLW_U0_axi_b_prog_full_UNCONNECTED, + axi_b_prog_full_thresh(3 downto 0) => B"0000", + axi_b_rd_data_count(4 downto 0) => NLW_U0_axi_b_rd_data_count_UNCONNECTED(4 downto 0), + axi_b_sbiterr => NLW_U0_axi_b_sbiterr_UNCONNECTED, + axi_b_underflow => NLW_U0_axi_b_underflow_UNCONNECTED, + axi_b_wr_data_count(4 downto 0) => NLW_U0_axi_b_wr_data_count_UNCONNECTED(4 downto 0), + axi_r_data_count(10 downto 0) => NLW_U0_axi_r_data_count_UNCONNECTED(10 downto 0), + axi_r_dbiterr => NLW_U0_axi_r_dbiterr_UNCONNECTED, + axi_r_injectdbiterr => '0', + axi_r_injectsbiterr => '0', + axi_r_overflow => NLW_U0_axi_r_overflow_UNCONNECTED, + axi_r_prog_empty => NLW_U0_axi_r_prog_empty_UNCONNECTED, + axi_r_prog_empty_thresh(9 downto 0) => B"0000000000", + axi_r_prog_full => NLW_U0_axi_r_prog_full_UNCONNECTED, + axi_r_prog_full_thresh(9 downto 0) => B"0000000000", + axi_r_rd_data_count(10 downto 0) => NLW_U0_axi_r_rd_data_count_UNCONNECTED(10 downto 0), + axi_r_sbiterr => NLW_U0_axi_r_sbiterr_UNCONNECTED, + axi_r_underflow => NLW_U0_axi_r_underflow_UNCONNECTED, + axi_r_wr_data_count(10 downto 0) => NLW_U0_axi_r_wr_data_count_UNCONNECTED(10 downto 0), + axi_w_data_count(10 downto 0) => NLW_U0_axi_w_data_count_UNCONNECTED(10 downto 0), + axi_w_dbiterr => NLW_U0_axi_w_dbiterr_UNCONNECTED, + axi_w_injectdbiterr => '0', + axi_w_injectsbiterr => '0', + axi_w_overflow => NLW_U0_axi_w_overflow_UNCONNECTED, + axi_w_prog_empty => NLW_U0_axi_w_prog_empty_UNCONNECTED, + axi_w_prog_empty_thresh(9 downto 0) => B"0000000000", + axi_w_prog_full => NLW_U0_axi_w_prog_full_UNCONNECTED, + axi_w_prog_full_thresh(9 downto 0) => B"0000000000", + axi_w_rd_data_count(10 downto 0) => NLW_U0_axi_w_rd_data_count_UNCONNECTED(10 downto 0), + axi_w_sbiterr => NLW_U0_axi_w_sbiterr_UNCONNECTED, + axi_w_underflow => NLW_U0_axi_w_underflow_UNCONNECTED, + axi_w_wr_data_count(10 downto 0) => NLW_U0_axi_w_wr_data_count_UNCONNECTED(10 downto 0), + axis_data_count(10 downto 0) => NLW_U0_axis_data_count_UNCONNECTED(10 downto 0), + axis_dbiterr => NLW_U0_axis_dbiterr_UNCONNECTED, + axis_injectdbiterr => '0', + axis_injectsbiterr => '0', + axis_overflow => NLW_U0_axis_overflow_UNCONNECTED, + axis_prog_empty => NLW_U0_axis_prog_empty_UNCONNECTED, + axis_prog_empty_thresh(9 downto 0) => B"0000000000", + axis_prog_full => NLW_U0_axis_prog_full_UNCONNECTED, + axis_prog_full_thresh(9 downto 0) => B"0000000000", + axis_rd_data_count(10 downto 0) => NLW_U0_axis_rd_data_count_UNCONNECTED(10 downto 0), + axis_sbiterr => NLW_U0_axis_sbiterr_UNCONNECTED, + axis_underflow => NLW_U0_axis_underflow_UNCONNECTED, + axis_wr_data_count(10 downto 0) => NLW_U0_axis_wr_data_count_UNCONNECTED(10 downto 0), + backup => '0', + backup_marker => '0', + clk => '0', + data_count(5 downto 0) => NLW_U0_data_count_UNCONNECTED(5 downto 0), + dbiterr => NLW_U0_dbiterr_UNCONNECTED, + din(35 downto 0) => din(35 downto 0), + dout(35 downto 0) => dout(35 downto 0), + empty => empty, + full => full, + injectdbiterr => '0', + injectsbiterr => '0', + int_clk => '0', + m_aclk => '0', + m_aclk_en => '0', + m_axi_araddr(31 downto 0) => NLW_U0_m_axi_araddr_UNCONNECTED(31 downto 0), + m_axi_arburst(1 downto 0) => NLW_U0_m_axi_arburst_UNCONNECTED(1 downto 0), + m_axi_arcache(3 downto 0) => NLW_U0_m_axi_arcache_UNCONNECTED(3 downto 0), + m_axi_arid(0) => NLW_U0_m_axi_arid_UNCONNECTED(0), + m_axi_arlen(7 downto 0) => NLW_U0_m_axi_arlen_UNCONNECTED(7 downto 0), + m_axi_arlock(0) => NLW_U0_m_axi_arlock_UNCONNECTED(0), + m_axi_arprot(2 downto 0) => NLW_U0_m_axi_arprot_UNCONNECTED(2 downto 0), + m_axi_arqos(3 downto 0) => NLW_U0_m_axi_arqos_UNCONNECTED(3 downto 0), + m_axi_arready => '0', + m_axi_arregion(3 downto 0) => NLW_U0_m_axi_arregion_UNCONNECTED(3 downto 0), + m_axi_arsize(2 downto 0) => NLW_U0_m_axi_arsize_UNCONNECTED(2 downto 0), + m_axi_aruser(0) => NLW_U0_m_axi_aruser_UNCONNECTED(0), + m_axi_arvalid => NLW_U0_m_axi_arvalid_UNCONNECTED, + m_axi_awaddr(31 downto 0) => NLW_U0_m_axi_awaddr_UNCONNECTED(31 downto 0), + m_axi_awburst(1 downto 0) => NLW_U0_m_axi_awburst_UNCONNECTED(1 downto 0), + m_axi_awcache(3 downto 0) => NLW_U0_m_axi_awcache_UNCONNECTED(3 downto 0), + m_axi_awid(0) => NLW_U0_m_axi_awid_UNCONNECTED(0), + m_axi_awlen(7 downto 0) => NLW_U0_m_axi_awlen_UNCONNECTED(7 downto 0), + m_axi_awlock(0) => NLW_U0_m_axi_awlock_UNCONNECTED(0), + m_axi_awprot(2 downto 0) => NLW_U0_m_axi_awprot_UNCONNECTED(2 downto 0), + m_axi_awqos(3 downto 0) => NLW_U0_m_axi_awqos_UNCONNECTED(3 downto 0), + m_axi_awready => '0', + m_axi_awregion(3 downto 0) => NLW_U0_m_axi_awregion_UNCONNECTED(3 downto 0), + m_axi_awsize(2 downto 0) => NLW_U0_m_axi_awsize_UNCONNECTED(2 downto 0), + m_axi_awuser(0) => NLW_U0_m_axi_awuser_UNCONNECTED(0), + m_axi_awvalid => NLW_U0_m_axi_awvalid_UNCONNECTED, + m_axi_bid(0) => '0', + m_axi_bready => NLW_U0_m_axi_bready_UNCONNECTED, + m_axi_bresp(1 downto 0) => B"00", + m_axi_buser(0) => '0', + m_axi_bvalid => '0', + m_axi_rdata(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + m_axi_rid(0) => '0', + m_axi_rlast => '0', + m_axi_rready => NLW_U0_m_axi_rready_UNCONNECTED, + m_axi_rresp(1 downto 0) => B"00", + m_axi_ruser(0) => '0', + m_axi_rvalid => '0', + m_axi_wdata(63 downto 0) => NLW_U0_m_axi_wdata_UNCONNECTED(63 downto 0), + m_axi_wid(0) => NLW_U0_m_axi_wid_UNCONNECTED(0), + m_axi_wlast => NLW_U0_m_axi_wlast_UNCONNECTED, + m_axi_wready => '0', + m_axi_wstrb(7 downto 0) => NLW_U0_m_axi_wstrb_UNCONNECTED(7 downto 0), + m_axi_wuser(0) => NLW_U0_m_axi_wuser_UNCONNECTED(0), + m_axi_wvalid => NLW_U0_m_axi_wvalid_UNCONNECTED, + m_axis_tdata(7 downto 0) => NLW_U0_m_axis_tdata_UNCONNECTED(7 downto 0), + m_axis_tdest(0) => NLW_U0_m_axis_tdest_UNCONNECTED(0), + m_axis_tid(0) => NLW_U0_m_axis_tid_UNCONNECTED(0), + m_axis_tkeep(0) => NLW_U0_m_axis_tkeep_UNCONNECTED(0), + m_axis_tlast => NLW_U0_m_axis_tlast_UNCONNECTED, + m_axis_tready => '0', + m_axis_tstrb(0) => NLW_U0_m_axis_tstrb_UNCONNECTED(0), + m_axis_tuser(3 downto 0) => NLW_U0_m_axis_tuser_UNCONNECTED(3 downto 0), + m_axis_tvalid => NLW_U0_m_axis_tvalid_UNCONNECTED, + overflow => NLW_U0_overflow_UNCONNECTED, + prog_empty => prog_empty, + prog_empty_thresh(5 downto 0) => B"000000", + prog_empty_thresh_assert(5 downto 0) => B"000000", + prog_empty_thresh_negate(5 downto 0) => B"000000", + prog_full => prog_full, + prog_full_thresh(5 downto 0) => B"000000", + prog_full_thresh_assert(5 downto 0) => B"000000", + prog_full_thresh_negate(5 downto 0) => B"000000", + rd_clk => rd_clk, + rd_data_count(5 downto 0) => NLW_U0_rd_data_count_UNCONNECTED(5 downto 0), + rd_en => rd_en, + rd_rst => '0', + rd_rst_busy => rd_rst_busy, + rst => rst, + s_aclk => '0', + s_aclk_en => '0', + s_aresetn => '0', + s_axi_araddr(31 downto 0) => B"00000000000000000000000000000000", + s_axi_arburst(1 downto 0) => B"00", + s_axi_arcache(3 downto 0) => B"0000", + s_axi_arid(0) => '0', + s_axi_arlen(7 downto 0) => B"00000000", + s_axi_arlock(0) => '0', + s_axi_arprot(2 downto 0) => B"000", + s_axi_arqos(3 downto 0) => B"0000", + s_axi_arready => NLW_U0_s_axi_arready_UNCONNECTED, + s_axi_arregion(3 downto 0) => B"0000", + s_axi_arsize(2 downto 0) => B"000", + s_axi_aruser(0) => '0', + s_axi_arvalid => '0', + s_axi_awaddr(31 downto 0) => B"00000000000000000000000000000000", + s_axi_awburst(1 downto 0) => B"00", + s_axi_awcache(3 downto 0) => B"0000", + s_axi_awid(0) => '0', + s_axi_awlen(7 downto 0) => B"00000000", + s_axi_awlock(0) => '0', + s_axi_awprot(2 downto 0) => B"000", + s_axi_awqos(3 downto 0) => B"0000", + s_axi_awready => NLW_U0_s_axi_awready_UNCONNECTED, + s_axi_awregion(3 downto 0) => B"0000", + s_axi_awsize(2 downto 0) => B"000", + s_axi_awuser(0) => '0', + s_axi_awvalid => '0', + s_axi_bid(0) => NLW_U0_s_axi_bid_UNCONNECTED(0), + s_axi_bready => '0', + s_axi_bresp(1 downto 0) => NLW_U0_s_axi_bresp_UNCONNECTED(1 downto 0), + s_axi_buser(0) => NLW_U0_s_axi_buser_UNCONNECTED(0), + s_axi_bvalid => NLW_U0_s_axi_bvalid_UNCONNECTED, + s_axi_rdata(63 downto 0) => NLW_U0_s_axi_rdata_UNCONNECTED(63 downto 0), + s_axi_rid(0) => NLW_U0_s_axi_rid_UNCONNECTED(0), + s_axi_rlast => NLW_U0_s_axi_rlast_UNCONNECTED, + s_axi_rready => '0', + s_axi_rresp(1 downto 0) => NLW_U0_s_axi_rresp_UNCONNECTED(1 downto 0), + s_axi_ruser(0) => NLW_U0_s_axi_ruser_UNCONNECTED(0), + s_axi_rvalid => NLW_U0_s_axi_rvalid_UNCONNECTED, + s_axi_wdata(63 downto 0) => B"0000000000000000000000000000000000000000000000000000000000000000", + s_axi_wid(0) => '0', + s_axi_wlast => '0', + s_axi_wready => NLW_U0_s_axi_wready_UNCONNECTED, + s_axi_wstrb(7 downto 0) => B"00000000", + s_axi_wuser(0) => '0', + s_axi_wvalid => '0', + s_axis_tdata(7 downto 0) => B"00000000", + s_axis_tdest(0) => '0', + s_axis_tid(0) => '0', + s_axis_tkeep(0) => '0', + s_axis_tlast => '0', + s_axis_tready => NLW_U0_s_axis_tready_UNCONNECTED, + s_axis_tstrb(0) => '0', + s_axis_tuser(3 downto 0) => B"0000", + s_axis_tvalid => '0', + sbiterr => NLW_U0_sbiterr_UNCONNECTED, + sleep => '0', + srst => '0', + underflow => NLW_U0_underflow_UNCONNECTED, + valid => NLW_U0_valid_UNCONNECTED, + wr_ack => NLW_U0_wr_ack_UNCONNECTED, + wr_clk => wr_clk, + wr_data_count(5 downto 0) => NLW_U0_wr_data_count_UNCONNECTED(5 downto 0), + wr_en => wr_en, + wr_rst => '0', + wr_rst_busy => wr_rst_busy + ); +end STRUCTURE; diff --git a/sources/ip_cores/sim/ila_gbt_rx_frame_sim_netlist.vhdl b/sources/ip_cores/sim/ila_gbt_rx_frame_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..6b9c465b141c0505a9b9d6c726dd19c513fd9317 --- /dev/null +++ b/sources/ip_cores/sim/ila_gbt_rx_frame_sim_netlist.vhdl @@ -0,0 +1,32 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Wed Jun 12 16:30:55 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode synth_stub +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FMEMU/FLX712_FMEMU.gen/sources_1/ip/ila_gbt_rx_frame/ila_gbt_rx_frame_stub.vhdl +-- Design : ila_gbt_rx_frame +-- Purpose : Stub declaration of top-level module interface +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; + +entity ila_gbt_rx_frame is + Port ( + clk : in STD_LOGIC; + probe0 : in STD_LOGIC_VECTOR ( 79 downto 0 ) + ); + +end ila_gbt_rx_frame; + +architecture stub of ila_gbt_rx_frame is + attribute syn_black_box : boolean; + attribute black_box_pad_pin : string; + attribute syn_black_box of stub : architecture is true; + attribute black_box_pad_pin of stub : architecture is "clk,probe0[79:0]"; + attribute x_core_info : string; + attribute x_core_info of stub : architecture is "ila,Vivado 2024.1"; +begin +end; diff --git a/sources/ip_cores/sim/ila_lti_decoder_sim_netlist.vhdl b/sources/ip_cores/sim/ila_lti_decoder_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..e8e0c4a04da84fcdaa80e6a8b073dbd99b836d63 --- /dev/null +++ b/sources/ip_cores/sim/ila_lti_decoder_sim_netlist.vhdl @@ -0,0 +1,39 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Wed Jun 12 16:30:57 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode synth_stub +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FMEMU/FLX712_FMEMU.gen/sources_1/ip/ila_lti_decoder/ila_lti_decoder_stub.vhdl +-- Design : ila_lti_decoder +-- Purpose : Stub declaration of top-level module interface +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; + +entity ila_lti_decoder is + Port ( + clk : in STD_LOGIC; + probe0 : in STD_LOGIC_VECTOR ( 0 to 0 ); + probe1 : in STD_LOGIC_VECTOR ( 0 to 0 ); + probe2 : in STD_LOGIC_VECTOR ( 0 to 0 ); + probe3 : in STD_LOGIC_VECTOR ( 0 to 0 ); + probe4 : in STD_LOGIC_VECTOR ( 0 to 0 ); + probe5 : in STD_LOGIC_VECTOR ( 0 to 0 ); + probe6 : in STD_LOGIC_VECTOR ( 0 to 0 ); + probe7 : in STD_LOGIC_VECTOR ( 0 to 0 ) + ); + +end ila_lti_decoder; + +architecture stub of ila_lti_decoder is + attribute syn_black_box : boolean; + attribute black_box_pad_pin : string; + attribute syn_black_box of stub : architecture is true; + attribute black_box_pad_pin of stub : architecture is "clk,probe0[0:0],probe1[0:0],probe2[0:0],probe3[0:0],probe4[0:0],probe5[0:0],probe6[0:0],probe7[0:0]"; + attribute x_core_info : string; + attribute x_core_info of stub : architecture is "ila,Vivado 2024.1"; +begin +end; diff --git a/sources/ip_cores/sim/ila_lti_rx_data_sim_netlist.vhdl b/sources/ip_cores/sim/ila_lti_rx_data_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..52a2f99506e167884012b89f9f9c74e33cfb891c --- /dev/null +++ b/sources/ip_cores/sim/ila_lti_rx_data_sim_netlist.vhdl @@ -0,0 +1,32 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Wed Jun 12 16:30:55 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode synth_stub +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FMEMU/FLX712_FMEMU.gen/sources_1/ip/ila_lti_rx_data/ila_lti_rx_data_stub.vhdl +-- Design : ila_lti_rx_data +-- Purpose : Stub declaration of top-level module interface +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; + +entity ila_lti_rx_data is + Port ( + clk : in STD_LOGIC; + probe0 : in STD_LOGIC_VECTOR ( 35 downto 0 ) + ); + +end ila_lti_rx_data; + +architecture stub of ila_lti_rx_data is + attribute syn_black_box : boolean; + attribute black_box_pad_pin : string; + attribute syn_black_box of stub : architecture is true; + attribute black_box_pad_pin of stub : architecture is "clk,probe0[35:0]"; + attribute x_core_info : string; + attribute x_core_info of stub : architecture is "ila,Vivado 2024.1"; +begin +end; diff --git a/sources/ip_cores/sim/rxclkgen_sim_netlist.vhdl b/sources/ip_cores/sim/rxclkgen_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..3f0ade7287ea5ba1ebc4013c9f20b9aac5d2acbb --- /dev/null +++ b/sources/ip_cores/sim/rxclkgen_sim_netlist.vhdl @@ -0,0 +1,184 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Fri Jun 14 11:28:28 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FELIG/FLX712_FELIG.gen/sources_1/ip/rxclkgen/rxclkgen_sim_netlist.vhdl +-- Design : rxclkgen +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; + use UNISIM.VCOMPONENTS.ALL; +entity rxclkgen_clk_wiz is + port ( + clk_out1 : out STD_LOGIC; + reset : in STD_LOGIC; + locked : out STD_LOGIC; + clk_in1 : in STD_LOGIC + ); +end rxclkgen_clk_wiz; + +architecture STRUCTURE of rxclkgen_clk_wiz is + signal clk_out1_rxclkgen : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CDDCDONE_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKFBIN_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKFBOUT_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKFBOUTB_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKFBSTOPPED_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKINSTOPPED_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT0B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT1_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT1B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT2_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT2B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT3_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT3B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT4_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT5_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_CLKOUT6_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_DRDY_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_PSDONE_UNCONNECTED : STD_LOGIC; + signal NLW_mmcme3_adv_inst_DO_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 ); + attribute BOX_TYPE : string; + attribute BOX_TYPE of clkout1_buf : label is "PRIMITIVE"; + attribute XILINX_LEGACY_PRIM : string; + attribute XILINX_LEGACY_PRIM of clkout1_buf : label is "BUFG"; + attribute XILINX_TRANSFORM_PINMAP : string; + attribute XILINX_TRANSFORM_PINMAP of clkout1_buf : label is "VCC:CE"; + attribute BOX_TYPE of mmcme3_adv_inst : label is "PRIMITIVE"; + attribute OPT_MODIFIED : string; + attribute OPT_MODIFIED of mmcme3_adv_inst : label is "MLO"; +begin + clkout1_buf: unisim.vcomponents.BUFGCE + generic map( + CE_TYPE => "ASYNC", + SIM_DEVICE => "ULTRASCALE" + ) + port map ( + CE => '1', + I => clk_out1_rxclkgen, + O => clk_out1 + ); + mmcme3_adv_inst: unisim.vcomponents.MMCME3_ADV + generic map( + BANDWIDTH => "OPTIMIZED", + CLKFBOUT_MULT_F => 3.125000, + CLKFBOUT_PHASE => 0.000000, + CLKFBOUT_USE_FINE_PS => "FALSE", + CLKIN1_PERIOD => 3.125000, + CLKIN2_PERIOD => 0.000000, + CLKOUT0_DIVIDE_F => 25.000000, + CLKOUT0_DUTY_CYCLE => 0.500000, + CLKOUT0_PHASE => 0.000000, + CLKOUT0_USE_FINE_PS => "FALSE", + CLKOUT1_DIVIDE => 1, + CLKOUT1_DUTY_CYCLE => 0.500000, + CLKOUT1_PHASE => 0.000000, + CLKOUT1_USE_FINE_PS => "FALSE", + CLKOUT2_DIVIDE => 1, + CLKOUT2_DUTY_CYCLE => 0.500000, + CLKOUT2_PHASE => 0.000000, + CLKOUT2_USE_FINE_PS => "FALSE", + CLKOUT3_DIVIDE => 1, + CLKOUT3_DUTY_CYCLE => 0.500000, + CLKOUT3_PHASE => 0.000000, + CLKOUT3_USE_FINE_PS => "FALSE", + CLKOUT4_CASCADE => "FALSE", + CLKOUT4_DIVIDE => 1, + CLKOUT4_DUTY_CYCLE => 0.500000, + CLKOUT4_PHASE => 0.000000, + CLKOUT4_USE_FINE_PS => "FALSE", + CLKOUT5_DIVIDE => 1, + CLKOUT5_DUTY_CYCLE => 0.500000, + CLKOUT5_PHASE => 0.000000, + CLKOUT5_USE_FINE_PS => "FALSE", + CLKOUT6_DIVIDE => 1, + CLKOUT6_DUTY_CYCLE => 0.500000, + CLKOUT6_PHASE => 0.000000, + CLKOUT6_USE_FINE_PS => "FALSE", + COMPENSATION => "INTERNAL", + DIVCLK_DIVIDE => 1, + IS_CLKFBIN_INVERTED => '0', + IS_CLKIN1_INVERTED => '0', + IS_CLKIN2_INVERTED => '0', + IS_CLKINSEL_INVERTED => '0', + IS_PSEN_INVERTED => '0', + IS_PSINCDEC_INVERTED => '0', + IS_PWRDWN_INVERTED => '0', + IS_RST_INVERTED => '0', + REF_JITTER1 => 0.010000, + REF_JITTER2 => 0.010000, + SS_EN => "FALSE", + SS_MODE => "CENTER_HIGH", + SS_MOD_PERIOD => 10000, + STARTUP_WAIT => "FALSE" + ) + port map ( + CDDCDONE => NLW_mmcme3_adv_inst_CDDCDONE_UNCONNECTED, + CDDCREQ => '0', + CLKFBIN => NLW_mmcme3_adv_inst_CLKFBIN_UNCONNECTED, + CLKFBOUT => NLW_mmcme3_adv_inst_CLKFBOUT_UNCONNECTED, + CLKFBOUTB => NLW_mmcme3_adv_inst_CLKFBOUTB_UNCONNECTED, + CLKFBSTOPPED => NLW_mmcme3_adv_inst_CLKFBSTOPPED_UNCONNECTED, + CLKIN1 => clk_in1, + CLKIN2 => '0', + CLKINSEL => '1', + CLKINSTOPPED => NLW_mmcme3_adv_inst_CLKINSTOPPED_UNCONNECTED, + CLKOUT0 => clk_out1_rxclkgen, + CLKOUT0B => NLW_mmcme3_adv_inst_CLKOUT0B_UNCONNECTED, + CLKOUT1 => NLW_mmcme3_adv_inst_CLKOUT1_UNCONNECTED, + CLKOUT1B => NLW_mmcme3_adv_inst_CLKOUT1B_UNCONNECTED, + CLKOUT2 => NLW_mmcme3_adv_inst_CLKOUT2_UNCONNECTED, + CLKOUT2B => NLW_mmcme3_adv_inst_CLKOUT2B_UNCONNECTED, + CLKOUT3 => NLW_mmcme3_adv_inst_CLKOUT3_UNCONNECTED, + CLKOUT3B => NLW_mmcme3_adv_inst_CLKOUT3B_UNCONNECTED, + CLKOUT4 => NLW_mmcme3_adv_inst_CLKOUT4_UNCONNECTED, + CLKOUT5 => NLW_mmcme3_adv_inst_CLKOUT5_UNCONNECTED, + CLKOUT6 => NLW_mmcme3_adv_inst_CLKOUT6_UNCONNECTED, + DADDR(6 downto 0) => B"0000000", + DCLK => '0', + DEN => '0', + DI(15 downto 0) => B"0000000000000000", + DO(15 downto 0) => NLW_mmcme3_adv_inst_DO_UNCONNECTED(15 downto 0), + DRDY => NLW_mmcme3_adv_inst_DRDY_UNCONNECTED, + DWE => '0', + LOCKED => locked, + PSCLK => '0', + PSDONE => NLW_mmcme3_adv_inst_PSDONE_UNCONNECTED, + PSEN => '0', + PSINCDEC => '0', + PWRDWN => '0', + RST => reset + ); +end STRUCTURE; +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; + use UNISIM.VCOMPONENTS.ALL; +entity rxclkgen is + port ( + clk_out1 : out STD_LOGIC; + reset : in STD_LOGIC; + locked : out STD_LOGIC; + clk_in1 : in STD_LOGIC + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of rxclkgen : entity is true; +end rxclkgen; + +architecture STRUCTURE of rxclkgen is +begin + inst: entity work.rxclkgen_clk_wiz + port map ( + clk_in1 => clk_in1, + clk_out1 => clk_out1, + locked => locked, + reset => reset + ); +end STRUCTURE; diff --git a/sources/ip_cores/sim/vio_tclink_clk40_reset_sim_netlist.vhdl b/sources/ip_cores/sim/vio_tclink_clk40_reset_sim_netlist.vhdl new file mode 100644 index 0000000000000000000000000000000000000000..0f418ec36f0cfdfe8b7649c05e0db27771237a2a --- /dev/null +++ b/sources/ip_cores/sim/vio_tclink_clk40_reset_sim_netlist.vhdl @@ -0,0 +1,10412 @@ +-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024 +-- Date : Wed Jun 12 16:30:30 2024 +-- Host : lbp001app.nikhef.nl running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /localstore/et/franss/felix/firmware/Projects/FLX712_FMEMU/FLX712_FMEMU.gen/sources_1/ip/vio_tclink_clk40_reset/vio_tclink_clk40_reset_sim_netlist.vhdl +-- Design : vio_tclink_clk40_reset +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xcku115-flvf1924-2-e +-- -------------------------------------------------------------------------------- +`protect begin_protected +`protect version = 1 +`protect encrypt_agent = "XILINX" +`protect encrypt_agent_info = "Xilinx Encryption Tool 2024.1" +`protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +JUndIxpS62ep+wNEevT8CgR4sQzjhGLT1xUWuTji3f4ustHy/TbXrp3zSdnkjKTaxB2KXpJ2uzvp +EhX4Xm6MTWBqRbhE/yKFMTFJWCrRSNdS0v2yQ131zZ2Br+c9tmNTHR8KGJgEzDBl5c5OxWAVpYJ0 +574RzaIvq1Nw9flmkTA= + +`protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +rAvYwjGKze+9QhUQZUlw8fchzrKMNymijYRnxC7KOVYVc6b+Kd4nonk1KLsZeO0ZreJhYPBPkrdK +4q18hQfmSRW1z3z/J6urq3IA9LT3fjtVBcwFSlDOIYtRdNhSphZ63g6e0ThlfKO47Tu9A1OYZ9co +roKTPg0jz9QHSBJepcvtbCXpj3MmzNvtigGZ+ksIkRPmXXfG85o4LSY3QFa4FSNCayZTikaN3Q6d +t3fwOZghS4Sg+8F/9VZGsanBKWr5yJTgbZCe4uZC/C5hsrqo9J75Kqj1A0UuVlxRVvhiXo7IIZsx +mw1yJoJ4l2g7QvRtNkhioi5BVM0l/Run9F1xRQ== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +AbEiEL8jwjC818rDqqIEjqB7l2nLi3gz20noQ4wKNkW2V9yOreWfwvsM5v8dfqSKhtw2xajJUIRz +hmPDLIE7mA++bdRjUELPmIRZNeI36U/Wwteohxvza2xGeBYDQt2T+UUKa3y/Ck7chw4KSvQQZDin +K/CPtzjuJEOa1E2aqr0= + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +ULg52fCY+c7m9EQDqznCAJQNR1yo6KRLqBrWA6wsJLQyAuCuCGFWs2ocC7Yoqt5x7DWOUTaknRIm +/8Rb2W7qt+1/WoBkhX+ccFUrzQ58W5wVj4AcvUcBMdoPniONK+tLmKrsAFOefuwjgsEhgxMr4uZF +oP3hGRjknuFH4GEt3YCd+AXpvFlnKDDQrEYC/63atFc8BHKytq7qezyFKXCpEI5JuPpdtAJD+yGQ +njgeYHAnZwchVffN+5MD7hLnH8RvsklEmeFqfox6u8RYnxhV3yaaZM87e7dEw+L2eEkC404ZBUXL +cBIFtfbh96xsOZ1lsx2Dxb2nNcd91amguhF73w== + +`protect key_keyowner="Real Intent", key_keyname="RI-RSA-KEY-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +pxS+WWgaJmm6h7IgRMN+JPLN9HZKmihpMbtgcOEoAIKREQlwuMBM9JmhPbS7p5MOsv9dkNcLwvOi +pt94/WA6jOBNJ5vRBQ75Z/Ov8+szkvfpQvdq9SD191PajIkqqidaRoRbYWwhH5h+79hcWqZ0vWVQ +F1fpC/+WvdM/y0mMyAlGPSvtylWJmZztOzh8RBPGYzJlop32XccMUNJDXAUwaCTfeYXl0m3D2+CU +XajFqtyy4VaUadBhL4UtDlzso2nzp/KGFkZfY7pm3rNyR62lWueEEDy2s0iotzRUJSUfMlR0pyVs +JWBhiZS8dcbjPQOlvhyNCh4UVbilji9sbURYUg== + +`protect key_keyowner="Metrics Technologies Inc.", key_keyname="DSim", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +m5AyV0RvjtvyPjkTLoredEYgUZsC4jjA65WtsRZ+1GADDT+MeNAjPV/9MpJDrs2Qr47p5kFYmz1M +8yQBX9q6oqGVMWNSgIepVp25s1r+kXGjj2fHvKrpO0J8dE53dFmp9POrWKkjWpC+MV+zhPgN0Fhc +UGzzmWh2vk/b+qE0BAr8NrDKJsA9KSzTM6luLma8prQ5S82OuadR9meh6KgPg3u9+Bso2MXzg70g +FmsFMEL/8guHNi4OwpgkalrVF8H9zLLCyTV933IApZFMYWV5d7PIOKxjR6Lwzn/al8CCusSP43Ib +HFo3glG2+G0RwgO1BjtF5qkN31KEW3mlUBuJjg== + +`protect key_keyowner="Xilinx", key_keyname="xilinxt_2023_11", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Rnx/5TQ2QSqKWtsoTKFKwuLiJbhax5a5sK1DfzcCxLVomW50sq6BoBfqsUq1ClECCOGhTmAzLMds +T6qf0C+wzAAA9uIFae4XN522NFDFepURMo48oUYSe0uf3u+HRGkBqGQAEqESSJntHeNY0mfJ0mfe +nMHVaMJqeZVFrIisHj/MTxqXAI2egXvwhbULOCh4F5PuX3hhHxM53wI+hWHhCLFG9OIBRBAKOSsy +NVFEkl52a4ckoxDVh8Mfj2saHjm0pmEMzaK1OSdjNWIprN4dSo2fRC6BtxRl7/JWRzsT3mDp3Z7f +fRhu+pO8L0E7Ffw3AUQjtYwt2Cdj1NFEBWEwnA== + +`protect key_keyowner="Atrenta", key_keyname="ATR-SG-RSA-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=384) +`protect key_block +ETUcc1kNYxA19Ope50bMkjR+8VPYnoOuARdahUjjOe0JW7jVeQm/vDC1g0S/faFgtvGinoxtAVYa +V3u8gOmVea5P7qPeUjtc/b5iPhZlIFJdLoGzLEEIMQrb52lXS6lCK0Fw2Kj1GsTcdNOnL+3hENhf +7fWoaJmrM+5icrDLIvfjeO2zIO7wEz5awEPBd++dXwfS4tgez1y/p4HPENhB67zKdCNcHs4rSmoq +KDCR9p6ByNZbPy8K97AC+3LiDuXuos4bhYmdx2K3qwnc00JlWjU20WU7FwWTJL/W5TMExoqts2CK +hIV51m6aLVR5NzwpET9W1IlGwTbw8cm2MlxMmBTCsLFVQJIwTVu3vz/f858gFOa1zHlW0bdVHGZV +UcMHcI9pJ+o0JHZtxVONsgdROs72yY2gugWCCdZPR+7HoxU5Qo9FH5FI2m24mesRjUjsTFQubXmr +YHUcKmFbdz4GIXjZ/9OBLKyhkd4IncVNtIBFPPDaraBmwjz/3oqxJshs + +`protect key_keyowner="Cadence Design Systems.", key_keyname="CDS_RSA_KEY_VER_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +DLYJRdQypJa2iDJxy5uUrhlX6IewERnU8sgQ+XYaAHLVOj69zhiT2cZqazSW16dF9spJfsMHwJBH +JluU1AvoUsqLAyjbv9M4J9TG5v6EwPQSX9sNFWaM50UVuiZP5ZEBmIderNuadG44bhtqDdsMu/Os +GQFiqQtOe7Ntsmyk5oWv6piEKzK7OVq0KYeXA3Zj6/4wAsr8Y+nqMZU9NXt0Gqms0KwIp+pmfJh4 +eI034W4Lm1R3Df3/AW7nMUiRNH1BWcUKGtpnb2aYM/8ua/Q/vn1+u+bYG+8/NvY0+GfveCVVYVJw +fYGFDmecN9qkXTaPSiznSwi/WaaWbs5Zm0iOTQ== + +`protect data_method = "AES128-CBC" +`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 27760) +`protect data_block +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 +aQ== +`protect end_protected +`protect begin_protected +`protect version = 1 +`protect encrypt_agent = "XILINX" +`protect encrypt_agent_info = "Xilinx Encryption Tool 2024.1" +`protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +lB6Fw7WYHikERyqzAwFiAj8hK0T4MEVIDm75G3ELoSLa4boGBe6RZdIGk41QtmVKhtNNBaf0fvem +m9zmwCITlzzQb2wcRJpnOd2vmmm4Q4yH4/m3GovlRoCHQUeYn7weph1lGZwB3P8LsfuRnGSLh1qQ +CocgouGU8FsiQ7VsDKE= + +`protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +y7UNXVYAO5qBktx2Y8WVjkjEhqy1HbQye/j3iWYObsIR2D6hh9dZYR0OhHmw78Ozifu1QtZ8ECN8 +f0VfiOcJFDem1indqbbLu7hk6PZJuUMLCUghWjhiLWsGa2Kpd8xH++5+fB5QliM/Z7lwCuWKUskt +x8ruMCmzt/UK6M7LjNrc06kLcLhbhLLXoBboEidWfkmzbTF0NRMSPkJzphte5/boglA/OGeu2z97 ++6oDOl2y3ZvY8xVUo8y0FQlLZ3MEhTRfmlc4P6W92rAI6Omxy5MJOioheH0oMTygoniQj5PSlODp +pgBCX11IT86M/HZ6gWYSuFA0nkwLoWhph4rBIA== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +EESvLJy10IW2TJcL9bENTHCy2GW7KwoizF36VdmRN25PPwf93oFz60qNBZY7yuzwqRlGyFwInvLD +bR47GfaAz3wyNBFu4YD2WW5d3QYjZaRUt3NWMjlwKmdhUcmZhcxpKe7PaUit2IeF0fKM+90mh3NL +YrOXhU7eg/KblHalLwY= + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +UqtfRMOcNYB9tQ8qz7Cl9sJ2TWBHWR8T2V2KnNdCTDubba+sxOnQNFdT5NUoXGFLL/0HmR/DBt+d +YHS9Ehm8gth0Flg+lDk4DrVPK9UJlUmBPPbZ+XT5bNid21TImRhfI6Q8nPTeMamUCvmWNn/jaOxG +MYgXMpz3ZbDTbkvl5dHRmvSMFqkrOWV1FQig0xEkt1nDCMG5Ca4atPc65doWCWDlbDRn/hfbvJfS +iCyk2IGcXqCz6aFGh7/zbuWx6zg8lnm7iBJ9U6yQ+ZYXaRiUZpmH3GnfYdwMSIZsVXuMdnVSIMpC +FLEpuz95Ox3AzZ1s5CmMft4/8BdgIjNDe5krjg== + +`protect key_keyowner="Real Intent", key_keyname="RI-RSA-KEY-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +moVLHksG9tOKbsurETzSQuJkFUhiJ09op+mlpfK8bRWL4xFqfrhVTOBAO7ml3fFRHqB9eZNFYf6n +ijpRO6re5n5hglg1t2JZFcKzKAnVRuTfqbG7qNgHZu0YpiIlKmFZru3uuQa09Hu9oQMOOpoGUYx/ +EyyyG5ECtkPmypAlHEneX88VyQGV8FDm9o/B2LPUReaHUslL6DDathwbpDKnNM6GwyVOX0ieev0i +gbifDWIgY6vMbF5uhAABfrrYC80HwRe9OQcUZoF1c7BFV2aRHdaoJrSa4U/wZSvjrNzZxT9HUzP/ +yQD994ICRM9q997fbsidyABY3mH/VXy9jIp5rw== + +`protect key_keyowner="Metrics Technologies Inc.", key_keyname="DSim", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +gu8mokpade0RyIEFP6MwIzUm+m9/rlyfmQvFe7/e/o7VMQ5ydrMGWlJUxwSy4xRLex4kVCHe3gEd +EOaIjKvjKmYBbjKIkz0xtIe9YTYJA7k+2TTNjvVpSuacPyVrivyIBcGsFf3P3vfqhqFIE7cAs8/g +vP5dJgvOHwnn3wxgqiCk7OdX2PWWIDCq3IEtZ8qyK+tvUkAzSPJTbAc03L1HTFSLEXqCiiiMwv4Z +6hqhmTic96S6X4Jq+OoQlL8gcsvaAgf/KTDvsleobiRb9fm5Zpzj+kzPr7xNfewym8HosvTupBVx +3R9hlT+V/qsE51jvGbTyNYurPRSW0ixBkq/96A== + +`protect key_keyowner="Xilinx", key_keyname="xilinxt_2023_11", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +d/uxydgxMj19c0AyUS7gzl9Lio7Arjjdh7lgeViQg8Sj4zOVsrl/FCE7Y+QLaD74oF1bQBCoozYu +uz7KWa8nUonLABmNRVCprNCpM8aRCBBljo+kQUzjtV1+45vivR+b7j12eyj1RjvWnqeWlg9Ciifq +9hRxS10xY2rEycZDRh0P8VlXnJBl2d9h+nIq9w+LK4lEfLGI1dFuXRNKvNIL8jiGDdWrv46gl6jb +IGZIk2DZFmiecrFH+I3BaCS9igJI6kGuQPqxJxXlkEGvAXDazTRP6+6lvh+7GBdTTAiCYvQVVkeB +xXurlXAHX7WUGlOKrinDQl826Bwh7rELCyFVtQ== + +`protect key_keyowner="Atrenta", key_keyname="ATR-SG-RSA-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=384) +`protect key_block +s1+FCOI5pFtZQZyr1s37QQ3G6FC9fXGWUoIf8zAKU7HP8JrIw939WdDEwhJ84Rjt9NdMFsT7oWfE +TVpleg3GXKqPfBqkjIZT320JNYc3fWsDh3JzygIpD9VSbnlfcIXE4OCq4CoCsNGFTPWDzsVodEjk +3nlEKx0FINRmdsaXOC6GzJaLRRNwBnp2LCGHs+YW9+OtYX7s+dlNhxtfSF3l4BOJtWQmSQHuT4sZ +GZ0tiqINJnq+6MWAS02t63fH6EPF87XIEhxKK8g89HuTmuwKlwV2p3WYVYLZHsy6BmEQEUOgWohS +e3oVzctYorl6yEv3wdJqf+QngAXg1zdVWaaxHpJMkyE5rHDv9stuJpD9hiLkwM9ToVYGBqHFTtcr +pKg2mmKEkcpm1NweKrK6z6BoUPzl6/Fo6/UU9mUV4LaA5yIwxMgry/kLg8crnq2M4FE8/rqBDzbx +lCuzGymzHGIYnkq8UtBf1cQKZHZBTzLtVkVNmvWDFewwTafTMxnOY4r4 + +`protect key_keyowner="Cadence Design Systems.", key_keyname="CDS_RSA_KEY_VER_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +S1ncenbNpKjKJletwqr/lYSd4fWGBAohtc9+CwEVHMEpRs1AkU56NJUjs2t8yT7diJ0JeVLtZH+/ +KwOTuDB77YdlW71kfk9WNGvi77CCUU4x2EIFJMS02FKlJsQEsNIp1fKBdDBzBosp/yE+cp4aG1nL +WU/ObfJZImbaDbn8ZU7OvW2DUIW3xa1Oisp7b+eulp3kCXM0eSVcjC48wY9x+m+LZXSeU1ODyu6L +STlaTrKTJYn+oJCgOiQWlg/KnGNTwAiFHiFkkKKX1RxX3U5xSwik+uZ/8LDEjP7DBKfY55XHROGy +OIUHcyT7eSRRZk3eQAu8V9x57XybKd3opRjuJA== + +`protect key_keyowner="Synplicity", key_keyname="SYNP15_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +LewSLYRinJ6BmwTc8plgGL3FdWSWo7w/+h8YHrlNLizMv4dtbB9ISeLgAZgOSTjvH19JmV7vyBxo +Lgiw+TqhXnM2wOuyUaBMuZ2rzr9LEqWhIUxMX4z5sWJR6oDPplGZqz0Dm+KiG6WwCpfLJHBV7+93 +XOK+enHuwJ0tfCk59SeJXA0qfgLyTUWP2DFk7IESSMIcYqAoPgtmwkgXhgCfUKOTc3uohmo9VwLA +EkisA94Z4aNOgwRt4ql8X7iCEE5cV/isYo46FnRc9H8ou3FrSIQqqKY7qroAGth3HERxbnKVbWUq +1wXY/26vl2GJTwwuHO9FAEHy2/MLOWBZfZYYJg== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-PREC-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +HiwxPcyyS+DXozEnup3F37/qTjzABWOVHn3NY7CmM4QNFkcmw3XFpsMPNxXwHBTcvYM0R+dHlxs5 +/LX0GIr//xbd4W/rXwG/6zpN3Is+y+ZgBwY38NyNtOee5lhW1FYDufMDIXvlsApHl+5rl21AMs4m +hzAHQuslKDto6R3aU8WlKc4c4v9mo/ZnyfJlyzlBReizxut6+Pdhn3NfMMysd+mJRbhm4cca5uLx +vI+PWWHh3H08rQI+0x3lIO/3/7ldba6Kyr6LRlx7K9rCbtxtKxDnaY3CGGxChCnMiW6B2kc0afK9 +vrrdtH9swg81NVcYYRkZXuf+yp7At/R4H02JDg== + +`protect data_method = "AES128-CBC" +`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 91872) +`protect data_block +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 +`protect end_protected +`protect begin_protected +`protect version = 1 +`protect encrypt_agent = "XILINX" +`protect encrypt_agent_info = "Xilinx Encryption Tool 2024.1" +`protect key_keyowner="Synopsys", key_keyname="SNPS-VCS-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +JUndIxpS62ep+wNEevT8CgR4sQzjhGLT1xUWuTji3f4ustHy/TbXrp3zSdnkjKTaxB2KXpJ2uzvp +EhX4Xm6MTWBqRbhE/yKFMTFJWCrRSNdS0v2yQ131zZ2Br+c9tmNTHR8KGJgEzDBl5c5OxWAVpYJ0 +574RzaIvq1Nw9flmkTA= + +`protect key_keyowner="Aldec", key_keyname="ALDEC15_001", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +rAvYwjGKze+9QhUQZUlw8fchzrKMNymijYRnxC7KOVYVc6b+Kd4nonk1KLsZeO0ZreJhYPBPkrdK +4q18hQfmSRW1z3z/J6urq3IA9LT3fjtVBcwFSlDOIYtRdNhSphZ63g6e0ThlfKO47Tu9A1OYZ9co +roKTPg0jz9QHSBJepcvtbCXpj3MmzNvtigGZ+ksIkRPmXXfG85o4LSY3QFa4FSNCayZTikaN3Q6d +t3fwOZghS4Sg+8F/9VZGsanBKWr5yJTgbZCe4uZC/C5hsrqo9J75Kqj1A0UuVlxRVvhiXo7IIZsx +mw1yJoJ4l2g7QvRtNkhioi5BVM0l/Run9F1xRQ== + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VELOCE-RSA", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=128) +`protect key_block +AbEiEL8jwjC818rDqqIEjqB7l2nLi3gz20noQ4wKNkW2V9yOreWfwvsM5v8dfqSKhtw2xajJUIRz +hmPDLIE7mA++bdRjUELPmIRZNeI36U/Wwteohxvza2xGeBYDQt2T+UUKa3y/Ck7chw4KSvQQZDin +K/CPtzjuJEOa1E2aqr0= + +`protect key_keyowner="Mentor Graphics Corporation", key_keyname="MGC-VERIF-SIM-RSA-2", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +ULg52fCY+c7m9EQDqznCAJQNR1yo6KRLqBrWA6wsJLQyAuCuCGFWs2ocC7Yoqt5x7DWOUTaknRIm +/8Rb2W7qt+1/WoBkhX+ccFUrzQ58W5wVj4AcvUcBMdoPniONK+tLmKrsAFOefuwjgsEhgxMr4uZF +oP3hGRjknuFH4GEt3YCd+AXpvFlnKDDQrEYC/63atFc8BHKytq7qezyFKXCpEI5JuPpdtAJD+yGQ +njgeYHAnZwchVffN+5MD7hLnH8RvsklEmeFqfox6u8RYnxhV3yaaZM87e7dEw+L2eEkC404ZBUXL +cBIFtfbh96xsOZ1lsx2Dxb2nNcd91amguhF73w== + +`protect key_keyowner="Real Intent", key_keyname="RI-RSA-KEY-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +pxS+WWgaJmm6h7IgRMN+JPLN9HZKmihpMbtgcOEoAIKREQlwuMBM9JmhPbS7p5MOsv9dkNcLwvOi +pt94/WA6jOBNJ5vRBQ75Z/Ov8+szkvfpQvdq9SD191PajIkqqidaRoRbYWwhH5h+79hcWqZ0vWVQ +F1fpC/+WvdM/y0mMyAlGPSvtylWJmZztOzh8RBPGYzJlop32XccMUNJDXAUwaCTfeYXl0m3D2+CU +XajFqtyy4VaUadBhL4UtDlzso2nzp/KGFkZfY7pm3rNyR62lWueEEDy2s0iotzRUJSUfMlR0pyVs +JWBhiZS8dcbjPQOlvhyNCh4UVbilji9sbURYUg== + +`protect key_keyowner="Metrics Technologies Inc.", key_keyname="DSim", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +m5AyV0RvjtvyPjkTLoredEYgUZsC4jjA65WtsRZ+1GADDT+MeNAjPV/9MpJDrs2Qr47p5kFYmz1M +8yQBX9q6oqGVMWNSgIepVp25s1r+kXGjj2fHvKrpO0J8dE53dFmp9POrWKkjWpC+MV+zhPgN0Fhc +UGzzmWh2vk/b+qE0BAr8NrDKJsA9KSzTM6luLma8prQ5S82OuadR9meh6KgPg3u9+Bso2MXzg70g +FmsFMEL/8guHNi4OwpgkalrVF8H9zLLCyTV933IApZFMYWV5d7PIOKxjR6Lwzn/al8CCusSP43Ib +HFo3glG2+G0RwgO1BjtF5qkN31KEW3mlUBuJjg== + +`protect key_keyowner="Xilinx", key_keyname="xilinxt_2023_11", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +Rnx/5TQ2QSqKWtsoTKFKwuLiJbhax5a5sK1DfzcCxLVomW50sq6BoBfqsUq1ClECCOGhTmAzLMds +T6qf0C+wzAAA9uIFae4XN522NFDFepURMo48oUYSe0uf3u+HRGkBqGQAEqESSJntHeNY0mfJ0mfe +nMHVaMJqeZVFrIisHj/MTxqXAI2egXvwhbULOCh4F5PuX3hhHxM53wI+hWHhCLFG9OIBRBAKOSsy +NVFEkl52a4ckoxDVh8Mfj2saHjm0pmEMzaK1OSdjNWIprN4dSo2fRC6BtxRl7/JWRzsT3mDp3Z7f +fRhu+pO8L0E7Ffw3AUQjtYwt2Cdj1NFEBWEwnA== + +`protect key_keyowner="Atrenta", key_keyname="ATR-SG-RSA-1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=384) +`protect key_block +ETUcc1kNYxA19Ope50bMkjR+8VPYnoOuARdahUjjOe0JW7jVeQm/vDC1g0S/faFgtvGinoxtAVYa +V3u8gOmVea5P7qPeUjtc/b5iPhZlIFJdLoGzLEEIMQrb52lXS6lCK0Fw2Kj1GsTcdNOnL+3hENhf +7fWoaJmrM+5icrDLIvfjeO2zIO7wEz5awEPBd++dXwfS4tgez1y/p4HPENhB67zKdCNcHs4rSmoq +KDCR9p6ByNZbPy8K97AC+3LiDuXuos4bhYmdx2K3qwnc00JlWjU20WU7FwWTJL/W5TMExoqts2CK +hIV51m6aLVR5NzwpET9W1IlGwTbw8cm2MlxMmBTCsLFVQJIwTVu3vz/f858gFOa1zHlW0bdVHGZV +UcMHcI9pJ+o0JHZtxVONsgdROs72yY2gugWCCdZPR+7HoxU5Qo9FH5FI2m24mesRjUjsTFQubXmr +YHUcKmFbdz4GIXjZ/9OBLKyhkd4IncVNtIBFPPDaraBmwjz/3oqxJshs + +`protect key_keyowner="Cadence Design Systems.", key_keyname="CDS_RSA_KEY_VER_1", key_method="rsa" +`protect encoding = (enctype="BASE64", line_length=76, bytes=256) +`protect key_block +DLYJRdQypJa2iDJxy5uUrhlX6IewERnU8sgQ+XYaAHLVOj69zhiT2cZqazSW16dF9spJfsMHwJBH +JluU1AvoUsqLAyjbv9M4J9TG5v6EwPQSX9sNFWaM50UVuiZP5ZEBmIderNuadG44bhtqDdsMu/Os +GQFiqQtOe7Ntsmyk5oWv6piEKzK7OVq0KYeXA3Zj6/4wAsr8Y+nqMZU9NXt0Gqms0KwIp+pmfJh4 +eI034W4Lm1R3Df3/AW7nMUiRNH1BWcUKGtpnb2aYM/8ua/Q/vn1+u+bYG+8/NvY0+GfveCVVYVJw +fYGFDmecN9qkXTaPSiznSwi/WaaWbs5Zm0iOTQ== + +`protect data_method = "AES128-CBC" +`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 261856) +`protect data_block +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 +Ou2ZhN1AOd14ULokP7dZbhfH1sYAczaukjeba79KRQRNfgV465v7/YJIwfk3dwf2pON/eA1OB6Dt +AYHcbgSlzS3DRDggCZ/hcIwtJyajolXbaoKChTRstdeRF4uL65bKkUcz4T+nkD/6UcJaWD9rK2jn +y2FAxdaC3NCt80yRG2J7NejHKFUzCTGwcNSTvYCcXEgxGQWYgrXPc9UlNLVrh7pbgLF6Yr/e+iQT +MjrbZborYTD95174g9FmqapS+ms8qttbgLpJxbKl02ArQdVtElayyer1IMbyiPaigXTBcTESEK6T +Gm0MQ9Rl5oOtKS8vcyVBLl6WQ7yLUO5Lfgao8tWxBr/U+QWSVnwXmhVeTMRRopn4UWWCtQq2aCGp +ye2jrJdyStYgPg3WJMhhbgNb3YxpzSp8j4Ci8Y0CBYue46lzUjmsHiWa996Mxcoww68444tjL+IA +XhKHv9fYTCQoxtWIh9YdKWSxck91t1vlV+m7Imd6Wz7zY/8SMBbjDq7PZy9+NqWpsQG66VAo0FIU +ARU0gdlxqUe9iz+l+xpZDeqgR/i7ycYLk3pgt07t0ToFEsizgEC0o4pJiLt/iw+pkKvt/rRuBv0M +tafEfDP7a0nU5vWqm6q+EukOW4UhL5vuosWcvRdTMRzkBy1PJP/NkVE9F09o2Iq+nUcRHvn8bDaY +YBWTxO9BrzaK8JqCn4l5Ipppcc4UllHYIYaMasGioGPOgZW1jGRTVZRCEFVnkqEulW/gymiwWibg +A/aOqqYTd6XyQRw2FsAofbXY7D04wzcdJtcNVxJGxMpYMOneih09pe2C49kaesTytHy2HnpIRF2M +qSFtY0f9bSy3dJ2bK8/s6ORwsWg1oU2aO3eh7h+BvUATQJaSj7UbwCV5lsBtkImii5QilOle7RIZ +c2PWyO+k68u1BE0Gmgp/JQ3BvC9k4Ax4fWCqjYhv8J9t1b5WkiFOEvWjq1DR2hZWAf0CrlHLXP5+ +gCgrCRsbkQ8X+U0+u5uhuQO6L406TLJl/pLwzqMiG3ltn+oq9p/3/CSX51Xrc0+e5hcbtaX2dudW +is74cRdVHuW2cyx65/gozLTHnN+bcqWh50xXen92QeopSjd5R32DNZhHjZSytgw9k0fd013mC1ZY +g3iqoDbd+GZ/16sPSZ7YfGH1dh7tjnM/KavXONI2LTd77eTK7uOdHPYPP59WIqIZ1QwXPgnIrvWF ++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 +`protect end_protected +library IEEE; + use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; + use UNISIM.VCOMPONENTS.ALL; +entity vio_tclink_clk40_reset is + port ( + clk : in STD_LOGIC; + probe_out0 : out STD_LOGIC_VECTOR ( 2 downto 0 ); + probe_out1 : out STD_LOGIC_VECTOR ( 0 to 0 ); + probe_out2 : out STD_LOGIC_VECTOR ( 0 to 0 ) + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of vio_tclink_clk40_reset : entity is true; + attribute CHECK_LICENSE_TYPE : string; + attribute CHECK_LICENSE_TYPE of vio_tclink_clk40_reset : entity is "vio_tclink_clk40_reset,vio,{}"; + attribute X_CORE_INFO : string; + attribute X_CORE_INFO of vio_tclink_clk40_reset : entity is "vio,Vivado 2024.1"; +end vio_tclink_clk40_reset; + +architecture STRUCTURE of vio_tclink_clk40_reset is + signal NLW_inst_probe_out10_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out100_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out101_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out102_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out103_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out104_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out105_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out106_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out107_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out108_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out109_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out11_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out110_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out111_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out112_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out113_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out114_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out115_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out116_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out117_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out118_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out119_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out12_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out120_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out121_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out122_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out123_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out124_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out125_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out126_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out127_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out128_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out129_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out13_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out130_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out131_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out132_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out133_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out134_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out135_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out136_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out137_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out138_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out139_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out14_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out140_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out141_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out142_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out143_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out144_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out145_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out146_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out147_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out148_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out149_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out15_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out150_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out151_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out152_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out153_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out154_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out155_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out156_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out157_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out158_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out159_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out16_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out160_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out161_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out162_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out163_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out164_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out165_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out166_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out167_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out168_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out169_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out17_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out170_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out171_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out172_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out173_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out174_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out175_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out176_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out177_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out178_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out179_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out18_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out180_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out181_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out182_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out183_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out184_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out185_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out186_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out187_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out188_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out189_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out19_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out190_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out191_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out192_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out193_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out194_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out195_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out196_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out197_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out198_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out199_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out20_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out200_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out201_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out202_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out203_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out204_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out205_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out206_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out207_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out208_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out209_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out21_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out210_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out211_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out212_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out213_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out214_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out215_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out216_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out217_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out218_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out219_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out22_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out220_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out221_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out222_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out223_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out224_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out225_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out226_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out227_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out228_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out229_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out23_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out230_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out231_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out232_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out233_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out234_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out235_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out236_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out237_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out238_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out239_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out24_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out240_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out241_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out242_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out243_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out244_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out245_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out246_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out247_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out248_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out249_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out25_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out250_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out251_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out252_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out253_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out254_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out255_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out26_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out27_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out28_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out29_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out3_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out30_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out31_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out32_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out33_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out34_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out35_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out36_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out37_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out38_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out39_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out4_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out40_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out41_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out42_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out43_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out44_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out45_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out46_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out47_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out48_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out49_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out5_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out50_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out51_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out52_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out53_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out54_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out55_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out56_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out57_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out58_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out59_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out6_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out60_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out61_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out62_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out63_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out64_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out65_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out66_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out67_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out68_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out69_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out7_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out70_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out71_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out72_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out73_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out74_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out75_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out76_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out77_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out78_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out79_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out8_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out80_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out81_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out82_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out83_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out84_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out85_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out86_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out87_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out88_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out89_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out9_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out90_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out91_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out92_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out93_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out94_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out95_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out96_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out97_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out98_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_probe_out99_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); + signal NLW_inst_sl_oport0_UNCONNECTED : STD_LOGIC_VECTOR ( 16 downto 0 ); + attribute C_BUILD_REVISION : integer; + attribute C_BUILD_REVISION of inst : label is 0; + attribute C_BUS_ADDR_WIDTH : integer; + attribute C_BUS_ADDR_WIDTH of inst : label is 17; + attribute C_BUS_DATA_WIDTH : integer; + attribute C_BUS_DATA_WIDTH of inst : label is 16; + attribute C_CORE_INFO1 : string; + attribute C_CORE_INFO1 of inst : label is "128'b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_CORE_INFO2 : string; + attribute C_CORE_INFO2 of inst : label is "128'b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute C_CORE_MAJOR_VER : integer; + attribute C_CORE_MAJOR_VER of inst : label is 2; + attribute C_CORE_MINOR_ALPHA_VER : integer; + attribute C_CORE_MINOR_ALPHA_VER of inst : label is 97; + attribute C_CORE_MINOR_VER : integer; + attribute C_CORE_MINOR_VER of inst : label is 0; + attribute C_CORE_TYPE : integer; + attribute C_CORE_TYPE of inst : label is 2; + attribute C_CSE_DRV_VER : integer; + attribute C_CSE_DRV_VER of inst : label is 1; + attribute C_EN_PROBE_IN_ACTIVITY : integer; + attribute C_EN_PROBE_IN_ACTIVITY of inst : label is 0; + attribute C_EN_SYNCHRONIZATION : integer; + attribute C_EN_SYNCHRONIZATION of inst : label is 1; + attribute C_MAJOR_VERSION : integer; + attribute C_MAJOR_VERSION of inst : label is 2013; + attribute C_MAX_NUM_PROBE : integer; + attribute C_MAX_NUM_PROBE of inst : label is 256; + attribute C_MAX_WIDTH_PER_PROBE : integer; + attribute C_MAX_WIDTH_PER_PROBE of inst : label is 256; + attribute C_MINOR_VERSION : integer; + attribute C_MINOR_VERSION of inst : label is 1; + attribute C_NEXT_SLAVE : integer; + attribute C_NEXT_SLAVE of inst : label is 0; + attribute C_NUM_PROBE_IN : integer; + attribute C_NUM_PROBE_IN of inst : label is 0; + attribute C_NUM_PROBE_OUT : integer; + attribute C_NUM_PROBE_OUT of inst : label is 3; + attribute C_PIPE_IFACE : integer; + attribute C_PIPE_IFACE of inst : label is 0; + attribute C_PROBE_IN0_WIDTH : integer; + attribute C_PROBE_IN0_WIDTH of inst : label is 1; + attribute C_PROBE_IN100_WIDTH : integer; + attribute C_PROBE_IN100_WIDTH of inst : label is 1; + attribute C_PROBE_IN101_WIDTH : integer; + attribute C_PROBE_IN101_WIDTH of inst : label is 1; + attribute C_PROBE_IN102_WIDTH : integer; + attribute C_PROBE_IN102_WIDTH of inst : label is 1; + attribute C_PROBE_IN103_WIDTH : integer; + attribute C_PROBE_IN103_WIDTH of inst : label is 1; + attribute C_PROBE_IN104_WIDTH : integer; + attribute C_PROBE_IN104_WIDTH of inst : label is 1; + attribute C_PROBE_IN105_WIDTH : integer; + attribute C_PROBE_IN105_WIDTH of inst : label is 1; + attribute C_PROBE_IN106_WIDTH : integer; + attribute C_PROBE_IN106_WIDTH of inst : label is 1; + attribute C_PROBE_IN107_WIDTH : integer; + attribute C_PROBE_IN107_WIDTH of inst : label is 1; + attribute C_PROBE_IN108_WIDTH : integer; + attribute C_PROBE_IN108_WIDTH of inst : label is 1; + attribute C_PROBE_IN109_WIDTH : integer; + attribute C_PROBE_IN109_WIDTH of inst : label is 1; + attribute C_PROBE_IN10_WIDTH : integer; + attribute C_PROBE_IN10_WIDTH of inst : label is 1; + attribute C_PROBE_IN110_WIDTH : integer; + attribute C_PROBE_IN110_WIDTH of inst : label is 1; + attribute C_PROBE_IN111_WIDTH : integer; + attribute C_PROBE_IN111_WIDTH of inst : label is 1; + attribute C_PROBE_IN112_WIDTH : integer; + attribute C_PROBE_IN112_WIDTH of inst : label is 1; + attribute C_PROBE_IN113_WIDTH : integer; + attribute C_PROBE_IN113_WIDTH of inst : label is 1; + attribute C_PROBE_IN114_WIDTH : integer; + attribute C_PROBE_IN114_WIDTH of inst : label is 1; + attribute C_PROBE_IN115_WIDTH : integer; + attribute C_PROBE_IN115_WIDTH of inst : label is 1; + attribute C_PROBE_IN116_WIDTH : integer; + attribute C_PROBE_IN116_WIDTH of inst : label is 1; + attribute C_PROBE_IN117_WIDTH : integer; + attribute C_PROBE_IN117_WIDTH of inst : label is 1; + attribute C_PROBE_IN118_WIDTH : integer; + attribute C_PROBE_IN118_WIDTH of inst : label is 1; + attribute C_PROBE_IN119_WIDTH : integer; + attribute C_PROBE_IN119_WIDTH of inst : label is 1; + attribute C_PROBE_IN11_WIDTH : integer; + attribute C_PROBE_IN11_WIDTH of inst : label is 1; + attribute C_PROBE_IN120_WIDTH : integer; + attribute C_PROBE_IN120_WIDTH of inst : label is 1; + attribute C_PROBE_IN121_WIDTH : integer; + attribute C_PROBE_IN121_WIDTH of inst : label is 1; + attribute C_PROBE_IN122_WIDTH : integer; + attribute C_PROBE_IN122_WIDTH of inst : label is 1; + attribute C_PROBE_IN123_WIDTH : integer; + attribute C_PROBE_IN123_WIDTH of inst : label is 1; + attribute C_PROBE_IN124_WIDTH : integer; + attribute C_PROBE_IN124_WIDTH of inst : label is 1; + attribute C_PROBE_IN125_WIDTH : integer; + attribute C_PROBE_IN125_WIDTH of inst : label is 1; + attribute C_PROBE_IN126_WIDTH : integer; + attribute C_PROBE_IN126_WIDTH of inst : label is 1; + attribute C_PROBE_IN127_WIDTH : integer; + attribute C_PROBE_IN127_WIDTH of inst : label is 1; + attribute C_PROBE_IN128_WIDTH : integer; + attribute C_PROBE_IN128_WIDTH of inst : label is 1; + attribute C_PROBE_IN129_WIDTH : integer; + attribute C_PROBE_IN129_WIDTH of inst : label is 1; + attribute C_PROBE_IN12_WIDTH : integer; + attribute C_PROBE_IN12_WIDTH of inst : label is 1; + attribute C_PROBE_IN130_WIDTH : integer; + attribute C_PROBE_IN130_WIDTH of inst : label is 1; + attribute C_PROBE_IN131_WIDTH : integer; + attribute C_PROBE_IN131_WIDTH of inst : label is 1; + attribute C_PROBE_IN132_WIDTH : integer; + attribute C_PROBE_IN132_WIDTH of inst : label is 1; + attribute C_PROBE_IN133_WIDTH : integer; + attribute C_PROBE_IN133_WIDTH of inst : label is 1; + attribute C_PROBE_IN134_WIDTH : integer; + attribute C_PROBE_IN134_WIDTH of inst : label is 1; + attribute C_PROBE_IN135_WIDTH : integer; + attribute C_PROBE_IN135_WIDTH of inst : label is 1; + attribute C_PROBE_IN136_WIDTH : integer; + attribute C_PROBE_IN136_WIDTH of inst : label is 1; + attribute C_PROBE_IN137_WIDTH : integer; + attribute C_PROBE_IN137_WIDTH of inst : label is 1; + attribute C_PROBE_IN138_WIDTH : integer; + attribute C_PROBE_IN138_WIDTH of inst : label is 1; + attribute C_PROBE_IN139_WIDTH : integer; + attribute C_PROBE_IN139_WIDTH of inst : label is 1; + attribute C_PROBE_IN13_WIDTH : integer; + attribute C_PROBE_IN13_WIDTH of inst : label is 1; + attribute C_PROBE_IN140_WIDTH : integer; + attribute C_PROBE_IN140_WIDTH of inst : label is 1; + attribute C_PROBE_IN141_WIDTH : integer; + attribute C_PROBE_IN141_WIDTH of inst : label is 1; + attribute C_PROBE_IN142_WIDTH : integer; + attribute C_PROBE_IN142_WIDTH of inst : label is 1; + attribute C_PROBE_IN143_WIDTH : integer; + attribute C_PROBE_IN143_WIDTH of inst : label is 1; + attribute C_PROBE_IN144_WIDTH : integer; + attribute C_PROBE_IN144_WIDTH of inst : label is 1; + attribute C_PROBE_IN145_WIDTH : integer; + attribute C_PROBE_IN145_WIDTH of inst : label is 1; + attribute C_PROBE_IN146_WIDTH : integer; + attribute C_PROBE_IN146_WIDTH of inst : label is 1; + attribute C_PROBE_IN147_WIDTH : integer; + attribute C_PROBE_IN147_WIDTH of inst : label is 1; + attribute C_PROBE_IN148_WIDTH : integer; + attribute C_PROBE_IN148_WIDTH of inst : label is 1; + attribute C_PROBE_IN149_WIDTH : integer; + attribute C_PROBE_IN149_WIDTH of inst : label is 1; + attribute C_PROBE_IN14_WIDTH : integer; + attribute C_PROBE_IN14_WIDTH of inst : label is 1; + attribute C_PROBE_IN150_WIDTH : integer; + attribute C_PROBE_IN150_WIDTH of inst : label is 1; + attribute C_PROBE_IN151_WIDTH : integer; + attribute C_PROBE_IN151_WIDTH of inst : label is 1; + attribute C_PROBE_IN152_WIDTH : integer; + attribute C_PROBE_IN152_WIDTH of inst : label is 1; + attribute C_PROBE_IN153_WIDTH : integer; + attribute C_PROBE_IN153_WIDTH of inst : label is 1; + attribute C_PROBE_IN154_WIDTH : integer; + attribute C_PROBE_IN154_WIDTH of inst : label is 1; + attribute C_PROBE_IN155_WIDTH : integer; + attribute C_PROBE_IN155_WIDTH of inst : label is 1; + attribute C_PROBE_IN156_WIDTH : integer; + attribute C_PROBE_IN156_WIDTH of inst : label is 1; + attribute C_PROBE_IN157_WIDTH : integer; + attribute C_PROBE_IN157_WIDTH of inst : label is 1; + attribute C_PROBE_IN158_WIDTH : integer; + attribute C_PROBE_IN158_WIDTH of inst : label is 1; + attribute C_PROBE_IN159_WIDTH : integer; + attribute C_PROBE_IN159_WIDTH of inst : label is 1; + attribute C_PROBE_IN15_WIDTH : integer; + attribute C_PROBE_IN15_WIDTH of inst : label is 1; + attribute C_PROBE_IN160_WIDTH : integer; + attribute C_PROBE_IN160_WIDTH of inst : label is 1; + attribute C_PROBE_IN161_WIDTH : integer; + attribute C_PROBE_IN161_WIDTH of inst : label is 1; + attribute C_PROBE_IN162_WIDTH : integer; + attribute C_PROBE_IN162_WIDTH of inst : label is 1; + attribute C_PROBE_IN163_WIDTH : integer; + attribute C_PROBE_IN163_WIDTH of inst : label is 1; + attribute C_PROBE_IN164_WIDTH : integer; + attribute C_PROBE_IN164_WIDTH of inst : label is 1; + attribute C_PROBE_IN165_WIDTH : integer; + attribute C_PROBE_IN165_WIDTH of inst : label is 1; + attribute C_PROBE_IN166_WIDTH : integer; + attribute C_PROBE_IN166_WIDTH of inst : label is 1; + attribute C_PROBE_IN167_WIDTH : integer; + attribute C_PROBE_IN167_WIDTH of inst : label is 1; + attribute C_PROBE_IN168_WIDTH : integer; + attribute C_PROBE_IN168_WIDTH of inst : label is 1; + attribute C_PROBE_IN169_WIDTH : integer; + attribute C_PROBE_IN169_WIDTH of inst : label is 1; + attribute C_PROBE_IN16_WIDTH : integer; + attribute C_PROBE_IN16_WIDTH of inst : label is 1; + attribute C_PROBE_IN170_WIDTH : integer; + attribute C_PROBE_IN170_WIDTH of inst : label is 1; + attribute C_PROBE_IN171_WIDTH : integer; + attribute C_PROBE_IN171_WIDTH of inst : label is 1; + attribute C_PROBE_IN172_WIDTH : integer; + attribute C_PROBE_IN172_WIDTH of inst : label is 1; + attribute C_PROBE_IN173_WIDTH : integer; + attribute C_PROBE_IN173_WIDTH of inst : label is 1; + attribute C_PROBE_IN174_WIDTH : integer; + attribute C_PROBE_IN174_WIDTH of inst : label is 1; + attribute C_PROBE_IN175_WIDTH : integer; + attribute C_PROBE_IN175_WIDTH of inst : label is 1; + attribute C_PROBE_IN176_WIDTH : integer; + attribute C_PROBE_IN176_WIDTH of inst : label is 1; + attribute C_PROBE_IN177_WIDTH : integer; + attribute C_PROBE_IN177_WIDTH of inst : label is 1; + attribute C_PROBE_IN178_WIDTH : integer; + attribute C_PROBE_IN178_WIDTH of inst : label is 1; + attribute C_PROBE_IN179_WIDTH : integer; + attribute C_PROBE_IN179_WIDTH of inst : label is 1; + attribute C_PROBE_IN17_WIDTH : integer; + attribute C_PROBE_IN17_WIDTH of inst : label is 1; + attribute C_PROBE_IN180_WIDTH : integer; + attribute C_PROBE_IN180_WIDTH of inst : label is 1; + attribute C_PROBE_IN181_WIDTH : integer; + attribute C_PROBE_IN181_WIDTH of inst : label is 1; + attribute C_PROBE_IN182_WIDTH : integer; + attribute C_PROBE_IN182_WIDTH of inst : label is 1; + attribute C_PROBE_IN183_WIDTH : integer; + attribute C_PROBE_IN183_WIDTH of inst : label is 1; + attribute C_PROBE_IN184_WIDTH : integer; + attribute C_PROBE_IN184_WIDTH of inst : label is 1; + attribute C_PROBE_IN185_WIDTH : integer; + attribute C_PROBE_IN185_WIDTH of inst : label is 1; + attribute C_PROBE_IN186_WIDTH : integer; + attribute C_PROBE_IN186_WIDTH of inst : label is 1; + attribute C_PROBE_IN187_WIDTH : integer; + attribute C_PROBE_IN187_WIDTH of inst : label is 1; + attribute C_PROBE_IN188_WIDTH : integer; + attribute C_PROBE_IN188_WIDTH of inst : label is 1; + attribute C_PROBE_IN189_WIDTH : integer; + attribute C_PROBE_IN189_WIDTH of inst : label is 1; + attribute C_PROBE_IN18_WIDTH : integer; + attribute C_PROBE_IN18_WIDTH of inst : label is 1; + attribute C_PROBE_IN190_WIDTH : integer; + attribute C_PROBE_IN190_WIDTH of inst : label is 1; + attribute C_PROBE_IN191_WIDTH : integer; + attribute C_PROBE_IN191_WIDTH of inst : label is 1; + attribute C_PROBE_IN192_WIDTH : integer; + attribute C_PROBE_IN192_WIDTH of inst : label is 1; + attribute C_PROBE_IN193_WIDTH : integer; + attribute C_PROBE_IN193_WIDTH of inst : label is 1; + attribute C_PROBE_IN194_WIDTH : integer; + attribute C_PROBE_IN194_WIDTH of inst : label is 1; + attribute C_PROBE_IN195_WIDTH : integer; + attribute C_PROBE_IN195_WIDTH of inst : label is 1; + attribute C_PROBE_IN196_WIDTH : integer; + attribute C_PROBE_IN196_WIDTH of inst : label is 1; + attribute C_PROBE_IN197_WIDTH : integer; + attribute C_PROBE_IN197_WIDTH of inst : label is 1; + attribute C_PROBE_IN198_WIDTH : integer; + attribute C_PROBE_IN198_WIDTH of inst : label is 1; + attribute C_PROBE_IN199_WIDTH : integer; + attribute C_PROBE_IN199_WIDTH of inst : label is 1; + attribute C_PROBE_IN19_WIDTH : integer; + attribute C_PROBE_IN19_WIDTH of inst : label is 1; + attribute C_PROBE_IN1_WIDTH : integer; + attribute C_PROBE_IN1_WIDTH of inst : label is 1; + attribute C_PROBE_IN200_WIDTH : integer; + attribute C_PROBE_IN200_WIDTH of inst : label is 1; + attribute C_PROBE_IN201_WIDTH : integer; + attribute C_PROBE_IN201_WIDTH of inst : label is 1; + attribute C_PROBE_IN202_WIDTH : integer; + attribute C_PROBE_IN202_WIDTH of inst : label is 1; + attribute C_PROBE_IN203_WIDTH : integer; + attribute C_PROBE_IN203_WIDTH of inst : label is 1; + attribute C_PROBE_IN204_WIDTH : integer; + attribute C_PROBE_IN204_WIDTH of inst : label is 1; + attribute C_PROBE_IN205_WIDTH : integer; + attribute C_PROBE_IN205_WIDTH of inst : label is 1; + attribute C_PROBE_IN206_WIDTH : integer; + attribute C_PROBE_IN206_WIDTH of inst : label is 1; + attribute C_PROBE_IN207_WIDTH : integer; + attribute C_PROBE_IN207_WIDTH of inst : label is 1; + attribute C_PROBE_IN208_WIDTH : integer; + attribute C_PROBE_IN208_WIDTH of inst : label is 1; + attribute C_PROBE_IN209_WIDTH : integer; + attribute C_PROBE_IN209_WIDTH of inst : label is 1; + attribute C_PROBE_IN20_WIDTH : integer; + attribute C_PROBE_IN20_WIDTH of inst : label is 1; + attribute C_PROBE_IN210_WIDTH : integer; + attribute C_PROBE_IN210_WIDTH of inst : label is 1; + attribute C_PROBE_IN211_WIDTH : integer; + attribute C_PROBE_IN211_WIDTH of inst : label is 1; + attribute C_PROBE_IN212_WIDTH : integer; + attribute C_PROBE_IN212_WIDTH of inst : label is 1; + attribute C_PROBE_IN213_WIDTH : integer; + attribute C_PROBE_IN213_WIDTH of inst : label is 1; + attribute C_PROBE_IN214_WIDTH : integer; + attribute C_PROBE_IN214_WIDTH of inst : label is 1; + attribute C_PROBE_IN215_WIDTH : integer; + attribute C_PROBE_IN215_WIDTH of inst : label is 1; + attribute C_PROBE_IN216_WIDTH : integer; + attribute C_PROBE_IN216_WIDTH of inst : label is 1; + attribute C_PROBE_IN217_WIDTH : integer; + attribute C_PROBE_IN217_WIDTH of inst : label is 1; + attribute C_PROBE_IN218_WIDTH : integer; + attribute C_PROBE_IN218_WIDTH of inst : label is 1; + attribute C_PROBE_IN219_WIDTH : integer; + attribute C_PROBE_IN219_WIDTH of inst : label is 1; + attribute C_PROBE_IN21_WIDTH : integer; + attribute C_PROBE_IN21_WIDTH of inst : label is 1; + attribute C_PROBE_IN220_WIDTH : integer; + attribute C_PROBE_IN220_WIDTH of inst : label is 1; + attribute C_PROBE_IN221_WIDTH : integer; + attribute C_PROBE_IN221_WIDTH of inst : label is 1; + attribute C_PROBE_IN222_WIDTH : integer; + attribute C_PROBE_IN222_WIDTH of inst : label is 1; + attribute C_PROBE_IN223_WIDTH : integer; + attribute C_PROBE_IN223_WIDTH of inst : label is 1; + attribute C_PROBE_IN224_WIDTH : integer; + attribute C_PROBE_IN224_WIDTH of inst : label is 1; + attribute C_PROBE_IN225_WIDTH : integer; + attribute C_PROBE_IN225_WIDTH of inst : label is 1; + attribute C_PROBE_IN226_WIDTH : integer; + attribute C_PROBE_IN226_WIDTH of inst : label is 1; + attribute C_PROBE_IN227_WIDTH : integer; + attribute C_PROBE_IN227_WIDTH of inst : label is 1; + attribute C_PROBE_IN228_WIDTH : integer; + attribute C_PROBE_IN228_WIDTH of inst : label is 1; + attribute C_PROBE_IN229_WIDTH : integer; + attribute C_PROBE_IN229_WIDTH of inst : label is 1; + attribute C_PROBE_IN22_WIDTH : integer; + attribute C_PROBE_IN22_WIDTH of inst : label is 1; + attribute C_PROBE_IN230_WIDTH : integer; + attribute C_PROBE_IN230_WIDTH of inst : label is 1; + attribute C_PROBE_IN231_WIDTH : integer; + attribute C_PROBE_IN231_WIDTH of inst : label is 1; + attribute C_PROBE_IN232_WIDTH : integer; + attribute C_PROBE_IN232_WIDTH of inst : label is 1; + attribute C_PROBE_IN233_WIDTH : integer; + attribute C_PROBE_IN233_WIDTH of inst : label is 1; + attribute C_PROBE_IN234_WIDTH : integer; + attribute C_PROBE_IN234_WIDTH of inst : label is 1; + attribute C_PROBE_IN235_WIDTH : integer; + attribute C_PROBE_IN235_WIDTH of inst : label is 1; + attribute C_PROBE_IN236_WIDTH : integer; + attribute C_PROBE_IN236_WIDTH of inst : label is 1; + attribute C_PROBE_IN237_WIDTH : integer; + attribute C_PROBE_IN237_WIDTH of inst : label is 1; + attribute C_PROBE_IN238_WIDTH : integer; + attribute C_PROBE_IN238_WIDTH of inst : label is 1; + attribute C_PROBE_IN239_WIDTH : integer; + attribute C_PROBE_IN239_WIDTH of inst : label is 1; + attribute C_PROBE_IN23_WIDTH : integer; + attribute C_PROBE_IN23_WIDTH of inst : label is 1; + attribute C_PROBE_IN240_WIDTH : integer; + attribute C_PROBE_IN240_WIDTH of inst : label is 1; + attribute C_PROBE_IN241_WIDTH : integer; + attribute C_PROBE_IN241_WIDTH of inst : label is 1; + attribute C_PROBE_IN242_WIDTH : integer; + attribute C_PROBE_IN242_WIDTH of inst : label is 1; + attribute C_PROBE_IN243_WIDTH : integer; + attribute C_PROBE_IN243_WIDTH of inst : label is 1; + attribute C_PROBE_IN244_WIDTH : integer; + attribute C_PROBE_IN244_WIDTH of inst : label is 1; + attribute C_PROBE_IN245_WIDTH : integer; + attribute C_PROBE_IN245_WIDTH of inst : label is 1; + attribute C_PROBE_IN246_WIDTH : integer; + attribute C_PROBE_IN246_WIDTH of inst : label is 1; + attribute C_PROBE_IN247_WIDTH : integer; + attribute C_PROBE_IN247_WIDTH of inst : label is 1; + attribute C_PROBE_IN248_WIDTH : integer; + attribute C_PROBE_IN248_WIDTH of inst : label is 1; + attribute C_PROBE_IN249_WIDTH : integer; + attribute C_PROBE_IN249_WIDTH of inst : label is 1; + attribute C_PROBE_IN24_WIDTH : integer; + attribute C_PROBE_IN24_WIDTH of inst : label is 1; + attribute C_PROBE_IN250_WIDTH : integer; + attribute C_PROBE_IN250_WIDTH of inst : label is 1; + attribute C_PROBE_IN251_WIDTH : integer; + attribute C_PROBE_IN251_WIDTH of inst : label is 1; + attribute C_PROBE_IN252_WIDTH : integer; + attribute C_PROBE_IN252_WIDTH of inst : label is 1; + attribute C_PROBE_IN253_WIDTH : integer; + attribute C_PROBE_IN253_WIDTH of inst : label is 1; + attribute C_PROBE_IN254_WIDTH : integer; + attribute C_PROBE_IN254_WIDTH of inst : label is 1; + attribute C_PROBE_IN255_WIDTH : integer; + attribute C_PROBE_IN255_WIDTH of inst : label is 1; + attribute C_PROBE_IN25_WIDTH : integer; + attribute C_PROBE_IN25_WIDTH of inst : label is 1; + attribute C_PROBE_IN26_WIDTH : integer; + attribute C_PROBE_IN26_WIDTH of inst : label is 1; + attribute C_PROBE_IN27_WIDTH : integer; + attribute C_PROBE_IN27_WIDTH of inst : label is 1; + attribute C_PROBE_IN28_WIDTH : integer; + attribute C_PROBE_IN28_WIDTH of inst : label is 1; + attribute C_PROBE_IN29_WIDTH : integer; + attribute C_PROBE_IN29_WIDTH of inst : label is 1; + attribute C_PROBE_IN2_WIDTH : integer; + attribute C_PROBE_IN2_WIDTH of inst : label is 1; + attribute C_PROBE_IN30_WIDTH : integer; + attribute C_PROBE_IN30_WIDTH of inst : label is 1; + attribute C_PROBE_IN31_WIDTH : integer; + attribute C_PROBE_IN31_WIDTH of inst : label is 1; + attribute C_PROBE_IN32_WIDTH : integer; + attribute C_PROBE_IN32_WIDTH of inst : label is 1; + attribute C_PROBE_IN33_WIDTH : integer; + attribute C_PROBE_IN33_WIDTH of inst : label is 1; + attribute C_PROBE_IN34_WIDTH : integer; + attribute C_PROBE_IN34_WIDTH of inst : label is 1; + attribute C_PROBE_IN35_WIDTH : integer; + attribute C_PROBE_IN35_WIDTH of inst : label is 1; + attribute C_PROBE_IN36_WIDTH : integer; + attribute C_PROBE_IN36_WIDTH of inst : label is 1; + attribute C_PROBE_IN37_WIDTH : integer; + attribute C_PROBE_IN37_WIDTH of inst : label is 1; + attribute C_PROBE_IN38_WIDTH : integer; + attribute C_PROBE_IN38_WIDTH of inst : label is 1; + attribute C_PROBE_IN39_WIDTH : integer; + attribute C_PROBE_IN39_WIDTH of inst : label is 1; + attribute C_PROBE_IN3_WIDTH : integer; + attribute C_PROBE_IN3_WIDTH of inst : label is 1; + attribute C_PROBE_IN40_WIDTH : integer; + attribute C_PROBE_IN40_WIDTH of inst : label is 1; + attribute C_PROBE_IN41_WIDTH : integer; + attribute C_PROBE_IN41_WIDTH of inst : label is 1; + attribute C_PROBE_IN42_WIDTH : integer; + attribute C_PROBE_IN42_WIDTH of inst : label is 1; + attribute C_PROBE_IN43_WIDTH : integer; + attribute C_PROBE_IN43_WIDTH of inst : label is 1; + attribute C_PROBE_IN44_WIDTH : integer; + attribute C_PROBE_IN44_WIDTH of inst : label is 1; + attribute C_PROBE_IN45_WIDTH : integer; + attribute C_PROBE_IN45_WIDTH of inst : label is 1; + attribute C_PROBE_IN46_WIDTH : integer; + attribute C_PROBE_IN46_WIDTH of inst : label is 1; + attribute C_PROBE_IN47_WIDTH : integer; + attribute C_PROBE_IN47_WIDTH of inst : label is 1; + attribute C_PROBE_IN48_WIDTH : integer; + attribute C_PROBE_IN48_WIDTH of inst : label is 1; + attribute C_PROBE_IN49_WIDTH : integer; + attribute C_PROBE_IN49_WIDTH of inst : label is 1; + attribute C_PROBE_IN4_WIDTH : integer; + attribute C_PROBE_IN4_WIDTH of inst : label is 1; + attribute C_PROBE_IN50_WIDTH : integer; + attribute C_PROBE_IN50_WIDTH of inst : label is 1; + attribute C_PROBE_IN51_WIDTH : integer; + attribute C_PROBE_IN51_WIDTH of inst : label is 1; + attribute C_PROBE_IN52_WIDTH : integer; + attribute C_PROBE_IN52_WIDTH of inst : label is 1; + attribute C_PROBE_IN53_WIDTH : integer; + attribute C_PROBE_IN53_WIDTH of inst : label is 1; + attribute C_PROBE_IN54_WIDTH : integer; + attribute C_PROBE_IN54_WIDTH of inst : label is 1; + attribute C_PROBE_IN55_WIDTH : integer; + attribute C_PROBE_IN55_WIDTH of inst : label is 1; + attribute C_PROBE_IN56_WIDTH : integer; + attribute C_PROBE_IN56_WIDTH of inst : label is 1; + attribute C_PROBE_IN57_WIDTH : integer; + attribute C_PROBE_IN57_WIDTH of inst : label is 1; + attribute C_PROBE_IN58_WIDTH : integer; + attribute C_PROBE_IN58_WIDTH of inst : label is 1; + attribute C_PROBE_IN59_WIDTH : integer; + attribute C_PROBE_IN59_WIDTH of inst : label is 1; + attribute C_PROBE_IN5_WIDTH : integer; + attribute C_PROBE_IN5_WIDTH of inst : label is 1; + attribute C_PROBE_IN60_WIDTH : integer; + attribute C_PROBE_IN60_WIDTH of inst : label is 1; + attribute C_PROBE_IN61_WIDTH : integer; + attribute C_PROBE_IN61_WIDTH of inst : label is 1; + attribute C_PROBE_IN62_WIDTH : integer; + attribute C_PROBE_IN62_WIDTH of inst : label is 1; + attribute C_PROBE_IN63_WIDTH : integer; + attribute C_PROBE_IN63_WIDTH of inst : label is 1; + attribute C_PROBE_IN64_WIDTH : integer; + attribute C_PROBE_IN64_WIDTH of inst : label is 1; + attribute C_PROBE_IN65_WIDTH : integer; + attribute C_PROBE_IN65_WIDTH of inst : label is 1; + attribute C_PROBE_IN66_WIDTH : integer; + attribute C_PROBE_IN66_WIDTH of inst : label is 1; + attribute C_PROBE_IN67_WIDTH : integer; + attribute C_PROBE_IN67_WIDTH of inst : label is 1; + attribute C_PROBE_IN68_WIDTH : integer; + attribute C_PROBE_IN68_WIDTH of inst : label is 1; + attribute C_PROBE_IN69_WIDTH : integer; + attribute C_PROBE_IN69_WIDTH of inst : label is 1; + attribute C_PROBE_IN6_WIDTH : integer; + attribute C_PROBE_IN6_WIDTH of inst : label is 1; + attribute C_PROBE_IN70_WIDTH : integer; + attribute C_PROBE_IN70_WIDTH of inst : label is 1; + attribute C_PROBE_IN71_WIDTH : integer; + attribute C_PROBE_IN71_WIDTH of inst : label is 1; + attribute C_PROBE_IN72_WIDTH : integer; + attribute C_PROBE_IN72_WIDTH of inst : label is 1; + attribute C_PROBE_IN73_WIDTH : integer; + attribute C_PROBE_IN73_WIDTH of inst : label is 1; + attribute C_PROBE_IN74_WIDTH : integer; + attribute C_PROBE_IN74_WIDTH of inst : label is 1; + attribute C_PROBE_IN75_WIDTH : integer; + attribute C_PROBE_IN75_WIDTH of inst : label is 1; + attribute C_PROBE_IN76_WIDTH : integer; + attribute C_PROBE_IN76_WIDTH of inst : label is 1; + attribute C_PROBE_IN77_WIDTH : integer; + attribute C_PROBE_IN77_WIDTH of inst : label is 1; + attribute C_PROBE_IN78_WIDTH : integer; + attribute C_PROBE_IN78_WIDTH of inst : label is 1; + attribute C_PROBE_IN79_WIDTH : integer; + attribute C_PROBE_IN79_WIDTH of inst : label is 1; + attribute C_PROBE_IN7_WIDTH : integer; + attribute C_PROBE_IN7_WIDTH of inst : label is 1; + attribute C_PROBE_IN80_WIDTH : integer; + attribute C_PROBE_IN80_WIDTH of inst : label is 1; + attribute C_PROBE_IN81_WIDTH : integer; + attribute C_PROBE_IN81_WIDTH of inst : label is 1; + attribute C_PROBE_IN82_WIDTH : integer; + attribute C_PROBE_IN82_WIDTH of inst : label is 1; + attribute C_PROBE_IN83_WIDTH : integer; + attribute C_PROBE_IN83_WIDTH of inst : label is 1; + attribute C_PROBE_IN84_WIDTH : integer; + attribute C_PROBE_IN84_WIDTH of inst : label is 1; + attribute C_PROBE_IN85_WIDTH : integer; + attribute C_PROBE_IN85_WIDTH of inst : label is 1; + attribute C_PROBE_IN86_WIDTH : integer; + attribute C_PROBE_IN86_WIDTH of inst : label is 1; + attribute C_PROBE_IN87_WIDTH : integer; + attribute C_PROBE_IN87_WIDTH of inst : label is 1; + attribute C_PROBE_IN88_WIDTH : integer; + attribute C_PROBE_IN88_WIDTH of inst : label is 1; + attribute C_PROBE_IN89_WIDTH : integer; + attribute C_PROBE_IN89_WIDTH of inst : label is 1; + attribute C_PROBE_IN8_WIDTH : integer; + attribute C_PROBE_IN8_WIDTH of inst : label is 1; + attribute C_PROBE_IN90_WIDTH : integer; + attribute C_PROBE_IN90_WIDTH of inst : label is 1; + attribute C_PROBE_IN91_WIDTH : integer; + attribute C_PROBE_IN91_WIDTH of inst : label is 1; + attribute C_PROBE_IN92_WIDTH : integer; + attribute C_PROBE_IN92_WIDTH of inst : label is 1; + attribute C_PROBE_IN93_WIDTH : integer; + attribute C_PROBE_IN93_WIDTH of inst : label is 1; + attribute C_PROBE_IN94_WIDTH : integer; + attribute C_PROBE_IN94_WIDTH of inst : label is 1; + attribute C_PROBE_IN95_WIDTH : integer; + attribute C_PROBE_IN95_WIDTH of inst : label is 1; + attribute C_PROBE_IN96_WIDTH : integer; + attribute C_PROBE_IN96_WIDTH of inst : label is 1; + attribute C_PROBE_IN97_WIDTH : integer; + attribute C_PROBE_IN97_WIDTH of inst : label is 1; + attribute C_PROBE_IN98_WIDTH : integer; + attribute C_PROBE_IN98_WIDTH of inst : label is 1; + attribute C_PROBE_IN99_WIDTH : integer; + attribute C_PROBE_IN99_WIDTH of inst : label is 1; + attribute C_PROBE_IN9_WIDTH : integer; + attribute C_PROBE_IN9_WIDTH of inst : label is 1; + attribute C_PROBE_OUT0_INIT_VAL : string; + attribute C_PROBE_OUT0_INIT_VAL of inst : label is "3'b010"; + attribute C_PROBE_OUT0_WIDTH : integer; + attribute C_PROBE_OUT0_WIDTH of inst : label is 3; + attribute C_PROBE_OUT100_INIT_VAL : string; + attribute C_PROBE_OUT100_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT100_WIDTH : integer; + attribute C_PROBE_OUT100_WIDTH of inst : label is 1; + attribute C_PROBE_OUT101_INIT_VAL : string; + attribute C_PROBE_OUT101_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT101_WIDTH : integer; + attribute C_PROBE_OUT101_WIDTH of inst : label is 1; + attribute C_PROBE_OUT102_INIT_VAL : string; + attribute C_PROBE_OUT102_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT102_WIDTH : integer; + attribute C_PROBE_OUT102_WIDTH of inst : label is 1; + attribute C_PROBE_OUT103_INIT_VAL : string; + attribute C_PROBE_OUT103_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT103_WIDTH : integer; + attribute C_PROBE_OUT103_WIDTH of inst : label is 1; + attribute C_PROBE_OUT104_INIT_VAL : string; + attribute C_PROBE_OUT104_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT104_WIDTH : integer; + attribute C_PROBE_OUT104_WIDTH of inst : label is 1; + attribute C_PROBE_OUT105_INIT_VAL : string; + attribute C_PROBE_OUT105_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT105_WIDTH : integer; + attribute C_PROBE_OUT105_WIDTH of inst : label is 1; + attribute C_PROBE_OUT106_INIT_VAL : string; + attribute C_PROBE_OUT106_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT106_WIDTH : integer; + attribute C_PROBE_OUT106_WIDTH of inst : label is 1; + attribute C_PROBE_OUT107_INIT_VAL : string; + attribute C_PROBE_OUT107_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT107_WIDTH : integer; + attribute C_PROBE_OUT107_WIDTH of inst : label is 1; + attribute C_PROBE_OUT108_INIT_VAL : string; + attribute C_PROBE_OUT108_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT108_WIDTH : integer; + attribute C_PROBE_OUT108_WIDTH of inst : label is 1; + attribute C_PROBE_OUT109_INIT_VAL : string; + attribute C_PROBE_OUT109_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT109_WIDTH : integer; + attribute C_PROBE_OUT109_WIDTH of inst : label is 1; + attribute C_PROBE_OUT10_INIT_VAL : string; + attribute C_PROBE_OUT10_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT10_WIDTH : integer; + attribute C_PROBE_OUT10_WIDTH of inst : label is 1; + attribute C_PROBE_OUT110_INIT_VAL : string; + attribute C_PROBE_OUT110_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT110_WIDTH : integer; + attribute C_PROBE_OUT110_WIDTH of inst : label is 1; + attribute C_PROBE_OUT111_INIT_VAL : string; + attribute C_PROBE_OUT111_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT111_WIDTH : integer; + attribute C_PROBE_OUT111_WIDTH of inst : label is 1; + attribute C_PROBE_OUT112_INIT_VAL : string; + attribute C_PROBE_OUT112_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT112_WIDTH : integer; + attribute C_PROBE_OUT112_WIDTH of inst : label is 1; + attribute C_PROBE_OUT113_INIT_VAL : string; + attribute C_PROBE_OUT113_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT113_WIDTH : integer; + attribute C_PROBE_OUT113_WIDTH of inst : label is 1; + attribute C_PROBE_OUT114_INIT_VAL : string; + attribute C_PROBE_OUT114_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT114_WIDTH : integer; + attribute C_PROBE_OUT114_WIDTH of inst : label is 1; + attribute C_PROBE_OUT115_INIT_VAL : string; + attribute C_PROBE_OUT115_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT115_WIDTH : integer; + attribute C_PROBE_OUT115_WIDTH of inst : label is 1; + attribute C_PROBE_OUT116_INIT_VAL : string; + attribute C_PROBE_OUT116_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT116_WIDTH : integer; + attribute C_PROBE_OUT116_WIDTH of inst : label is 1; + attribute C_PROBE_OUT117_INIT_VAL : string; + attribute C_PROBE_OUT117_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT117_WIDTH : integer; + attribute C_PROBE_OUT117_WIDTH of inst : label is 1; + attribute C_PROBE_OUT118_INIT_VAL : string; + attribute C_PROBE_OUT118_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT118_WIDTH : integer; + attribute C_PROBE_OUT118_WIDTH of inst : label is 1; + attribute C_PROBE_OUT119_INIT_VAL : string; + attribute C_PROBE_OUT119_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT119_WIDTH : integer; + attribute C_PROBE_OUT119_WIDTH of inst : label is 1; + attribute C_PROBE_OUT11_INIT_VAL : string; + attribute C_PROBE_OUT11_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT11_WIDTH : integer; + attribute C_PROBE_OUT11_WIDTH of inst : label is 1; + attribute C_PROBE_OUT120_INIT_VAL : string; + attribute C_PROBE_OUT120_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT120_WIDTH : integer; + attribute C_PROBE_OUT120_WIDTH of inst : label is 1; + attribute C_PROBE_OUT121_INIT_VAL : string; + attribute C_PROBE_OUT121_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT121_WIDTH : integer; + attribute C_PROBE_OUT121_WIDTH of inst : label is 1; + attribute C_PROBE_OUT122_INIT_VAL : string; + attribute C_PROBE_OUT122_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT122_WIDTH : integer; + attribute C_PROBE_OUT122_WIDTH of inst : label is 1; + attribute C_PROBE_OUT123_INIT_VAL : string; + attribute C_PROBE_OUT123_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT123_WIDTH : integer; + attribute C_PROBE_OUT123_WIDTH of inst : label is 1; + attribute C_PROBE_OUT124_INIT_VAL : string; + attribute C_PROBE_OUT124_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT124_WIDTH : integer; + attribute C_PROBE_OUT124_WIDTH of inst : label is 1; + attribute C_PROBE_OUT125_INIT_VAL : string; + attribute C_PROBE_OUT125_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT125_WIDTH : integer; + attribute C_PROBE_OUT125_WIDTH of inst : label is 1; + attribute C_PROBE_OUT126_INIT_VAL : string; + attribute C_PROBE_OUT126_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT126_WIDTH : integer; + attribute C_PROBE_OUT126_WIDTH of inst : label is 1; + attribute C_PROBE_OUT127_INIT_VAL : string; + attribute C_PROBE_OUT127_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT127_WIDTH : integer; + attribute C_PROBE_OUT127_WIDTH of inst : label is 1; + attribute C_PROBE_OUT128_INIT_VAL : string; + attribute C_PROBE_OUT128_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT128_WIDTH : integer; + attribute C_PROBE_OUT128_WIDTH of inst : label is 1; + attribute C_PROBE_OUT129_INIT_VAL : string; + attribute C_PROBE_OUT129_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT129_WIDTH : integer; + attribute C_PROBE_OUT129_WIDTH of inst : label is 1; + attribute C_PROBE_OUT12_INIT_VAL : string; + attribute C_PROBE_OUT12_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT12_WIDTH : integer; + attribute C_PROBE_OUT12_WIDTH of inst : label is 1; + attribute C_PROBE_OUT130_INIT_VAL : string; + attribute C_PROBE_OUT130_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT130_WIDTH : integer; + attribute C_PROBE_OUT130_WIDTH of inst : label is 1; + attribute C_PROBE_OUT131_INIT_VAL : string; + attribute C_PROBE_OUT131_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT131_WIDTH : integer; + attribute C_PROBE_OUT131_WIDTH of inst : label is 1; + attribute C_PROBE_OUT132_INIT_VAL : string; + attribute C_PROBE_OUT132_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT132_WIDTH : integer; + attribute C_PROBE_OUT132_WIDTH of inst : label is 1; + attribute C_PROBE_OUT133_INIT_VAL : string; + attribute C_PROBE_OUT133_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT133_WIDTH : integer; + attribute C_PROBE_OUT133_WIDTH of inst : label is 1; + attribute C_PROBE_OUT134_INIT_VAL : string; + attribute C_PROBE_OUT134_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT134_WIDTH : integer; + attribute C_PROBE_OUT134_WIDTH of inst : label is 1; + attribute C_PROBE_OUT135_INIT_VAL : string; + attribute C_PROBE_OUT135_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT135_WIDTH : integer; + attribute C_PROBE_OUT135_WIDTH of inst : label is 1; + attribute C_PROBE_OUT136_INIT_VAL : string; + attribute C_PROBE_OUT136_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT136_WIDTH : integer; + attribute C_PROBE_OUT136_WIDTH of inst : label is 1; + attribute C_PROBE_OUT137_INIT_VAL : string; + attribute C_PROBE_OUT137_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT137_WIDTH : integer; + attribute C_PROBE_OUT137_WIDTH of inst : label is 1; + attribute C_PROBE_OUT138_INIT_VAL : string; + attribute C_PROBE_OUT138_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT138_WIDTH : integer; + attribute C_PROBE_OUT138_WIDTH of inst : label is 1; + attribute C_PROBE_OUT139_INIT_VAL : string; + attribute C_PROBE_OUT139_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT139_WIDTH : integer; + attribute C_PROBE_OUT139_WIDTH of inst : label is 1; + attribute C_PROBE_OUT13_INIT_VAL : string; + attribute C_PROBE_OUT13_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT13_WIDTH : integer; + attribute C_PROBE_OUT13_WIDTH of inst : label is 1; + attribute C_PROBE_OUT140_INIT_VAL : string; + attribute C_PROBE_OUT140_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT140_WIDTH : integer; + attribute C_PROBE_OUT140_WIDTH of inst : label is 1; + attribute C_PROBE_OUT141_INIT_VAL : string; + attribute C_PROBE_OUT141_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT141_WIDTH : integer; + attribute C_PROBE_OUT141_WIDTH of inst : label is 1; + attribute C_PROBE_OUT142_INIT_VAL : string; + attribute C_PROBE_OUT142_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT142_WIDTH : integer; + attribute C_PROBE_OUT142_WIDTH of inst : label is 1; + attribute C_PROBE_OUT143_INIT_VAL : string; + attribute C_PROBE_OUT143_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT143_WIDTH : integer; + attribute C_PROBE_OUT143_WIDTH of inst : label is 1; + attribute C_PROBE_OUT144_INIT_VAL : string; + attribute C_PROBE_OUT144_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT144_WIDTH : integer; + attribute C_PROBE_OUT144_WIDTH of inst : label is 1; + attribute C_PROBE_OUT145_INIT_VAL : string; + attribute C_PROBE_OUT145_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT145_WIDTH : integer; + attribute C_PROBE_OUT145_WIDTH of inst : label is 1; + attribute C_PROBE_OUT146_INIT_VAL : string; + attribute C_PROBE_OUT146_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT146_WIDTH : integer; + attribute C_PROBE_OUT146_WIDTH of inst : label is 1; + attribute C_PROBE_OUT147_INIT_VAL : string; + attribute C_PROBE_OUT147_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT147_WIDTH : integer; + attribute C_PROBE_OUT147_WIDTH of inst : label is 1; + attribute C_PROBE_OUT148_INIT_VAL : string; + attribute C_PROBE_OUT148_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT148_WIDTH : integer; + attribute C_PROBE_OUT148_WIDTH of inst : label is 1; + attribute C_PROBE_OUT149_INIT_VAL : string; + attribute C_PROBE_OUT149_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT149_WIDTH : integer; + attribute C_PROBE_OUT149_WIDTH of inst : label is 1; + attribute C_PROBE_OUT14_INIT_VAL : string; + attribute C_PROBE_OUT14_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT14_WIDTH : integer; + attribute C_PROBE_OUT14_WIDTH of inst : label is 1; + attribute C_PROBE_OUT150_INIT_VAL : string; + attribute C_PROBE_OUT150_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT150_WIDTH : integer; + attribute C_PROBE_OUT150_WIDTH of inst : label is 1; + attribute C_PROBE_OUT151_INIT_VAL : string; + attribute C_PROBE_OUT151_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT151_WIDTH : integer; + attribute C_PROBE_OUT151_WIDTH of inst : label is 1; + attribute C_PROBE_OUT152_INIT_VAL : string; + attribute C_PROBE_OUT152_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT152_WIDTH : integer; + attribute C_PROBE_OUT152_WIDTH of inst : label is 1; + attribute C_PROBE_OUT153_INIT_VAL : string; + attribute C_PROBE_OUT153_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT153_WIDTH : integer; + attribute C_PROBE_OUT153_WIDTH of inst : label is 1; + attribute C_PROBE_OUT154_INIT_VAL : string; + attribute C_PROBE_OUT154_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT154_WIDTH : integer; + attribute C_PROBE_OUT154_WIDTH of inst : label is 1; + attribute C_PROBE_OUT155_INIT_VAL : string; + attribute C_PROBE_OUT155_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT155_WIDTH : integer; + attribute C_PROBE_OUT155_WIDTH of inst : label is 1; + attribute C_PROBE_OUT156_INIT_VAL : string; + attribute C_PROBE_OUT156_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT156_WIDTH : integer; + attribute C_PROBE_OUT156_WIDTH of inst : label is 1; + attribute C_PROBE_OUT157_INIT_VAL : string; + attribute C_PROBE_OUT157_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT157_WIDTH : integer; + attribute C_PROBE_OUT157_WIDTH of inst : label is 1; + attribute C_PROBE_OUT158_INIT_VAL : string; + attribute C_PROBE_OUT158_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT158_WIDTH : integer; + attribute C_PROBE_OUT158_WIDTH of inst : label is 1; + attribute C_PROBE_OUT159_INIT_VAL : string; + attribute C_PROBE_OUT159_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT159_WIDTH : integer; + attribute C_PROBE_OUT159_WIDTH of inst : label is 1; + attribute C_PROBE_OUT15_INIT_VAL : string; + attribute C_PROBE_OUT15_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT15_WIDTH : integer; + attribute C_PROBE_OUT15_WIDTH of inst : label is 1; + attribute C_PROBE_OUT160_INIT_VAL : string; + attribute C_PROBE_OUT160_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT160_WIDTH : integer; + attribute C_PROBE_OUT160_WIDTH of inst : label is 1; + attribute C_PROBE_OUT161_INIT_VAL : string; + attribute C_PROBE_OUT161_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT161_WIDTH : integer; + attribute C_PROBE_OUT161_WIDTH of inst : label is 1; + attribute C_PROBE_OUT162_INIT_VAL : string; + attribute C_PROBE_OUT162_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT162_WIDTH : integer; + attribute C_PROBE_OUT162_WIDTH of inst : label is 1; + attribute C_PROBE_OUT163_INIT_VAL : string; + attribute C_PROBE_OUT163_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT163_WIDTH : integer; + attribute C_PROBE_OUT163_WIDTH of inst : label is 1; + attribute C_PROBE_OUT164_INIT_VAL : string; + attribute C_PROBE_OUT164_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT164_WIDTH : integer; + attribute C_PROBE_OUT164_WIDTH of inst : label is 1; + attribute C_PROBE_OUT165_INIT_VAL : string; + attribute C_PROBE_OUT165_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT165_WIDTH : integer; + attribute C_PROBE_OUT165_WIDTH of inst : label is 1; + attribute C_PROBE_OUT166_INIT_VAL : string; + attribute C_PROBE_OUT166_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT166_WIDTH : integer; + attribute C_PROBE_OUT166_WIDTH of inst : label is 1; + attribute C_PROBE_OUT167_INIT_VAL : string; + attribute C_PROBE_OUT167_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT167_WIDTH : integer; + attribute C_PROBE_OUT167_WIDTH of inst : label is 1; + attribute C_PROBE_OUT168_INIT_VAL : string; + attribute C_PROBE_OUT168_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT168_WIDTH : integer; + attribute C_PROBE_OUT168_WIDTH of inst : label is 1; + attribute C_PROBE_OUT169_INIT_VAL : string; + attribute C_PROBE_OUT169_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT169_WIDTH : integer; + attribute C_PROBE_OUT169_WIDTH of inst : label is 1; + attribute C_PROBE_OUT16_INIT_VAL : string; + attribute C_PROBE_OUT16_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT16_WIDTH : integer; + attribute C_PROBE_OUT16_WIDTH of inst : label is 1; + attribute C_PROBE_OUT170_INIT_VAL : string; + attribute C_PROBE_OUT170_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT170_WIDTH : integer; + attribute C_PROBE_OUT170_WIDTH of inst : label is 1; + attribute C_PROBE_OUT171_INIT_VAL : string; + attribute C_PROBE_OUT171_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT171_WIDTH : integer; + attribute C_PROBE_OUT171_WIDTH of inst : label is 1; + attribute C_PROBE_OUT172_INIT_VAL : string; + attribute C_PROBE_OUT172_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT172_WIDTH : integer; + attribute C_PROBE_OUT172_WIDTH of inst : label is 1; + attribute C_PROBE_OUT173_INIT_VAL : string; + attribute C_PROBE_OUT173_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT173_WIDTH : integer; + attribute C_PROBE_OUT173_WIDTH of inst : label is 1; + attribute C_PROBE_OUT174_INIT_VAL : string; + attribute C_PROBE_OUT174_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT174_WIDTH : integer; + attribute C_PROBE_OUT174_WIDTH of inst : label is 1; + attribute C_PROBE_OUT175_INIT_VAL : string; + attribute C_PROBE_OUT175_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT175_WIDTH : integer; + attribute C_PROBE_OUT175_WIDTH of inst : label is 1; + attribute C_PROBE_OUT176_INIT_VAL : string; + attribute C_PROBE_OUT176_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT176_WIDTH : integer; + attribute C_PROBE_OUT176_WIDTH of inst : label is 1; + attribute C_PROBE_OUT177_INIT_VAL : string; + attribute C_PROBE_OUT177_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT177_WIDTH : integer; + attribute C_PROBE_OUT177_WIDTH of inst : label is 1; + attribute C_PROBE_OUT178_INIT_VAL : string; + attribute C_PROBE_OUT178_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT178_WIDTH : integer; + attribute C_PROBE_OUT178_WIDTH of inst : label is 1; + attribute C_PROBE_OUT179_INIT_VAL : string; + attribute C_PROBE_OUT179_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT179_WIDTH : integer; + attribute C_PROBE_OUT179_WIDTH of inst : label is 1; + attribute C_PROBE_OUT17_INIT_VAL : string; + attribute C_PROBE_OUT17_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT17_WIDTH : integer; + attribute C_PROBE_OUT17_WIDTH of inst : label is 1; + attribute C_PROBE_OUT180_INIT_VAL : string; + attribute C_PROBE_OUT180_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT180_WIDTH : integer; + attribute C_PROBE_OUT180_WIDTH of inst : label is 1; + attribute C_PROBE_OUT181_INIT_VAL : string; + attribute C_PROBE_OUT181_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT181_WIDTH : integer; + attribute C_PROBE_OUT181_WIDTH of inst : label is 1; + attribute C_PROBE_OUT182_INIT_VAL : string; + attribute C_PROBE_OUT182_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT182_WIDTH : integer; + attribute C_PROBE_OUT182_WIDTH of inst : label is 1; + attribute C_PROBE_OUT183_INIT_VAL : string; + attribute C_PROBE_OUT183_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT183_WIDTH : integer; + attribute C_PROBE_OUT183_WIDTH of inst : label is 1; + attribute C_PROBE_OUT184_INIT_VAL : string; + attribute C_PROBE_OUT184_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT184_WIDTH : integer; + attribute C_PROBE_OUT184_WIDTH of inst : label is 1; + attribute C_PROBE_OUT185_INIT_VAL : string; + attribute C_PROBE_OUT185_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT185_WIDTH : integer; + attribute C_PROBE_OUT185_WIDTH of inst : label is 1; + attribute C_PROBE_OUT186_INIT_VAL : string; + attribute C_PROBE_OUT186_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT186_WIDTH : integer; + attribute C_PROBE_OUT186_WIDTH of inst : label is 1; + attribute C_PROBE_OUT187_INIT_VAL : string; + attribute C_PROBE_OUT187_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT187_WIDTH : integer; + attribute C_PROBE_OUT187_WIDTH of inst : label is 1; + attribute C_PROBE_OUT188_INIT_VAL : string; + attribute C_PROBE_OUT188_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT188_WIDTH : integer; + attribute C_PROBE_OUT188_WIDTH of inst : label is 1; + attribute C_PROBE_OUT189_INIT_VAL : string; + attribute C_PROBE_OUT189_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT189_WIDTH : integer; + attribute C_PROBE_OUT189_WIDTH of inst : label is 1; + attribute C_PROBE_OUT18_INIT_VAL : string; + attribute C_PROBE_OUT18_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT18_WIDTH : integer; + attribute C_PROBE_OUT18_WIDTH of inst : label is 1; + attribute C_PROBE_OUT190_INIT_VAL : string; + attribute C_PROBE_OUT190_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT190_WIDTH : integer; + attribute C_PROBE_OUT190_WIDTH of inst : label is 1; + attribute C_PROBE_OUT191_INIT_VAL : string; + attribute C_PROBE_OUT191_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT191_WIDTH : integer; + attribute C_PROBE_OUT191_WIDTH of inst : label is 1; + attribute C_PROBE_OUT192_INIT_VAL : string; + attribute C_PROBE_OUT192_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT192_WIDTH : integer; + attribute C_PROBE_OUT192_WIDTH of inst : label is 1; + attribute C_PROBE_OUT193_INIT_VAL : string; + attribute C_PROBE_OUT193_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT193_WIDTH : integer; + attribute C_PROBE_OUT193_WIDTH of inst : label is 1; + attribute C_PROBE_OUT194_INIT_VAL : string; + attribute C_PROBE_OUT194_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT194_WIDTH : integer; + attribute C_PROBE_OUT194_WIDTH of inst : label is 1; + attribute C_PROBE_OUT195_INIT_VAL : string; + attribute C_PROBE_OUT195_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT195_WIDTH : integer; + attribute C_PROBE_OUT195_WIDTH of inst : label is 1; + attribute C_PROBE_OUT196_INIT_VAL : string; + attribute C_PROBE_OUT196_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT196_WIDTH : integer; + attribute C_PROBE_OUT196_WIDTH of inst : label is 1; + attribute C_PROBE_OUT197_INIT_VAL : string; + attribute C_PROBE_OUT197_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT197_WIDTH : integer; + attribute C_PROBE_OUT197_WIDTH of inst : label is 1; + attribute C_PROBE_OUT198_INIT_VAL : string; + attribute C_PROBE_OUT198_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT198_WIDTH : integer; + attribute C_PROBE_OUT198_WIDTH of inst : label is 1; + attribute C_PROBE_OUT199_INIT_VAL : string; + attribute C_PROBE_OUT199_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT199_WIDTH : integer; + attribute C_PROBE_OUT199_WIDTH of inst : label is 1; + attribute C_PROBE_OUT19_INIT_VAL : string; + attribute C_PROBE_OUT19_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT19_WIDTH : integer; + attribute C_PROBE_OUT19_WIDTH of inst : label is 1; + attribute C_PROBE_OUT1_INIT_VAL : string; + attribute C_PROBE_OUT1_INIT_VAL of inst : label is "1'b1"; + attribute C_PROBE_OUT1_WIDTH : integer; + attribute C_PROBE_OUT1_WIDTH of inst : label is 1; + attribute C_PROBE_OUT200_INIT_VAL : string; + attribute C_PROBE_OUT200_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT200_WIDTH : integer; + attribute C_PROBE_OUT200_WIDTH of inst : label is 1; + attribute C_PROBE_OUT201_INIT_VAL : string; + attribute C_PROBE_OUT201_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT201_WIDTH : integer; + attribute C_PROBE_OUT201_WIDTH of inst : label is 1; + attribute C_PROBE_OUT202_INIT_VAL : string; + attribute C_PROBE_OUT202_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT202_WIDTH : integer; + attribute C_PROBE_OUT202_WIDTH of inst : label is 1; + attribute C_PROBE_OUT203_INIT_VAL : string; + attribute C_PROBE_OUT203_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT203_WIDTH : integer; + attribute C_PROBE_OUT203_WIDTH of inst : label is 1; + attribute C_PROBE_OUT204_INIT_VAL : string; + attribute C_PROBE_OUT204_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT204_WIDTH : integer; + attribute C_PROBE_OUT204_WIDTH of inst : label is 1; + attribute C_PROBE_OUT205_INIT_VAL : string; + attribute C_PROBE_OUT205_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT205_WIDTH : integer; + attribute C_PROBE_OUT205_WIDTH of inst : label is 1; + attribute C_PROBE_OUT206_INIT_VAL : string; + attribute C_PROBE_OUT206_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT206_WIDTH : integer; + attribute C_PROBE_OUT206_WIDTH of inst : label is 1; + attribute C_PROBE_OUT207_INIT_VAL : string; + attribute C_PROBE_OUT207_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT207_WIDTH : integer; + attribute C_PROBE_OUT207_WIDTH of inst : label is 1; + attribute C_PROBE_OUT208_INIT_VAL : string; + attribute C_PROBE_OUT208_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT208_WIDTH : integer; + attribute C_PROBE_OUT208_WIDTH of inst : label is 1; + attribute C_PROBE_OUT209_INIT_VAL : string; + attribute C_PROBE_OUT209_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT209_WIDTH : integer; + attribute C_PROBE_OUT209_WIDTH of inst : label is 1; + attribute C_PROBE_OUT20_INIT_VAL : string; + attribute C_PROBE_OUT20_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT20_WIDTH : integer; + attribute C_PROBE_OUT20_WIDTH of inst : label is 1; + attribute C_PROBE_OUT210_INIT_VAL : string; + attribute C_PROBE_OUT210_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT210_WIDTH : integer; + attribute C_PROBE_OUT210_WIDTH of inst : label is 1; + attribute C_PROBE_OUT211_INIT_VAL : string; + attribute C_PROBE_OUT211_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT211_WIDTH : integer; + attribute C_PROBE_OUT211_WIDTH of inst : label is 1; + attribute C_PROBE_OUT212_INIT_VAL : string; + attribute C_PROBE_OUT212_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT212_WIDTH : integer; + attribute C_PROBE_OUT212_WIDTH of inst : label is 1; + attribute C_PROBE_OUT213_INIT_VAL : string; + attribute C_PROBE_OUT213_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT213_WIDTH : integer; + attribute C_PROBE_OUT213_WIDTH of inst : label is 1; + attribute C_PROBE_OUT214_INIT_VAL : string; + attribute C_PROBE_OUT214_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT214_WIDTH : integer; + attribute C_PROBE_OUT214_WIDTH of inst : label is 1; + attribute C_PROBE_OUT215_INIT_VAL : string; + attribute C_PROBE_OUT215_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT215_WIDTH : integer; + attribute C_PROBE_OUT215_WIDTH of inst : label is 1; + attribute C_PROBE_OUT216_INIT_VAL : string; + attribute C_PROBE_OUT216_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT216_WIDTH : integer; + attribute C_PROBE_OUT216_WIDTH of inst : label is 1; + attribute C_PROBE_OUT217_INIT_VAL : string; + attribute C_PROBE_OUT217_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT217_WIDTH : integer; + attribute C_PROBE_OUT217_WIDTH of inst : label is 1; + attribute C_PROBE_OUT218_INIT_VAL : string; + attribute C_PROBE_OUT218_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT218_WIDTH : integer; + attribute C_PROBE_OUT218_WIDTH of inst : label is 1; + attribute C_PROBE_OUT219_INIT_VAL : string; + attribute C_PROBE_OUT219_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT219_WIDTH : integer; + attribute C_PROBE_OUT219_WIDTH of inst : label is 1; + attribute C_PROBE_OUT21_INIT_VAL : string; + attribute C_PROBE_OUT21_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT21_WIDTH : integer; + attribute C_PROBE_OUT21_WIDTH of inst : label is 1; + attribute C_PROBE_OUT220_INIT_VAL : string; + attribute C_PROBE_OUT220_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT220_WIDTH : integer; + attribute C_PROBE_OUT220_WIDTH of inst : label is 1; + attribute C_PROBE_OUT221_INIT_VAL : string; + attribute C_PROBE_OUT221_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT221_WIDTH : integer; + attribute C_PROBE_OUT221_WIDTH of inst : label is 1; + attribute C_PROBE_OUT222_INIT_VAL : string; + attribute C_PROBE_OUT222_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT222_WIDTH : integer; + attribute C_PROBE_OUT222_WIDTH of inst : label is 1; + attribute C_PROBE_OUT223_INIT_VAL : string; + attribute C_PROBE_OUT223_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT223_WIDTH : integer; + attribute C_PROBE_OUT223_WIDTH of inst : label is 1; + attribute C_PROBE_OUT224_INIT_VAL : string; + attribute C_PROBE_OUT224_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT224_WIDTH : integer; + attribute C_PROBE_OUT224_WIDTH of inst : label is 1; + attribute C_PROBE_OUT225_INIT_VAL : string; + attribute C_PROBE_OUT225_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT225_WIDTH : integer; + attribute C_PROBE_OUT225_WIDTH of inst : label is 1; + attribute C_PROBE_OUT226_INIT_VAL : string; + attribute C_PROBE_OUT226_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT226_WIDTH : integer; + attribute C_PROBE_OUT226_WIDTH of inst : label is 1; + attribute C_PROBE_OUT227_INIT_VAL : string; + attribute C_PROBE_OUT227_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT227_WIDTH : integer; + attribute C_PROBE_OUT227_WIDTH of inst : label is 1; + attribute C_PROBE_OUT228_INIT_VAL : string; + attribute C_PROBE_OUT228_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT228_WIDTH : integer; + attribute C_PROBE_OUT228_WIDTH of inst : label is 1; + attribute C_PROBE_OUT229_INIT_VAL : string; + attribute C_PROBE_OUT229_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT229_WIDTH : integer; + attribute C_PROBE_OUT229_WIDTH of inst : label is 1; + attribute C_PROBE_OUT22_INIT_VAL : string; + attribute C_PROBE_OUT22_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT22_WIDTH : integer; + attribute C_PROBE_OUT22_WIDTH of inst : label is 1; + attribute C_PROBE_OUT230_INIT_VAL : string; + attribute C_PROBE_OUT230_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT230_WIDTH : integer; + attribute C_PROBE_OUT230_WIDTH of inst : label is 1; + attribute C_PROBE_OUT231_INIT_VAL : string; + attribute C_PROBE_OUT231_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT231_WIDTH : integer; + attribute C_PROBE_OUT231_WIDTH of inst : label is 1; + attribute C_PROBE_OUT232_INIT_VAL : string; + attribute C_PROBE_OUT232_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT232_WIDTH : integer; + attribute C_PROBE_OUT232_WIDTH of inst : label is 1; + attribute C_PROBE_OUT233_INIT_VAL : string; + attribute C_PROBE_OUT233_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT233_WIDTH : integer; + attribute C_PROBE_OUT233_WIDTH of inst : label is 1; + attribute C_PROBE_OUT234_INIT_VAL : string; + attribute C_PROBE_OUT234_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT234_WIDTH : integer; + attribute C_PROBE_OUT234_WIDTH of inst : label is 1; + attribute C_PROBE_OUT235_INIT_VAL : string; + attribute C_PROBE_OUT235_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT235_WIDTH : integer; + attribute C_PROBE_OUT235_WIDTH of inst : label is 1; + attribute C_PROBE_OUT236_INIT_VAL : string; + attribute C_PROBE_OUT236_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT236_WIDTH : integer; + attribute C_PROBE_OUT236_WIDTH of inst : label is 1; + attribute C_PROBE_OUT237_INIT_VAL : string; + attribute C_PROBE_OUT237_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT237_WIDTH : integer; + attribute C_PROBE_OUT237_WIDTH of inst : label is 1; + attribute C_PROBE_OUT238_INIT_VAL : string; + attribute C_PROBE_OUT238_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT238_WIDTH : integer; + attribute C_PROBE_OUT238_WIDTH of inst : label is 1; + attribute C_PROBE_OUT239_INIT_VAL : string; + attribute C_PROBE_OUT239_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT239_WIDTH : integer; + attribute C_PROBE_OUT239_WIDTH of inst : label is 1; + attribute C_PROBE_OUT23_INIT_VAL : string; + attribute C_PROBE_OUT23_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT23_WIDTH : integer; + attribute C_PROBE_OUT23_WIDTH of inst : label is 1; + attribute C_PROBE_OUT240_INIT_VAL : string; + attribute C_PROBE_OUT240_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT240_WIDTH : integer; + attribute C_PROBE_OUT240_WIDTH of inst : label is 1; + attribute C_PROBE_OUT241_INIT_VAL : string; + attribute C_PROBE_OUT241_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT241_WIDTH : integer; + attribute C_PROBE_OUT241_WIDTH of inst : label is 1; + attribute C_PROBE_OUT242_INIT_VAL : string; + attribute C_PROBE_OUT242_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT242_WIDTH : integer; + attribute C_PROBE_OUT242_WIDTH of inst : label is 1; + attribute C_PROBE_OUT243_INIT_VAL : string; + attribute C_PROBE_OUT243_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT243_WIDTH : integer; + attribute C_PROBE_OUT243_WIDTH of inst : label is 1; + attribute C_PROBE_OUT244_INIT_VAL : string; + attribute C_PROBE_OUT244_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT244_WIDTH : integer; + attribute C_PROBE_OUT244_WIDTH of inst : label is 1; + attribute C_PROBE_OUT245_INIT_VAL : string; + attribute C_PROBE_OUT245_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT245_WIDTH : integer; + attribute C_PROBE_OUT245_WIDTH of inst : label is 1; + attribute C_PROBE_OUT246_INIT_VAL : string; + attribute C_PROBE_OUT246_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT246_WIDTH : integer; + attribute C_PROBE_OUT246_WIDTH of inst : label is 1; + attribute C_PROBE_OUT247_INIT_VAL : string; + attribute C_PROBE_OUT247_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT247_WIDTH : integer; + attribute C_PROBE_OUT247_WIDTH of inst : label is 1; + attribute C_PROBE_OUT248_INIT_VAL : string; + attribute C_PROBE_OUT248_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT248_WIDTH : integer; + attribute C_PROBE_OUT248_WIDTH of inst : label is 1; + attribute C_PROBE_OUT249_INIT_VAL : string; + attribute C_PROBE_OUT249_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT249_WIDTH : integer; + attribute C_PROBE_OUT249_WIDTH of inst : label is 1; + attribute C_PROBE_OUT24_INIT_VAL : string; + attribute C_PROBE_OUT24_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT24_WIDTH : integer; + attribute C_PROBE_OUT24_WIDTH of inst : label is 1; + attribute C_PROBE_OUT250_INIT_VAL : string; + attribute C_PROBE_OUT250_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT250_WIDTH : integer; + attribute C_PROBE_OUT250_WIDTH of inst : label is 1; + attribute C_PROBE_OUT251_INIT_VAL : string; + attribute C_PROBE_OUT251_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT251_WIDTH : integer; + attribute C_PROBE_OUT251_WIDTH of inst : label is 1; + attribute C_PROBE_OUT252_INIT_VAL : string; + attribute C_PROBE_OUT252_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT252_WIDTH : integer; + attribute C_PROBE_OUT252_WIDTH of inst : label is 1; + attribute C_PROBE_OUT253_INIT_VAL : string; + attribute C_PROBE_OUT253_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT253_WIDTH : integer; + attribute C_PROBE_OUT253_WIDTH of inst : label is 1; + attribute C_PROBE_OUT254_INIT_VAL : string; + attribute C_PROBE_OUT254_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT254_WIDTH : integer; + attribute C_PROBE_OUT254_WIDTH of inst : label is 1; + attribute C_PROBE_OUT255_INIT_VAL : string; + attribute C_PROBE_OUT255_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT255_WIDTH : integer; + attribute C_PROBE_OUT255_WIDTH of inst : label is 1; + attribute C_PROBE_OUT25_INIT_VAL : string; + attribute C_PROBE_OUT25_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT25_WIDTH : integer; + attribute C_PROBE_OUT25_WIDTH of inst : label is 1; + attribute C_PROBE_OUT26_INIT_VAL : string; + attribute C_PROBE_OUT26_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT26_WIDTH : integer; + attribute C_PROBE_OUT26_WIDTH of inst : label is 1; + attribute C_PROBE_OUT27_INIT_VAL : string; + attribute C_PROBE_OUT27_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT27_WIDTH : integer; + attribute C_PROBE_OUT27_WIDTH of inst : label is 1; + attribute C_PROBE_OUT28_INIT_VAL : string; + attribute C_PROBE_OUT28_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT28_WIDTH : integer; + attribute C_PROBE_OUT28_WIDTH of inst : label is 1; + attribute C_PROBE_OUT29_INIT_VAL : string; + attribute C_PROBE_OUT29_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT29_WIDTH : integer; + attribute C_PROBE_OUT29_WIDTH of inst : label is 1; + attribute C_PROBE_OUT2_INIT_VAL : string; + attribute C_PROBE_OUT2_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT2_WIDTH : integer; + attribute C_PROBE_OUT2_WIDTH of inst : label is 1; + attribute C_PROBE_OUT30_INIT_VAL : string; + attribute C_PROBE_OUT30_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT30_WIDTH : integer; + attribute C_PROBE_OUT30_WIDTH of inst : label is 1; + attribute C_PROBE_OUT31_INIT_VAL : string; + attribute C_PROBE_OUT31_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT31_WIDTH : integer; + attribute C_PROBE_OUT31_WIDTH of inst : label is 1; + attribute C_PROBE_OUT32_INIT_VAL : string; + attribute C_PROBE_OUT32_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT32_WIDTH : integer; + attribute C_PROBE_OUT32_WIDTH of inst : label is 1; + attribute C_PROBE_OUT33_INIT_VAL : string; + attribute C_PROBE_OUT33_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT33_WIDTH : integer; + attribute C_PROBE_OUT33_WIDTH of inst : label is 1; + attribute C_PROBE_OUT34_INIT_VAL : string; + attribute C_PROBE_OUT34_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT34_WIDTH : integer; + attribute C_PROBE_OUT34_WIDTH of inst : label is 1; + attribute C_PROBE_OUT35_INIT_VAL : string; + attribute C_PROBE_OUT35_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT35_WIDTH : integer; + attribute C_PROBE_OUT35_WIDTH of inst : label is 1; + attribute C_PROBE_OUT36_INIT_VAL : string; + attribute C_PROBE_OUT36_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT36_WIDTH : integer; + attribute C_PROBE_OUT36_WIDTH of inst : label is 1; + attribute C_PROBE_OUT37_INIT_VAL : string; + attribute C_PROBE_OUT37_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT37_WIDTH : integer; + attribute C_PROBE_OUT37_WIDTH of inst : label is 1; + attribute C_PROBE_OUT38_INIT_VAL : string; + attribute C_PROBE_OUT38_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT38_WIDTH : integer; + attribute C_PROBE_OUT38_WIDTH of inst : label is 1; + attribute C_PROBE_OUT39_INIT_VAL : string; + attribute C_PROBE_OUT39_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT39_WIDTH : integer; + attribute C_PROBE_OUT39_WIDTH of inst : label is 1; + attribute C_PROBE_OUT3_INIT_VAL : string; + attribute C_PROBE_OUT3_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT3_WIDTH : integer; + attribute C_PROBE_OUT3_WIDTH of inst : label is 1; + attribute C_PROBE_OUT40_INIT_VAL : string; + attribute C_PROBE_OUT40_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT40_WIDTH : integer; + attribute C_PROBE_OUT40_WIDTH of inst : label is 1; + attribute C_PROBE_OUT41_INIT_VAL : string; + attribute C_PROBE_OUT41_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT41_WIDTH : integer; + attribute C_PROBE_OUT41_WIDTH of inst : label is 1; + attribute C_PROBE_OUT42_INIT_VAL : string; + attribute C_PROBE_OUT42_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT42_WIDTH : integer; + attribute C_PROBE_OUT42_WIDTH of inst : label is 1; + attribute C_PROBE_OUT43_INIT_VAL : string; + attribute C_PROBE_OUT43_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT43_WIDTH : integer; + attribute C_PROBE_OUT43_WIDTH of inst : label is 1; + attribute C_PROBE_OUT44_INIT_VAL : string; + attribute C_PROBE_OUT44_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT44_WIDTH : integer; + attribute C_PROBE_OUT44_WIDTH of inst : label is 1; + attribute C_PROBE_OUT45_INIT_VAL : string; + attribute C_PROBE_OUT45_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT45_WIDTH : integer; + attribute C_PROBE_OUT45_WIDTH of inst : label is 1; + attribute C_PROBE_OUT46_INIT_VAL : string; + attribute C_PROBE_OUT46_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT46_WIDTH : integer; + attribute C_PROBE_OUT46_WIDTH of inst : label is 1; + attribute C_PROBE_OUT47_INIT_VAL : string; + attribute C_PROBE_OUT47_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT47_WIDTH : integer; + attribute C_PROBE_OUT47_WIDTH of inst : label is 1; + attribute C_PROBE_OUT48_INIT_VAL : string; + attribute C_PROBE_OUT48_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT48_WIDTH : integer; + attribute C_PROBE_OUT48_WIDTH of inst : label is 1; + attribute C_PROBE_OUT49_INIT_VAL : string; + attribute C_PROBE_OUT49_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT49_WIDTH : integer; + attribute C_PROBE_OUT49_WIDTH of inst : label is 1; + attribute C_PROBE_OUT4_INIT_VAL : string; + attribute C_PROBE_OUT4_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT4_WIDTH : integer; + attribute C_PROBE_OUT4_WIDTH of inst : label is 1; + attribute C_PROBE_OUT50_INIT_VAL : string; + attribute C_PROBE_OUT50_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT50_WIDTH : integer; + attribute C_PROBE_OUT50_WIDTH of inst : label is 1; + attribute C_PROBE_OUT51_INIT_VAL : string; + attribute C_PROBE_OUT51_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT51_WIDTH : integer; + attribute C_PROBE_OUT51_WIDTH of inst : label is 1; + attribute C_PROBE_OUT52_INIT_VAL : string; + attribute C_PROBE_OUT52_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT52_WIDTH : integer; + attribute C_PROBE_OUT52_WIDTH of inst : label is 1; + attribute C_PROBE_OUT53_INIT_VAL : string; + attribute C_PROBE_OUT53_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT53_WIDTH : integer; + attribute C_PROBE_OUT53_WIDTH of inst : label is 1; + attribute C_PROBE_OUT54_INIT_VAL : string; + attribute C_PROBE_OUT54_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT54_WIDTH : integer; + attribute C_PROBE_OUT54_WIDTH of inst : label is 1; + attribute C_PROBE_OUT55_INIT_VAL : string; + attribute C_PROBE_OUT55_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT55_WIDTH : integer; + attribute C_PROBE_OUT55_WIDTH of inst : label is 1; + attribute C_PROBE_OUT56_INIT_VAL : string; + attribute C_PROBE_OUT56_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT56_WIDTH : integer; + attribute C_PROBE_OUT56_WIDTH of inst : label is 1; + attribute C_PROBE_OUT57_INIT_VAL : string; + attribute C_PROBE_OUT57_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT57_WIDTH : integer; + attribute C_PROBE_OUT57_WIDTH of inst : label is 1; + attribute C_PROBE_OUT58_INIT_VAL : string; + attribute C_PROBE_OUT58_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT58_WIDTH : integer; + attribute C_PROBE_OUT58_WIDTH of inst : label is 1; + attribute C_PROBE_OUT59_INIT_VAL : string; + attribute C_PROBE_OUT59_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT59_WIDTH : integer; + attribute C_PROBE_OUT59_WIDTH of inst : label is 1; + attribute C_PROBE_OUT5_INIT_VAL : string; + attribute C_PROBE_OUT5_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT5_WIDTH : integer; + attribute C_PROBE_OUT5_WIDTH of inst : label is 1; + attribute C_PROBE_OUT60_INIT_VAL : string; + attribute C_PROBE_OUT60_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT60_WIDTH : integer; + attribute C_PROBE_OUT60_WIDTH of inst : label is 1; + attribute C_PROBE_OUT61_INIT_VAL : string; + attribute C_PROBE_OUT61_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT61_WIDTH : integer; + attribute C_PROBE_OUT61_WIDTH of inst : label is 1; + attribute C_PROBE_OUT62_INIT_VAL : string; + attribute C_PROBE_OUT62_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT62_WIDTH : integer; + attribute C_PROBE_OUT62_WIDTH of inst : label is 1; + attribute C_PROBE_OUT63_INIT_VAL : string; + attribute C_PROBE_OUT63_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT63_WIDTH : integer; + attribute C_PROBE_OUT63_WIDTH of inst : label is 1; + attribute C_PROBE_OUT64_INIT_VAL : string; + attribute C_PROBE_OUT64_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT64_WIDTH : integer; + attribute C_PROBE_OUT64_WIDTH of inst : label is 1; + attribute C_PROBE_OUT65_INIT_VAL : string; + attribute C_PROBE_OUT65_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT65_WIDTH : integer; + attribute C_PROBE_OUT65_WIDTH of inst : label is 1; + attribute C_PROBE_OUT66_INIT_VAL : string; + attribute C_PROBE_OUT66_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT66_WIDTH : integer; + attribute C_PROBE_OUT66_WIDTH of inst : label is 1; + attribute C_PROBE_OUT67_INIT_VAL : string; + attribute C_PROBE_OUT67_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT67_WIDTH : integer; + attribute C_PROBE_OUT67_WIDTH of inst : label is 1; + attribute C_PROBE_OUT68_INIT_VAL : string; + attribute C_PROBE_OUT68_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT68_WIDTH : integer; + attribute C_PROBE_OUT68_WIDTH of inst : label is 1; + attribute C_PROBE_OUT69_INIT_VAL : string; + attribute C_PROBE_OUT69_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT69_WIDTH : integer; + attribute C_PROBE_OUT69_WIDTH of inst : label is 1; + attribute C_PROBE_OUT6_INIT_VAL : string; + attribute C_PROBE_OUT6_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT6_WIDTH : integer; + attribute C_PROBE_OUT6_WIDTH of inst : label is 1; + attribute C_PROBE_OUT70_INIT_VAL : string; + attribute C_PROBE_OUT70_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT70_WIDTH : integer; + attribute C_PROBE_OUT70_WIDTH of inst : label is 1; + attribute C_PROBE_OUT71_INIT_VAL : string; + attribute C_PROBE_OUT71_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT71_WIDTH : integer; + attribute C_PROBE_OUT71_WIDTH of inst : label is 1; + attribute C_PROBE_OUT72_INIT_VAL : string; + attribute C_PROBE_OUT72_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT72_WIDTH : integer; + attribute C_PROBE_OUT72_WIDTH of inst : label is 1; + attribute C_PROBE_OUT73_INIT_VAL : string; + attribute C_PROBE_OUT73_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT73_WIDTH : integer; + attribute C_PROBE_OUT73_WIDTH of inst : label is 1; + attribute C_PROBE_OUT74_INIT_VAL : string; + attribute C_PROBE_OUT74_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT74_WIDTH : integer; + attribute C_PROBE_OUT74_WIDTH of inst : label is 1; + attribute C_PROBE_OUT75_INIT_VAL : string; + attribute C_PROBE_OUT75_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT75_WIDTH : integer; + attribute C_PROBE_OUT75_WIDTH of inst : label is 1; + attribute C_PROBE_OUT76_INIT_VAL : string; + attribute C_PROBE_OUT76_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT76_WIDTH : integer; + attribute C_PROBE_OUT76_WIDTH of inst : label is 1; + attribute C_PROBE_OUT77_INIT_VAL : string; + attribute C_PROBE_OUT77_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT77_WIDTH : integer; + attribute C_PROBE_OUT77_WIDTH of inst : label is 1; + attribute C_PROBE_OUT78_INIT_VAL : string; + attribute C_PROBE_OUT78_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT78_WIDTH : integer; + attribute C_PROBE_OUT78_WIDTH of inst : label is 1; + attribute C_PROBE_OUT79_INIT_VAL : string; + attribute C_PROBE_OUT79_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT79_WIDTH : integer; + attribute C_PROBE_OUT79_WIDTH of inst : label is 1; + attribute C_PROBE_OUT7_INIT_VAL : string; + attribute C_PROBE_OUT7_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT7_WIDTH : integer; + attribute C_PROBE_OUT7_WIDTH of inst : label is 1; + attribute C_PROBE_OUT80_INIT_VAL : string; + attribute C_PROBE_OUT80_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT80_WIDTH : integer; + attribute C_PROBE_OUT80_WIDTH of inst : label is 1; + attribute C_PROBE_OUT81_INIT_VAL : string; + attribute C_PROBE_OUT81_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT81_WIDTH : integer; + attribute C_PROBE_OUT81_WIDTH of inst : label is 1; + attribute C_PROBE_OUT82_INIT_VAL : string; + attribute C_PROBE_OUT82_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT82_WIDTH : integer; + attribute C_PROBE_OUT82_WIDTH of inst : label is 1; + attribute C_PROBE_OUT83_INIT_VAL : string; + attribute C_PROBE_OUT83_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT83_WIDTH : integer; + attribute C_PROBE_OUT83_WIDTH of inst : label is 1; + attribute C_PROBE_OUT84_INIT_VAL : string; + attribute C_PROBE_OUT84_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT84_WIDTH : integer; + attribute C_PROBE_OUT84_WIDTH of inst : label is 1; + attribute C_PROBE_OUT85_INIT_VAL : string; + attribute C_PROBE_OUT85_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT85_WIDTH : integer; + attribute C_PROBE_OUT85_WIDTH of inst : label is 1; + attribute C_PROBE_OUT86_INIT_VAL : string; + attribute C_PROBE_OUT86_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT86_WIDTH : integer; + attribute C_PROBE_OUT86_WIDTH of inst : label is 1; + attribute C_PROBE_OUT87_INIT_VAL : string; + attribute C_PROBE_OUT87_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT87_WIDTH : integer; + attribute C_PROBE_OUT87_WIDTH of inst : label is 1; + attribute C_PROBE_OUT88_INIT_VAL : string; + attribute C_PROBE_OUT88_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT88_WIDTH : integer; + attribute C_PROBE_OUT88_WIDTH of inst : label is 1; + attribute C_PROBE_OUT89_INIT_VAL : string; + attribute C_PROBE_OUT89_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT89_WIDTH : integer; + attribute C_PROBE_OUT89_WIDTH of inst : label is 1; + attribute C_PROBE_OUT8_INIT_VAL : string; + attribute C_PROBE_OUT8_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT8_WIDTH : integer; + attribute C_PROBE_OUT8_WIDTH of inst : label is 1; + attribute C_PROBE_OUT90_INIT_VAL : string; + attribute C_PROBE_OUT90_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT90_WIDTH : integer; + attribute C_PROBE_OUT90_WIDTH of inst : label is 1; + attribute C_PROBE_OUT91_INIT_VAL : string; + attribute C_PROBE_OUT91_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT91_WIDTH : integer; + attribute C_PROBE_OUT91_WIDTH of inst : label is 1; + attribute C_PROBE_OUT92_INIT_VAL : string; + attribute C_PROBE_OUT92_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT92_WIDTH : integer; + attribute C_PROBE_OUT92_WIDTH of inst : label is 1; + attribute C_PROBE_OUT93_INIT_VAL : string; + attribute C_PROBE_OUT93_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT93_WIDTH : integer; + attribute C_PROBE_OUT93_WIDTH of inst : label is 1; + attribute C_PROBE_OUT94_INIT_VAL : string; + attribute C_PROBE_OUT94_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT94_WIDTH : integer; + attribute C_PROBE_OUT94_WIDTH of inst : label is 1; + attribute C_PROBE_OUT95_INIT_VAL : string; + attribute C_PROBE_OUT95_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT95_WIDTH : integer; + attribute C_PROBE_OUT95_WIDTH of inst : label is 1; + attribute C_PROBE_OUT96_INIT_VAL : string; + attribute C_PROBE_OUT96_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT96_WIDTH : integer; + attribute C_PROBE_OUT96_WIDTH of inst : label is 1; + attribute C_PROBE_OUT97_INIT_VAL : string; + attribute C_PROBE_OUT97_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT97_WIDTH : integer; + attribute C_PROBE_OUT97_WIDTH of inst : label is 1; + attribute C_PROBE_OUT98_INIT_VAL : string; + attribute C_PROBE_OUT98_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT98_WIDTH : integer; + attribute C_PROBE_OUT98_WIDTH of inst : label is 1; + attribute C_PROBE_OUT99_INIT_VAL : string; + attribute C_PROBE_OUT99_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT99_WIDTH : integer; + attribute C_PROBE_OUT99_WIDTH of inst : label is 1; + attribute C_PROBE_OUT9_INIT_VAL : string; + attribute C_PROBE_OUT9_INIT_VAL of inst : label is "1'b0"; + attribute C_PROBE_OUT9_WIDTH : integer; + attribute C_PROBE_OUT9_WIDTH of inst : label is 1; + attribute C_USE_TEST_REG : integer; + attribute C_USE_TEST_REG of inst : label is 1; + attribute C_XDEVICEFAMILY : string; + attribute C_XDEVICEFAMILY of inst : label is "kintexu"; + attribute C_XLNX_HW_PROBE_INFO : string; + attribute C_XLNX_HW_PROBE_INFO of inst : label is "DEFAULT"; + attribute C_XSDB_SLAVE_TYPE : integer; + attribute C_XSDB_SLAVE_TYPE of inst : label is 33; + attribute DONT_TOUCH : boolean; + attribute DONT_TOUCH of inst : label is std.standard.true; + attribute DowngradeIPIdentifiedWarnings : string; + attribute DowngradeIPIdentifiedWarnings of inst : label is "yes"; + attribute KEEP_HIERARCHY : string; + attribute KEEP_HIERARCHY of inst : label is "soft"; + attribute LC_HIGH_BIT_POS_PROBE_OUT0 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT0 of inst : label is "16'b0000000000000010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT1 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT1 of inst : label is "16'b0000000000000011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT10 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT10 of inst : label is "16'b0000000000001100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT100 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT100 of inst : label is "16'b0000000001100110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT101 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT101 of inst : label is "16'b0000000001100111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT102 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT102 of inst : label is "16'b0000000001101000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT103 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT103 of inst : label is "16'b0000000001101001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT104 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT104 of inst : label is "16'b0000000001101010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT105 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT105 of inst : label is "16'b0000000001101011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT106 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT106 of inst : label is "16'b0000000001101100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT107 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT107 of inst : label is "16'b0000000001101101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT108 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT108 of inst : label is "16'b0000000001101110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT109 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT109 of inst : label is "16'b0000000001101111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT11 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT11 of inst : label is "16'b0000000000001101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT110 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT110 of inst : label is "16'b0000000001110000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT111 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT111 of inst : label is "16'b0000000001110001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT112 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT112 of inst : label is "16'b0000000001110010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT113 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT113 of inst : label is "16'b0000000001110011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT114 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT114 of inst : label is "16'b0000000001110100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT115 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT115 of inst : label is "16'b0000000001110101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT116 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT116 of inst : label is "16'b0000000001110110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT117 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT117 of inst : label is "16'b0000000001110111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT118 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT118 of inst : label is "16'b0000000001111000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT119 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT119 of inst : label is "16'b0000000001111001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT12 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT12 of inst : label is "16'b0000000000001110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT120 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT120 of inst : label is "16'b0000000001111010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT121 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT121 of inst : label is "16'b0000000001111011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT122 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT122 of inst : label is "16'b0000000001111100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT123 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT123 of inst : label is "16'b0000000001111101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT124 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT124 of inst : label is "16'b0000000001111110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT125 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT125 of inst : label is "16'b0000000001111111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT126 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT126 of inst : label is "16'b0000000010000000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT127 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT127 of inst : label is "16'b0000000010000001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT128 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT128 of inst : label is "16'b0000000010000010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT129 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT129 of inst : label is "16'b0000000010000011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT13 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT13 of inst : label is "16'b0000000000001111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT130 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT130 of inst : label is "16'b0000000010000100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT131 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT131 of inst : label is "16'b0000000010000101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT132 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT132 of inst : label is "16'b0000000010000110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT133 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT133 of inst : label is "16'b0000000010000111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT134 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT134 of inst : label is "16'b0000000010001000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT135 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT135 of inst : label is "16'b0000000010001001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT136 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT136 of inst : label is "16'b0000000010001010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT137 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT137 of inst : label is "16'b0000000010001011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT138 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT138 of inst : label is "16'b0000000010001100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT139 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT139 of inst : label is "16'b0000000010001101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT14 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT14 of inst : label is "16'b0000000000010000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT140 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT140 of inst : label is "16'b0000000010001110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT141 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT141 of inst : label is "16'b0000000010001111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT142 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT142 of inst : label is "16'b0000000010010000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT143 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT143 of inst : label is "16'b0000000010010001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT144 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT144 of inst : label is "16'b0000000010010010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT145 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT145 of inst : label is "16'b0000000010010011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT146 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT146 of inst : label is "16'b0000000010010100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT147 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT147 of inst : label is "16'b0000000010010101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT148 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT148 of inst : label is "16'b0000000010010110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT149 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT149 of inst : label is "16'b0000000010010111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT15 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT15 of inst : label is "16'b0000000000010001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT150 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT150 of inst : label is "16'b0000000010011000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT151 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT151 of inst : label is "16'b0000000010011001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT152 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT152 of inst : label is "16'b0000000010011010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT153 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT153 of inst : label is "16'b0000000010011011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT154 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT154 of inst : label is "16'b0000000010011100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT155 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT155 of inst : label is "16'b0000000010011101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT156 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT156 of inst : label is "16'b0000000010011110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT157 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT157 of inst : label is "16'b0000000010011111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT158 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT158 of inst : label is "16'b0000000010100000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT159 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT159 of inst : label is "16'b0000000010100001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT16 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT16 of inst : label is "16'b0000000000010010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT160 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT160 of inst : label is "16'b0000000010100010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT161 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT161 of inst : label is "16'b0000000010100011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT162 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT162 of inst : label is "16'b0000000010100100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT163 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT163 of inst : label is "16'b0000000010100101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT164 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT164 of inst : label is "16'b0000000010100110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT165 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT165 of inst : label is "16'b0000000010100111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT166 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT166 of inst : label is "16'b0000000010101000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT167 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT167 of inst : label is "16'b0000000010101001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT168 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT168 of inst : label is "16'b0000000010101010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT169 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT169 of inst : label is "16'b0000000010101011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT17 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT17 of inst : label is "16'b0000000000010011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT170 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT170 of inst : label is "16'b0000000010101100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT171 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT171 of inst : label is "16'b0000000010101101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT172 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT172 of inst : label is "16'b0000000010101110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT173 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT173 of inst : label is "16'b0000000010101111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT174 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT174 of inst : label is "16'b0000000010110000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT175 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT175 of inst : label is "16'b0000000010110001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT176 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT176 of inst : label is "16'b0000000010110010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT177 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT177 of inst : label is "16'b0000000010110011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT178 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT178 of inst : label is "16'b0000000010110100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT179 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT179 of inst : label is "16'b0000000010110101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT18 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT18 of inst : label is "16'b0000000000010100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT180 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT180 of inst : label is "16'b0000000010110110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT181 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT181 of inst : label is "16'b0000000010110111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT182 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT182 of inst : label is "16'b0000000010111000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT183 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT183 of inst : label is "16'b0000000010111001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT184 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT184 of inst : label is "16'b0000000010111010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT185 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT185 of inst : label is "16'b0000000010111011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT186 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT186 of inst : label is "16'b0000000010111100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT187 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT187 of inst : label is "16'b0000000010111101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT188 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT188 of inst : label is "16'b0000000010111110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT189 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT189 of inst : label is "16'b0000000010111111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT19 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT19 of inst : label is "16'b0000000000010101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT190 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT190 of inst : label is "16'b0000000011000000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT191 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT191 of inst : label is "16'b0000000011000001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT192 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT192 of inst : label is "16'b0000000011000010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT193 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT193 of inst : label is "16'b0000000011000011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT194 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT194 of inst : label is "16'b0000000011000100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT195 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT195 of inst : label is "16'b0000000011000101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT196 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT196 of inst : label is "16'b0000000011000110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT197 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT197 of inst : label is "16'b0000000011000111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT198 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT198 of inst : label is "16'b0000000011001000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT199 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT199 of inst : label is "16'b0000000011001001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT2 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT2 of inst : label is "16'b0000000000000100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT20 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT20 of inst : label is "16'b0000000000010110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT200 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT200 of inst : label is "16'b0000000011001010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT201 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT201 of inst : label is "16'b0000000011001011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT202 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT202 of inst : label is "16'b0000000011001100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT203 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT203 of inst : label is "16'b0000000011001101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT204 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT204 of inst : label is "16'b0000000011001110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT205 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT205 of inst : label is "16'b0000000011001111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT206 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT206 of inst : label is "16'b0000000011010000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT207 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT207 of inst : label is "16'b0000000011010001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT208 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT208 of inst : label is "16'b0000000011010010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT209 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT209 of inst : label is "16'b0000000011010011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT21 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT21 of inst : label is "16'b0000000000010111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT210 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT210 of inst : label is "16'b0000000011010100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT211 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT211 of inst : label is "16'b0000000011010101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT212 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT212 of inst : label is "16'b0000000011010110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT213 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT213 of inst : label is "16'b0000000011010111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT214 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT214 of inst : label is "16'b0000000011011000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT215 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT215 of inst : label is "16'b0000000011011001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT216 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT216 of inst : label is "16'b0000000011011010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT217 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT217 of inst : label is "16'b0000000011011011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT218 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT218 of inst : label is "16'b0000000011011100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT219 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT219 of inst : label is "16'b0000000011011101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT22 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT22 of inst : label is "16'b0000000000011000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT220 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT220 of inst : label is "16'b0000000011011110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT221 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT221 of inst : label is "16'b0000000011011111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT222 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT222 of inst : label is "16'b0000000011100000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT223 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT223 of inst : label is "16'b0000000011100001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT224 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT224 of inst : label is "16'b0000000011100010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT225 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT225 of inst : label is "16'b0000000011100011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT226 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT226 of inst : label is "16'b0000000011100100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT227 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT227 of inst : label is "16'b0000000011100101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT228 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT228 of inst : label is "16'b0000000011100110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT229 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT229 of inst : label is "16'b0000000011100111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT23 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT23 of inst : label is "16'b0000000000011001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT230 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT230 of inst : label is "16'b0000000011101000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT231 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT231 of inst : label is "16'b0000000011101001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT232 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT232 of inst : label is "16'b0000000011101010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT233 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT233 of inst : label is "16'b0000000011101011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT234 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT234 of inst : label is "16'b0000000011101100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT235 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT235 of inst : label is "16'b0000000011101101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT236 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT236 of inst : label is "16'b0000000011101110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT237 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT237 of inst : label is "16'b0000000011101111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT238 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT238 of inst : label is "16'b0000000011110000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT239 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT239 of inst : label is "16'b0000000011110001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT24 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT24 of inst : label is "16'b0000000000011010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT240 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT240 of inst : label is "16'b0000000011110010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT241 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT241 of inst : label is "16'b0000000011110011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT242 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT242 of inst : label is "16'b0000000011110100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT243 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT243 of inst : label is "16'b0000000011110101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT244 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT244 of inst : label is "16'b0000000011110110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT245 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT245 of inst : label is "16'b0000000011110111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT246 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT246 of inst : label is "16'b0000000011111000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT247 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT247 of inst : label is "16'b0000000011111001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT248 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT248 of inst : label is "16'b0000000011111010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT249 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT249 of inst : label is "16'b0000000011111011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT25 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT25 of inst : label is "16'b0000000000011011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT250 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT250 of inst : label is "16'b0000000011111100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT251 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT251 of inst : label is "16'b0000000011111101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT252 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT252 of inst : label is "16'b0000000011111110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT253 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT253 of inst : label is "16'b0000000011111111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT254 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT254 of inst : label is "16'b0000000100000000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT255 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT255 of inst : label is "16'b0000000100000001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT26 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT26 of inst : label is "16'b0000000000011100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT27 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT27 of inst : label is "16'b0000000000011101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT28 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT28 of inst : label is "16'b0000000000011110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT29 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT29 of inst : label is "16'b0000000000011111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT3 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT3 of inst : label is "16'b0000000000000101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT30 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT30 of inst : label is "16'b0000000000100000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT31 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT31 of inst : label is "16'b0000000000100001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT32 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT32 of inst : label is "16'b0000000000100010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT33 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT33 of inst : label is "16'b0000000000100011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT34 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT34 of inst : label is "16'b0000000000100100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT35 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT35 of inst : label is "16'b0000000000100101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT36 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT36 of inst : label is "16'b0000000000100110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT37 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT37 of inst : label is "16'b0000000000100111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT38 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT38 of inst : label is "16'b0000000000101000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT39 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT39 of inst : label is "16'b0000000000101001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT4 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT4 of inst : label is "16'b0000000000000110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT40 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT40 of inst : label is "16'b0000000000101010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT41 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT41 of inst : label is "16'b0000000000101011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT42 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT42 of inst : label is "16'b0000000000101100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT43 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT43 of inst : label is "16'b0000000000101101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT44 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT44 of inst : label is "16'b0000000000101110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT45 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT45 of inst : label is "16'b0000000000101111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT46 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT46 of inst : label is "16'b0000000000110000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT47 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT47 of inst : label is "16'b0000000000110001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT48 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT48 of inst : label is "16'b0000000000110010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT49 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT49 of inst : label is "16'b0000000000110011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT5 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT5 of inst : label is "16'b0000000000000111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT50 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT50 of inst : label is "16'b0000000000110100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT51 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT51 of inst : label is "16'b0000000000110101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT52 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT52 of inst : label is "16'b0000000000110110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT53 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT53 of inst : label is "16'b0000000000110111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT54 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT54 of inst : label is "16'b0000000000111000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT55 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT55 of inst : label is "16'b0000000000111001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT56 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT56 of inst : label is "16'b0000000000111010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT57 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT57 of inst : label is "16'b0000000000111011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT58 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT58 of inst : label is "16'b0000000000111100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT59 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT59 of inst : label is "16'b0000000000111101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT6 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT6 of inst : label is "16'b0000000000001000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT60 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT60 of inst : label is "16'b0000000000111110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT61 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT61 of inst : label is "16'b0000000000111111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT62 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT62 of inst : label is "16'b0000000001000000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT63 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT63 of inst : label is "16'b0000000001000001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT64 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT64 of inst : label is "16'b0000000001000010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT65 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT65 of inst : label is "16'b0000000001000011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT66 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT66 of inst : label is "16'b0000000001000100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT67 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT67 of inst : label is "16'b0000000001000101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT68 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT68 of inst : label is "16'b0000000001000110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT69 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT69 of inst : label is "16'b0000000001000111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT7 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT7 of inst : label is "16'b0000000000001001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT70 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT70 of inst : label is "16'b0000000001001000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT71 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT71 of inst : label is "16'b0000000001001001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT72 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT72 of inst : label is "16'b0000000001001010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT73 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT73 of inst : label is "16'b0000000001001011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT74 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT74 of inst : label is "16'b0000000001001100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT75 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT75 of inst : label is "16'b0000000001001101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT76 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT76 of inst : label is "16'b0000000001001110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT77 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT77 of inst : label is "16'b0000000001001111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT78 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT78 of inst : label is "16'b0000000001010000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT79 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT79 of inst : label is "16'b0000000001010001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT8 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT8 of inst : label is "16'b0000000000001010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT80 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT80 of inst : label is "16'b0000000001010010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT81 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT81 of inst : label is "16'b0000000001010011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT82 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT82 of inst : label is "16'b0000000001010100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT83 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT83 of inst : label is "16'b0000000001010101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT84 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT84 of inst : label is "16'b0000000001010110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT85 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT85 of inst : label is "16'b0000000001010111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT86 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT86 of inst : label is "16'b0000000001011000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT87 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT87 of inst : label is "16'b0000000001011001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT88 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT88 of inst : label is "16'b0000000001011010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT89 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT89 of inst : label is "16'b0000000001011011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT9 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT9 of inst : label is "16'b0000000000001011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT90 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT90 of inst : label is "16'b0000000001011100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT91 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT91 of inst : label is "16'b0000000001011101"; + attribute LC_HIGH_BIT_POS_PROBE_OUT92 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT92 of inst : label is "16'b0000000001011110"; + attribute LC_HIGH_BIT_POS_PROBE_OUT93 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT93 of inst : label is "16'b0000000001011111"; + attribute LC_HIGH_BIT_POS_PROBE_OUT94 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT94 of inst : label is "16'b0000000001100000"; + attribute LC_HIGH_BIT_POS_PROBE_OUT95 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT95 of inst : label is "16'b0000000001100001"; + attribute LC_HIGH_BIT_POS_PROBE_OUT96 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT96 of inst : label is "16'b0000000001100010"; + attribute LC_HIGH_BIT_POS_PROBE_OUT97 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT97 of inst : label is "16'b0000000001100011"; + attribute LC_HIGH_BIT_POS_PROBE_OUT98 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT98 of inst : label is "16'b0000000001100100"; + attribute LC_HIGH_BIT_POS_PROBE_OUT99 : string; + attribute LC_HIGH_BIT_POS_PROBE_OUT99 of inst : label is "16'b0000000001100101"; + attribute LC_LOW_BIT_POS_PROBE_OUT0 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT0 of inst : label is "16'b0000000000000000"; + attribute LC_LOW_BIT_POS_PROBE_OUT1 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT1 of inst : label is "16'b0000000000000011"; + attribute LC_LOW_BIT_POS_PROBE_OUT10 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT10 of inst : label is "16'b0000000000001100"; + attribute LC_LOW_BIT_POS_PROBE_OUT100 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT100 of inst : label is "16'b0000000001100110"; + attribute LC_LOW_BIT_POS_PROBE_OUT101 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT101 of inst : label is "16'b0000000001100111"; + attribute LC_LOW_BIT_POS_PROBE_OUT102 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT102 of inst : label is "16'b0000000001101000"; + attribute LC_LOW_BIT_POS_PROBE_OUT103 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT103 of inst : label is "16'b0000000001101001"; + attribute LC_LOW_BIT_POS_PROBE_OUT104 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT104 of inst : label is "16'b0000000001101010"; + attribute LC_LOW_BIT_POS_PROBE_OUT105 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT105 of inst : label is "16'b0000000001101011"; + attribute LC_LOW_BIT_POS_PROBE_OUT106 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT106 of inst : label is "16'b0000000001101100"; + attribute LC_LOW_BIT_POS_PROBE_OUT107 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT107 of inst : label is "16'b0000000001101101"; + attribute LC_LOW_BIT_POS_PROBE_OUT108 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT108 of inst : label is "16'b0000000001101110"; + attribute LC_LOW_BIT_POS_PROBE_OUT109 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT109 of inst : label is "16'b0000000001101111"; + attribute LC_LOW_BIT_POS_PROBE_OUT11 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT11 of inst : label is "16'b0000000000001101"; + attribute LC_LOW_BIT_POS_PROBE_OUT110 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT110 of inst : label is "16'b0000000001110000"; + attribute LC_LOW_BIT_POS_PROBE_OUT111 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT111 of inst : label is "16'b0000000001110001"; + attribute LC_LOW_BIT_POS_PROBE_OUT112 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT112 of inst : label is "16'b0000000001110010"; + attribute LC_LOW_BIT_POS_PROBE_OUT113 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT113 of inst : label is "16'b0000000001110011"; + attribute LC_LOW_BIT_POS_PROBE_OUT114 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT114 of inst : label is "16'b0000000001110100"; + attribute LC_LOW_BIT_POS_PROBE_OUT115 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT115 of inst : label is "16'b0000000001110101"; + attribute LC_LOW_BIT_POS_PROBE_OUT116 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT116 of inst : label is "16'b0000000001110110"; + attribute LC_LOW_BIT_POS_PROBE_OUT117 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT117 of inst : label is "16'b0000000001110111"; + attribute LC_LOW_BIT_POS_PROBE_OUT118 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT118 of inst : label is "16'b0000000001111000"; + attribute LC_LOW_BIT_POS_PROBE_OUT119 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT119 of inst : label is "16'b0000000001111001"; + attribute LC_LOW_BIT_POS_PROBE_OUT12 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT12 of inst : label is "16'b0000000000001110"; + attribute LC_LOW_BIT_POS_PROBE_OUT120 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT120 of inst : label is "16'b0000000001111010"; + attribute LC_LOW_BIT_POS_PROBE_OUT121 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT121 of inst : label is "16'b0000000001111011"; + attribute LC_LOW_BIT_POS_PROBE_OUT122 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT122 of inst : label is "16'b0000000001111100"; + attribute LC_LOW_BIT_POS_PROBE_OUT123 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT123 of inst : label is "16'b0000000001111101"; + attribute LC_LOW_BIT_POS_PROBE_OUT124 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT124 of inst : label is "16'b0000000001111110"; + attribute LC_LOW_BIT_POS_PROBE_OUT125 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT125 of inst : label is "16'b0000000001111111"; + attribute LC_LOW_BIT_POS_PROBE_OUT126 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT126 of inst : label is "16'b0000000010000000"; + attribute LC_LOW_BIT_POS_PROBE_OUT127 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT127 of inst : label is "16'b0000000010000001"; + attribute LC_LOW_BIT_POS_PROBE_OUT128 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT128 of inst : label is "16'b0000000010000010"; + attribute LC_LOW_BIT_POS_PROBE_OUT129 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT129 of inst : label is "16'b0000000010000011"; + attribute LC_LOW_BIT_POS_PROBE_OUT13 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT13 of inst : label is "16'b0000000000001111"; + attribute LC_LOW_BIT_POS_PROBE_OUT130 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT130 of inst : label is "16'b0000000010000100"; + attribute LC_LOW_BIT_POS_PROBE_OUT131 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT131 of inst : label is "16'b0000000010000101"; + attribute LC_LOW_BIT_POS_PROBE_OUT132 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT132 of inst : label is "16'b0000000010000110"; + attribute LC_LOW_BIT_POS_PROBE_OUT133 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT133 of inst : label is "16'b0000000010000111"; + attribute LC_LOW_BIT_POS_PROBE_OUT134 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT134 of inst : label is "16'b0000000010001000"; + attribute LC_LOW_BIT_POS_PROBE_OUT135 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT135 of inst : label is "16'b0000000010001001"; + attribute LC_LOW_BIT_POS_PROBE_OUT136 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT136 of inst : label is "16'b0000000010001010"; + attribute LC_LOW_BIT_POS_PROBE_OUT137 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT137 of inst : label is "16'b0000000010001011"; + attribute LC_LOW_BIT_POS_PROBE_OUT138 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT138 of inst : label is "16'b0000000010001100"; + attribute LC_LOW_BIT_POS_PROBE_OUT139 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT139 of inst : label is "16'b0000000010001101"; + attribute LC_LOW_BIT_POS_PROBE_OUT14 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT14 of inst : label is "16'b0000000000010000"; + attribute LC_LOW_BIT_POS_PROBE_OUT140 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT140 of inst : label is "16'b0000000010001110"; + attribute LC_LOW_BIT_POS_PROBE_OUT141 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT141 of inst : label is "16'b0000000010001111"; + attribute LC_LOW_BIT_POS_PROBE_OUT142 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT142 of inst : label is "16'b0000000010010000"; + attribute LC_LOW_BIT_POS_PROBE_OUT143 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT143 of inst : label is "16'b0000000010010001"; + attribute LC_LOW_BIT_POS_PROBE_OUT144 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT144 of inst : label is "16'b0000000010010010"; + attribute LC_LOW_BIT_POS_PROBE_OUT145 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT145 of inst : label is "16'b0000000010010011"; + attribute LC_LOW_BIT_POS_PROBE_OUT146 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT146 of inst : label is "16'b0000000010010100"; + attribute LC_LOW_BIT_POS_PROBE_OUT147 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT147 of inst : label is "16'b0000000010010101"; + attribute LC_LOW_BIT_POS_PROBE_OUT148 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT148 of inst : label is "16'b0000000010010110"; + attribute LC_LOW_BIT_POS_PROBE_OUT149 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT149 of inst : label is "16'b0000000010010111"; + attribute LC_LOW_BIT_POS_PROBE_OUT15 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT15 of inst : label is "16'b0000000000010001"; + attribute LC_LOW_BIT_POS_PROBE_OUT150 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT150 of inst : label is "16'b0000000010011000"; + attribute LC_LOW_BIT_POS_PROBE_OUT151 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT151 of inst : label is "16'b0000000010011001"; + attribute LC_LOW_BIT_POS_PROBE_OUT152 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT152 of inst : label is "16'b0000000010011010"; + attribute LC_LOW_BIT_POS_PROBE_OUT153 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT153 of inst : label is "16'b0000000010011011"; + attribute LC_LOW_BIT_POS_PROBE_OUT154 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT154 of inst : label is "16'b0000000010011100"; + attribute LC_LOW_BIT_POS_PROBE_OUT155 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT155 of inst : label is "16'b0000000010011101"; + attribute LC_LOW_BIT_POS_PROBE_OUT156 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT156 of inst : label is "16'b0000000010011110"; + attribute LC_LOW_BIT_POS_PROBE_OUT157 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT157 of inst : label is "16'b0000000010011111"; + attribute LC_LOW_BIT_POS_PROBE_OUT158 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT158 of inst : label is "16'b0000000010100000"; + attribute LC_LOW_BIT_POS_PROBE_OUT159 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT159 of inst : label is "16'b0000000010100001"; + attribute LC_LOW_BIT_POS_PROBE_OUT16 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT16 of inst : label is "16'b0000000000010010"; + attribute LC_LOW_BIT_POS_PROBE_OUT160 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT160 of inst : label is "16'b0000000010100010"; + attribute LC_LOW_BIT_POS_PROBE_OUT161 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT161 of inst : label is "16'b0000000010100011"; + attribute LC_LOW_BIT_POS_PROBE_OUT162 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT162 of inst : label is "16'b0000000010100100"; + attribute LC_LOW_BIT_POS_PROBE_OUT163 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT163 of inst : label is "16'b0000000010100101"; + attribute LC_LOW_BIT_POS_PROBE_OUT164 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT164 of inst : label is "16'b0000000010100110"; + attribute LC_LOW_BIT_POS_PROBE_OUT165 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT165 of inst : label is "16'b0000000010100111"; + attribute LC_LOW_BIT_POS_PROBE_OUT166 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT166 of inst : label is "16'b0000000010101000"; + attribute LC_LOW_BIT_POS_PROBE_OUT167 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT167 of inst : label is "16'b0000000010101001"; + attribute LC_LOW_BIT_POS_PROBE_OUT168 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT168 of inst : label is "16'b0000000010101010"; + attribute LC_LOW_BIT_POS_PROBE_OUT169 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT169 of inst : label is "16'b0000000010101011"; + attribute LC_LOW_BIT_POS_PROBE_OUT17 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT17 of inst : label is "16'b0000000000010011"; + attribute LC_LOW_BIT_POS_PROBE_OUT170 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT170 of inst : label is "16'b0000000010101100"; + attribute LC_LOW_BIT_POS_PROBE_OUT171 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT171 of inst : label is "16'b0000000010101101"; + attribute LC_LOW_BIT_POS_PROBE_OUT172 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT172 of inst : label is "16'b0000000010101110"; + attribute LC_LOW_BIT_POS_PROBE_OUT173 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT173 of inst : label is "16'b0000000010101111"; + attribute LC_LOW_BIT_POS_PROBE_OUT174 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT174 of inst : label is "16'b0000000010110000"; + attribute LC_LOW_BIT_POS_PROBE_OUT175 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT175 of inst : label is "16'b0000000010110001"; + attribute LC_LOW_BIT_POS_PROBE_OUT176 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT176 of inst : label is "16'b0000000010110010"; + attribute LC_LOW_BIT_POS_PROBE_OUT177 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT177 of inst : label is "16'b0000000010110011"; + attribute LC_LOW_BIT_POS_PROBE_OUT178 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT178 of inst : label is "16'b0000000010110100"; + attribute LC_LOW_BIT_POS_PROBE_OUT179 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT179 of inst : label is "16'b0000000010110101"; + attribute LC_LOW_BIT_POS_PROBE_OUT18 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT18 of inst : label is "16'b0000000000010100"; + attribute LC_LOW_BIT_POS_PROBE_OUT180 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT180 of inst : label is "16'b0000000010110110"; + attribute LC_LOW_BIT_POS_PROBE_OUT181 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT181 of inst : label is "16'b0000000010110111"; + attribute LC_LOW_BIT_POS_PROBE_OUT182 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT182 of inst : label is "16'b0000000010111000"; + attribute LC_LOW_BIT_POS_PROBE_OUT183 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT183 of inst : label is "16'b0000000010111001"; + attribute LC_LOW_BIT_POS_PROBE_OUT184 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT184 of inst : label is "16'b0000000010111010"; + attribute LC_LOW_BIT_POS_PROBE_OUT185 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT185 of inst : label is "16'b0000000010111011"; + attribute LC_LOW_BIT_POS_PROBE_OUT186 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT186 of inst : label is "16'b0000000010111100"; + attribute LC_LOW_BIT_POS_PROBE_OUT187 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT187 of inst : label is "16'b0000000010111101"; + attribute LC_LOW_BIT_POS_PROBE_OUT188 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT188 of inst : label is "16'b0000000010111110"; + attribute LC_LOW_BIT_POS_PROBE_OUT189 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT189 of inst : label is "16'b0000000010111111"; + attribute LC_LOW_BIT_POS_PROBE_OUT19 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT19 of inst : label is "16'b0000000000010101"; + attribute LC_LOW_BIT_POS_PROBE_OUT190 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT190 of inst : label is "16'b0000000011000000"; + attribute LC_LOW_BIT_POS_PROBE_OUT191 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT191 of inst : label is "16'b0000000011000001"; + attribute LC_LOW_BIT_POS_PROBE_OUT192 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT192 of inst : label is "16'b0000000011000010"; + attribute LC_LOW_BIT_POS_PROBE_OUT193 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT193 of inst : label is "16'b0000000011000011"; + attribute LC_LOW_BIT_POS_PROBE_OUT194 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT194 of inst : label is "16'b0000000011000100"; + attribute LC_LOW_BIT_POS_PROBE_OUT195 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT195 of inst : label is "16'b0000000011000101"; + attribute LC_LOW_BIT_POS_PROBE_OUT196 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT196 of inst : label is "16'b0000000011000110"; + attribute LC_LOW_BIT_POS_PROBE_OUT197 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT197 of inst : label is "16'b0000000011000111"; + attribute LC_LOW_BIT_POS_PROBE_OUT198 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT198 of inst : label is "16'b0000000011001000"; + attribute LC_LOW_BIT_POS_PROBE_OUT199 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT199 of inst : label is "16'b0000000011001001"; + attribute LC_LOW_BIT_POS_PROBE_OUT2 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT2 of inst : label is "16'b0000000000000100"; + attribute LC_LOW_BIT_POS_PROBE_OUT20 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT20 of inst : label is "16'b0000000000010110"; + attribute LC_LOW_BIT_POS_PROBE_OUT200 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT200 of inst : label is "16'b0000000011001010"; + attribute LC_LOW_BIT_POS_PROBE_OUT201 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT201 of inst : label is "16'b0000000011001011"; + attribute LC_LOW_BIT_POS_PROBE_OUT202 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT202 of inst : label is "16'b0000000011001100"; + attribute LC_LOW_BIT_POS_PROBE_OUT203 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT203 of inst : label is "16'b0000000011001101"; + attribute LC_LOW_BIT_POS_PROBE_OUT204 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT204 of inst : label is "16'b0000000011001110"; + attribute LC_LOW_BIT_POS_PROBE_OUT205 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT205 of inst : label is "16'b0000000011001111"; + attribute LC_LOW_BIT_POS_PROBE_OUT206 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT206 of inst : label is "16'b0000000011010000"; + attribute LC_LOW_BIT_POS_PROBE_OUT207 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT207 of inst : label is "16'b0000000011010001"; + attribute LC_LOW_BIT_POS_PROBE_OUT208 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT208 of inst : label is "16'b0000000011010010"; + attribute LC_LOW_BIT_POS_PROBE_OUT209 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT209 of inst : label is "16'b0000000011010011"; + attribute LC_LOW_BIT_POS_PROBE_OUT21 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT21 of inst : label is "16'b0000000000010111"; + attribute LC_LOW_BIT_POS_PROBE_OUT210 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT210 of inst : label is "16'b0000000011010100"; + attribute LC_LOW_BIT_POS_PROBE_OUT211 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT211 of inst : label is "16'b0000000011010101"; + attribute LC_LOW_BIT_POS_PROBE_OUT212 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT212 of inst : label is "16'b0000000011010110"; + attribute LC_LOW_BIT_POS_PROBE_OUT213 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT213 of inst : label is "16'b0000000011010111"; + attribute LC_LOW_BIT_POS_PROBE_OUT214 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT214 of inst : label is "16'b0000000011011000"; + attribute LC_LOW_BIT_POS_PROBE_OUT215 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT215 of inst : label is "16'b0000000011011001"; + attribute LC_LOW_BIT_POS_PROBE_OUT216 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT216 of inst : label is "16'b0000000011011010"; + attribute LC_LOW_BIT_POS_PROBE_OUT217 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT217 of inst : label is "16'b0000000011011011"; + attribute LC_LOW_BIT_POS_PROBE_OUT218 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT218 of inst : label is "16'b0000000011011100"; + attribute LC_LOW_BIT_POS_PROBE_OUT219 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT219 of inst : label is "16'b0000000011011101"; + attribute LC_LOW_BIT_POS_PROBE_OUT22 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT22 of inst : label is "16'b0000000000011000"; + attribute LC_LOW_BIT_POS_PROBE_OUT220 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT220 of inst : label is "16'b0000000011011110"; + attribute LC_LOW_BIT_POS_PROBE_OUT221 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT221 of inst : label is "16'b0000000011011111"; + attribute LC_LOW_BIT_POS_PROBE_OUT222 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT222 of inst : label is "16'b0000000011100000"; + attribute LC_LOW_BIT_POS_PROBE_OUT223 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT223 of inst : label is "16'b0000000011100001"; + attribute LC_LOW_BIT_POS_PROBE_OUT224 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT224 of inst : label is "16'b0000000011100010"; + attribute LC_LOW_BIT_POS_PROBE_OUT225 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT225 of inst : label is "16'b0000000011100011"; + attribute LC_LOW_BIT_POS_PROBE_OUT226 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT226 of inst : label is "16'b0000000011100100"; + attribute LC_LOW_BIT_POS_PROBE_OUT227 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT227 of inst : label is "16'b0000000011100101"; + attribute LC_LOW_BIT_POS_PROBE_OUT228 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT228 of inst : label is "16'b0000000011100110"; + attribute LC_LOW_BIT_POS_PROBE_OUT229 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT229 of inst : label is "16'b0000000011100111"; + attribute LC_LOW_BIT_POS_PROBE_OUT23 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT23 of inst : label is "16'b0000000000011001"; + attribute LC_LOW_BIT_POS_PROBE_OUT230 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT230 of inst : label is "16'b0000000011101000"; + attribute LC_LOW_BIT_POS_PROBE_OUT231 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT231 of inst : label is "16'b0000000011101001"; + attribute LC_LOW_BIT_POS_PROBE_OUT232 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT232 of inst : label is "16'b0000000011101010"; + attribute LC_LOW_BIT_POS_PROBE_OUT233 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT233 of inst : label is "16'b0000000011101011"; + attribute LC_LOW_BIT_POS_PROBE_OUT234 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT234 of inst : label is "16'b0000000011101100"; + attribute LC_LOW_BIT_POS_PROBE_OUT235 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT235 of inst : label is "16'b0000000011101101"; + attribute LC_LOW_BIT_POS_PROBE_OUT236 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT236 of inst : label is "16'b0000000011101110"; + attribute LC_LOW_BIT_POS_PROBE_OUT237 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT237 of inst : label is "16'b0000000011101111"; + attribute LC_LOW_BIT_POS_PROBE_OUT238 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT238 of inst : label is "16'b0000000011110000"; + attribute LC_LOW_BIT_POS_PROBE_OUT239 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT239 of inst : label is "16'b0000000011110001"; + attribute LC_LOW_BIT_POS_PROBE_OUT24 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT24 of inst : label is "16'b0000000000011010"; + attribute LC_LOW_BIT_POS_PROBE_OUT240 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT240 of inst : label is "16'b0000000011110010"; + attribute LC_LOW_BIT_POS_PROBE_OUT241 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT241 of inst : label is "16'b0000000011110011"; + attribute LC_LOW_BIT_POS_PROBE_OUT242 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT242 of inst : label is "16'b0000000011110100"; + attribute LC_LOW_BIT_POS_PROBE_OUT243 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT243 of inst : label is "16'b0000000011110101"; + attribute LC_LOW_BIT_POS_PROBE_OUT244 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT244 of inst : label is "16'b0000000011110110"; + attribute LC_LOW_BIT_POS_PROBE_OUT245 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT245 of inst : label is "16'b0000000011110111"; + attribute LC_LOW_BIT_POS_PROBE_OUT246 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT246 of inst : label is "16'b0000000011111000"; + attribute LC_LOW_BIT_POS_PROBE_OUT247 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT247 of inst : label is "16'b0000000011111001"; + attribute LC_LOW_BIT_POS_PROBE_OUT248 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT248 of inst : label is "16'b0000000011111010"; + attribute LC_LOW_BIT_POS_PROBE_OUT249 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT249 of inst : label is "16'b0000000011111011"; + attribute LC_LOW_BIT_POS_PROBE_OUT25 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT25 of inst : label is "16'b0000000000011011"; + attribute LC_LOW_BIT_POS_PROBE_OUT250 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT250 of inst : label is "16'b0000000011111100"; + attribute LC_LOW_BIT_POS_PROBE_OUT251 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT251 of inst : label is "16'b0000000011111101"; + attribute LC_LOW_BIT_POS_PROBE_OUT252 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT252 of inst : label is "16'b0000000011111110"; + attribute LC_LOW_BIT_POS_PROBE_OUT253 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT253 of inst : label is "16'b0000000011111111"; + attribute LC_LOW_BIT_POS_PROBE_OUT254 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT254 of inst : label is "16'b0000000100000000"; + attribute LC_LOW_BIT_POS_PROBE_OUT255 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT255 of inst : label is "16'b0000000100000001"; + attribute LC_LOW_BIT_POS_PROBE_OUT26 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT26 of inst : label is "16'b0000000000011100"; + attribute LC_LOW_BIT_POS_PROBE_OUT27 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT27 of inst : label is "16'b0000000000011101"; + attribute LC_LOW_BIT_POS_PROBE_OUT28 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT28 of inst : label is "16'b0000000000011110"; + attribute LC_LOW_BIT_POS_PROBE_OUT29 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT29 of inst : label is "16'b0000000000011111"; + attribute LC_LOW_BIT_POS_PROBE_OUT3 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT3 of inst : label is "16'b0000000000000101"; + attribute LC_LOW_BIT_POS_PROBE_OUT30 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT30 of inst : label is "16'b0000000000100000"; + attribute LC_LOW_BIT_POS_PROBE_OUT31 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT31 of inst : label is "16'b0000000000100001"; + attribute LC_LOW_BIT_POS_PROBE_OUT32 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT32 of inst : label is "16'b0000000000100010"; + attribute LC_LOW_BIT_POS_PROBE_OUT33 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT33 of inst : label is "16'b0000000000100011"; + attribute LC_LOW_BIT_POS_PROBE_OUT34 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT34 of inst : label is "16'b0000000000100100"; + attribute LC_LOW_BIT_POS_PROBE_OUT35 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT35 of inst : label is "16'b0000000000100101"; + attribute LC_LOW_BIT_POS_PROBE_OUT36 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT36 of inst : label is "16'b0000000000100110"; + attribute LC_LOW_BIT_POS_PROBE_OUT37 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT37 of inst : label is "16'b0000000000100111"; + attribute LC_LOW_BIT_POS_PROBE_OUT38 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT38 of inst : label is "16'b0000000000101000"; + attribute LC_LOW_BIT_POS_PROBE_OUT39 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT39 of inst : label is "16'b0000000000101001"; + attribute LC_LOW_BIT_POS_PROBE_OUT4 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT4 of inst : label is "16'b0000000000000110"; + attribute LC_LOW_BIT_POS_PROBE_OUT40 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT40 of inst : label is "16'b0000000000101010"; + attribute LC_LOW_BIT_POS_PROBE_OUT41 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT41 of inst : label is "16'b0000000000101011"; + attribute LC_LOW_BIT_POS_PROBE_OUT42 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT42 of inst : label is "16'b0000000000101100"; + attribute LC_LOW_BIT_POS_PROBE_OUT43 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT43 of inst : label is "16'b0000000000101101"; + attribute LC_LOW_BIT_POS_PROBE_OUT44 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT44 of inst : label is "16'b0000000000101110"; + attribute LC_LOW_BIT_POS_PROBE_OUT45 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT45 of inst : label is "16'b0000000000101111"; + attribute LC_LOW_BIT_POS_PROBE_OUT46 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT46 of inst : label is "16'b0000000000110000"; + attribute LC_LOW_BIT_POS_PROBE_OUT47 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT47 of inst : label is "16'b0000000000110001"; + attribute LC_LOW_BIT_POS_PROBE_OUT48 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT48 of inst : label is "16'b0000000000110010"; + attribute LC_LOW_BIT_POS_PROBE_OUT49 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT49 of inst : label is "16'b0000000000110011"; + attribute LC_LOW_BIT_POS_PROBE_OUT5 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT5 of inst : label is "16'b0000000000000111"; + attribute LC_LOW_BIT_POS_PROBE_OUT50 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT50 of inst : label is "16'b0000000000110100"; + attribute LC_LOW_BIT_POS_PROBE_OUT51 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT51 of inst : label is "16'b0000000000110101"; + attribute LC_LOW_BIT_POS_PROBE_OUT52 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT52 of inst : label is "16'b0000000000110110"; + attribute LC_LOW_BIT_POS_PROBE_OUT53 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT53 of inst : label is "16'b0000000000110111"; + attribute LC_LOW_BIT_POS_PROBE_OUT54 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT54 of inst : label is "16'b0000000000111000"; + attribute LC_LOW_BIT_POS_PROBE_OUT55 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT55 of inst : label is "16'b0000000000111001"; + attribute LC_LOW_BIT_POS_PROBE_OUT56 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT56 of inst : label is "16'b0000000000111010"; + attribute LC_LOW_BIT_POS_PROBE_OUT57 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT57 of inst : label is "16'b0000000000111011"; + attribute LC_LOW_BIT_POS_PROBE_OUT58 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT58 of inst : label is "16'b0000000000111100"; + attribute LC_LOW_BIT_POS_PROBE_OUT59 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT59 of inst : label is "16'b0000000000111101"; + attribute LC_LOW_BIT_POS_PROBE_OUT6 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT6 of inst : label is "16'b0000000000001000"; + attribute LC_LOW_BIT_POS_PROBE_OUT60 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT60 of inst : label is "16'b0000000000111110"; + attribute LC_LOW_BIT_POS_PROBE_OUT61 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT61 of inst : label is "16'b0000000000111111"; + attribute LC_LOW_BIT_POS_PROBE_OUT62 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT62 of inst : label is "16'b0000000001000000"; + attribute LC_LOW_BIT_POS_PROBE_OUT63 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT63 of inst : label is "16'b0000000001000001"; + attribute LC_LOW_BIT_POS_PROBE_OUT64 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT64 of inst : label is "16'b0000000001000010"; + attribute LC_LOW_BIT_POS_PROBE_OUT65 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT65 of inst : label is "16'b0000000001000011"; + attribute LC_LOW_BIT_POS_PROBE_OUT66 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT66 of inst : label is "16'b0000000001000100"; + attribute LC_LOW_BIT_POS_PROBE_OUT67 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT67 of inst : label is "16'b0000000001000101"; + attribute LC_LOW_BIT_POS_PROBE_OUT68 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT68 of inst : label is "16'b0000000001000110"; + attribute LC_LOW_BIT_POS_PROBE_OUT69 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT69 of inst : label is "16'b0000000001000111"; + attribute LC_LOW_BIT_POS_PROBE_OUT7 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT7 of inst : label is "16'b0000000000001001"; + attribute LC_LOW_BIT_POS_PROBE_OUT70 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT70 of inst : label is "16'b0000000001001000"; + attribute LC_LOW_BIT_POS_PROBE_OUT71 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT71 of inst : label is "16'b0000000001001001"; + attribute LC_LOW_BIT_POS_PROBE_OUT72 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT72 of inst : label is "16'b0000000001001010"; + attribute LC_LOW_BIT_POS_PROBE_OUT73 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT73 of inst : label is "16'b0000000001001011"; + attribute LC_LOW_BIT_POS_PROBE_OUT74 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT74 of inst : label is "16'b0000000001001100"; + attribute LC_LOW_BIT_POS_PROBE_OUT75 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT75 of inst : label is "16'b0000000001001101"; + attribute LC_LOW_BIT_POS_PROBE_OUT76 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT76 of inst : label is "16'b0000000001001110"; + attribute LC_LOW_BIT_POS_PROBE_OUT77 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT77 of inst : label is "16'b0000000001001111"; + attribute LC_LOW_BIT_POS_PROBE_OUT78 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT78 of inst : label is "16'b0000000001010000"; + attribute LC_LOW_BIT_POS_PROBE_OUT79 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT79 of inst : label is "16'b0000000001010001"; + attribute LC_LOW_BIT_POS_PROBE_OUT8 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT8 of inst : label is "16'b0000000000001010"; + attribute LC_LOW_BIT_POS_PROBE_OUT80 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT80 of inst : label is "16'b0000000001010010"; + attribute LC_LOW_BIT_POS_PROBE_OUT81 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT81 of inst : label is "16'b0000000001010011"; + attribute LC_LOW_BIT_POS_PROBE_OUT82 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT82 of inst : label is "16'b0000000001010100"; + attribute LC_LOW_BIT_POS_PROBE_OUT83 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT83 of inst : label is "16'b0000000001010101"; + attribute LC_LOW_BIT_POS_PROBE_OUT84 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT84 of inst : label is "16'b0000000001010110"; + attribute LC_LOW_BIT_POS_PROBE_OUT85 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT85 of inst : label is "16'b0000000001010111"; + attribute LC_LOW_BIT_POS_PROBE_OUT86 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT86 of inst : label is "16'b0000000001011000"; + attribute LC_LOW_BIT_POS_PROBE_OUT87 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT87 of inst : label is "16'b0000000001011001"; + attribute LC_LOW_BIT_POS_PROBE_OUT88 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT88 of inst : label is "16'b0000000001011010"; + attribute LC_LOW_BIT_POS_PROBE_OUT89 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT89 of inst : label is "16'b0000000001011011"; + attribute LC_LOW_BIT_POS_PROBE_OUT9 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT9 of inst : label is "16'b0000000000001011"; + attribute LC_LOW_BIT_POS_PROBE_OUT90 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT90 of inst : label is "16'b0000000001011100"; + attribute LC_LOW_BIT_POS_PROBE_OUT91 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT91 of inst : label is "16'b0000000001011101"; + attribute LC_LOW_BIT_POS_PROBE_OUT92 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT92 of inst : label is "16'b0000000001011110"; + attribute LC_LOW_BIT_POS_PROBE_OUT93 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT93 of inst : label is "16'b0000000001011111"; + attribute LC_LOW_BIT_POS_PROBE_OUT94 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT94 of inst : label is "16'b0000000001100000"; + attribute LC_LOW_BIT_POS_PROBE_OUT95 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT95 of inst : label is "16'b0000000001100001"; + attribute LC_LOW_BIT_POS_PROBE_OUT96 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT96 of inst : label is "16'b0000000001100010"; + attribute LC_LOW_BIT_POS_PROBE_OUT97 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT97 of inst : label is "16'b0000000001100011"; + attribute LC_LOW_BIT_POS_PROBE_OUT98 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT98 of inst : label is "16'b0000000001100100"; + attribute LC_LOW_BIT_POS_PROBE_OUT99 : string; + attribute LC_LOW_BIT_POS_PROBE_OUT99 of inst : label is "16'b0000000001100101"; + attribute LC_PROBE_IN_WIDTH_STRING : string; + attribute LC_PROBE_IN_WIDTH_STRING of inst : label is "2048'b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + attribute LC_PROBE_OUT_HIGH_BIT_POS_STRING : string; + attribute LC_PROBE_OUT_HIGH_BIT_POS_STRING of inst : label is "4096'b0000000100000001000000010000000000000000111111110000000011111110000000001111110100000000111111000000000011111011000000001111101000000000111110010000000011111000000000001111011100000000111101100000000011110101000000001111010000000000111100110000000011110010000000001111000100000000111100000000000011101111000000001110111000000000111011010000000011101100000000001110101100000000111010100000000011101001000000001110100000000000111001110000000011100110000000001110010100000000111001000000000011100011000000001110001000000000111000010000000011100000000000001101111100000000110111100000000011011101000000001101110000000000110110110000000011011010000000001101100100000000110110000000000011010111000000001101011000000000110101010000000011010100000000001101001100000000110100100000000011010001000000001101000000000000110011110000000011001110000000001100110100000000110011000000000011001011000000001100101000000000110010010000000011001000000000001100011100000000110001100000000011000101000000001100010000000000110000110000000011000010000000001100000100000000110000000000000010111111000000001011111000000000101111010000000010111100000000001011101100000000101110100000000010111001000000001011100000000000101101110000000010110110000000001011010100000000101101000000000010110011000000001011001000000000101100010000000010110000000000001010111100000000101011100000000010101101000000001010110000000000101010110000000010101010000000001010100100000000101010000000000010100111000000001010011000000000101001010000000010100100000000001010001100000000101000100000000010100001000000001010000000000000100111110000000010011110000000001001110100000000100111000000000010011011000000001001101000000000100110010000000010011000000000001001011100000000100101100000000010010101000000001001010000000000100100110000000010010010000000001001000100000000100100000000000010001111000000001000111000000000100011010000000010001100000000001000101100000000100010100000000010001001000000001000100000000000100001110000000010000110000000001000010100000000100001000000000010000011000000001000001000000000100000010000000010000000000000000111111100000000011111100000000001111101000000000111110000000000011110110000000001111010000000000111100100000000011110000000000001110111000000000111011000000000011101010000000001110100000000000111001100000000011100100000000001110001000000000111000000000000011011110000000001101110000000000110110100000000011011000000000001101011000000000110101000000000011010010000000001101000000000000110011100000000011001100000000001100101000000000110010000000000011000110000000001100010000000000110000100000000011000000000000001011111000000000101111000000000010111010000000001011100000000000101101100000000010110100000000001011001000000000101100000000000010101110000000001010110000000000101010100000000010101000000000001010011000000000101001000000000010100010000000001010000000000000100111100000000010011100000000001001101000000000100110000000000010010110000000001001010000000000100100100000000010010000000000001000111000000000100011000000000010001010000000001000100000000000100001100000000010000100000000001000001000000000100000000000000001111110000000000111110000000000011110100000000001111000000000000111011000000000011101000000000001110010000000000111000000000000011011100000000001101100000000000110101000000000011010000000000001100110000000000110010000000000011000100000000001100000000000000101111000000000010111000000000001011010000000000101100000000000010101100000000001010100000000000101001000000000010100000000000001001110000000000100110000000000010010100000000001001000000000000100011000000000010001000000000001000010000000000100000000000000001111100000000000111100000000000011101000000000001110000000000000110110000000000011010000000000001100100000000000110000000000000010111000000000001011000000000000101010000000000010100000000000001001100000000000100100000000000010001000000000001000000000000000011110000000000001110000000000000110100000000000011000000000000001011000000000000101000000000000010010000000000001000000000000000011100000000000001100000000000000101000000000000010000000000000000110000000000000010"; + attribute LC_PROBE_OUT_INIT_VAL_STRING : string; + attribute LC_PROBE_OUT_INIT_VAL_STRING of inst : label is "258'b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010"; + attribute LC_PROBE_OUT_LOW_BIT_POS_STRING : string; + attribute LC_PROBE_OUT_LOW_BIT_POS_STRING of inst : label is "4096'b0000000100000001000000010000000000000000111111110000000011111110000000001111110100000000111111000000000011111011000000001111101000000000111110010000000011111000000000001111011100000000111101100000000011110101000000001111010000000000111100110000000011110010000000001111000100000000111100000000000011101111000000001110111000000000111011010000000011101100000000001110101100000000111010100000000011101001000000001110100000000000111001110000000011100110000000001110010100000000111001000000000011100011000000001110001000000000111000010000000011100000000000001101111100000000110111100000000011011101000000001101110000000000110110110000000011011010000000001101100100000000110110000000000011010111000000001101011000000000110101010000000011010100000000001101001100000000110100100000000011010001000000001101000000000000110011110000000011001110000000001100110100000000110011000000000011001011000000001100101000000000110010010000000011001000000000001100011100000000110001100000000011000101000000001100010000000000110000110000000011000010000000001100000100000000110000000000000010111111000000001011111000000000101111010000000010111100000000001011101100000000101110100000000010111001000000001011100000000000101101110000000010110110000000001011010100000000101101000000000010110011000000001011001000000000101100010000000010110000000000001010111100000000101011100000000010101101000000001010110000000000101010110000000010101010000000001010100100000000101010000000000010100111000000001010011000000000101001010000000010100100000000001010001100000000101000100000000010100001000000001010000000000000100111110000000010011110000000001001110100000000100111000000000010011011000000001001101000000000100110010000000010011000000000001001011100000000100101100000000010010101000000001001010000000000100100110000000010010010000000001001000100000000100100000000000010001111000000001000111000000000100011010000000010001100000000001000101100000000100010100000000010001001000000001000100000000000100001110000000010000110000000001000010100000000100001000000000010000011000000001000001000000000100000010000000010000000000000000111111100000000011111100000000001111101000000000111110000000000011110110000000001111010000000000111100100000000011110000000000001110111000000000111011000000000011101010000000001110100000000000111001100000000011100100000000001110001000000000111000000000000011011110000000001101110000000000110110100000000011011000000000001101011000000000110101000000000011010010000000001101000000000000110011100000000011001100000000001100101000000000110010000000000011000110000000001100010000000000110000100000000011000000000000001011111000000000101111000000000010111010000000001011100000000000101101100000000010110100000000001011001000000000101100000000000010101110000000001010110000000000101010100000000010101000000000001010011000000000101001000000000010100010000000001010000000000000100111100000000010011100000000001001101000000000100110000000000010010110000000001001010000000000100100100000000010010000000000001000111000000000100011000000000010001010000000001000100000000000100001100000000010000100000000001000001000000000100000000000000001111110000000000111110000000000011110100000000001111000000000000111011000000000011101000000000001110010000000000111000000000000011011100000000001101100000000000110101000000000011010000000000001100110000000000110010000000000011000100000000001100000000000000101111000000000010111000000000001011010000000000101100000000000010101100000000001010100000000000101001000000000010100000000000001001110000000000100110000000000010010100000000001001000000000000100011000000000010001000000000001000010000000000100000000000000001111100000000000111100000000000011101000000000001110000000000000110110000000000011010000000000001100100000000000110000000000000010111000000000001011000000000000101010000000000010100000000000001001100000000000100100000000000010001000000000001000000000000000011110000000000001110000000000000110100000000000011000000000000001011000000000000101000000000000010010000000000001000000000000000011100000000000001100000000000000101000000000000010000000000000000110000000000000000"; + attribute LC_PROBE_OUT_WIDTH_STRING : string; + attribute LC_PROBE_OUT_WIDTH_STRING of inst : label is "2048'b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010"; + attribute LC_TOTAL_PROBE_IN_WIDTH : integer; + attribute LC_TOTAL_PROBE_IN_WIDTH of inst : label is 0; + attribute LC_TOTAL_PROBE_OUT_WIDTH : integer; + attribute LC_TOTAL_PROBE_OUT_WIDTH of inst : label is 5; + attribute is_du_within_envelope : string; + attribute is_du_within_envelope of inst : label is "true"; + attribute syn_noprune : string; + attribute syn_noprune of inst : label is "1"; +begin + inst: entity work.vio_tclink_clk40_reset_vio_v3_0_25_vio + port map ( + clk => clk, + probe_in0(0) => '0', + probe_in1(0) => '0', + probe_in10(0) => '0', + probe_in100(0) => '0', + probe_in101(0) => '0', + probe_in102(0) => '0', + probe_in103(0) => '0', + probe_in104(0) => '0', + probe_in105(0) => '0', + probe_in106(0) => '0', + probe_in107(0) => '0', + probe_in108(0) => '0', + probe_in109(0) => '0', + probe_in11(0) => '0', + probe_in110(0) => '0', + probe_in111(0) => '0', + probe_in112(0) => '0', + probe_in113(0) => '0', + probe_in114(0) => '0', + probe_in115(0) => '0', + probe_in116(0) => '0', + probe_in117(0) => '0', + probe_in118(0) => '0', + probe_in119(0) => '0', + probe_in12(0) => '0', + probe_in120(0) => '0', + probe_in121(0) => '0', + probe_in122(0) => '0', + probe_in123(0) => '0', + probe_in124(0) => '0', + probe_in125(0) => '0', + probe_in126(0) => '0', + probe_in127(0) => '0', + probe_in128(0) => '0', + probe_in129(0) => '0', + probe_in13(0) => '0', + probe_in130(0) => '0', + probe_in131(0) => '0', + probe_in132(0) => '0', + probe_in133(0) => '0', + probe_in134(0) => '0', + probe_in135(0) => '0', + probe_in136(0) => '0', + probe_in137(0) => '0', + probe_in138(0) => '0', + probe_in139(0) => '0', + probe_in14(0) => '0', + probe_in140(0) => '0', + probe_in141(0) => '0', + probe_in142(0) => '0', + probe_in143(0) => '0', + probe_in144(0) => '0', + probe_in145(0) => '0', + probe_in146(0) => '0', + probe_in147(0) => '0', + probe_in148(0) => '0', + probe_in149(0) => '0', + probe_in15(0) => '0', + probe_in150(0) => '0', + probe_in151(0) => '0', + probe_in152(0) => '0', + probe_in153(0) => '0', + probe_in154(0) => '0', + probe_in155(0) => '0', + probe_in156(0) => '0', + probe_in157(0) => '0', + probe_in158(0) => '0', + probe_in159(0) => '0', + probe_in16(0) => '0', + probe_in160(0) => '0', + probe_in161(0) => '0', + probe_in162(0) => '0', + probe_in163(0) => '0', + probe_in164(0) => '0', + probe_in165(0) => '0', + probe_in166(0) => '0', + probe_in167(0) => '0', + probe_in168(0) => '0', + probe_in169(0) => '0', + probe_in17(0) => '0', + probe_in170(0) => '0', + probe_in171(0) => '0', + probe_in172(0) => '0', + probe_in173(0) => '0', + probe_in174(0) => '0', + probe_in175(0) => '0', + probe_in176(0) => '0', + probe_in177(0) => '0', + probe_in178(0) => '0', + probe_in179(0) => '0', + probe_in18(0) => '0', + probe_in180(0) => '0', + probe_in181(0) => '0', + probe_in182(0) => '0', + probe_in183(0) => '0', + probe_in184(0) => '0', + probe_in185(0) => '0', + probe_in186(0) => '0', + probe_in187(0) => '0', + probe_in188(0) => '0', + probe_in189(0) => '0', + probe_in19(0) => '0', + probe_in190(0) => '0', + probe_in191(0) => '0', + probe_in192(0) => '0', + probe_in193(0) => '0', + probe_in194(0) => '0', + probe_in195(0) => '0', + probe_in196(0) => '0', + probe_in197(0) => '0', + probe_in198(0) => '0', + probe_in199(0) => '0', + probe_in2(0) => '0', + probe_in20(0) => '0', + probe_in200(0) => '0', + probe_in201(0) => '0', + probe_in202(0) => '0', + probe_in203(0) => '0', + probe_in204(0) => '0', + probe_in205(0) => '0', + probe_in206(0) => '0', + probe_in207(0) => '0', + probe_in208(0) => '0', + probe_in209(0) => '0', + probe_in21(0) => '0', + probe_in210(0) => '0', + probe_in211(0) => '0', + probe_in212(0) => '0', + probe_in213(0) => '0', + probe_in214(0) => '0', + probe_in215(0) => '0', + probe_in216(0) => '0', + probe_in217(0) => '0', + probe_in218(0) => '0', + probe_in219(0) => '0', + probe_in22(0) => '0', + probe_in220(0) => '0', + probe_in221(0) => '0', + probe_in222(0) => '0', + probe_in223(0) => '0', + probe_in224(0) => '0', + probe_in225(0) => '0', + probe_in226(0) => '0', + probe_in227(0) => '0', + probe_in228(0) => '0', + probe_in229(0) => '0', + probe_in23(0) => '0', + probe_in230(0) => '0', + probe_in231(0) => '0', + probe_in232(0) => '0', + probe_in233(0) => '0', + probe_in234(0) => '0', + probe_in235(0) => '0', + probe_in236(0) => '0', + probe_in237(0) => '0', + probe_in238(0) => '0', + probe_in239(0) => '0', + probe_in24(0) => '0', + probe_in240(0) => '0', + probe_in241(0) => '0', + probe_in242(0) => '0', + probe_in243(0) => '0', + probe_in244(0) => '0', + probe_in245(0) => '0', + probe_in246(0) => '0', + probe_in247(0) => '0', + probe_in248(0) => '0', + probe_in249(0) => '0', + probe_in25(0) => '0', + probe_in250(0) => '0', + probe_in251(0) => '0', + probe_in252(0) => '0', + probe_in253(0) => '0', + probe_in254(0) => '0', + probe_in255(0) => '0', + probe_in26(0) => '0', + probe_in27(0) => '0', + probe_in28(0) => '0', + probe_in29(0) => '0', + probe_in3(0) => '0', + probe_in30(0) => '0', + probe_in31(0) => '0', + probe_in32(0) => '0', + probe_in33(0) => '0', + probe_in34(0) => '0', + probe_in35(0) => '0', + probe_in36(0) => '0', + probe_in37(0) => '0', + probe_in38(0) => '0', + probe_in39(0) => '0', + probe_in4(0) => '0', + probe_in40(0) => '0', + probe_in41(0) => '0', + probe_in42(0) => '0', + probe_in43(0) => '0', + probe_in44(0) => '0', + probe_in45(0) => '0', + probe_in46(0) => '0', + probe_in47(0) => '0', + probe_in48(0) => '0', + probe_in49(0) => '0', + probe_in5(0) => '0', + probe_in50(0) => '0', + probe_in51(0) => '0', + probe_in52(0) => '0', + probe_in53(0) => '0', + probe_in54(0) => '0', + probe_in55(0) => '0', + probe_in56(0) => '0', + probe_in57(0) => '0', + probe_in58(0) => '0', + probe_in59(0) => '0', + probe_in6(0) => '0', + probe_in60(0) => '0', + probe_in61(0) => '0', + probe_in62(0) => '0', + probe_in63(0) => '0', + probe_in64(0) => '0', + probe_in65(0) => '0', + probe_in66(0) => '0', + probe_in67(0) => '0', + probe_in68(0) => '0', + probe_in69(0) => '0', + probe_in7(0) => '0', + probe_in70(0) => '0', + probe_in71(0) => '0', + probe_in72(0) => '0', + probe_in73(0) => '0', + probe_in74(0) => '0', + probe_in75(0) => '0', + probe_in76(0) => '0', + probe_in77(0) => '0', + probe_in78(0) => '0', + probe_in79(0) => '0', + probe_in8(0) => '0', + probe_in80(0) => '0', + probe_in81(0) => '0', + probe_in82(0) => '0', + probe_in83(0) => '0', + probe_in84(0) => '0', + probe_in85(0) => '0', + probe_in86(0) => '0', + probe_in87(0) => '0', + probe_in88(0) => '0', + probe_in89(0) => '0', + probe_in9(0) => '0', + probe_in90(0) => '0', + probe_in91(0) => '0', + probe_in92(0) => '0', + probe_in93(0) => '0', + probe_in94(0) => '0', + probe_in95(0) => '0', + probe_in96(0) => '0', + probe_in97(0) => '0', + probe_in98(0) => '0', + probe_in99(0) => '0', + probe_out0(2 downto 0) => probe_out0(2 downto 0), + probe_out1(0) => probe_out1(0), + probe_out10(0) => NLW_inst_probe_out10_UNCONNECTED(0), + probe_out100(0) => NLW_inst_probe_out100_UNCONNECTED(0), + probe_out101(0) => NLW_inst_probe_out101_UNCONNECTED(0), + probe_out102(0) => NLW_inst_probe_out102_UNCONNECTED(0), + probe_out103(0) => NLW_inst_probe_out103_UNCONNECTED(0), + probe_out104(0) => NLW_inst_probe_out104_UNCONNECTED(0), + probe_out105(0) => NLW_inst_probe_out105_UNCONNECTED(0), + probe_out106(0) => NLW_inst_probe_out106_UNCONNECTED(0), + probe_out107(0) => NLW_inst_probe_out107_UNCONNECTED(0), + probe_out108(0) => NLW_inst_probe_out108_UNCONNECTED(0), + probe_out109(0) => NLW_inst_probe_out109_UNCONNECTED(0), + probe_out11(0) => NLW_inst_probe_out11_UNCONNECTED(0), + probe_out110(0) => NLW_inst_probe_out110_UNCONNECTED(0), + probe_out111(0) => NLW_inst_probe_out111_UNCONNECTED(0), + probe_out112(0) => NLW_inst_probe_out112_UNCONNECTED(0), + probe_out113(0) => NLW_inst_probe_out113_UNCONNECTED(0), + probe_out114(0) => NLW_inst_probe_out114_UNCONNECTED(0), + probe_out115(0) => NLW_inst_probe_out115_UNCONNECTED(0), + probe_out116(0) => NLW_inst_probe_out116_UNCONNECTED(0), + probe_out117(0) => NLW_inst_probe_out117_UNCONNECTED(0), + probe_out118(0) => NLW_inst_probe_out118_UNCONNECTED(0), + probe_out119(0) => NLW_inst_probe_out119_UNCONNECTED(0), + probe_out12(0) => NLW_inst_probe_out12_UNCONNECTED(0), + probe_out120(0) => NLW_inst_probe_out120_UNCONNECTED(0), + probe_out121(0) => NLW_inst_probe_out121_UNCONNECTED(0), + probe_out122(0) => NLW_inst_probe_out122_UNCONNECTED(0), + probe_out123(0) => NLW_inst_probe_out123_UNCONNECTED(0), + probe_out124(0) => NLW_inst_probe_out124_UNCONNECTED(0), + probe_out125(0) => NLW_inst_probe_out125_UNCONNECTED(0), + probe_out126(0) => NLW_inst_probe_out126_UNCONNECTED(0), + probe_out127(0) => NLW_inst_probe_out127_UNCONNECTED(0), + probe_out128(0) => NLW_inst_probe_out128_UNCONNECTED(0), + probe_out129(0) => NLW_inst_probe_out129_UNCONNECTED(0), + probe_out13(0) => NLW_inst_probe_out13_UNCONNECTED(0), + probe_out130(0) => NLW_inst_probe_out130_UNCONNECTED(0), + probe_out131(0) => NLW_inst_probe_out131_UNCONNECTED(0), + probe_out132(0) => NLW_inst_probe_out132_UNCONNECTED(0), + probe_out133(0) => NLW_inst_probe_out133_UNCONNECTED(0), + probe_out134(0) => NLW_inst_probe_out134_UNCONNECTED(0), + probe_out135(0) => NLW_inst_probe_out135_UNCONNECTED(0), + probe_out136(0) => NLW_inst_probe_out136_UNCONNECTED(0), + probe_out137(0) => NLW_inst_probe_out137_UNCONNECTED(0), + probe_out138(0) => NLW_inst_probe_out138_UNCONNECTED(0), + probe_out139(0) => NLW_inst_probe_out139_UNCONNECTED(0), + probe_out14(0) => NLW_inst_probe_out14_UNCONNECTED(0), + probe_out140(0) => NLW_inst_probe_out140_UNCONNECTED(0), + probe_out141(0) => NLW_inst_probe_out141_UNCONNECTED(0), + probe_out142(0) => NLW_inst_probe_out142_UNCONNECTED(0), + probe_out143(0) => NLW_inst_probe_out143_UNCONNECTED(0), + probe_out144(0) => NLW_inst_probe_out144_UNCONNECTED(0), + probe_out145(0) => NLW_inst_probe_out145_UNCONNECTED(0), + probe_out146(0) => NLW_inst_probe_out146_UNCONNECTED(0), + probe_out147(0) => NLW_inst_probe_out147_UNCONNECTED(0), + probe_out148(0) => NLW_inst_probe_out148_UNCONNECTED(0), + probe_out149(0) => NLW_inst_probe_out149_UNCONNECTED(0), + probe_out15(0) => NLW_inst_probe_out15_UNCONNECTED(0), + probe_out150(0) => NLW_inst_probe_out150_UNCONNECTED(0), + probe_out151(0) => NLW_inst_probe_out151_UNCONNECTED(0), + probe_out152(0) => NLW_inst_probe_out152_UNCONNECTED(0), + probe_out153(0) => NLW_inst_probe_out153_UNCONNECTED(0), + probe_out154(0) => NLW_inst_probe_out154_UNCONNECTED(0), + probe_out155(0) => NLW_inst_probe_out155_UNCONNECTED(0), + probe_out156(0) => NLW_inst_probe_out156_UNCONNECTED(0), + probe_out157(0) => NLW_inst_probe_out157_UNCONNECTED(0), + probe_out158(0) => NLW_inst_probe_out158_UNCONNECTED(0), + probe_out159(0) => NLW_inst_probe_out159_UNCONNECTED(0), + probe_out16(0) => NLW_inst_probe_out16_UNCONNECTED(0), + probe_out160(0) => NLW_inst_probe_out160_UNCONNECTED(0), + probe_out161(0) => NLW_inst_probe_out161_UNCONNECTED(0), + probe_out162(0) => NLW_inst_probe_out162_UNCONNECTED(0), + probe_out163(0) => NLW_inst_probe_out163_UNCONNECTED(0), + probe_out164(0) => NLW_inst_probe_out164_UNCONNECTED(0), + probe_out165(0) => NLW_inst_probe_out165_UNCONNECTED(0), + probe_out166(0) => NLW_inst_probe_out166_UNCONNECTED(0), + probe_out167(0) => NLW_inst_probe_out167_UNCONNECTED(0), + probe_out168(0) => NLW_inst_probe_out168_UNCONNECTED(0), + probe_out169(0) => NLW_inst_probe_out169_UNCONNECTED(0), + probe_out17(0) => NLW_inst_probe_out17_UNCONNECTED(0), + probe_out170(0) => NLW_inst_probe_out170_UNCONNECTED(0), + probe_out171(0) => NLW_inst_probe_out171_UNCONNECTED(0), + probe_out172(0) => NLW_inst_probe_out172_UNCONNECTED(0), + probe_out173(0) => NLW_inst_probe_out173_UNCONNECTED(0), + probe_out174(0) => NLW_inst_probe_out174_UNCONNECTED(0), + probe_out175(0) => NLW_inst_probe_out175_UNCONNECTED(0), + probe_out176(0) => NLW_inst_probe_out176_UNCONNECTED(0), + probe_out177(0) => NLW_inst_probe_out177_UNCONNECTED(0), + probe_out178(0) => NLW_inst_probe_out178_UNCONNECTED(0), + probe_out179(0) => NLW_inst_probe_out179_UNCONNECTED(0), + probe_out18(0) => NLW_inst_probe_out18_UNCONNECTED(0), + probe_out180(0) => NLW_inst_probe_out180_UNCONNECTED(0), + probe_out181(0) => NLW_inst_probe_out181_UNCONNECTED(0), + probe_out182(0) => NLW_inst_probe_out182_UNCONNECTED(0), + probe_out183(0) => NLW_inst_probe_out183_UNCONNECTED(0), + probe_out184(0) => NLW_inst_probe_out184_UNCONNECTED(0), + probe_out185(0) => NLW_inst_probe_out185_UNCONNECTED(0), + probe_out186(0) => NLW_inst_probe_out186_UNCONNECTED(0), + probe_out187(0) => NLW_inst_probe_out187_UNCONNECTED(0), + probe_out188(0) => NLW_inst_probe_out188_UNCONNECTED(0), + probe_out189(0) => NLW_inst_probe_out189_UNCONNECTED(0), + probe_out19(0) => NLW_inst_probe_out19_UNCONNECTED(0), + probe_out190(0) => NLW_inst_probe_out190_UNCONNECTED(0), + probe_out191(0) => NLW_inst_probe_out191_UNCONNECTED(0), + probe_out192(0) => NLW_inst_probe_out192_UNCONNECTED(0), + probe_out193(0) => NLW_inst_probe_out193_UNCONNECTED(0), + probe_out194(0) => NLW_inst_probe_out194_UNCONNECTED(0), + probe_out195(0) => NLW_inst_probe_out195_UNCONNECTED(0), + probe_out196(0) => NLW_inst_probe_out196_UNCONNECTED(0), + probe_out197(0) => NLW_inst_probe_out197_UNCONNECTED(0), + probe_out198(0) => NLW_inst_probe_out198_UNCONNECTED(0), + probe_out199(0) => NLW_inst_probe_out199_UNCONNECTED(0), + probe_out2(0) => probe_out2(0), + probe_out20(0) => NLW_inst_probe_out20_UNCONNECTED(0), + probe_out200(0) => NLW_inst_probe_out200_UNCONNECTED(0), + probe_out201(0) => NLW_inst_probe_out201_UNCONNECTED(0), + probe_out202(0) => NLW_inst_probe_out202_UNCONNECTED(0), + probe_out203(0) => NLW_inst_probe_out203_UNCONNECTED(0), + probe_out204(0) => NLW_inst_probe_out204_UNCONNECTED(0), + probe_out205(0) => NLW_inst_probe_out205_UNCONNECTED(0), + probe_out206(0) => NLW_inst_probe_out206_UNCONNECTED(0), + probe_out207(0) => NLW_inst_probe_out207_UNCONNECTED(0), + probe_out208(0) => NLW_inst_probe_out208_UNCONNECTED(0), + probe_out209(0) => NLW_inst_probe_out209_UNCONNECTED(0), + probe_out21(0) => NLW_inst_probe_out21_UNCONNECTED(0), + probe_out210(0) => NLW_inst_probe_out210_UNCONNECTED(0), + probe_out211(0) => NLW_inst_probe_out211_UNCONNECTED(0), + probe_out212(0) => NLW_inst_probe_out212_UNCONNECTED(0), + probe_out213(0) => NLW_inst_probe_out213_UNCONNECTED(0), + probe_out214(0) => NLW_inst_probe_out214_UNCONNECTED(0), + probe_out215(0) => NLW_inst_probe_out215_UNCONNECTED(0), + probe_out216(0) => NLW_inst_probe_out216_UNCONNECTED(0), + probe_out217(0) => NLW_inst_probe_out217_UNCONNECTED(0), + probe_out218(0) => NLW_inst_probe_out218_UNCONNECTED(0), + probe_out219(0) => NLW_inst_probe_out219_UNCONNECTED(0), + probe_out22(0) => NLW_inst_probe_out22_UNCONNECTED(0), + probe_out220(0) => NLW_inst_probe_out220_UNCONNECTED(0), + probe_out221(0) => NLW_inst_probe_out221_UNCONNECTED(0), + probe_out222(0) => NLW_inst_probe_out222_UNCONNECTED(0), + probe_out223(0) => NLW_inst_probe_out223_UNCONNECTED(0), + probe_out224(0) => NLW_inst_probe_out224_UNCONNECTED(0), + probe_out225(0) => NLW_inst_probe_out225_UNCONNECTED(0), + probe_out226(0) => NLW_inst_probe_out226_UNCONNECTED(0), + probe_out227(0) => NLW_inst_probe_out227_UNCONNECTED(0), + probe_out228(0) => NLW_inst_probe_out228_UNCONNECTED(0), + probe_out229(0) => NLW_inst_probe_out229_UNCONNECTED(0), + probe_out23(0) => NLW_inst_probe_out23_UNCONNECTED(0), + probe_out230(0) => NLW_inst_probe_out230_UNCONNECTED(0), + probe_out231(0) => NLW_inst_probe_out231_UNCONNECTED(0), + probe_out232(0) => NLW_inst_probe_out232_UNCONNECTED(0), + probe_out233(0) => NLW_inst_probe_out233_UNCONNECTED(0), + probe_out234(0) => NLW_inst_probe_out234_UNCONNECTED(0), + probe_out235(0) => NLW_inst_probe_out235_UNCONNECTED(0), + probe_out236(0) => NLW_inst_probe_out236_UNCONNECTED(0), + probe_out237(0) => NLW_inst_probe_out237_UNCONNECTED(0), + probe_out238(0) => NLW_inst_probe_out238_UNCONNECTED(0), + probe_out239(0) => NLW_inst_probe_out239_UNCONNECTED(0), + probe_out24(0) => NLW_inst_probe_out24_UNCONNECTED(0), + probe_out240(0) => NLW_inst_probe_out240_UNCONNECTED(0), + probe_out241(0) => NLW_inst_probe_out241_UNCONNECTED(0), + probe_out242(0) => NLW_inst_probe_out242_UNCONNECTED(0), + probe_out243(0) => NLW_inst_probe_out243_UNCONNECTED(0), + probe_out244(0) => NLW_inst_probe_out244_UNCONNECTED(0), + probe_out245(0) => NLW_inst_probe_out245_UNCONNECTED(0), + probe_out246(0) => NLW_inst_probe_out246_UNCONNECTED(0), + probe_out247(0) => NLW_inst_probe_out247_UNCONNECTED(0), + probe_out248(0) => NLW_inst_probe_out248_UNCONNECTED(0), + probe_out249(0) => NLW_inst_probe_out249_UNCONNECTED(0), + probe_out25(0) => NLW_inst_probe_out25_UNCONNECTED(0), + probe_out250(0) => NLW_inst_probe_out250_UNCONNECTED(0), + probe_out251(0) => NLW_inst_probe_out251_UNCONNECTED(0), + probe_out252(0) => NLW_inst_probe_out252_UNCONNECTED(0), + probe_out253(0) => NLW_inst_probe_out253_UNCONNECTED(0), + probe_out254(0) => NLW_inst_probe_out254_UNCONNECTED(0), + probe_out255(0) => NLW_inst_probe_out255_UNCONNECTED(0), + probe_out26(0) => NLW_inst_probe_out26_UNCONNECTED(0), + probe_out27(0) => NLW_inst_probe_out27_UNCONNECTED(0), + probe_out28(0) => NLW_inst_probe_out28_UNCONNECTED(0), + probe_out29(0) => NLW_inst_probe_out29_UNCONNECTED(0), + probe_out3(0) => NLW_inst_probe_out3_UNCONNECTED(0), + probe_out30(0) => NLW_inst_probe_out30_UNCONNECTED(0), + probe_out31(0) => NLW_inst_probe_out31_UNCONNECTED(0), + probe_out32(0) => NLW_inst_probe_out32_UNCONNECTED(0), + probe_out33(0) => NLW_inst_probe_out33_UNCONNECTED(0), + probe_out34(0) => NLW_inst_probe_out34_UNCONNECTED(0), + probe_out35(0) => NLW_inst_probe_out35_UNCONNECTED(0), + probe_out36(0) => NLW_inst_probe_out36_UNCONNECTED(0), + probe_out37(0) => NLW_inst_probe_out37_UNCONNECTED(0), + probe_out38(0) => NLW_inst_probe_out38_UNCONNECTED(0), + probe_out39(0) => NLW_inst_probe_out39_UNCONNECTED(0), + probe_out4(0) => NLW_inst_probe_out4_UNCONNECTED(0), + probe_out40(0) => NLW_inst_probe_out40_UNCONNECTED(0), + probe_out41(0) => NLW_inst_probe_out41_UNCONNECTED(0), + probe_out42(0) => NLW_inst_probe_out42_UNCONNECTED(0), + probe_out43(0) => NLW_inst_probe_out43_UNCONNECTED(0), + probe_out44(0) => NLW_inst_probe_out44_UNCONNECTED(0), + probe_out45(0) => NLW_inst_probe_out45_UNCONNECTED(0), + probe_out46(0) => NLW_inst_probe_out46_UNCONNECTED(0), + probe_out47(0) => NLW_inst_probe_out47_UNCONNECTED(0), + probe_out48(0) => NLW_inst_probe_out48_UNCONNECTED(0), + probe_out49(0) => NLW_inst_probe_out49_UNCONNECTED(0), + probe_out5(0) => NLW_inst_probe_out5_UNCONNECTED(0), + probe_out50(0) => NLW_inst_probe_out50_UNCONNECTED(0), + probe_out51(0) => NLW_inst_probe_out51_UNCONNECTED(0), + probe_out52(0) => NLW_inst_probe_out52_UNCONNECTED(0), + probe_out53(0) => NLW_inst_probe_out53_UNCONNECTED(0), + probe_out54(0) => NLW_inst_probe_out54_UNCONNECTED(0), + probe_out55(0) => NLW_inst_probe_out55_UNCONNECTED(0), + probe_out56(0) => NLW_inst_probe_out56_UNCONNECTED(0), + probe_out57(0) => NLW_inst_probe_out57_UNCONNECTED(0), + probe_out58(0) => NLW_inst_probe_out58_UNCONNECTED(0), + probe_out59(0) => NLW_inst_probe_out59_UNCONNECTED(0), + probe_out6(0) => NLW_inst_probe_out6_UNCONNECTED(0), + probe_out60(0) => NLW_inst_probe_out60_UNCONNECTED(0), + probe_out61(0) => NLW_inst_probe_out61_UNCONNECTED(0), + probe_out62(0) => NLW_inst_probe_out62_UNCONNECTED(0), + probe_out63(0) => NLW_inst_probe_out63_UNCONNECTED(0), + probe_out64(0) => NLW_inst_probe_out64_UNCONNECTED(0), + probe_out65(0) => NLW_inst_probe_out65_UNCONNECTED(0), + probe_out66(0) => NLW_inst_probe_out66_UNCONNECTED(0), + probe_out67(0) => NLW_inst_probe_out67_UNCONNECTED(0), + probe_out68(0) => NLW_inst_probe_out68_UNCONNECTED(0), + probe_out69(0) => NLW_inst_probe_out69_UNCONNECTED(0), + probe_out7(0) => NLW_inst_probe_out7_UNCONNECTED(0), + probe_out70(0) => NLW_inst_probe_out70_UNCONNECTED(0), + probe_out71(0) => NLW_inst_probe_out71_UNCONNECTED(0), + probe_out72(0) => NLW_inst_probe_out72_UNCONNECTED(0), + probe_out73(0) => NLW_inst_probe_out73_UNCONNECTED(0), + probe_out74(0) => NLW_inst_probe_out74_UNCONNECTED(0), + probe_out75(0) => NLW_inst_probe_out75_UNCONNECTED(0), + probe_out76(0) => NLW_inst_probe_out76_UNCONNECTED(0), + probe_out77(0) => NLW_inst_probe_out77_UNCONNECTED(0), + probe_out78(0) => NLW_inst_probe_out78_UNCONNECTED(0), + probe_out79(0) => NLW_inst_probe_out79_UNCONNECTED(0), + probe_out8(0) => NLW_inst_probe_out8_UNCONNECTED(0), + probe_out80(0) => NLW_inst_probe_out80_UNCONNECTED(0), + probe_out81(0) => NLW_inst_probe_out81_UNCONNECTED(0), + probe_out82(0) => NLW_inst_probe_out82_UNCONNECTED(0), + probe_out83(0) => NLW_inst_probe_out83_UNCONNECTED(0), + probe_out84(0) => NLW_inst_probe_out84_UNCONNECTED(0), + probe_out85(0) => NLW_inst_probe_out85_UNCONNECTED(0), + probe_out86(0) => NLW_inst_probe_out86_UNCONNECTED(0), + probe_out87(0) => NLW_inst_probe_out87_UNCONNECTED(0), + probe_out88(0) => NLW_inst_probe_out88_UNCONNECTED(0), + probe_out89(0) => NLW_inst_probe_out89_UNCONNECTED(0), + probe_out9(0) => NLW_inst_probe_out9_UNCONNECTED(0), + probe_out90(0) => NLW_inst_probe_out90_UNCONNECTED(0), + probe_out91(0) => NLW_inst_probe_out91_UNCONNECTED(0), + probe_out92(0) => NLW_inst_probe_out92_UNCONNECTED(0), + probe_out93(0) => NLW_inst_probe_out93_UNCONNECTED(0), + probe_out94(0) => NLW_inst_probe_out94_UNCONNECTED(0), + probe_out95(0) => NLW_inst_probe_out95_UNCONNECTED(0), + probe_out96(0) => NLW_inst_probe_out96_UNCONNECTED(0), + probe_out97(0) => NLW_inst_probe_out97_UNCONNECTED(0), + probe_out98(0) => NLW_inst_probe_out98_UNCONNECTED(0), + probe_out99(0) => NLW_inst_probe_out99_UNCONNECTED(0), + sl_iport0(36 downto 0) => B"0000000000000000000000000000000000000", + sl_oport0(16 downto 0) => NLW_inst_sl_oport0_UNCONNECTED(16 downto 0) + ); +end STRUCTURE; diff --git a/sources/templates/docs/html/registers-5.0.html b/sources/templates/docs/html/registers-5.0.html index e813e1243ed44cf03a34c6e1588fb5e5888555dc..3d0548d1cdf667f04fc6d7751d9c70470c20c1b3 100644 --- a/sources/templates/docs/html/registers-5.0.html +++ b/sources/templates/docs/html/registers-5.0.html @@ -8,11 +8,11 @@ DO NOT EDIT THIS FILE This file was generated from template '../../../WupperCodeGen/input/registers.html.template' - and register map ../../../sources/templates/yaml/registers-5.0.yaml, version 5.0 + and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.0.yaml, version 5.0 by the script 'wuppercodegen', version: 0.9.1, using the following commandline: - ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.0.yaml ../../../WupperCodeGen/input/registers.html.template ../docs/html/registers-5.0.html + ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.0.yaml ../../../WupperCodeGen/input/registers.html.template ../docs/html/registers-5.0.html Please do NOT edit this file, but edit the source file at '../../../WupperCodeGen/input/registers.html.template' diff --git a/sources/templates/docs/html/registers-5.1.html b/sources/templates/docs/html/registers-5.1.html index d85b6a52f981fb15cd9c2648e96816995f41876c..e239ab62dd9c907a9b1676afebb8b686b49794de 100644 --- a/sources/templates/docs/html/registers-5.1.html +++ b/sources/templates/docs/html/registers-5.1.html @@ -8,11 +8,11 @@ DO NOT EDIT THIS FILE This file was generated from template '../../../WupperCodeGen/input/registers.html.template' - and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 + and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 by the script 'wuppercodegen', version: 0.9.1, using the following commandline: - ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../WupperCodeGen/input/registers.html.template ../docs/html/registers-5.1.html + ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../WupperCodeGen/input/registers.html.template ../docs/html/registers-5.1.html Please do NOT edit this file, but edit the source file at '../../../WupperCodeGen/input/registers.html.template' diff --git a/sources/templates/generated/dma_control.vhd b/sources/templates/generated/dma_control.vhd index 573ec2e66db6f34c0f10fd7f63658163146a49f6..58b56bed5bcc1be12a0771d1042621955a5ad603 100644 --- a/sources/templates/generated/dma_control.vhd +++ b/sources/templates/generated/dma_control.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control.vhd +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control.vhd -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_0.vhd b/sources/templates/generated/dma_control_0.vhd index ce781df0262adb8d3c1ced4a3214887ba0ba9873..75b959d2f7d5b1a2b15b861bc18c7522e551b332 100644 --- a/sources/templates/generated/dma_control_0.vhd +++ b/sources/templates/generated/dma_control_0.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_0.vhd --fw_mode 0 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_0.vhd --fw_mode 0 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_1.vhd b/sources/templates/generated/dma_control_1.vhd index dce2450c3590c81b7b8bf90ba582361febecf1d5..82c2bd0b1bb49f628232925a1e9793d675230aee 100644 --- a/sources/templates/generated/dma_control_1.vhd +++ b/sources/templates/generated/dma_control_1.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_1.vhd --fw_mode 1 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_1.vhd --fw_mode 1 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_10.vhd b/sources/templates/generated/dma_control_10.vhd index ea4f2dacc545f1fc45a63de1b00f2f4ce1a3fb43..a0770d1924de900cf7dbfcfd82bc16c57071218e 100644 --- a/sources/templates/generated/dma_control_10.vhd +++ b/sources/templates/generated/dma_control_10.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_10.vhd --fw_mode 10 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_10.vhd --fw_mode 10 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_11.vhd b/sources/templates/generated/dma_control_11.vhd index 5ca8aa9c75e264f89563512cebe5ee57c6056637..ac45033bca8f92f99897d789dd9c1185aa04d0b5 100644 --- a/sources/templates/generated/dma_control_11.vhd +++ b/sources/templates/generated/dma_control_11.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_11.vhd --fw_mode 11 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_11.vhd --fw_mode 11 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_12.vhd b/sources/templates/generated/dma_control_12.vhd index f160a4b545f01ff2dd0247440661115140e96125..0b299cfd89a9c45e3ce515f8d4eddf0e674b8514 100644 --- a/sources/templates/generated/dma_control_12.vhd +++ b/sources/templates/generated/dma_control_12.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_12.vhd --fw_mode 12 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_12.vhd --fw_mode 12 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_13.vhd b/sources/templates/generated/dma_control_13.vhd index 5cf502cf1f73ad515286177cdab8feecd117b728..5362267ef19da6639b22e3c4e4de1fea763fb8d2 100644 --- a/sources/templates/generated/dma_control_13.vhd +++ b/sources/templates/generated/dma_control_13.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_13.vhd --fw_mode 13 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_13.vhd --fw_mode 13 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_14.vhd b/sources/templates/generated/dma_control_14.vhd index 28cb1eb507c0eaf0c32dbed9cd30bd683d8d819b..c29c572903c7c319838b56c18d00aede62a7ce67 100644 --- a/sources/templates/generated/dma_control_14.vhd +++ b/sources/templates/generated/dma_control_14.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_14.vhd --fw_mode 14 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_14.vhd --fw_mode 14 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_15.vhd b/sources/templates/generated/dma_control_15.vhd index 8ad83bd91aba9841e6b96173e42f48caf940c90c..bfbab1f52f8354e6df5e2341a58abd73110d7d07 100644 --- a/sources/templates/generated/dma_control_15.vhd +++ b/sources/templates/generated/dma_control_15.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_15.vhd --fw_mode 15 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_15.vhd --fw_mode 15 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_2.vhd b/sources/templates/generated/dma_control_2.vhd index 380c3edcd6673a57cf1154453bb145bfb28f7c41..40b31f6de4abe6cb10187bb5418288bb358dfa0f 100644 --- a/sources/templates/generated/dma_control_2.vhd +++ b/sources/templates/generated/dma_control_2.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_2.vhd --fw_mode 2 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_2.vhd --fw_mode 2 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_3.vhd b/sources/templates/generated/dma_control_3.vhd index e57cfa6c751562bf8a0eb2868f631dade5233847..8f56e94cc290d23e0e1769af170559ab228ab788 100644 --- a/sources/templates/generated/dma_control_3.vhd +++ b/sources/templates/generated/dma_control_3.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_3.vhd --fw_mode 3 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_3.vhd --fw_mode 3 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_4.vhd b/sources/templates/generated/dma_control_4.vhd index 60988028be110acf7ee3656f394664a0e166932d..0f9b9644c66375447c6ad6fb03935ddff22c715b 100644 --- a/sources/templates/generated/dma_control_4.vhd +++ b/sources/templates/generated/dma_control_4.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_4.vhd --fw_mode 4 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_4.vhd --fw_mode 4 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_5.vhd b/sources/templates/generated/dma_control_5.vhd index dbeb5be2a71c1c6a876d339b5b8b4b85d7d35723..d9c90e140ff451fb6aba243900d630beba3c856f 100644 --- a/sources/templates/generated/dma_control_5.vhd +++ b/sources/templates/generated/dma_control_5.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_5.vhd --fw_mode 5 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_5.vhd --fw_mode 5 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_6.vhd b/sources/templates/generated/dma_control_6.vhd index 90119c5e9d93b332638a6a9cb81743bcc23a3cc6..34fe4f9bae4bebcf2b211504f5bd517116db7384 100644 --- a/sources/templates/generated/dma_control_6.vhd +++ b/sources/templates/generated/dma_control_6.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_6.vhd --fw_mode 6 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_6.vhd --fw_mode 6 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_7.vhd b/sources/templates/generated/dma_control_7.vhd index 34d02bf64a7eccf854c86580e6030fe40e10607d..87de660b19720a7f817627b05d1653eb7ab5563c 100644 --- a/sources/templates/generated/dma_control_7.vhd +++ b/sources/templates/generated/dma_control_7.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_7.vhd --fw_mode 7 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_7.vhd --fw_mode 7 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_8.vhd b/sources/templates/generated/dma_control_8.vhd index 12d1e4fcc2faf64ca6488bc7fe8b04226ddb66f7..3510d0681db56ac7f42784bcc032e0f9802e1a66 100644 --- a/sources/templates/generated/dma_control_8.vhd +++ b/sources/templates/generated/dma_control_8.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_8.vhd --fw_mode 8 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_8.vhd --fw_mode 8 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/dma_control_9.vhd b/sources/templates/generated/dma_control_9.vhd index 09af7d114ec1a6415dbc8c7ea199d8cb3731aa1c..34f1d26f08b73211ca2b16fe5c14429434379b6d 100644 --- a/sources/templates/generated/dma_control_9.vhd +++ b/sources/templates/generated/dma_control_9.vhd @@ -40,11 +40,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/dma_control.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_9.vhd --fw_mode 9 +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/dma_control.vhd.template ../../../sources/templates/generated/dma_control_9.vhd --fw_mode 9 -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/dma_control.vhd.template' -- diff --git a/sources/templates/generated/pcie_package.vhd b/sources/templates/generated/pcie_package.vhd index 9f7551b5b2b5c2762c32435669d15b26d2972ed4..902b86aa62fa4528f96c73a5b7b5078cca2a8bef 100644 --- a/sources/templates/generated/pcie_package.vhd +++ b/sources/templates/generated/pcie_package.vhd @@ -39,11 +39,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/pcie_package.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/pcie_package.vhd.template ../../../sources/templates/generated/pcie_package.vhd +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/pcie_package.vhd.template ../../../sources/templates/generated/pcie_package.vhd -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/pcie_package.vhd.template' -- diff --git a/sources/templates/generated/register_map_sync.vhd b/sources/templates/generated/register_map_sync.vhd index 1ed57b2d6ee366372aea572dca55df7a2f992f95..f7d123e6ab4274f488b7c65c1773d8c3f47a87f2 100644 --- a/sources/templates/generated/register_map_sync.vhd +++ b/sources/templates/generated/register_map_sync.vhd @@ -23,11 +23,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/register_map_sync.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/register_map_sync.vhd.template ../../../sources/templates/generated/register_map_sync.vhd +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/register_map_sync.vhd.template ../../../sources/templates/generated/register_map_sync.vhd -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/register_map_sync.vhd.template' -- diff --git a/sources/templates/generated/wupper.vhd b/sources/templates/generated/wupper.vhd index baa25c8f0342dfc8d7c975f57895af0f0fec503d..83d74b61110eacee95b1fc68353f0f8ddcd67449 100644 --- a/sources/templates/generated/wupper.vhd +++ b/sources/templates/generated/wupper.vhd @@ -30,11 +30,11 @@ -- DO NOT EDIT THIS FILE -- -- This file was generated from template '../../../sources/templates/jinja/wupper.vhd.template' --- and register map ../../../sources/templates/yaml/registers-5.1.yaml, version 5.1 +-- and register map ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml, version 5.1 -- by the script 'wuppercodegen', version: 0.9.1, -- using the following commandline: -- --- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/registers-5.1.yaml ../../../sources/templates/jinja/wupper.vhd.template ../../../sources/templates/generated/wupper.vhd +-- ../../../WupperCodeGen/wuppercodegen/cli.py ../../../sources/templates/yaml/regmap/yaml/registers-5.1.yaml ../../../sources/templates/jinja/wupper.vhd.template ../../../sources/templates/generated/wupper.vhd -- -- Please do NOT edit this file, but edit the source file at '../../../sources/templates/jinja/wupper.vhd.template' -- diff --git a/sources/templates/scripts/build-diff.sh b/sources/templates/scripts/build-diff.sh index aa051e6ba84ac878291fcb91dfa6c6201e34de3d..3f9f4399c94803380b3954f21a3ff29993777ea0 100755 --- a/sources/templates/scripts/build-diff.sh +++ b/sources/templates/scripts/build-diff.sh @@ -39,8 +39,8 @@ echo $scriptdir wuppercodegen_dir=$firmware_dir/WupperCodeGen wuppercodegen=$wuppercodegen_dir/wuppercodegen/cli.py -prev_registers=$template_dir/registers-${prev_version}.yaml -current_registers=$template_dir/registers-${current_version}.yaml +prev_registers=$template_dir/yaml/regmap/yaml/registers-${prev_version}.yaml +current_registers=$template_dir/yaml/regmap/yaml/registers-${current_version}.yaml #next_registers=$template_dir/registers-${next_version}.yaml $wuppercodegen --version echo "Previous version: $prev_version" diff --git a/sources/templates/scripts/build-doc.sh b/sources/templates/scripts/build-doc.sh index dd2c53b7d8a0f60f17e507576053b5ba264d58e8..e29f1539e2947a24fa6c302917b47955ca442abc 100755 --- a/sources/templates/scripts/build-doc.sh +++ b/sources/templates/scripts/build-doc.sh @@ -36,8 +36,8 @@ generated_dir=$template_dir/generated wuppercodegen_dir=$firmware_dir/WupperCodeGen wuppercodegen=$wuppercodegen_dir/wuppercodegen/cli.py -prev_registers=$template_dir/yaml/registers-${prev_version}.yaml -current_registers=$template_dir/yaml/registers-${current_version}.yaml +prev_registers=$template_dir/yaml/regmap/yaml/registers-${prev_version}.yaml +current_registers=$template_dir/yaml/regmap/yaml/registers-${current_version}.yaml $wuppercodegen --version $wuppercodegen $current_registers $template_dir/jinja/registermap.tex.template $template_dir/docs/registermap-${current_version}.tex diff --git a/sources/templates/scripts/build-html.sh b/sources/templates/scripts/build-html.sh index c9420dfacf71f3fdc34e4f61d6b454564c9fff75..9087ad3ba6b7257332dbebbd6be318c94a7e01ec 100755 --- a/sources/templates/scripts/build-html.sh +++ b/sources/templates/scripts/build-html.sh @@ -35,7 +35,7 @@ echo $scriptdir wuppercodegen_dir=$firmware_dir/WupperCodeGen wuppercodegen=$wuppercodegen_dir/wuppercodegen/cli.py -current_registers=$template_dir/registers-$1.yaml +current_registers=$template_dir/yaml/regmap/yaml/registers-$1.yaml $wuppercodegen --version echo "Generating html documentation for current version..." $wuppercodegen $current_registers $wuppercodegen_dir/input/registers.html.template registers-$1.html diff --git a/sources/templates/scripts/build.sh b/sources/templates/scripts/build.sh index db9af2e571be9eed1702923f4b42f74d7113d709..7ea2122ab913700a415f832e2af16838beba9093 100755 --- a/sources/templates/scripts/build.sh +++ b/sources/templates/scripts/build.sh @@ -47,8 +47,8 @@ echo $scriptdir wuppercodegen_dir=$firmware_dir/WupperCodeGen wuppercodegen=$wuppercodegen_dir/wuppercodegen/cli.py -prev_registers=$template_dir/yaml/registers-${prev_version}.yaml -current_registers=$template_dir/yaml/registers-${current_version}.yaml +prev_registers=$template_dir/yaml/regmap/yaml/registers-${prev_version}.yaml +current_registers=$template_dir/yaml/regmap/yaml/registers-${current_version}.yaml #next_registers=$template_dir/registers-${next_version}.yaml $wuppercodegen --version echo "Previous version: $prev_version" diff --git a/sources/templates/yaml/registers-2.0.yaml b/sources/templates/yaml/registers-2.0.yaml deleted file mode 100644 index ec7521d1ad7ebdd37ec6e0ef58063c52f366faac..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-2.0.yaml +++ /dev/null @@ -1,864 +0,0 @@ -Registers: - version: '2.0' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: Read/<o>Write</o> - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - entries: - - name: BOARD_ID{bitfield} - bitfield: - - name: SVN - range: 79..64 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - name: TIMESTAMP - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: STATUS_LEDS - offset: 0x0010 - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS{bitfield} - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - value: std_logic_vector(to_unsigned(GBT_NUM,8)) - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709: VC709 - - 710: HTG710 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - value: std_logic_vector(to_unsigned(GBT_MAPPING,8)) - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - -CentralRouterControls: - offset: 0x0100 - desc: See Central Router Doc - entries: - - ref: GBT_CONTROL - - name: CR_TH_UPDATE_CTRL - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - type: T - value: 1 - bitfield: - - range: any - -GBT_CONTROL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: TH - - ref: FH - -TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - -FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - -CentralRouterMonitors: - desc: See Central Router Doc - entries: - - ref: GBT_MON - -GBT_MON: - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -GBTEmulatorControlsAndMonitors: - entries: - - name: GBT_EMU_ENA{bitfield} - type: W - bitfield: - - range: 1 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - range: 0 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - - name: GBT_EMU_CONFIG{bitfield} - type: W - bitfield: - - range: 70..64 - name: WE_ARRAY - desc: write enable array, every bit is one emulator RAM block - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - -GBTWrapperControls: - type: W - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL{bitfield} - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE{bitfield} - offset: 0x0480 - bitfield: - - range: 59..48 - name: BF1 - desc: RxSlide select [23:12] - - range: 43..32 - name: BF2 - desc: RxSlide select [11:0] - - range: 27..16 - name: BF3 - desc: RxSlide manual [23:12 - - range: 11..0 - name: BF4 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: BF1 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: BF2 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: BF1 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: BF2 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: BF2 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: BF3 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: BF4 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: GTRX_RESET [23:0] - - range: 11..0 - name: BF2 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: BF2 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: BF3 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: BF4 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: BF2 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: BF3 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: BF4 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: BF2 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: BF3 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: BF4 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN{bitfield} - offset: 0x0500 - bitfield: - - range: 27..16 - name: BF1 - desc: OddEven [23:12] - - range: 11..0 - name: BF2 - desc: OddEven [11:0] - - - name: GBT_TOPBOT{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TopBot [23:12] - - range: 11..0 - name: BF2 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: BF1 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: BF2 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: BF1 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: BF2 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TX Logic reset [23:12] - - range: 11..0 - name: BF2 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX Logic reset [23:12] - - range: 11..0 - name: BF2 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: BF2 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: BF2 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - -GBTWrapperMonitors: - entries: - - name: GBT_VERSION{bitfield} - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATA - desc: Data - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE{bitfield} - offset: 0x0680 - bitfield: - - range: 27..16 - name: BF1 - desc: TX Reset done [23:12] - - range: 11..0 - name: BF2 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX Reset done [23:12] - - range: 11..0 - name: BF2 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: BF2 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: BF2 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: BF2 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: BF2 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: BF3 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: BF4 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: BF2 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: clk sampled [23:12] - - range: 11..0 - name: BF2 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: BF2 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX IS DATA [23:12] - - range: 11..0 - name: BF2 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: BF2 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: BF2 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: GBT output mux status [23:12] - - range: 11..0 - name: BF2 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: Error flags [23:12] - - range: 11..0 - name: BF2 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TopBot_c [23:12] - - range: 11..0 - name: BF2 - desc: TopBot_c [11:0] - -HouseKeepingControlsAndMonitors: - entries: - - name: HK_CTRL{bitfield} - offset: 0x0200 - type: W - bitfield: - - range: 66 - name: CDCE_REF_SEL - desc: REF_SEL - - range: 65 - name: CDCE_PD - desc: PD - - range: 64 - name: CDCE_SYNC - desc: SYNC - - range: 1 - name: I2C_CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: I2C_CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: PLL_LOCK - offset: 0x0300 - bitfield: - - range: 1..0 - desc: Main MMCM PLL Lock Status - - - name: HK_MON{bitfield} - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR{bitfield} - offset: 0x0400 - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD{bitfield} - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR{bitfield} - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD{bitfield} - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: DEBUG_PORT{bitfield} - offset: 0x0500 - type: W - bitfield: - - range: 67..64 - name: CLK - desc: Debug clock and L1A port on SMA HTGx#4 - - range: 6..0 - name: GBT - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 diff --git a/sources/templates/yaml/registers-2.1.yaml b/sources/templates/yaml/registers-2.1.yaml deleted file mode 100644 index 95ce0e32c6c891cbcdf87de2cfa457cf875dfd45..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-2.1.yaml +++ /dev/null @@ -1,878 +0,0 @@ -Registers: - version: '2.1' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: Read/<o>Write</o> - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - entries: - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - offset: 0x0008 - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - offset: 0x0010 - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS{bitfield} - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - value: std_logic_vector(to_unsigned(GBT_NUM,8)) - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709: VC709 - - 710: HTG710 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - value: std_logic_vector(to_unsigned(GBT_MAPPING,8)) - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - -CentralRouterControls: - offset: 0x0100 - desc: See Central Router Doc - entries: - - ref: GBT_CONTROL - - name: CR_TH_UPDATE_CTRL - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - type: T - value: 1 - bitfield: - - range: any - -GBT_CONTROL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: TH - - ref: FH - -TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - -FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - -CentralRouterMonitors: - desc: See Central Router Doc - entries: - - ref: GBT_MON - -GBT_MON: - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -GBTEmulatorControlsAndMonitors: - entries: - - name: GBT_EMU_ENA{bitfield} - type: W - bitfield: - - range: 1 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - range: 0 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - - name: GBT_EMU_CONFIG{bitfield} - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_EMU_CONFIG_WE_ARRAY - offset: 0x0018 - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - -GBTWrapperControls: - type: W - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL{bitfield} - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE{bitfield} - offset: 0x0480 - bitfield: - - range: 59..48 - name: BF1 - desc: RxSlide select [23:12] - - range: 43..32 - name: BF2 - desc: RxSlide select [11:0] - - range: 27..16 - name: BF3 - desc: RxSlide manual [23:12 - - range: 11..0 - name: BF4 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: BF1 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: BF2 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: BF1 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: BF2 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: BF2 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: BF3 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: BF4 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: GTRX_RESET [23:0] - - range: 11..0 - name: BF2 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: BF2 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: BF3 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: BF4 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: BF2 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: BF3 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: BF4 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: BF2 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: BF3 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: BF4 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN{bitfield} - offset: 0x0500 - bitfield: - - range: 27..16 - name: BF1 - desc: OddEven [23:12] - - range: 11..0 - name: BF2 - desc: OddEven [11:0] - - - name: GBT_TOPBOT{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TopBot [23:12] - - range: 11..0 - name: BF2 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: BF1 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: BF2 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: BF1 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: BF2 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TX Logic reset [23:12] - - range: 11..0 - name: BF2 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX Logic reset [23:12] - - range: 11..0 - name: BF2 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: BF2 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: BF2 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - -GBTWrapperMonitors: - entries: - - name: GBT_VERSION{bitfield} - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATA - desc: Data - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE{bitfield} - offset: 0x0680 - bitfield: - - range: 27..16 - name: BF1 - desc: TX Reset done [23:12] - - range: 11..0 - name: BF2 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX Reset done [23:12] - - range: 11..0 - name: BF2 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: BF2 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: BF2 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: BF2 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK{bitfield} - bitfield: - - range: 30..28 - name: BF1 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: BF2 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: BF3 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: BF4 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: BF2 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: clk sampled [23:12] - - range: 11..0 - name: BF2 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: BF2 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX IS DATA [23:12] - - range: 11..0 - name: BF2 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: BF2 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: BF2 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: GBT output mux status [23:12] - - range: 11..0 - name: BF2 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: Error flags [23:12] - - range: 11..0 - name: BF2 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C{bitfield} - bitfield: - - range: 27..16 - name: BF1 - desc: TopBot_c [23:12] - - range: 11..0 - name: BF2 - desc: TopBot_c [11:0] - -HouseKeepingControlsAndMonitors: - entries: - - name: HK_CTRL_I2C{bitfield} - offset: 0x0200 - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_CDCE{bitfield} - offset: 0x0208 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: PLL_LOCK - offset: 0x0300 - bitfield: - - range: 1..0 - desc: Main MMCM PLL Lock Status - - - name: HK_MON{bitfield} - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR{bitfield} - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD{bitfield} - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR{bitfield} - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD{bitfield} - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - offset: 0x0508 - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 diff --git a/sources/templates/yaml/registers-3.0.yaml b/sources/templates/yaml/registers-3.0.yaml deleted file mode 100644 index 81c6d77706b3c7f49bbb72c380a7102958fb86aa..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.0.yaml +++ /dev/null @@ -1,922 +0,0 @@ -Registers: - version: '3.0' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: Read/<o>Write</o> - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS{bitfield} - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - value: std_logic_vector(to_unsigned(GBT_NUM,8)) - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709: VC709 - - 710: HTG710 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - value: std_logic_vector(to_unsigned(GBT_MAPPING,8)) - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - -CentralRouterControls: - group: CRC - desc: Central Router Controls - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x00000124aaaa8006 - - 0x00000124aaaa8078 - - 0x00000124aaaa8001 - - 0x00000124aaaaff80 - - 0x00000124aaaae628 - - 0x00000124aaaa99d0 - - 0x0000000000000000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - -CentralRouterMonitors: - group: CRM - desc: Central Router Monitors - entries: - - ref: CR_GBT_MON - -CR_GBT_MON: - desc: See Central Router Doc - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - entries: - - name: GBT_EMU_ENA{bitfield} - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG{bitfield} - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL{bitfield} - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE{bitfield} - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN{bitfield} - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - entries: - - name: GBT_VERSION{bitfield} - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE{bitfield} - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - entries: - - name: HK_CTRL_CDCE{bitfield} - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C{bitfield} - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: MMCM_MAIN{bitfield} - offset: 0x0300 - bitfield: - - range: 1 - name: OSC_SEL - desc: Main MMCM Oscillator Select - - range: 0 - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON{bitfield} - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR{bitfield} - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD{bitfield} - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR{bitfield} - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD{bitfield} - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU{bitfield} - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 diff --git a/sources/templates/yaml/registers-3.1.yaml b/sources/templates/yaml/registers-3.1.yaml deleted file mode 100644 index 0a235e5cc19c4a7844b30f1fa655d08df3d1403e..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.1.yaml +++ /dev/null @@ -1,988 +0,0 @@ -Registers: - version: '3.1' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: Read/<o>Write</o> - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS{bitfield} - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709: VC709 - - 710: HTG710 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST{bitfield} - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 0 - desc: EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - -CentralRouterControls: - group: CRC - desc: Central Router Controls - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x00000124aaaa8006 - - 0x00000124aaaa8078 - - 0x00000124aaaa8001 - - 0x00000124aaaaff80 - - 0x00000124aaaae628 - - 0x00000124aaaa99d0 - - 0x0000000000000000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - -CentralRouterMonitors: - group: CRM - desc: Central Router Monitors - endpoints: 0,1 - entries: - - ref: CR_GBT_MON - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA{bitfield} - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG{bitfield} - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL{bitfield} - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE{bitfield} - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY{bitfield} - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN{bitfield} - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT{bitfield} - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0xFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION{bitfield} - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE{bitfield} - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK{bitfield} - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C{bitfield} - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_CDCE{bitfield} - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C{bitfield} - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: MMCM_MAIN{bitfield} - offset: 0x0300 - bitfield: - - range: 2 - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON{bitfield} - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR{bitfield} - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD{bitfield} - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR{bitfield} - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD{bitfield} - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU{bitfield} - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 diff --git a/sources/templates/yaml/registers-3.2.yaml b/sources/templates/yaml/registers-3.2.yaml deleted file mode 100644 index a7f17a418908cf973a5dd6ab4c8533ec9553263a..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.2.yaml +++ /dev/null @@ -1,1337 +0,0 @@ -Registers: - version: '3.2' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - -CentralRouterControls: - group: CRC - desc: Central Router Controls - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x00000124aaaa8006 - - 0x00000124aaaa8078 - - 0x00000124aaaa8001 - - 0x00000124aaaaff80 - - 0x00000124aaaae628 - - 0x00000124aaaa99d0 - - 0x0000000000000000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: TTC_TOHOST - format_name: TTC_TOHOST_{index:02} - type_name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 0 - default: 0x0 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CentralRouterMonitors: - group: CRM - desc: Central Router Monitors - endpoints: 0,1 - entries: - - ref: CR_GBT_MON - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - name: CR_DEFAULT_EPROC_ENA0 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA1 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA2 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA3 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA4 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA5 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA6 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA7 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING0 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING1 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING2 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING3 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING4 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING5 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING6 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING7 - type: R - bitfield: - - range: 14..0 - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 diff --git a/sources/templates/yaml/registers-3.3.yaml b/sources/templates/yaml/registers-3.3.yaml deleted file mode 100644 index 415a95c93860dba1b207666f6c0b57e63a3bbde9..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.3.yaml +++ /dev/null @@ -1,1337 +0,0 @@ -Registers: - version: '3.3' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - -CentralRouterControls: - group: CRC - desc: Central Router Controls - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x00000124aaaa8006 - - 0x00000124aaaa8078 - - 0x00000124aaaa8001 - - 0x00000124aaaaff80 - - 0x00000124aaaae628 - - 0x00000124aaaa99d0 - - 0x0000000000000000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: TTC_TOHOST - format_name: TTC_TOHOST_{index:02} - type_name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 0 - default: 0x0 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CentralRouterMonitors: - group: CRM - desc: Central Router Monitors - endpoints: 0,1 - entries: - - ref: CR_GBT_MON - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - name: CR_DEFAULT_EPROC_ENA0 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA1 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA2 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA3 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA4 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA5 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA6 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENA7 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING0 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING1 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING2 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING3 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING4 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING5 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING6 - type: R - bitfield: - - range: 14..0 - - name: CR_DEFAULT_EPROC_ENCODING7 - type: R - bitfield: - - range: 14..0 - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 diff --git a/sources/templates/yaml/registers-3.4.yaml b/sources/templates/yaml/registers-3.4.yaml deleted file mode 100644 index 173ca09bd720ec5b186ebb2c4fb5c3561eb96e99..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.4.yaml +++ /dev/null @@ -1,1617 +0,0 @@ -Registers: - version: '3.4' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - -CentralRouterControls: - group: CRC - desc: Central Router Controls - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: COMMA_CHAR - desc: Idle character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0FA - desc: -K.28.5 - - range: 17..8 - name: P - default: 0x305 - desc: +K.28.5 - - range: 7..0 - name: BYTE - default: 0xBC - desc: K28.5 - - - name: SOC_CHAR - desc: Start of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F9 - desc: -K.28.1 - - range: 17..8 - name: P - default: 0x306 - desc: +K.28.1 - - range: 7..0 - name: BYTE - default: 0x3C - desc: K28.1 - - - name: EOC_CHAR - desc: End of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F6 - desc: -K.28.6 - - range: 17..8 - name: P - default: 0x309 - desc: +K.28.6 - - range: 7..0 - name: BYTE - default: 0xDC - desc: K28.6 - - - name: SOB_CHAR - desc: Start of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F5 - desc: -K.28.2 - - range: 17..8 - name: P - default: 0x30A - desc: +K.28.2 - - range: 7..0 - name: BYTE - default: 0x5C - desc: K28.2 - - - name: EOB_CHAR - desc: End of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F3 - desc: -K.28.3 - - range: 17..8 - name: P - default: 0x30C - desc: +K.28.3 - - range: 7..0 - name: BYTE - default: 0x7C - desc: K28.3 - - - name: FM_EMU_CONTROL - type: W - bitfield: - - range: 32 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0 means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 117 - - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x000000002aaa8006 - - 0x000000002aaa8078 - - 0x000000002aaa8001 - - 0x000000002aaaff80 - - 0x000000002aaae628 - - 0x000000002aaa99d0 - - 0x0000000020004000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x0000088888888006 - - 0x0000088888888078 - - 0x0000088888888001 - - 0x000008888888ff80 - - 0x000008888888e628 - - 0x00000888888899d0 - - 0x0000080000004000 - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: TTC_TOHOST - format_name: TTC_TOHOST_{index:02} - type_name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 0 - default: 0x0 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CentralRouterMonitors: - group: CRM - desc: Central Router Monitors - endpoints: 0,1 - entries: - - ref: CR_GBT_MON - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - ref: TTC_BUSY_ACCEPTED - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 31..0 - desc: read emu ram data - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0,1 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_TRANSCEIVER_POLARITY - bitfield: - - range: 47..24 - name: TXPOLARITY - desc: "0: default polarity, 1: reversed polarity for transmitter of GTH channels" - default: 0 - - range: 23..0 - name: RXPOLARITY - desc: "0: default polarity, 1: reversed polarity for the receiver of the GTH channels" - default: 0 - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - default: 0x1 - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 - - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash diff --git a/sources/templates/yaml/registers-3.5.yaml b/sources/templates/yaml/registers-3.5.yaml deleted file mode 100644 index 34791ebe2f5d24146be392d146101c5e70be510f..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.5.yaml +++ /dev/null @@ -1,1617 +0,0 @@ -Registers: - version: '3.4' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - -CentralRouterControls: - group: CRC - desc: Central Router Controls - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: COMMA_CHAR - desc: Idle character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0FA - desc: -K.28.5 - - range: 17..8 - name: P - default: 0x305 - desc: +K.28.5 - - range: 7..0 - name: BYTE - default: 0xBC - desc: K28.5 - - - name: SOC_CHAR - desc: Start of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F9 - desc: -K.28.1 - - range: 17..8 - name: P - default: 0x306 - desc: +K.28.1 - - range: 7..0 - name: BYTE - default: 0x3C - desc: K28.1 - - - name: EOC_CHAR - desc: End of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F6 - desc: -K.28.6 - - range: 17..8 - name: P - default: 0x309 - desc: +K.28.6 - - range: 7..0 - name: BYTE - default: 0xDC - desc: K28.6 - - - name: SOB_CHAR - desc: Start of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F5 - desc: -K.28.2 - - range: 17..8 - name: P - default: 0x30A - desc: +K.28.2 - - range: 7..0 - name: BYTE - default: 0x5C - desc: K28.2 - - - name: EOB_CHAR - desc: End of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F3 - desc: -K.28.3 - - range: 17..8 - name: P - default: 0x30C - desc: +K.28.3 - - range: 7..0 - name: BYTE - default: 0x7C - desc: K28.3 - - - name: FM_EMU_CONTROL - type: W - bitfield: - - range: 32 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0 means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 117 - - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - CR_TH_EGROUP0_CTRL_C - - CR_TH_EGROUP1_CTRL_C - - CR_TH_EGROUP2_CTRL_C - - CR_TH_EGROUP3_CTRL_C - - CR_TH_EGROUP4_CTRL_C - - CR_TH_EGROUP5_CTRL_C - - CR_TH_EGROUP6_CTRL_C - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - CR_FH_EGROUP0_CTRL_C - - CR_FH_EGROUP1_CTRL_C - - CR_FH_EGROUP2_CTRL_C - - CR_FH_EGROUP3_CTRL_C - - CR_FH_EGROUP4_CTRL_C - - CR_FH_EGROUP5_CTRL_C - - CR_FH_EGROUP6_CTRL_C - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: TTC_TOHOST - format_name: TTC_TOHOST_{index:02} - type_name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 0 - default: 0x0 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CentralRouterMonitors: - group: CRM - desc: Central Router Monitors - endpoints: 0,1 - entries: - - ref: CR_GBT_MON - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - ref: TTC_BUSY_ACCEPTED - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 31..0 - desc: read emu ram data - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0,1 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_TRANSCEIVER_POLARITY - bitfield: - - range: 47..24 - name: TXPOLARITY - desc: "0: default polarity, 1: reversed polarity for transmitter of GTH channels" - default: 0 - - range: 23..0 - name: RXPOLARITY - desc: "0: default polarity, 1: reversed polarity for the receiver of the GTH channels" - default: 0 - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - default: 0x1 - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 - - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash diff --git a/sources/templates/yaml/registers-3.6.yaml b/sources/templates/yaml/registers-3.6.yaml deleted file mode 100644 index 36a65889eb177c6ecd08140b06cfad03b5cadb73..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.6.yaml +++ /dev/null @@ -1,1675 +0,0 @@ -Registers: - version: '3.6' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControls - offset: 0x1000 - - ref: CentralRouterMonitors - offset: 0x3000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - -CentralRouterControls: - group: CRC - desc: Central Router Controls - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: COMMA_CHAR - desc: Idle character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0FA - desc: -K.28.5 - - range: 17..8 - name: P - default: 0x305 - desc: +K.28.5 - - range: 7..0 - name: BYTE - default: 0xBC - desc: K28.5 - - - name: SOC_CHAR - desc: Start of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F9 - desc: -K.28.1 - - range: 17..8 - name: P - default: 0x306 - desc: +K.28.1 - - range: 7..0 - name: BYTE - default: 0x3C - desc: K28.1 - - - name: EOC_CHAR - desc: End of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F6 - desc: -K.28.6 - - range: 17..8 - name: P - default: 0x309 - desc: +K.28.6 - - range: 7..0 - name: BYTE - default: 0xDC - desc: K28.6 - - - name: SOB_CHAR - desc: Start of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F5 - desc: -K.28.2 - - range: 17..8 - name: P - default: 0x30A - desc: +K.28.2 - - range: 7..0 - name: BYTE - default: 0x5C - desc: K28.2 - - - name: EOB_CHAR - desc: End of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F3 - desc: -K.28.3 - - range: 17..8 - name: P - default: 0x30C - desc: +K.28.3 - - range: 7..0 - name: BYTE - default: 0x7C - desc: K28.3 - - - - - name: FM_EMU_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0 means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 117 - - - name: FM_EMU_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x000000002aaa8006 - - 0x000000002aaa8078 - - 0x000000002aaa8001 - - 0x000000002aaaff80 - - 0x000000002aaae628 - - 0x000000002aaa99d0 - - 0x0000000020004000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x0000088888888006 - - 0x0000088888888078 - - 0x0000088888888001 - - 0x000008888888ff80 - - 0x000008888888e628 - - 0x00000888888899d0 - - 0x0000080000004000 - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: TTC_TOHOST - format_name: TTC_TOHOST_{index:02} - type_name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CentralRouterMonitors: - group: CRM - desc: Central Router Monitors - endpoints: 0,1 - entries: - - ref: CR_GBT_MON - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - ref: TTC_BUSY_ACCEPTED - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 31..0 - desc: read emu ram data - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0,1 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_TRANSCEIVER_POLARITY - bitfield: - - range: 47..24 - name: TXPOLARITY - desc: "0: default polarity, 1: reversed polarity for transmitter of GTH channels" - default: 0 - - range: 23..0 - name: RXPOLARITY - desc: "0: default polarity, 1: reversed polarity for the receiver of the GTH channels" - default: 0 - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - default: 0x1 - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 - - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 diff --git a/sources/templates/yaml/registers-3.7.yaml b/sources/templates/yaml/registers-3.7.yaml deleted file mode 100644 index ee1fdf6f147ec827b5f20acefc1240e21ef40656..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.7.yaml +++ /dev/null @@ -1,1725 +0,0 @@ -Registers: - version: '3.7' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 52 - name: BUSY_SW_ONOFF - default: 0 - desc: Insert busy signal from software side - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: COMMA_CHAR - desc: Idle character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0FA - desc: -K.28.5 - - range: 17..8 - name: P - default: 0x305 - desc: +K.28.5 - - range: 7..0 - name: BYTE - default: 0xBC - desc: K28.5 - - - name: SOC_CHAR - desc: Start of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F9 - desc: -K.28.1 - - range: 17..8 - name: P - default: 0x306 - desc: +K.28.1 - - range: 7..0 - name: BYTE - default: 0x3C - desc: K28.1 - - - name: EOC_CHAR - desc: End of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F6 - desc: -K.28.6 - - range: 17..8 - name: P - default: 0x309 - desc: +K.28.6 - - range: 7..0 - name: BYTE - default: 0xDC - desc: K28.6 - - - name: SOB_CHAR - desc: Start of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F5 - desc: -K.28.2 - - range: 17..8 - name: P - default: 0x30A - desc: +K.28.2 - - range: 7..0 - name: BYTE - default: 0x5C - desc: K28.2 - - - name: EOB_CHAR - desc: End of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F3 - desc: -K.28.3 - - range: 17..8 - name: P - default: 0x30C - desc: +K.28.3 - - range: 7..0 - name: BYTE - default: 0x7C - desc: K28.3 - - - - - name: FM_EMU_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: FM_EMU_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x2000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - ref: TTC_BUSY_ACCEPTED - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 31..0 - desc: read emu ram data - - - ref: CR_XOFF_CTRL - offset: 0x2800 - desc: Configure FromHost Xoff - - - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x000000002aaa8006 - - 0x000000002aaa8078 - - 0x000000002aaa8001 - - 0x000000002aaaff80 - - 0x000000002aaae628 - - 0x000000002aaa99d0 - - 0x0000000020004000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x0000088888888006 - - 0x0000088888888078 - - 0x0000088888888001 - - 0x000008888888ff80 - - 0x000008888888e628 - - 0x00000888888899d0 - - 0x0000080000004000 - -CR_XOFF_CTRL: - number: 24 - type: W - bitfield: - - range: 39..0 - entries: - - name: FROMHOST_XOFF_ENABLE_{index:02} - desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff - range: 39..0 - default: 0 - - name: FROMHOST_SOFT_XOFF_{index:02} - desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared - range: 39..0 - default: 0 - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: MARK_FOR_DELETION - format_name: MARK_FOR_DELETION_{index:02} - type: R - bitfield: - - range: 0 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0,1 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_TRANSCEIVER_POLARITY - bitfield: - - range: 47..24 - name: TXPOLARITY - desc: "0: default polarity, 1: reversed polarity for transmitter of GTH channels" - default: 0 - - range: 23..0 - name: RXPOLARITY - desc: "0: default polarity, 1: reversed polarity for the receiver of the GTH channels" - default: 0 - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - default: 0x1 - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 - - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 diff --git a/sources/templates/yaml/registers-3.8.1.yaml b/sources/templates/yaml/registers-3.8.1.yaml deleted file mode 100644 index 0d99feca0dd1202125c82c71954bbb9addc65605..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.8.1.yaml +++ /dev/null @@ -1,1794 +0,0 @@ -Registers: - version: '3.8.1' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 52 - name: BUSY_SW_ONOFF - default: 0 - desc: Insert busy signal from software side - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: COMMA_CHAR - desc: Idle character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0FA - desc: -K.28.5 - - range: 17..8 - name: P - default: 0x305 - desc: +K.28.5 - - range: 7..0 - name: BYTE - default: 0xBC - desc: K28.5 - - - name: SOC_CHAR - desc: Start of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F9 - desc: -K.28.1 - - range: 17..8 - name: P - default: 0x306 - desc: +K.28.1 - - range: 7..0 - name: BYTE - default: 0x3C - desc: K28.1 - - - name: EOC_CHAR - desc: End of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F6 - desc: -K.28.6 - - range: 17..8 - name: P - default: 0x309 - desc: +K.28.6 - - range: 7..0 - name: BYTE - default: 0xDC - desc: K28.6 - - - name: SOB_CHAR - desc: Start of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F5 - desc: -K.28.2 - - range: 17..8 - name: P - default: 0x30A - desc: +K.28.2 - - range: 7..0 - name: BYTE - default: 0x5C - desc: K28.2 - - - name: EOB_CHAR - desc: End of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F3 - desc: -K.28.3 - - range: 17..8 - name: P - default: 0x30C - desc: +K.28.3 - - range: 7..0 - name: BYTE - default: 0x7C - desc: K28.3 - - - - - name: FM_EMU_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: FM_EMU_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x2000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - ref: TTC_BUSY_ACCEPTED - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 31..0 - desc: read emu ram data - - - ref: CR_XOFF_CTRL - offset: 0x2800 - desc: Configure FromHost Xoff - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x000000002aaa8006 - - 0x000000002aaa8078 - - 0x000000002aaa8001 - - 0x000000002aaaff80 - - 0x000000002aaae628 - - 0x000000002aaa99d0 - - 0x0000000020004000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x0000088888888006 - - 0x0000088888888078 - - 0x0000088888888001 - - 0x000008888888ff80 - - 0x000008888888e628 - - 0x00000888888899d0 - - 0x0000080000004000 - -CR_XOFF_CTRL: - number: 24 - type: W - bitfield: - - range: 39..0 - entries: - - name: FROMHOST_XOFF_ENABLE - format_name: FROMHOST_XOFF_ENABLE_{index:02} - desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff - range: 39..0 - default: 0 - - name: FROMHOST_SOFT_XOFF - format_name: FROMHOST_SOFT_XOFF_{index:02} - desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared - range: 39..0 - default: 0 - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range : 11 - name : TOHOST_RST - desc : reset toHost in ttc decoder - default : 0 - - range : 10 - name : TT_BCH_EN - desc : trigger type enable / disable for TTC-ToHost - default : 1 - - range : 9..2 - name : XL1ID_SW - desc : set XL1ID value, the value to be set by XL1ID_RST signal - default : 0x00 - - range : 1 - name : XL1ID_RST - desc : giving a trigger signal to reset XL1ID value - default : 0 - - range : 0 - name : MASTER_BUSY - desc : L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range : 14..5 - name : TH_FF_COUNT - desc : ToHostData Fifo counts - - range : 4 - name : TH_FF_FULL - desc : ToHostData Fifo status 1:full 0:not full - - range : 3 - name : TH_FF_EMPTY - desc : ToHostData Fifo status 1:empty 0:not empty - - range : 2..0 - name : TTC_BIT_ERR - desc : double bit, single bit and comm error in TTC data - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: MARK_FOR_DELETION - format_name: MARK_FOR_DELETION_{index:02} - type: R - bitfield: - - range: 0 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0,1 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_TRANSCEIVER_POLARITY - bitfield: - - range: 47..24 - name: TXPOLARITY - desc: "0: default polarity, 1: reversed polarity for transmitter of GTH channels" - default: 0 - - range: 23..0 - name: RXPOLARITY - desc: "0: default polarity, 1: reversed polarity for the receiver of the GTH channels" - default: 0 - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - default: 0x1 - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 - - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 diff --git a/sources/templates/yaml/registers-3.8.yaml b/sources/templates/yaml/registers-3.8.yaml deleted file mode 100644 index 17b78c4337008a81e8beb83cef2cb16b69d1e39b..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-3.8.yaml +++ /dev/null @@ -1,1725 +0,0 @@ -Registers: - version: '3.8' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: RD_POINTER - desc: PC Read Pointer - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: READ_WRITE - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: CURRENT_ADDRESS - desc: Current Address - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x4000 - - ref: GBTWrapperControls - offset: 0x5000 - - ref: GBTWrapperMonitors - offset: 0x6000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x7000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC709 - - 710 (0x2c6): HTG710 - - 711 (0x2c7): BNL711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - name: INCLUDE_EPROC16 - type: R - bitfield: - - range: 7 - name: FRHOEPROC2 - desc: FromHost EPROC2 is included in Central Router - - range: 6 - name: FRHOEPROC4 - desc: FromHost EPROC4 is included in Central Router - - range: 5 - name: FRHOEPROC8 - desc: FromHost EPROC8 is included in Central Router - - range: 4 - name: FRHOEPROC16 - desc: FromHost EPROC16 is included in Central Router - - range: 3 - name: TOHOEPROC2 - desc: ToHost EPROC2 is included in Central Router - - range: 2 - name: TOHOEPROC4 - desc: ToHost EPROC4 is included in Central Router - - range: 1 - name: TOHOEPROC8 - desc: ToHost EPROC8 is included in Central Router - - range: 0 - name: TOHOEPROC16 - desc: ToHost EPROC16 is included in Central Router - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: CR_TH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: CR_FH_UPDATE_CTRL - desc: See Central Router Doc - type: T - value: 1 - bitfield: - - range: any - - name: FH_IC_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - ref: TTC_FANOUT_CTRL - desc: Controls the TTC Fanout delay values - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the busy or Logic - type: W - bitfield: - - range: 52 - name: BUSY_SW_ONOFF - default: 0 - desc: Insert busy signal from software side - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: COMMA_CHAR - desc: Idle character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0FA - desc: -K.28.5 - - range: 17..8 - name: P - default: 0x305 - desc: +K.28.5 - - range: 7..0 - name: BYTE - default: 0xBC - desc: K28.5 - - - name: SOC_CHAR - desc: Start of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F9 - desc: -K.28.1 - - range: 17..8 - name: P - default: 0x306 - desc: +K.28.1 - - range: 7..0 - name: BYTE - default: 0x3C - desc: K28.1 - - - name: EOC_CHAR - desc: End of chunk character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F6 - desc: -K.28.6 - - range: 17..8 - name: P - default: 0x309 - desc: +K.28.6 - - range: 7..0 - name: BYTE - default: 0xDC - desc: K28.6 - - - name: SOB_CHAR - desc: Start of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F5 - desc: -K.28.2 - - range: 17..8 - name: P - default: 0x30A - desc: +K.28.2 - - range: 7..0 - name: BYTE - default: 0x5C - desc: K28.2 - - - name: EOB_CHAR - desc: End of busy character in GBT mode datastream - type: W - bitfield: - - range: 27..18 - name: N - default: 0x0F3 - desc: -K.28.3 - - range: 17..8 - name: P - default: 0x30C - desc: +K.28.3 - - range: 7..0 - name: BYTE - default: 0x7C - desc: K28.3 - - - - - name: FM_EMU_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: FM_EMU_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x2000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - ref: TTC_BUSY_ACCEPTED - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 31..0 - desc: read emu ram data - - - ref: CR_XOFF_CTRL - offset: 0x2800 - desc: Configure FromHost Xoff - - - -CR_GBT_CTRL: - number: 24 - type: W - bitfield: - - range: 63..0 - entries: - - ref: EGROUP_TH - - ref: EGROUP_FH - -EGROUP_TH: - number: 7 - format_name: GBT{index:02} - entries: - - name: TH - desc: See Central Router Doc, indices [5,6] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x000000002aaa8006 - - 0x000000002aaa8078 - - 0x000000002aaa8001 - - 0x000000002aaaff80 - - 0x000000002aaae628 - - 0x000000002aaa99d0 - - 0x0000000020004000 - -EGROUP_FH: - number: 5 - format_name: GBT{index:02} - entries: - - name: FH - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - default: - - 0x0000088888888006 - - 0x0000088888888078 - - 0x0000088888888001 - - 0x000008888888ff80 - - 0x000008888888e628 - - 0x00000888888899d0 - - 0x0000080000004000 - -CR_XOFF_CTRL: - number: 24 - type: W - bitfield: - - range: 39..0 - entries: - - name: FROMHOST_XOFF_ENABLE_{index:02} - desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff - range: 39..0 - default: 0 - - name: FROMHOST_SOFT_XOFF_{index:02} - desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared - range: 39..0 - default: 0 - - -IC_FIFOS: - number: 24 - format_name: FH_TH_IC_FIFOS - entries: - - name: FH - format_name: FH_IC_FIFO_{index:02} - type_name: FH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.FH_IC_FIFO_{index:02}.FULL - name: WE - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: FH_IC_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TH - format_name: TH_IC_FIFO_{index:02} - type_name: TH_IC_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.TH_IC_FIFO_{index:02}.EMPTY - name: RE - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: TH_IC_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - name: MARK_FOR_DELETION - format_name: MARK_FOR_DELETION_{index:02} - type: R - bitfield: - - range: 0 - -TTC_FANOUT_CTRL: - number: 24 - format_name: TTC_FANOUT_CTRLS - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Configures the FromHost TTC pipeline in the fanout selector - type: W - bitfield: - - range: 3..0 - default: 0 - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0,1 - number: 24 - bitfield: - - range: 63..0 - entries: - - name: TH - format_name: CR_{name}_GBT{index:02}_MON - - name: FH - format_name: CR_{name}_GBT{index:02}_MON - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_LOGIC_RESET - offset: 0x0400 - bitfield: - - range: 63..0 - desc: Not internally connected (?) - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE - offset: 0x0480 - bitfield: - - range: 59..48 - name: S2312 - desc: RxSlide select [23:12] - - range: 43..32 - name: S1100 - desc: RxSlide select [11:0] - - range: 27..16 - name: M2312 - desc: RxSlide manual [23:12] - - range: 11..0 - name: M1100 - desc: RxSlide manual [11:0] - - - name: GBT_TXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: TxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: TxUsrRdy [11:0] - - - name: GBT_RXUSRRDY - bitfield: - - range: 27..16 - name: B2312 - default: 0xFFF - desc: RxUsrRdy [23:12] - - range: 11..0 - name: B1100 - default: 0xFFF - desc: RxUsrRdy [11:0] - - - name: GBT_GTTX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RESET [5:3] - - range: 27..16 - name: B2312 - desc: GTTX_RESET [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RESET [2:0] - - range: 11..0 - name: B1100 - desc: GTTX_RESET [11:0] - - - name: GBT_GTRX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: GTRX_RESET [23:12] - - range: 11..0 - name: B1100 - desc: GTRX_RESET [11:0] - - - name: GBT_PLL_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL_RESET [5:3] - - range: 27..16 - name: B2312 - desc: CPLL_RESET [23:12] - - range: 14..12 - name: B0200 - desc: QPLL_RESET [2:0] - - range: 11..0 - name: B1100 - desc: CPLL_RESET [11:0] - - - name: GBT_SOFT_TX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_TX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_TX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_TX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_TX_RESET_GT [11:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 30..28 - name: B0503 - desc: SOFT_RX_RESET_ALL [5:3] - - range: 27..16 - name: B2312 - desc: SOFT_RX_RESET_GT [23:12] - - range: 14..12 - name: B0200 - desc: SOFT_RX_RESET_ALL [2:0] - - range: 11..0 - name: B1100 - desc: SOFT_RX_RESET_GT [11:0] - - - name: GBT_ODD_EVEN - offset: 0x0500 - bitfield: - - range: 27..16 - name: B2312 - desc: OddEven [23:12] - - range: 11..0 - name: B1100 - desc: OddEven [11:0] - - - name: GBT_TOPBOT - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot [23:12] - - range: 11..0 - name: B1100 - desc: TopBot [11:0] - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: TX_OPT - - - name: GBT_RX_OPT - bitfield: - - range: 47..0 - default: 0x0000000000555555 - desc: RX_OPT - - - name: GBT_DATA_TXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_TXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_TXFORMAT [23:0] - - - name: GBT_DATA_RXFORMAT - bitfield: - - range: 55..32 - name: B4724 - desc: DATA_RXFORMAT [47:24] - - range: 23..0 - name: B2300 - desc: DATA_RXFORMAT [23:0] - - - name: GBT_TX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: TX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: TX Logic reset [11:0] - - - name: GBT_RX_RESET - bitfield: - - range: 27..16 - name: B2312 - desc: RX Logic reset [23:12] - - range: 11..0 - name: B1100 - desc: RX Logic reset [11:0] - - - name: GBT_TX_TC_METHOD - bitfield: - - range: 27..16 - name: B2312 - desc: TX time domain crossing method [23:12] - - range: 11..0 - name: B1100 - desc: TX time domain crossing method [11:0] - - - name: GBT_OUTMUX_SEL - bitfield: - - range: 27..16 - name: B2312 - desc: Descrambler output MUX selection [23:12] - - range: 11..0 - name: B1100 - desc: Descrambler output MUX selection [11:0] - - - name: GBT_TC_EDGE - bitfield: - - range: 27..16 - name: B2312 - desc: Sampling edge selection for TX domain crossing [23:12] - - range: 11..0 - name: B1100 - desc: Sampling edge selection for TX domain crossing [11:0] - - - name: GBT_TRANSCEIVER_POLARITY - bitfield: - - range: 47..24 - name: TXPOLARITY - desc: "0: default polarity, 1: reversed polarity for transmitter of GTH channels" - default: 0 - - range: 23..0 - name: RXPOLARITY - desc: "0: default polarity, 1: reversed polarity for the receiver of the GTH channels" - default: 0 - - - name: GBT_DNLNK_FO_SEL - offset: 0x0600 - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_UPLNK_FO_SEL - bitfield: - - range: 31..0 - default: 0x00FFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - bitfield: - - range: 27..16 - name: B2312 - desc: TX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX Reset done [11:0] - - - name: GBT_RXRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX Reset done [11:0] - - - name: GBT_TXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: TX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: TX FSM Reset done [11:0] - - - name: GBT_RXFSMRESET_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX FSM Reset done [23:12] - - range: 11..0 - name: B1100 - desc: RX FSM Reset done [11:0] - - - name: GBT_CPLL_FBCLK_LOST - bitfield: - - range: 27..16 - name: B2312 - desc: CPLL FBCLK LOST [23:12] - - range: 11..0 - name: B1100 - desc: CPLL FBCLK LOST [11:0] - - - name: GBT_CPLL_LOCK - bitfield: - - range: 30..28 - name: B0503 - desc: QPLL LOCK [5:3] - - range: 27..16 - name: B2312 - desc: CPLL LOCK [23:12] - - range: 14..12 - name: B0200 - desc: QPLL LOCK [2:0] - - range: 11..0 - name: B1100 - desc: CPLL LOCK [11:0] - - - name: GBT_RXCDR_LOCK - bitfield: - - range: 27..16 - name: B2312 - desc: RX CDR LOCK [23:12] - - range: 11..0 - name: B1100 - desc: RX CDR LOCK [11:0] - - - name: GBT_CLK_SAMPLED - bitfield: - - range: 27..16 - name: B2312 - desc: clk sampled [23:12] - - range: 11..0 - name: B1100 - desc: clk sampled [11:0] - - - name: GBT_RX_IS_HEADER - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS HEADER [23:12] - - range: 11..0 - name: B1100 - desc: RX IS HEADER [11:0] - - - name: GBT_RX_IS_DATA - bitfield: - - range: 27..16 - name: B2312 - desc: RX IS DATA [23:12] - - range: 11..0 - name: B1100 - desc: RX IS DATA [11:0] - - - name: GBT_RX_HEADER_FOUND - bitfield: - - range: 27..16 - name: B2312 - desc: RX HEADER FOUND [23:12] - - range: 11..0 - name: B1100 - desc: RX HEADER FOUND [11:0] - - - name: GBT_ALIGNMENT_DONE - bitfield: - - range: 27..16 - name: B2312 - desc: RX ALIGNMENT DONE [23:12] - - range: 11..0 - name: B1100 - desc: RX ALIGNMENT DONE [11:0] - - - name: GBT_OUT_MUX_STATUS - bitfield: - - range: 27..16 - name: B2312 - desc: GBT output mux status [23:12] - - range: 11..0 - name: B1100 - desc: GBT output mux status [11:0] - - - name: GBT_ERROR - bitfield: - - range: 27..16 - name: B2312 - desc: Error flags [23:12] - - range: 11..0 - name: B1100 - desc: Error flags [11:0] - - - name: GBT_GBT_TOPBOT_C - bitfield: - - range: 27..16 - name: B2312 - desc: TopBot_c [23:12] - - range: 11..0 - name: B1100 - desc: TopBot_c [11:0] - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_CDCE - offset: 0x0200 - type: W - bitfield: - - range: 2 - name: REF_SEL - desc: REF_SEL - - range: 1 - name: PD - desc: PD - - range: 0 - name: SYNC - desc: SYNC - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_FORCE - default: 0x1 - desc: force the use of the Local Clock in any circumstance, overrule automatic clock switch - - range: 2 - type: R - name: AUTOMATIC_CLOCK_SWITCH_ENABLED - desc: 1 when the automatic clock switch is enabled in the design - - range: 1 - type: R - name: OSC_SEL - desc: | - Main MMCM Oscillator Select - 1: TTC clock - 0: Local clock - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: HK_MON - bitfield: - - range: 1 - name: CDCE_PLL_LOCK - desc: CDCE_PLL_LOCK - - range: 0 - name: I2C_ACK_ERROR - desc: i2c_ack_error - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL711 locked - - endpoints: 0,1 - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - endpoints: 0,1 - name: FPGA_ENDPOINT - type: R - bitfield: - - range: 0 - desc: Endpoint of the FPGA - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_2 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#2 - - - name: INT_TEST_3 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#3 - - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 diff --git a/sources/templates/yaml/registers-4.0.yaml b/sources/templates/yaml/registers-4.0.yaml deleted file mode 100644 index 902ab188a25721e2496b6ea7e85299c21dd326ef..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.0.yaml +++ /dev/null @@ -1,1722 +0,0 @@ -Registers: - version: '4.0' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R -# - name: Generators -# record_name: register_map_generators -# bitfield: -# - range: 0..0 -# type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 8 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - ref: CR_XOFF_CTRL - offset: 0x2800 - desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -CR_XOFF_CTRL: - number: 24 - type: W - bitfield: - - range: 39..0 - entries: - - name: FROMHOST_XOFF_ENABLE - format_name: FROMHOST_XOFF_ENABLE_{index:02} - desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff - range: 39..0 - default: 0 - - name: FROMHOST_SOFT_XOFF - format_name: FROMHOST_SOFT_XOFF_{index:02} - desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared - range: 39..0 - default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 52 - name: BUSY_SW_ONOFF - default: 0 - desc: Insert busy signal from software side - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range : 11 - name : TOHOST_RST - desc : reset toHost in ttc decoder - default : 0 - - range : 10 - name : TT_BCH_EN - desc : trigger type enable / disable for TTC-ToHost - default : 1 - - range : 9..2 - name : XL1ID_SW - desc : set XL1ID value, the value to be set by XL1ID_RST signal - default : 0x00 - - range : 1 - name : XL1ID_RST - desc : giving a trigger signal to reset XL1ID value - default : 0 - - range : 0 - name : MASTER_BUSY - desc : L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range : 14..5 - name : TH_FF_COUNT - desc : ToHostData Fifo counts - - range : 4 - name : TH_FF_FULL - desc : ToHostData Fifo status 1:full 0:not full - - range : 3 - name : TH_FF_EMPTY - desc : ToHostData Fifo status 1:empty 0:not empty - - range : 2..0 - name : TTC_BIT_ERR - desc : double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - entries: - - - name: GEN_FM_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: GEN_FM_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 diff --git a/sources/templates/yaml/registers-4.1.yaml b/sources/templates/yaml/registers-4.1.yaml deleted file mode 100644 index 7cbfda333f7091c2b1865a6a893ad9c5d3949e4f..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.1.yaml +++ /dev/null @@ -1,1758 +0,0 @@ -Registers: - version: '4.1' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R -# - name: Generators -# record_name: register_map_generators -# bitfield: -# - range: 0..0 -# type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - ref: CR_XOFF_CTRL - offset: 0x2800 - desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -CR_XOFF_CTRL: - number: 24 - type: W - bitfield: - - range: 39..0 - entries: - - name: FROMHOST_XOFF_ENABLE - format_name: FROMHOST_XOFF_ENABLE_{index:02} - desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff - range: 39..0 - default: 0 - - name: FROMHOST_SOFT_XOFF - format_name: FROMHOST_SOFT_XOFF_{index:02} - desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared - range: 39..0 - default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 52 - name: BUSY_SW_ONOFF - default: 0 - desc: Insert busy signal from software side - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: DMA_BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range : 11 - name : TOHOST_RST - desc : reset toHost in ttc decoder - default : 0 - - range : 10 - name : TT_BCH_EN - desc : trigger type enable / disable for TTC-ToHost - default : 1 - - range : 9..2 - name : XL1ID_SW - desc : set XL1ID value, the value to be set by XL1ID_RST signal - default : 0x00 - - range : 1 - name : XL1ID_RST - desc : giving a trigger signal to reset XL1ID value - default : 0 - - range : 0 - name : MASTER_BUSY - desc : L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range : 14..5 - name : TH_FF_COUNT - desc : ToHostData Fifo counts - - range : 4 - name : TH_FF_FULL - desc : ToHostData Fifo status 1:full 0:not full - - range : 3 - name : TH_FF_EMPTY - desc : ToHostData Fifo status 1:empty 0:not empty - - range : 2..0 - name : TTC_BIT_ERR - desc : double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - entries: - - - name: GEN_FM_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: GEN_FM_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 diff --git a/sources/templates/yaml/registers-4.10.yaml b/sources/templates/yaml/registers-4.10.yaml deleted file mode 100755 index 47b66a13d5246d24e3ddbb9f9ba6b3eab0c91a13..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.10.yaml +++ /dev/null @@ -1,3517 +0,0 @@ -Registers: - version: '4.10' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - - name: Wishbone - record_name: wishbone_monitor - bitfield: - - range: 0..0 - type: R - - name: MRODmonitors - record_name: regmap_mrod_monitor - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - #- name: DMA_FIFO_FLUSH - # type: T - # bitfield: - # - range: any - # desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - offset: 0x420 - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupg controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: Wishbone - offset: 0xC000 - - ref: ITK_STRIPS_CTRL # ITk strips global controls - offset: 0xD000 - - ref: MRODregisters - offset: 0xF000 - - ref: MRODmonitors - offset: 0xF800 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - #- name: BOARD_ID_SVN - # bitfield: - # - range: 15..0 - # value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - # desc: OBSOLETE Board ID SVN Revision - - - name: GIT_COMMIT_TIME - offset: 0x30 - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT or FULL mode Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): FLX709, VC709 - - 710 (0x2c6): FLX710, HTG710 - - 711 (0x2c7): FLX711, BNL711 - - 712 (0x2c8): FLX712, BNL712 - - 128 (0x080): FLX128, VCU128 - - #- name: GBT_MAPPING - # bitfield: - # - range: 7..0 - # desc: | - # OBSOLETE CXP-to-GBT mapping: - # 0: NORMAL CXP1 1-12 CXP2 13-24 - # 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - offset: 0xc0 - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST_GENERATE_TTC_EMU - type: R - bitfield: - - range: 1 - type: R - desc: 1 when TTC emulator is generated - - #- range: 0 - # type: R - # name: TTC_TEST_MODE - # desc: OBSOLETE 1 when TTC Test mode is anabled - - #- name: CR_INTERNAL_LOOPBACK_MODE - # type: R - # bitfield: - # - range: 0 - # desc: OBSOLETE 1 when Central Router internal loopback mode is enabled - - - offset: 0x100 - ref: INCLUDE_EGROUPS - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - #- name: DEBUG_MODE - # type: R - # bitfield: - # - range: 0 - # desc: | - # OBSOLETE - # 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - # 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - offset: 0x190 - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - 8: FELIX_MROD mode - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - - name: CHUNK_TRAILER_32B - type: R - desc: Indicator that the chunk trailer is in the new 32-bit format - bitfield: - - range: 0 - - - name: NUMBER_OF_PCIE_ENDPOINTS - type: R - desc: Number of PCIe endpoints on the card. The BNL71x cards have 2 endpoints - bitfield: - - range: 1..0 - -INCLUDE_EGROUPS: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - #- ref: IC_FIFOS - # desc: See Central Router Doc - # offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - offset: 0x1700 - - #- name: CR_FALLBACK_OPTIONS - # desc: OBSOLETE Julias personal register with Hello Kitty options - # type: W - # bitfield: - # - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - offset: 0x1a10 - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 1 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 1 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 1 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 1 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 1 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 1 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 1 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 1 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - #- name: CR_STATIC_CONFIGURATION - # type: R - # bitfield: - # - range: 0 - #- ref: CR_DEFAULT_EPROC_ENA_G - #- ref: CR_DEFAULT_EPROC_ENCODING_G - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - offset: 0x3410 - bitfield: - - range: 31..0 - - - name: ELINK_REALIGNMENT - type: W - bitfield: - - range: any - name: CLEAR_REALIGNMENT_STATUS - type: T - value: 1 - desc: Clears the ELINK Realignment event flags - - range: 0 - name: ENABLE - default: 1 - desc: Enable realignment mechanism in 8b10b E-Links after illegal character reception. - - - ref: ELINK_REALIGNMENT_STATUS_GEN - - - name: FULLMODE_32B_SOP - type: W - desc: When set to 1, use 32-bit 0x0000003C as start of chunk, otherwise only 8-bit 0x3C (FULL mode only) - bitfield: - - range: 0 - default: 0 - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: GBT_NUM > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -# ----------------------- ITk strips link configuration start ----------------------- - -ITK_STRIPS_CTRL: - entries: - - name: GLOBAL_STRIPS_CONFIG - desc: Synchronous trigger for all LCB links on device - type: W - bitfield: - - range: 15..11 - type: W - name: TEST_MODULE_MASK - desc: (for tests only) contains R3 mask for the simulated trigger data - default: 0x0 - - range: 10..4 - type: W - name: TEST_R3L1_TAG - desc: (for tests only) contains R3 or L1 tag for the simulated trigger data - default: 0x0 - - range: 1 - type: W - name: TTC_GENERATE_GATING_ENABLE - desc: Global control for gating signal generation. Enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - default: 0x0 - - name: GLOBAL_TRICKLE_TRIGGER - type: T - bitfield: - - range: any - value: 1 - desc: writing to this register issues a single trickle trigger for every LCB link connected to this FELIX device - - - ref: ITK_STRIPS_GBT - - - name: STRIPS_R3_TRIGGER - type: T - bitfield: - - range: any - value: 1 - desc: (for tests only) simulate R3 trigger (issues 4-5 sequential triggers) - - name: STRIPS_L1_TRIGGER - type: T - bitfield: - - range: any - desc: (for tests only) simulate L1 trigger (issues 4-5 sequential triggers) - value: 1 - - name: STRIPS_R3L1_TRIGGER - type: T - bitfield: - - range: any - desc: (for tests only) simulate simultaneous R3 and L1 trigger (issues 4-5 sequential triggers) - value: 1 - -ITK_STRIPS_GBT: - number: 4 - format_name: STRIPS - generate: (GBT_NUM > {index:1} and FIRMWARE_MODE = 5) - entries: - - ref: ITK_STRIPS_LCB_LINKS - - ref: ITK_STRIPS_R3L1_LINKS - -ITK_STRIPS_LCB_LINKS: - number: 4 - format_name: ITK_STRIPS_LCB_LINKS_{index:02} - type_name: ITK_LCB_LINK - entries: - - name: LCB - format_name: CR_{parent}_{name}_{index} - type_name: LCB_CTRL - desc: Determines LCB link configuration - type: W - bitfield: - - range: 49..38 - type: W - name: L0A_BCR_DELAY - default: 0x0 - desc: TTC BCR signal will be delayed by this many BCs - - range: 37..34 - type: W - name: L0A_FRAME_DELAY - default: 0x0 - desc: | - By how many BCs to delay an L0A frame. Updating this register may result in brief loss of LCB lock, - and some TTC L0A frames may be lost. Don't adjust this parameter while taking data. - - range: 33..32 - type: W - name: FRAME_PHASE - default: 0x0 - desc: phase of LCB frame with respect to TTC BCR signal - - range: 31..20 - type: W - name: TRICKLE_BC_START - default: 0x0 - desc: Determines the start of the allowed BC interval for low-priority LCB frames - - range: 19..8 - type: W - name: TRICKLE_BC_STOP - default: 0x0 - desc: Determines the end of the allowed BC interval for low-priority LCB frames - - range: 5..4 - type: W - name: LCB_DESTINATION_MUX - default: 0x0 - desc: | - Determines where the elink data is sent to: - 00: command decoder (use same command encoding format as trickle configuration) - 01: trickle memory (see phase2 documentation for command encoding format) - 10: directly to LCB link (expecting software-encoded HCC*/ABC* frames) - 11: (invalid, don't use) - - range: 3 - type: W - name: TRICKLE_TRIG_RUN - default: 0x0 - desc: | - if enabled, trickle configuration is sent out continuously to the front-end - (use together with TTC_GENERATE_GATING_EN for sending trickle configuration - continuously during a specified BC range. See also BC_START, and BC_STOP fields.) - - range: 2 - type: W - name: TTC_L0A_ENABLE - default: 0x0 - desc: enable generating L0A frames in response to TTC system signals - - range: 0 - type: W - name: TTC_GENERATE_GATING_ENABLE - default: 0x0 - desc: | - enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - - name: TRICKLE_TRIGGER - format_name: CR_{parent}_{name}_{index} - type_name: TRICKLE_TRIGGER - type: T - bitfield: - - range: any - desc: writing to this register issues a single trickle trigger - value: 1 - - name: TRICKLE_MEMORY_CONFIG - format_name: CR_{parent}_{name}_{index} - type_name: LCB_TRICKLE_CONFIG - desc: Trickle trigger configuration - type: W - bitfield: - - range: any - type: T - name: MOVE_WRITE_PTR - value: 1 - desc: | - Writing to this register moves trickle configuration memory write pointer to WRITE_PTR address - - range: 47..32 - type: W - name: WRITE_PTR - default: 0x0 - desc: Trickle configuration memory write pointer - - range: 31..16 - type: W - name: VALID_DATA_START - default: 0x0 - desc: Start address of trickle configuration in trickle memory - - range: 15..0 - type: W - name: VALID_DATA_END - default: 0x0 - desc: Stop address of trickle configuration in trickle memory (last valid byte) - - name: MODULE_MASK_F_C - format_name: CR_{parent}_{name}_{index} - type_name: HCC_ABC_MASK_E_C - type: W - desc: | - Disables register commands addressed to masked HCC*/ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: HCC_MASK - default: 0x0 - desc: | - HCC* module mask - - range: 47..32 - type: W - name: ABC_MASK_HCC_E - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xE - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_D - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xD - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_C - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xC - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_B_8 - format_name: CR_{parent}_{name}_{index} - type_name: LCB_ABC_MASK_B_8 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_B - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xB - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_A - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xA - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_9 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x9 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_8 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x8 - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_7_4 - format_name: CR_{parent}_{name}_{index} - type_name: LCB_ABC_MASK_7_4 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_7 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x7 - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_6 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x6 - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_5 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x5 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_4 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x4 - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_3_0 - format_name: CR_{parent}_{name}_{index} - type_name: LCB_ABC_MASK_3_0 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_3 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x3 - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_2 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x2 - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_1 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x1 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_0 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x0 - mask(i) <=> (abc_id = i) - - -ITK_STRIPS_R3L1_LINKS: - number: 4 - format_name: ITK_R3L1_LINK_{index:02} - type_name: ITK_R3L1_LINK - entries: - - name: R3L1 - format_name: CR_{parent}_{name}_{index:1} - type_name: R3L1_CTRL - desc: Determines R3L1 link configuration - type: W - bitfield: - - range: 3..2 - type: W - name: FRAME_PHASE - default: 0x0 - desc: phase of R3L1 frame with respect to TTC BCR signal - - range: 1 - type: W - name: L1_ENABLE - default: 0x0 - desc: enables sending TTC L1 signals to the front-end - - range: 0 - type: W - name: R3_ENABLE - default: 0x0 - desc: enables sending RoI R3 signals to the front-end - - -# ----------------------- ITk strips link configuration end ----------------------- - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -#IC_FIFOS: -# number: 24 -# format_name: IC_FROMHOST_TOHOST_FIFOS -# entries: -# - name: FROMHOST -# format_name: IC_FROMHOST_FIFO_{index:02} -# type_name: IC_FROMHOST_FIFO -# type: W -# generate: GBT_NUM > {index:1} -# bitfield: -# - range: any -# type: T -# value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO({index}).FULL -# name: WE -# format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} -# desc: Any write to this register will trigger a write to the FIFO -# - range: 8 -# type: R -# name: FULL -# format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} -# desc: Full flag of the fifo, do not write if 1 -# - range: 7..0 -# type: W -# name: DATAIN -# format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} -# desc: Data input of fifo -# - name: TOHOST -# format_name: IC_TOHOST_FIFO_{index:02} -# type_name: IC_TOHOST_FIFO -# type: W -# generate: GBT_NUM > {index:1} -# bitfield: -# - range: any -# type: T -# value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO({index}).EMPTY -# name: RE -# format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} -# desc: Any write to this register will trigger a read enable from the fifo -# - range: 8 -# type: R -# name: EMPTY -# format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} -# desc: Empty flag of the fifo, do not read if 1 -# - range: 7..0 -# type: R -# name: DATAOUT -# format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} -# desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: GBT_NUM > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: CR_TOHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: GBT_NUM > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: CR_FROMHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: GBT_NUM > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -ELINK_REALIGNMENT_STATUS_GEN: - endpoints: 0, 1 - number: 12 - entries: - - name: ELINK_REALIGNMENT_STATUS - type_name: ELINK_REALIGNMENT_STATUS - format_name: ELINK_REALIGNMENT_STATUS_{index:02} - generate: GBT_NUM > {index:1} - desc: | - A realignment event due to an illegal 8b10b symbol has occurred. - 1 bit per Epath. - Clear status by writing to ELINK_REALIGNMENT.CLEAR_REALIGNMENT_STATUS - bitfield: - - range: 41..0 - - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0, 1 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 23..0 - desc: FULL mode CR enable array, every bit is one path - - - ref: PATH_HAS_STREAM_ID - -PATH_HAS_STREAM_ID: - number: 24 - generate: GBT_NUM > {index:1} - entries: - - name: TOHOST - format_name: LINK_{index:02}_HAS_STREAM_ID - type_name: HAS_STREAM_ID - type: W - bitfield: - - range: 55..48 - name: EGROUP6 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 47..40 - name: EGROUP5 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 39..32 - name: EGROUP4 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 31..24 - name: EGROUP3 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 23..16 - name: EGROUP2 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 15..8 - name: EGROUP1 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 7..0 - name: EGROUP0 - default: 0x0 - desc: EPATH is associated with a STREAM ID, use only bit0 for FULL mode. - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: FULLMODE_AUTO_RX_RESET - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: Enable the Automatic RX Reset mechanism - - range: 31..0 - name: TIMEOUT - default: 0x00100000 - desc: Number of 40 MHz clock cycles until an unaligned link results in a reset pulse - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED_G - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: 33 - name: BUSY_IN_ENABLE - desc: Enable internal BUSY input to stop L1A on BUSY - default: 1 - - range: 32..27 - name: BROADCAST - desc: Broadcast data - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - - name: TTC_EMU_L1A_PERIOD - type: W - desc: L1A period in BC. 0 means manual L1A with TTC_EMU_CONTROL.L1A - bitfield: - - range: 31..0 - - - name: TTC_EMU_ECR_PERIOD - type: W - desc: ECR period in BC. 0 means manual ECR with TTC_EMU_CONTROL.ECR - bitfield: - - range: 31..0 - - - name: TTC_EMU_BCR_PERIOD - type: W - desc: BCR period in BC. 0 means manual BCR with TTC_EMU_CONTROL.BCR - bitfield: - - range: 31..0 - default: 3564 - - - name: TTC_EMU_LONG_CHANNEL_DATA - type: W - desc: Long channel data for the TTC emulator - bitfield: - - range: 31..0 - - - name: TTC_EMU_RESET - desc: Any write to this register resets the TTC Emulator to the default state. - type: W - bitfield: - - range: any - value: 1 - type: T - - - name: TTC_L1ID_MONITOR - desc: Monitor L1ID and XL1ID. - type: R - bitfield: - - range: 31..0 - - - name: TTC_ECR_MONITOR - desc: Counts the number of ECRs received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_TTYPE_MONITOR - desc: Counts the number of TType received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_PERIODICITY_MONITOR - desc: Counts the number of times the BCR period does not match 3564, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_COUNTER - desc: Counts the number of times BCR is issued, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 30..27 - name: B_CHAN_DELAY - type: W - desc: Number of BC to delay the L1A distribution to the frontends - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: TTC_BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - type_name: TTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the low threshold of the channel fifo in FULL mode on which - an Xon will be asserted, bitfields control 4 MSB - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the high threshold of the channel fifo in FULL mode on which - an Xoff will be asserted, bitfields control 4 MSB - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 23..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 47..24 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 23..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 47..24 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 23..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - ref: XOFF_STATISTICS - - -ELINK_BUSY_ENABLE: - number: 24 - endpoints: 0 - type: W - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - type_name: ELINK_BUSY_ENABLE - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - bitfield: - - range: 56..0 - default: 0 - -XOFF_STATISTICS: - number: 24 - endpoints: 0,1 - type: R - entries: - - name: XOFF_PEAK_DURATION - format_name: XOFF_PEAK_DURATION{index:02} - type_name: XOFF_PEAK_DURATION - desc: Maximum occurred duration of XOFF on the given channel in 25ns bins since reset - bitfield: - - range: 63..0 - - name: XOFF_TOTAL_DURATION - format_name: XOFF_TOTAL_DURATION{index:02} - type_name: XOFF_TOTAL_DURATION - desc: Total occurred duration of XOFF on the given channel in 25ns bins, divide by number of Xoffs to calculate the average since reset - bitfield: - - range: 63..0 - - name: XOFF_COUNT - format_name: XOFF_COUNT{index:02} - type_name: XOFF_COUNT - desc: Total number of XOFF events per channel that occurred since a reset. - bitfield: - - range: 63..0 - - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - #- name: SPI_WR - # type: W - # offset: 0x0400 - # bitfield: - # - range: any - # type: T - # value: OBSOLETE not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - # name: SPI_WREN - # desc: Any write to this register triggers an SPI Write - # - range: 32 - # type: R - # name: SPI_FULL - # desc: OBSOLETE SPI FIFO Full - # - range: 31..0 - # type: W - # name: SPI_DIN - # desc: OBSOLETE SPI WRITE Data - # - #- name: SPI_RD - # type: T - # bitfield: - # - range: any - # type: T - # value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - # name: SPI_RDEN - # desc: OBSOLETE Any write to this register pops the last SPI data from the FIFO - # - range: 32 - # type: R - # name: SPI_EMPTY - # desc: OBSOLETE SPI FIFO Empty - # - range: 31..0 - # type: R - # name: SPI_DOUT - # desc: OBSOLETE SPI READ Data - - - name: I2C_WR - type: W - offset: 0x420 - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - #- name: DEBUG_PORT_GBT - # offset: 0x0500 - # type: W - # bitfield: - # - range: 6..0 - # desc: OBSOLETE Debug GBT data bit N (119..0) on SMA HTGx#3 - - #- name: DEBUG_PORT_CLK - # type: W - # bitfield: - # - range: 3..0 - # desc: OBSOLETE Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST - offset: 0x0800 - type: W - value: 1 - bitfield: - - name: TRIGGER - type: T - range: any - desc: Fire a test MSIx interrupt set in IRQ - - name: IRQ - type: W - range: 3..0 - desc: Set this field to a value equal to the MSIX interrupt to be fired. The write triggers the interrupt immediately. - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - - - name: RXUSRCLK_FREQ - type: W - bitfield: - - range: 38 - name: VALID - type: R - desc: Indicates that the frequency measurement is valid - - range: 37..32 - name: CHANNEL - type: W - desc: Select the Transceiver channel to measure the clock from. - - range: 31..0 - name: VAL - type: R - desc: Frequency in Hz of the selected channel - - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS - entries: - - name: FELIG_L1ID_RESET - type: W - desc: Any write to this register clears the FELIG L1ID - bitfield: - - range: any - type: T - value: 1 - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - ref: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR - - ref: FELIG_MON_ITK_STRIPS_ARR - - - name: FMEMU_EVENT_INFO - type: R - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 48 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 1 - desc: Enable Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: CONSTANT_CHUNK_LENGTH - default: 0 - desc: | - Data source select - 0: Random chunk length - 1: Constant chunk length - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 0 - type: W - name: FE_BUSY_ENABLE - default: 1 - desc: Enable the BUSY mechanism if L1A counter passes threshold - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - - name: FMEMU_CONFIG_WRADDR - type: W - bitfield: - - range: 9..0 - value: 0 - desc: write enable for the FMEmu ram block - - - name: FMEMU_CONFIG - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to register WRDATA triggers a write to the ramblock - - range: 55..32 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 31..0 - name: WRDATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - -FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - format_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - desc: ITk Strips emulator specific configuration test registers - bitfield: - - name: ITKS_FIFO_CTL - range: 19..17 - default: 0 - desc: data fifo control 2:rst 1:rd 0:wr. - - name: ITKS_FIFO_DATA - range: 16..0 - default: 0 - desc: itks emu data 16:last word 15-0:data word - -FELIG_MON_ITK_STRIPS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_ITK_STRIPS - format_name: FELIG_MON_ITK_STRIPS_{index:02} - type_name: FELIG_MON_ITK_STRIPS - desc: ITk Strips emulator specific status registers - bitfield: - - name: ITKS_FIFO_STATUS - range: 2..0 - default: 0 - desc: data fifo status 2:write done 1:full 0:empty. - - - -Wishbone: - desc: Wishbone - endpoints: 0 - entries: - - name: WISHBONE_CONTROL - type: W - bitfield: - - range: 32 - name: WRITE_NOT_READ - desc: wishbone write command wishbone read command - - range: 31..0 - name: ADDRESS - desc: Slave address for Wishbone bus - - name: WISHBONE_WRITE - type: T - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to Wishbone fifo - - range: 32 - name: FULL - type: R - - range: 31..0 - name: DATA - type: W - - name: WISHBONE_READ - type: T - bitfield: - - range: any - type: T - value: 1 - name: READ_ENABLE - desc: Any write to this register triggers a read from the Wishbone to Wupper fifo - - range: 32 - name: EMPTY - type: R - desc: Indicates that the Wishbone to Wupper fifo is empty - - range: 31..0 - name: DATA - type: R - desc: Wishbone read data - - name: WISHBONE_STATUS - type: R - bitfield: - - range: 4 - name: INT - desc: interrupt - - range: 3 - name: RETRY - desc: Interface is not ready to accept data cycle should be retried - - range: 2 - name: STALL - desc: When pipelined mode slave can't accept additional transactions in its queue - - range: 1 - name: ACKNOWLEDGE - desc: Indicates the termination of a normal bus cycle - - range: 0 - name: ERROR - desc: Address not mapped by the crossbar - -MRODregisters: - group: MROD_CONTROL - desc: Specific registers for MROD - endpoints: 0 - generate: MROD_GENERATE_REGS - entries: - - name: MROD_CTRL - type: W - bitfield: - - range: 15..8 - name: OPTIONS - default: 0 - desc: Extra options for MROD - - range: 7..7 - name: ENASPARE1 - default: 0 - desc: Enable spare1 - - range: 6..6 - name: ENAMANSLIDE - default: 0 - desc: Enable Manual Slide in Rx Locking - - range: 5..5 - name: ENAPASSALL - default: 0 - desc: Enable PassAll in EmptySuppress - - range: 4..4 - name: ENATXCOUNT - default: 0 - desc: Enable SimpleCount in TxDriver for locking - - range: 3..0 - name: GOLTESTMODE - default: 0 - desc: | - GOL Test Mode (emulate CSM): - 0: Run Data Emulator when 1; 0: stop, load emulator fifo - 1: Enable Circulate when 1; 0: send fifo data only once - 2: Enable Triggered Mode when 1; 0: run continueously (no TTC) - 3: Enable pattern generator - - name: MROD_TCVRCTRL - type: W - bitfield: - - range: 23..16 - name: SLIDEMAX - default: 0xFF - desc: Maximum RXSLIDES before fire a TCVR reset - - range: 15..8 - name: SLIDEWAIT - default: 32 - desc: RXclk delay in TCVR for next RX_SLIDE operation - - range: 7..0 - name: FRAMESIZE - default: 20 - desc: Number of 32 data words in 1 frame - - name: MROD_EP0_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP0 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP0_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP0 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP0_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP0 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP0_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP0 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP0_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP0 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP0_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP0_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP0_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP0_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transmitter Reset channel 23-0 - default: 0 - - name: MROD_EP1_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP1 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP1_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP1 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP1_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP1 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP1_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP1 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP1_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP1 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP1_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP1_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP1_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP1_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transmitter Reset channel 23-0 - default: 0 - -MRODmonitors: - group: MROD_MONITOR - desc: Specific registers for MROD - endpoints: 0 - generate: MROD_GENERATE_REGS - entries: - - name: MROD_EP0_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Empty 23-0 - - name: MROD_EP0_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Full 23-0 - - name: MROD_EP0_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Aligned monitor 23-0 - - name: MROD_EP0_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Data monitor 23-0 - - name: MROD_EP0_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Idle monitor 23-0 - - name: MROD_EP0_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP0 Transmitter Locked monitor 23-0 - - name: MROD_EP1_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Empty 23-0 - - name: MROD_EP1_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Full 23-0 - - name: MROD_EP1_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Aligned monitor 23-0 - - name: MROD_EP1_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Data monitor 23-0 - - name: MROD_EP1_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Idle monitor 23-0 - - name: MROD_EP1_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP1 Transmitter Locked monitor 23-0 - -# diff --git a/sources/templates/yaml/registers-4.11.yaml b/sources/templates/yaml/registers-4.11.yaml deleted file mode 100644 index 72db6fe630d9a112cd4450e8621fb13a2bffda63..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.11.yaml +++ /dev/null @@ -1,3567 +0,0 @@ -Registers: - version: '4.11' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - - name: Wishbone - record_name: wishbone_monitor - bitfield: - - range: 0..0 - type: R - - name: MRODmonitors - record_name: regmap_mrod_monitor - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - #- name: DMA_FIFO_FLUSH - # type: T - # bitfield: - # - range: any - # desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - offset: 0x420 - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - - - name: TOHOSTFIFO_EMPTY - type: R - desc: Empty flags of the ToHost FIFOs in Wupper - bitfield: - - range: 3..0 - - - name: TOHOSTFIFO_PEMPTY - type: R - desc: Programmable empty flags of the ToHost FIFOs in Wupper - bitfield: - - range: 3..0 - - - name: FROMHOSTFIFO_FULL - type: R - desc: Full flag of the FromHost FIFO in Wupper - bitfield: - - range: 0 - - - name: FROMHOSTFIFO_PFULL - type: R - desc: Programmable full flag of the FromHost FIFO in Wupper - bitfield: - - range: 0 - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - type: R - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupg controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: Wishbone - offset: 0xC000 - - ref: ITK_STRIPS_CTRL # ITk strips global controls - offset: 0xD000 - - ref: MRODregisters - offset: 0xF000 - - ref: MRODmonitors - offset: 0xF800 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - #- name: BOARD_ID_SVN - # bitfield: - # - range: 15..0 - # value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - # desc: OBSOLETE Board ID SVN Revision - - - name: GIT_COMMIT_TIME - offset: 0x30 - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT or FULL mode Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): FLX709, VC709 - - 710 (0x2c6): FLX710, HTG710 - - 711 (0x2c7): FLX711, BNL711 - - 712 (0x2c8): FLX712, BNL712 - - 128 (0x080): FLX128, VCU128 - - #- name: GBT_MAPPING - # bitfield: - # - range: 7..0 - # desc: | - # OBSOLETE CXP-to-GBT mapping: - # 0: NORMAL CXP1 1-12 CXP2 13-24 - # 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - offset: 0xc0 - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST_GENERATE_TTC_EMU - type: R - bitfield: - - range: 1 - type: R - desc: 1 when TTC emulator is generated - - #- range: 0 - # type: R - # name: TTC_TEST_MODE - # desc: OBSOLETE 1 when TTC Test mode is anabled - - #- name: CR_INTERNAL_LOOPBACK_MODE - # type: R - # bitfield: - # - range: 0 - # desc: OBSOLETE 1 when Central Router internal loopback mode is enabled - - - offset: 0x100 - ref: INCLUDE_EGROUPS - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - #- name: DEBUG_MODE - # type: R - # bitfield: - # - range: 0 - # desc: | - # OBSOLETE - # 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - # 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - offset: 0x190 - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - 8: FELIX_MROD mode - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - - name: CHUNK_TRAILER_32B - type: R - desc: Indicator that the chunk trailer is in the new 32-bit format - bitfield: - - range: 0 - - - name: NUMBER_OF_PCIE_ENDPOINTS - type: R - desc: Number of PCIe endpoints on the card. The BNL71x cards have 2 endpoints - bitfield: - - range: 1..0 - -INCLUDE_EGROUPS: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - #- ref: IC_FIFOS - # desc: See Central Router Doc - # offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - offset: 0x1700 - - #- name: CR_FALLBACK_OPTIONS - # desc: OBSOLETE Julias personal register with Hello Kitty options - # type: W - # bitfield: - # - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - offset: 0x1a10 - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 1 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 1 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 1 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 1 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 1 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 1 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 1 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 1 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - #- name: CR_STATIC_CONFIGURATION - # type: R - # bitfield: - # - range: 0 - #- ref: CR_DEFAULT_EPROC_ENA_G - #- ref: CR_DEFAULT_EPROC_ENCODING_G - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - offset: 0x3410 - bitfield: - - range: 31..0 - - - name: ELINK_REALIGNMENT - type: W - bitfield: - - range: any - name: CLEAR_REALIGNMENT_STATUS - type: T - value: 1 - desc: Clears the ELINK Realignment event flags - - range: 0 - name: ENABLE - default: 1 - desc: Enable realignment mechanism in 8b10b E-Links after illegal character reception. - - - ref: ELINK_REALIGNMENT_STATUS_GEN - - - name: FULLMODE_32B_SOP - type: W - desc: When set to 1, use 32-bit 0x0000003C as start of chunk, otherwise only 8-bit 0x3C (FULL mode only) - bitfield: - - range: 0 - default: 0 - - - name: FE_EMU_LOGIC - type: W - bitfield: - - range: 33 - name: L1A_TRIGGERED - desc: 1 Send a chunk on every L1A, 0 use the IDLES to determine the rate - - range: 32 - name: ENA - desc: Enable logic based FrontEnd emulator, instead of RAM based. - - range: 31..16 - name: IDLES - desc: Number of IDLE bytes between chunks. - - range: 15..0 - name: CHUNK_LENGTH - desc: Chunk length in bytes - - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: GBT_NUM > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -# ----------------------- ITk strips link configuration start ----------------------- - -ITK_STRIPS_CTRL: - entries: - - name: GLOBAL_STRIPS_CONFIG - desc: Synchronous trigger for all LCB links on device - type: W - bitfield: - - range: 15..11 - type: W - name: TEST_MODULE_MASK - desc: (for tests only) contains R3 mask for the simulated trigger data - default: 0x0 - - range: 10..4 - type: W - name: TEST_R3L1_TAG - desc: (for tests only) contains R3 or L1 tag for the simulated trigger data - default: 0x0 - - range: 1 - type: W - name: TTC_GENERATE_GATING_ENABLE - desc: Global control for gating signal generation. Enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - default: 0x0 - - name: GLOBAL_TRICKLE_TRIGGER - type: T - bitfield: - - range: any - value: 1 - desc: writing to this register issues a single trickle trigger for every LCB link connected to this FELIX device - - - ref: ITK_STRIPS_GBT - - - name: STRIPS_R3_TRIGGER - type: T - bitfield: - - range: any - value: 1 - desc: (for tests only) simulate R3 trigger (issues 4-5 sequential triggers) - - name: STRIPS_L1_TRIGGER - type: T - bitfield: - - range: any - desc: (for tests only) simulate L1 trigger (issues 4-5 sequential triggers) - value: 1 - - name: STRIPS_R3L1_TRIGGER - type: T - bitfield: - - range: any - desc: (for tests only) simulate simultaneous R3 and L1 trigger (issues 4-5 sequential triggers) - value: 1 - -ITK_STRIPS_GBT: - number: 4 - format_name: STRIPS - generate: (GBT_NUM > {index:1} and FIRMWARE_MODE = 5) - entries: - - ref: ITK_STRIPS_LCB_LINKS - - ref: ITK_STRIPS_R3L1_LINKS - -ITK_STRIPS_LCB_LINKS: - number: 4 - format_name: ITK_STRIPS_LCB_LINKS_{index:02} - type_name: ITK_LCB_LINK - entries: - - name: LCB - format_name: CR_{parent}_{name}_{index} - type_name: LCB_CTRL - desc: Determines LCB link configuration - type: W - bitfield: - - range: 49..38 - type: W - name: L0A_BCR_DELAY - default: 0x0 - desc: TTC BCR signal will be delayed by this many BCs - - range: 37..34 - type: W - name: L0A_FRAME_DELAY - default: 0x0 - desc: | - By how many BCs to delay an L0A frame. Updating this register may result in brief loss of LCB lock, - and some TTC L0A frames may be lost. Don't adjust this parameter while taking data. - - range: 33..32 - type: W - name: FRAME_PHASE - default: 0x0 - desc: phase of LCB frame with respect to TTC BCR signal - - range: 31..20 - type: W - name: TRICKLE_BC_START - default: 0x0 - desc: Determines the start of the allowed BC interval for low-priority LCB frames - - range: 19..8 - type: W - name: TRICKLE_BC_STOP - default: 0x0 - desc: Determines the end of the allowed BC interval for low-priority LCB frames - - range: 5..4 - type: W - name: LCB_DESTINATION_MUX - default: 0x0 - desc: | - Determines where the elink data is sent to: - 00: command decoder (use same command encoding format as trickle configuration) - 01: trickle memory (see phase2 documentation for command encoding format) - 10: directly to LCB link (expecting software-encoded HCC*/ABC* frames) - 11: (invalid, don't use) - - range: 3 - type: W - name: TRICKLE_TRIG_RUN - default: 0x0 - desc: | - if enabled, trickle configuration is sent out continuously to the front-end - (use together with TTC_GENERATE_GATING_EN for sending trickle configuration - continuously during a specified BC range. See also BC_START, and BC_STOP fields.) - - range: 2 - type: W - name: TTC_L0A_ENABLE - default: 0x0 - desc: enable generating L0A frames in response to TTC system signals - - range: 0 - type: W - name: TTC_GENERATE_GATING_ENABLE - default: 0x0 - desc: | - enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - - name: TRICKLE_TRIGGER - format_name: CR_{parent}_{name}_{index} - type_name: TRICKLE_TRIGGER - type: T - bitfield: - - range: any - desc: writing to this register issues a single trickle trigger - value: 1 - - name: TRICKLE_MEMORY_CONFIG - format_name: CR_{parent}_{name}_{index} - type_name: LCB_TRICKLE_CONFIG - desc: Trickle trigger configuration - type: W - bitfield: - - range: any - type: T - name: MOVE_WRITE_PTR - value: 1 - desc: | - Writing to this register moves trickle configuration memory write pointer to WRITE_PTR address - - range: 47..32 - type: W - name: WRITE_PTR - default: 0x0 - desc: Trickle configuration memory write pointer - - range: 31..16 - type: W - name: VALID_DATA_START - default: 0x0 - desc: Start address of trickle configuration in trickle memory - - range: 15..0 - type: W - name: VALID_DATA_END - default: 0x0 - desc: Stop address of trickle configuration in trickle memory (last valid byte) - - name: MODULE_MASK_F_C - format_name: CR_{parent}_{name}_{index} - type_name: HCC_ABC_MASK_E_C - type: W - desc: | - Disables register commands addressed to masked HCC*/ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: HCC_MASK - default: 0x0 - desc: | - HCC* module mask - - range: 47..32 - type: W - name: ABC_MASK_HCC_E - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xE - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_D - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xD - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_C - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xC - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_B_8 - format_name: CR_{parent}_{name}_{index} - type_name: LCB_ABC_MASK_B_8 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_B - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xB - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_A - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xA - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_9 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x9 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_8 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x8 - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_7_4 - format_name: CR_{parent}_{name}_{index} - type_name: LCB_ABC_MASK_7_4 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_7 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x7 - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_6 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x6 - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_5 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x5 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_4 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x4 - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_3_0 - format_name: CR_{parent}_{name}_{index} - type_name: LCB_ABC_MASK_3_0 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_3 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x3 - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_2 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x2 - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_1 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x1 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_0 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x0 - mask(i) <=> (abc_id = i) - - -ITK_STRIPS_R3L1_LINKS: - number: 4 - format_name: ITK_R3L1_LINK_{index:02} - type_name: ITK_R3L1_LINK - entries: - - name: R3L1 - format_name: CR_{parent}_{name}_{index:1} - type_name: R3L1_CTRL - desc: Determines R3L1 link configuration - type: W - bitfield: - - range: 3..2 - type: W - name: FRAME_PHASE - default: 0x0 - desc: phase of R3L1 frame with respect to TTC BCR signal - - range: 1 - type: W - name: L1_ENABLE - default: 0x0 - desc: enables sending TTC L1 signals to the front-end - - range: 0 - type: W - name: R3_ENABLE - default: 0x0 - desc: enables sending RoI R3 signals to the front-end - - -# ----------------------- ITk strips link configuration end ----------------------- - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -#IC_FIFOS: -# number: 24 -# format_name: IC_FROMHOST_TOHOST_FIFOS -# entries: -# - name: FROMHOST -# format_name: IC_FROMHOST_FIFO_{index:02} -# type_name: IC_FROMHOST_FIFO -# type: W -# generate: GBT_NUM > {index:1} -# bitfield: -# - range: any -# type: T -# value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO({index}).FULL -# name: WE -# format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} -# desc: Any write to this register will trigger a write to the FIFO -# - range: 8 -# type: R -# name: FULL -# format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} -# desc: Full flag of the fifo, do not write if 1 -# - range: 7..0 -# type: W -# name: DATAIN -# format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} -# desc: Data input of fifo -# - name: TOHOST -# format_name: IC_TOHOST_FIFO_{index:02} -# type_name: IC_TOHOST_FIFO -# type: W -# generate: GBT_NUM > {index:1} -# bitfield: -# - range: any -# type: T -# value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO({index}).EMPTY -# name: RE -# format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} -# desc: Any write to this register will trigger a read enable from the fifo -# - range: 8 -# type: R -# name: EMPTY -# format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} -# desc: Empty flag of the fifo, do not read if 1 -# - range: 7..0 -# type: R -# name: DATAOUT -# format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} -# desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: GBT_NUM > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: CR_TOHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: GBT_NUM > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: CR_FROMHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: GBT_NUM > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -ELINK_REALIGNMENT_STATUS_GEN: - endpoints: 0, 1 - number: 12 - entries: - - name: ELINK_REALIGNMENT_STATUS - type_name: ELINK_REALIGNMENT_STATUS - format_name: ELINK_REALIGNMENT_STATUS_{index:02} - generate: GBT_NUM > {index:1} - desc: | - A realignment event due to an illegal 8b10b symbol has occurred. - 1 bit per Epath. - Clear status by writing to ELINK_REALIGNMENT.CLEAR_REALIGNMENT_STATUS - bitfield: - - range: 41..0 - - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0, 1 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 23..0 - desc: FULL mode CR enable array, every bit is one path - - - ref: PATH_HAS_STREAM_ID - -PATH_HAS_STREAM_ID: - number: 24 - generate: GBT_NUM > {index:1} - entries: - - name: TOHOST - format_name: LINK_{index:02}_HAS_STREAM_ID - type_name: HAS_STREAM_ID - type: W - bitfield: - - range: 55..48 - name: EGROUP6 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 47..40 - name: EGROUP5 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 39..32 - name: EGROUP4 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 31..24 - name: EGROUP3 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 23..16 - name: EGROUP2 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 15..8 - name: EGROUP1 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 7..0 - name: EGROUP0 - default: 0x0 - desc: EPATH is associated with a STREAM ID, use only bit0 for FULL mode. - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: FULLMODE_AUTO_RX_RESET - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: Enable the Automatic RX Reset mechanism - - range: 31..0 - name: TIMEOUT - default: 0x00100000 - desc: Number of 40 MHz clock cycles until an unaligned link results in a reset pulse - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED_G - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: 33 - name: BUSY_IN_ENABLE - desc: Enable internal BUSY input to stop L1A on BUSY - default: 1 - - range: 32..27 - name: BROADCAST - desc: Broadcast data - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - - name: TTC_EMU_L1A_PERIOD - type: W - desc: L1A period in BC. 0 means manual L1A with TTC_EMU_CONTROL.L1A - bitfield: - - range: 31..0 - - - name: TTC_EMU_ECR_PERIOD - type: W - desc: ECR period in BC. 0 means manual ECR with TTC_EMU_CONTROL.ECR - bitfield: - - range: 31..0 - - - name: TTC_EMU_BCR_PERIOD - type: W - desc: BCR period in BC. 0 means manual BCR with TTC_EMU_CONTROL.BCR - bitfield: - - range: 31..0 - default: 3564 - - - name: TTC_EMU_LONG_CHANNEL_DATA - type: W - desc: Long channel data for the TTC emulator - bitfield: - - range: 31..0 - - - name: TTC_EMU_RESET - desc: Any write to this register resets the TTC Emulator to the default state. - type: W - bitfield: - - range: any - value: 1 - type: T - - - name: TTC_L1ID_MONITOR - desc: Monitor L1ID and XL1ID. - type: R - bitfield: - - range: 31..0 - - - name: TTC_ECR_MONITOR - desc: Counts the number of ECRs received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_TTYPE_MONITOR - desc: Counts the number of TType received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_PERIODICITY_MONITOR - desc: Counts the number of times the BCR period does not match 3564, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_COUNTER - desc: Counts the number of times BCR is issued, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_EMU_TP_DELAY - desc: Number of BC that the testpulse should be sent before the L1A, 0 means no test pulse is sent - type: W - bitfield: - - range: 31..0 - default: 64 - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 30..27 - name: B_CHAN_DELAY - type: W - desc: Number of BC to delay the L1A distribution to the frontends - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: TTC_BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - type_name: TTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the low threshold of the channel fifo in FULL mode on which - an Xon will be asserted, bitfields control 4 MSB - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the high threshold of the channel fifo in FULL mode on which - an Xoff will be asserted, bitfields control 4 MSB - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 23..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 47..24 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 23..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 47..24 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 23..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - ref: XOFF_STATISTICS - - -ELINK_BUSY_ENABLE: - number: 24 - endpoints: 0 - type: W - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - type_name: ELINK_BUSY_ENABLE - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - bitfield: - - range: 56..0 - default: 0 - -XOFF_STATISTICS: - number: 24 - endpoints: 0,1 - type: R - entries: - - name: XOFF_PEAK_DURATION - format_name: XOFF_PEAK_DURATION{index:02} - type_name: XOFF_PEAK_DURATION - desc: Maximum occurred duration of XOFF on the given channel in 25ns bins since reset - bitfield: - - range: 63..0 - - name: XOFF_TOTAL_DURATION - format_name: XOFF_TOTAL_DURATION{index:02} - type_name: XOFF_TOTAL_DURATION - desc: Total occurred duration of XOFF on the given channel in 25ns bins, divide by number of Xoffs to calculate the average since reset - bitfield: - - range: 63..0 - - name: XOFF_COUNT - format_name: XOFF_COUNT{index:02} - type_name: XOFF_COUNT - desc: Total number of XOFF events per channel that occurred since a reset. - bitfield: - - range: 63..0 - - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - #- name: SPI_WR - # type: W - # offset: 0x0400 - # bitfield: - # - range: any - # type: T - # value: OBSOLETE not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - # name: SPI_WREN - # desc: Any write to this register triggers an SPI Write - # - range: 32 - # type: R - # name: SPI_FULL - # desc: OBSOLETE SPI FIFO Full - # - range: 31..0 - # type: W - # name: SPI_DIN - # desc: OBSOLETE SPI WRITE Data - # - #- name: SPI_RD - # type: T - # bitfield: - # - range: any - # type: T - # value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - # name: SPI_RDEN - # desc: OBSOLETE Any write to this register pops the last SPI data from the FIFO - # - range: 32 - # type: R - # name: SPI_EMPTY - # desc: OBSOLETE SPI FIFO Empty - # - range: 31..0 - # type: R - # name: SPI_DOUT - # desc: OBSOLETE SPI READ Data - - - name: I2C_WR - type: W - offset: 0x420 - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - #- name: DEBUG_PORT_GBT - # offset: 0x0500 - # type: W - # bitfield: - # - range: 6..0 - # desc: OBSOLETE Debug GBT data bit N (119..0) on SMA HTGx#3 - - #- name: DEBUG_PORT_CLK - # type: W - # bitfield: - # - range: 3..0 - # desc: OBSOLETE Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST - offset: 0x0800 - type: W - value: 1 - bitfield: - - name: TRIGGER - type: T - range: any - desc: Fire a test MSIx interrupt set in IRQ - - name: IRQ - type: W - range: 3..0 - desc: Set this field to a value equal to the MSIX interrupt to be fired. The write triggers the interrupt immediately. - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - - - name: RXUSRCLK_FREQ - type: W - bitfield: - - range: 38 - name: VALID - type: R - desc: Indicates that the frequency measurement is valid - - range: 37..32 - name: CHANNEL - type: W - desc: Select the Transceiver channel to measure the clock from. - - range: 31..0 - name: VAL - type: R - desc: Frequency in Hz of the selected channel - - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS - entries: - - name: FELIG_L1ID_RESET - type: W - desc: Any write to this register clears the FELIG L1ID - bitfield: - - range: any - type: T - value: 1 - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - ref: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR - - ref: FELIG_MON_ITK_STRIPS_ARR - - - name: FMEMU_EVENT_INFO - type: R - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 48 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 1 - desc: Enable Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: CONSTANT_CHUNK_LENGTH - default: 0 - desc: | - Data source select - 0: Random chunk length - 1: Constant chunk length - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 0 - type: W - name: FE_BUSY_ENABLE - default: 1 - desc: Enable the BUSY mechanism if L1A counter passes threshold - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - - name: FMEMU_CONFIG_WRADDR - type: W - bitfield: - - range: 9..0 - value: 0 - desc: write enable for the FMEmu ram block - - - name: FMEMU_CONFIG - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to register WRDATA triggers a write to the ramblock - - range: 55..32 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 31..0 - name: WRDATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - -FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - format_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - desc: ITk Strips emulator specific configuration test registers - bitfield: - - name: ITKS_FIFO_CTL - range: 19..17 - default: 0 - desc: data fifo control 2:rst 1:rd 0:wr. - - name: ITKS_FIFO_DATA - range: 16..0 - default: 0 - desc: itks emu data 16:last word 15-0:data word - -FELIG_MON_ITK_STRIPS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_ITK_STRIPS - format_name: FELIG_MON_ITK_STRIPS_{index:02} - type_name: FELIG_MON_ITK_STRIPS - desc: ITk Strips emulator specific status registers - bitfield: - - name: ITKS_FIFO_STATUS - range: 2..0 - default: 0 - desc: data fifo status 2:write done 1:full 0:empty. - - - -Wishbone: - desc: Wishbone - endpoints: 0 - entries: - - name: WISHBONE_CONTROL - type: W - bitfield: - - range: 32 - name: WRITE_NOT_READ - desc: wishbone write command wishbone read command - - range: 31..0 - name: ADDRESS - desc: Slave address for Wishbone bus - - name: WISHBONE_WRITE - type: T - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to Wishbone fifo - - range: 32 - name: FULL - type: R - - range: 31..0 - name: DATA - type: W - - name: WISHBONE_READ - type: T - bitfield: - - range: any - type: T - value: 1 - name: READ_ENABLE - desc: Any write to this register triggers a read from the Wishbone to Wupper fifo - - range: 32 - name: EMPTY - type: R - desc: Indicates that the Wishbone to Wupper fifo is empty - - range: 31..0 - name: DATA - type: R - desc: Wishbone read data - - name: WISHBONE_STATUS - type: R - bitfield: - - range: 4 - name: INT - desc: interrupt - - range: 3 - name: RETRY - desc: Interface is not ready to accept data cycle should be retried - - range: 2 - name: STALL - desc: When pipelined mode slave can't accept additional transactions in its queue - - range: 1 - name: ACKNOWLEDGE - desc: Indicates the termination of a normal bus cycle - - range: 0 - name: ERROR - desc: Address not mapped by the crossbar - -MRODregisters: - group: MROD_CONTROL - desc: Specific registers for MROD - endpoints: 0 - generate: MROD_GENERATE_REGS - entries: - - name: MROD_CTRL - type: W - bitfield: - - range: 15..8 - name: OPTIONS - default: 0 - desc: Extra options for MROD - - range: 7..7 - name: ENASPARE1 - default: 0 - desc: Enable spare1 - - range: 6..6 - name: ENAMANSLIDE - default: 0 - desc: Enable Manual Slide in Rx Locking - - range: 5..5 - name: ENAPASSALL - default: 0 - desc: Enable PassAll in EmptySuppress - - range: 4..4 - name: ENATXCOUNT - default: 0 - desc: Enable SimpleCount in TxDriver for locking - - range: 3..0 - name: GOLTESTMODE - default: 0 - desc: | - GOL Test Mode (emulate CSM): - 0: Run Data Emulator when 1; 0: stop, load emulator fifo - 1: Enable Circulate when 1; 0: send fifo data only once - 2: Enable Triggered Mode when 1; 0: run continueously (no TTC) - 3: Enable pattern generator - - name: MROD_TCVRCTRL - type: W - bitfield: - - range: 23..16 - name: SLIDEMAX - default: 0xFF - desc: Maximum RXSLIDES before fire a TCVR reset - - range: 15..8 - name: SLIDEWAIT - default: 32 - desc: RXclk delay in TCVR for next RX_SLIDE operation - - range: 7..0 - name: FRAMESIZE - default: 20 - desc: Number of 32 data words in 1 frame - - name: MROD_EP0_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP0 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP0_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP0 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP0_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP0 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP0_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP0 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP0_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP0 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP0_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP0_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP0_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP0_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transmitter Reset channel 23-0 - default: 0 - - name: MROD_EP1_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP1 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP1_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP1 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP1_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP1 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP1_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP1 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP1_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP1 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP1_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP1_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP1_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP1_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transmitter Reset channel 23-0 - default: 0 - -MRODmonitors: - group: MROD_MONITOR - desc: Specific registers for MROD - endpoints: 0 - generate: MROD_GENERATE_REGS - entries: - - name: MROD_EP0_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Empty 23-0 - - name: MROD_EP0_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Full 23-0 - - name: MROD_EP0_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Aligned monitor 23-0 - - name: MROD_EP0_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Data monitor 23-0 - - name: MROD_EP0_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Idle monitor 23-0 - - name: MROD_EP0_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP0 Transmitter Locked monitor 23-0 - - name: MROD_EP1_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Empty 23-0 - - name: MROD_EP1_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Full 23-0 - - name: MROD_EP1_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Aligned monitor 23-0 - - name: MROD_EP1_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Data monitor 23-0 - - name: MROD_EP1_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Idle monitor 23-0 - - name: MROD_EP1_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP1 Transmitter Locked monitor 23-0 - -# diff --git a/sources/templates/yaml/registers-4.2.yaml b/sources/templates/yaml/registers-4.2.yaml deleted file mode 100644 index 70df3f6e702ed77ef77c610aafcd615954147843..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.2.yaml +++ /dev/null @@ -1,1994 +0,0 @@ -Registers: - version: '4.2' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R -# - name: Generators -# record_name: register_map_generators -# bitfield: -# - range: 0..0 -# type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: MONITOR_CR_FULL_FLAGS = true - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: MONITOR_CR_FULL_FLAGS = true - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - generate: MONITOR_CR_FULL_FLAGS = true - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - generate: MONITOR_CR_FULL_FLAGS = true - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 14..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xC - - range: 43..40 - name: CH10 - default: 0xC - - range: 39..36 - name: CH09 - default: 0xC - - range: 35..32 - name: CH08 - default: 0xC - - range: 31..28 - name: CH07 - default: 0xC - - range: 27..24 - name: CH06 - default: 0xC - - range: 23..20 - name: CH05 - default: 0xC - - range: 19..16 - name: CH04 - default: 0xC - - range: 15..12 - name: CH03 - default: 0xC - - range: 11..8 - name: CH02 - default: 0xC - - range: 7..4 - name: CH01 - default: 0xC - - range: 3..0 - name: CH00 - default: 0xC - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xD - - range: 43..40 - name: CH10 - default: 0xD - - range: 39..36 - name: CH09 - default: 0xD - - range: 35..32 - name: CH08 - default: 0xD - - range: 31..28 - name: CH07 - default: 0xD - - range: 27..24 - name: CH06 - default: 0xD - - range: 23..20 - name: CH05 - default: 0xD - - range: 19..16 - name: CH04 - default: 0xD - - range: 15..12 - name: CH03 - default: 0xD - - range: 11..8 - name: CH02 - default: 0xD - - range: 7..4 - name: CH01 - default: 0xD - - range: 3..0 - name: CH00 - default: 0xD - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => fromhost_busy_latched_40_s) - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - entries: - - - name: GEN_FM_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: GEN_FM_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 diff --git a/sources/templates/yaml/registers-4.3.yaml b/sources/templates/yaml/registers-4.3.yaml deleted file mode 100644 index 5bea9c94b209d78e92f1ce8656a66432ff3df815..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.3.yaml +++ /dev/null @@ -1,2337 +0,0 @@ -Registers: - version: '4.3' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xC - - range: 43..40 - name: CH10 - default: 0xC - - range: 39..36 - name: CH09 - default: 0xC - - range: 35..32 - name: CH08 - default: 0xC - - range: 31..28 - name: CH07 - default: 0xC - - range: 27..24 - name: CH06 - default: 0xC - - range: 23..20 - name: CH05 - default: 0xC - - range: 19..16 - name: CH04 - default: 0xC - - range: 15..12 - name: CH03 - default: 0xC - - range: 11..8 - name: CH02 - default: 0xC - - range: 7..4 - name: CH01 - default: 0xC - - range: 3..0 - name: CH00 - default: 0xC - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xD - - range: 43..40 - name: CH10 - default: 0xD - - range: 39..36 - name: CH09 - default: 0xD - - range: 35..32 - name: CH08 - default: 0xD - - range: 31..28 - name: CH07 - default: 0xD - - range: 27..24 - name: CH06 - default: 0xD - - range: 23..20 - name: CH05 - default: 0xD - - range: 19..16 - name: CH04 - default: 0xD - - range: 15..12 - name: CH03 - default: 0xD - - range: 11..8 - name: CH02 - default: 0xD - - range: 7..4 - name: CH01 - default: 0xD - - range: 3..0 - name: CH00 - default: 0xD - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => fromhost_busy_latched_40_s) - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS = true - entries: - - - name: GEN_FM_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: GEN_FM_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 - - - ref: FELIG_DATA_GEN_CONFIG_ARR - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - diff --git a/sources/templates/yaml/registers-4.4.yaml b/sources/templates/yaml/registers-4.4.yaml deleted file mode 100644 index 188db3f78cd1ec1af07a4d4d52db095f9ae588f1..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.4.yaml +++ /dev/null @@ -1,2451 +0,0 @@ -Registers: - version: '4.4' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 1..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 1 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 1 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 1 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 1 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 1 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 1 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 1 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 1 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xC - - range: 43..40 - name: CH10 - default: 0xC - - range: 39..36 - name: CH09 - default: 0xC - - range: 35..32 - name: CH08 - default: 0xC - - range: 31..28 - name: CH07 - default: 0xC - - range: 27..24 - name: CH06 - default: 0xC - - range: 23..20 - name: CH05 - default: 0xC - - range: 19..16 - name: CH04 - default: 0xC - - range: 15..12 - name: CH03 - default: 0xC - - range: 11..8 - name: CH02 - default: 0xC - - range: 7..4 - name: CH01 - default: 0xC - - range: 3..0 - name: CH00 - default: 0xC - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xD - - range: 43..40 - name: CH10 - default: 0xD - - range: 39..36 - name: CH09 - default: 0xD - - range: 35..32 - name: CH08 - default: 0xD - - range: 31..28 - name: CH07 - default: 0xD - - range: 27..24 - name: CH06 - default: 0xD - - range: 23..20 - name: CH05 - default: 0xD - - range: 19..16 - name: CH04 - default: 0xD - - range: 15..12 - name: CH03 - default: 0xD - - range: 11..8 - name: CH02 - default: 0xD - - range: 7..4 - name: CH01 - default: 0xD - - range: 3..0 - name: CH00 - default: 0xD - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => fromhost_busy_latched_40_s) - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS = true - entries: - - - name: GEN_FM_CONTROL1 - type: W - bitfield: - - range: 63..32 - name: TIMESTAMP_INIT - desc: Init value for the timestamp - default: 0 - - range: 31..16 - name: PACKAGE_COUNT - desc: Number of packets to be sent out, 0xFFFF means infinite - default: 0 - - range: 15..0 - name: PACKAGE_LENGTH - desc: number of 32 bit words in one FM packet - default: 120 - - - name: GEN_FM_CONTROL2 - type: W - bitfield: - - range: 16 - name: EMU_ENABLE - default: 0 - desc: Set to 1 to enable Full mode data emulator RAM - - range: 15..0 - name: TIMESTAMP_INCR - desc: Timestamp increment for each sent package - default: 1 - - - ref: FELIG_DATA_GEN_CONFIG_ARR - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - diff --git a/sources/templates/yaml/registers-4.5.yaml b/sources/templates/yaml/registers-4.5.yaml deleted file mode 100644 index cb2e461843c50d8194709e0b419a1823d183e8ab..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.5.yaml +++ /dev/null @@ -1,2593 +0,0 @@ -Registers: - version: '4.5' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 0 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 0 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 0 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 0 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 0 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 0 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 0 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 0 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - ref: CR_BLOCK_COUNTERS - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -CR_BLOCK_COUNTERS: - desc: Counters to count blocks per GBT channel - endpoints: 0,1 - number: 24 - entries: - - name: BLOCK_COUNT - type_name: CR_BLOCK_COUNT - format_name: CR_{name}_GBT{index:02} - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - type: W - bitfield: - - range: any - type: T - name: RESET - desc: Any write clears the counter value - value: 1 - - range: 31..0 - type: R - name: VAL - desc: Counts the number of blocks that were transferred ToHost in the specified GBT - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xC - - range: 43..40 - name: CH10 - default: 0xC - - range: 39..36 - name: CH09 - default: 0xC - - range: 35..32 - name: CH08 - default: 0xC - - range: 31..28 - name: CH07 - default: 0xC - - range: 27..24 - name: CH06 - default: 0xC - - range: 23..20 - name: CH05 - default: 0xC - - range: 19..16 - name: CH04 - default: 0xC - - range: 15..12 - name: CH03 - default: 0xC - - range: 11..8 - name: CH02 - default: 0xC - - range: 7..4 - name: CH01 - default: 0xC - - range: 3..0 - name: CH00 - default: 0xC - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xD - - range: 43..40 - name: CH10 - default: 0xD - - range: 39..36 - name: CH09 - default: 0xD - - range: 35..32 - name: CH08 - default: 0xD - - range: 31..28 - name: CH07 - default: 0xD - - range: 27..24 - name: CH06 - default: 0xD - - range: 23..20 - name: CH05 - default: 0xD - - range: 19..16 - name: CH04 - default: 0xD - - range: 15..12 - name: CH03 - default: 0xD - - range: 11..8 - name: CH02 - default: 0xD - - range: 7..4 - name: CH01 - default: 0xD - - range: 3..0 - name: CH00 - default: 0xD - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => fromhost_busy_latched_40_s) - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS = true - entries: - - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - name: FMEMU_EVENT_INFO - type: W - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 32 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 0 - desc: Debug Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: DATA_SRC_SEL - default: 0 - desc: | - Data source select - 0: Data input comes from EMURAM - 1: Data input comes from PCIe - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 31..16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 15..0 - type: W - name: FFU_FM_EMU_W - default: 0 - desc: For Future Use (write registers) - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - diff --git a/sources/templates/yaml/registers-4.6.yaml b/sources/templates/yaml/registers-4.6.yaml deleted file mode 100644 index 4695257e216c71c37573c7a16759fd872916e40c..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.6.yaml +++ /dev/null @@ -1,2619 +0,0 @@ -Registers: - version: '4.6' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: REG_MAP_VERSION - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 0 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 0 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 0 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 0 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 0 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 0 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 0 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 0 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - ref: CR_BLOCK_COUNTERS - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -CR_BLOCK_COUNTERS: - desc: Counters to count blocks per GBT channel - endpoints: 0,1 - number: 24 - entries: - - name: BLOCK_COUNT - type_name: CR_BLOCK_COUNT - format_name: CR_{name}_GBT{index:02} - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - type: W - bitfield: - - range: any - type: T - name: RESET - desc: Any write clears the counter value - value: 1 - - range: 31..0 - type: R - name: VAL - desc: Counts the number of blocks that were transferred ToHost in the specified GBT - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Enable TTC data generator (10 bit counter) - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => fromhost_busy_latched_40_s) - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - -ELINK_BUSY_ENABLE: - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - number: 24 - endpoints: 0 - type: W - bitfield: - - range: 56..0 - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS = true - entries: - - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - name: FMEMU_EVENT_INFO - type: W - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 32 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 0 - desc: Debug Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: DATA_SRC_SEL - default: 0 - desc: | - Data source select - 0: Data input comes from EMURAM - 1: Data input comes from PCIe - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 31..16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 15..0 - type: W - name: FFU_FM_EMU_W - default: 0 - desc: For Future Use (write registers) - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - diff --git a/sources/templates/yaml/registers-4.7.1.yaml b/sources/templates/yaml/registers-4.7.1.yaml deleted file mode 100644 index ca9e644c1f28c8b7bd6951289532df7bee8560b4..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.7.1.yaml +++ /dev/null @@ -1,3153 +0,0 @@ -Registers: - version: '4.7.1' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupg controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: ITK_STRIPS_CTRL # ITk strips global controls - offset: 0xD000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUP - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - -INCLUDE_EGROUP: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - #type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 0 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 0 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 0 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 0 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 0 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 0 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 0 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 0 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA - - ref: CR_DEFAULT_EPROC_ENCODING - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - ref: CR_BLOCK_COUNTERS - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -# ----------------------- ITk strips link configuration start ----------------------- - -# Global trickle trigger (all LCB links on this device) - -# Maximum LCB links count: - -# x24 lpGBT links -# x4 LCB links per stave -# x4 R3L1 links per stave -# => 96 LCB links -# => 96 R3L1 links - - - -ITK_STRIPS_CTRL: - entries: - - name: GLOBAL_STRIPS_CONFIG - desc: Synchronous trigger for all LCB links on device - type: W - bitfield: - - range: 15..11 - type: W - name: TEST_MODULE_MASK - desc: (for tests only) contains R3 mask for the simulated trigger data - default: 0x0 - - range: 10..4 - type: W - name: TEST_R3L1_TAG - desc: (for tests only) contains R3 or L1 tag for the simulated trigger data - default: 0x0 - - range: 1 - type: W - name: TTC_GENERATE_GATING_ENABLE - desc: Global control for gating signal generation. Enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - default: 0x0 - - name: GLOBAL_TRICKLE_TRIGGER - type: T - bitfield: - - range: any - value: 1 - desc: writing to this register issues a single trickle trigger for every LCB link connected to this FELIX device - - ref: ITK_STRIPS_GBT - - name: STRIPS_R3_TRIGGER - type: T - bitfield: - - range: any - value: 1 - desc: (for tests only) simulate R3 trigger (issues 4-5 sequential triggers) - - name: STRIPS_L1_TRIGGER - type: T - bitfield: - - range: any - desc: (for tests only) simulate L1 trigger (issues 4-5 sequential triggers) - value: 1 - - name: STRIPS_R3L1_TRIGGER - type: T - bitfield: - - range: any - desc: (for tests only) simulate simultaneous R3 and L1 trigger (issues 4-5 sequential triggers) - value: 1 - -ITK_STRIPS_GBT: - number: 2 # Change back to 24 once dma_controller.vhd is fixed - format_name: "STRIPS" - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: ITK_STRIPS_LCB_LINKS - - ref: ITK_STRIPS_R3L1_LINKS - -# Describes an array of LCB control links in a single egroup -ITK_STRIPS_LCB_LINKS: - number: 4 - format_name: "{parent}_GBT{index:02}_LCB" - type_name: ITK_LCB_LINKS - entries: - - ref: ITK_STRIPS_LCB_LINK - -# Describes an array of R3L1 control links -ITK_STRIPS_R3L1_LINKS: - number: 4 - format_name: "{parent}_GBT{index:02}_R3L1" - type_name: ITK_R3L1_LINKS - entries: - - ref: ITK_STRIPS_R3L1_LINK - -ITK_STRIPS_LCB_LINK: - format_name: "{parent}_{index:1}" - type_name: ITK_LCB_LINK - entries: - - name: CTRL - format_name: CR_{parent}_{name} - type_name: LCB_CTRL - desc: Determines LCB link configuration - type: W - bitfield: - - range: 49..38 - type: W - name: L0A_BCR_DELAY - default: 0x0 - desc: TTC BCR signal will be delayed by this many BCs - - range: 37..34 - type: W - name: L0A_FRAME_DELAY - default: 0x0 - desc: | - By how many BCs to delay an L0A frame. Updating this register may result in brief loss of LCB lock, - and some TTC L0A frames may be lost. Don't adjust this parameter while taking data. - - range: 33..32 - type: W - name: FRAME_PHASE - default: 0x0 - desc: phase of LCB frame with respect to TTC BCR signal - - range: 31..20 - type: W - name: TRICKLE_BC_START - default: 0x0 - desc: Determines the start of the allowed BC interval for low-priority LCB frames - - range: 19..8 - type: W - name: TRICKLE_BC_STOP - default: 0x0 - desc: Determines the end of the allowed BC interval for low-priority LCB frames - - range: 5..4 - type: W - name: LCB_DESTINATION_MUX - default: 0x0 - desc: | - Determines where the elink data is sent to: - 00: command decoder (use same command encoding format as trickle configuration) - 01: trickle memory (see phase2 documentation for command encoding format) - 10: directly to LCB link (expecting software-encoded HCC*/ABC* frames) - 11: (invalid, don't use) - - range: 3 - type: W - name: TRICKLE_TRIG_RUN - default: 0x0 - desc: | - if enabled, trickle configuration is sent out continuously to the front-end - (use together with TTC_GENERATE_GATING_EN for sending trickle configuration - continuously during a specified BC range. See also BC_START, and BC_STOP fields.) - - range: 2 - type: W - name: TTC_L0A_ENABLE - default: 0x0 - desc: enable generating L0A frames in response to TTC system signals - - range: 0 - type: W - name: TTC_GENERATE_GATING_ENABLE - default: 0x0 - desc: | - enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - - name: TRICKLE_TRIGGER - format_name: CR_{parent}_{name} - type_name: TRICKLE_TRIGGER - type: T - bitfield: - - range: any - desc: writing to this register issues a single trickle trigger - value: 1 - - name: TRICKLE_MEMORY_CONFIG - format_name: CR_{parent}_{name} - type_name: LCB_TRICKLE_CONFIG - desc: Trickle trigger configuration - type: W - bitfield: - - range: any - type: T - name: MOVE_WRITE_PTR - value: 1 - desc: | - Writing to this register moves trickle configuration memory write pointer to WRITE_PTR address - - range: 47..32 - type: W - name: WRITE_PTR - default: 0x0 - desc: Trickle configuration memory write pointer - - range: 31..16 - type: W - name: VALID_DATA_START - default: 0x0 - desc: Start address of trickle configuration in trickle memory - - range: 15..0 - type: W - name: VALID_DATA_END - default: 0x0 - desc: Stop address of trickle configuration in trickle memory (last valid byte) - - name: MODULE_MASK_F_C - format_name: CR_{parent}_{name} - type_name: HCC_ABC_MASK_E_C - type: W - desc: | - Disables register commands addressed to masked HCC*/ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: HCC_MASK - default: 0x0 - desc: | - HCC* module mask - - range: 47..32 - type: W - name: ABC_MASK_HCC_E - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xE - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_D - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xD - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_C - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xC - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_B_8 - format_name: CR_{parent}_{name} - type_name: LCB_ABC_MASK_B_8 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_B - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xB - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_A - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0xA - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_9 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x9 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_8 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x8 - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_7_4 - format_name: CR_{parent}_{name} - type_name: LCB_ABC_MASK_7_4 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_7 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x7 - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_6 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x6 - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_5 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x5 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_4 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x4 - mask(i) <=> (abc_id = i) - - name: ABC_MODULE_MASK_3_0 - format_name: CR_{parent}_{name} - type_name: LCB_ABC_MASK_3_0 - type: W - desc: | - Disables register commands addressed to masked ABC* chips. Register commands for which - corresponding mask bit is set to '1' will be ignored by the command encoder. - This is useful to quickly disable trickle configuration for selected - modules without overwriting the entire trickle configuratrion memory. - bitfield: - - range: 63..48 - type: W - name: ABC_MASK_HCC_3 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x3 - mask(i) <=> (abc_id = i) - - range: 47..32 - type: W - name: ABC_MASK_HCC_2 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x2 - mask(i) <=> (abc_id = i) - - range: 31..16 - type: W - name: ABC_MASK_HCC_1 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x1 - mask(i) <=> (abc_id = i) - - range: 15..0 - type: W - name: ABC_MASK_HCC_0 - default: 0x0 - desc: | - Masks register commands with destination hcc_id = 0x0 - mask(i) <=> (abc_id = i) - # - name: LINK_STATS - # format_name: CR_{parent}_{name} - # type_name: LCB_STATS - # desc: LCB link statistics - # type: R - # bitfield: - # - range: 48..32 - # type: R - # name: TTC_FRAME_RECEIVED_COUNT - # default: 0x0 - # desc: The number of received BCR and L0 frames from TTC system since last reset - # - range: 31..16 - # type: R - # name: TTC_FRAME_SENT_COUNT - # default: 0x0 - # desc: The number of TTC BCR and L0 frames forwarded to the front-end since last reset - # - range: 15..0 - # type: R - # name: CMD_DECODER_ERROR_COUNT - # default: 0x0 - # desc: The number of errors encountered by LCB command decoder since last reset - # - name: ELINK_RECENT_DATA - # format_name: CR_{parent}_{name} - # desc: Most recent data sent into this elink from host (MSB = oldest) - # type: R - # bitfield: - # - range: any - # type: R - # name: value - # default: 0x0 - # - name: ELINK_BYTE_COUNT - # format_name: CR_{parent}_{name} - # desc: The number of bytes written to the elink since last reset - # type: R - # bitfield: - # - range: any - # type: R - # name: value - # default: 0x0 - -ITK_STRIPS_R3L1_LINK: - format_name: "{parent}_{index:1}" - type_name: ITK_R3L1_LINK - entries: - - name: CTRL - format_name: CR_{parent}_{name} - type_name: R3L1_CTRL - desc: Determines R3L1 link configuration - type: W - bitfield: - - range: 3..2 - type: W - name: FRAME_PHASE - default: 0x0 - desc: phase of R3L1 frame with respect to TTC BCR signal - - range: 1 - type: W - name: L1_ENABLE - default: 0x0 - desc: enables sending TTC L1 signals to the front-end - - range: 0 - type: W - name: R3_ENABLE - default: 0x0 - desc: enables sending RoI R3 signals to the front-end - # - name: LINK_STATUS - # format_name: CR_{parent}_{name} - # type_name: R3L1_STATUS - # desc: R3L1 link status - # type: R - # bitfield: - # - range: 1 - # type: R - # name: L1_FIFO_OVERFLOW - # default: 0x0 - # desc: Whether overflow condition occured in L1 frame FIFO - # - range: 0 - # type: R - # name: R3_FIFO_OVERFLOW - # default: 0x0 - # desc: Whether overflow condition occured in R3 frame FIFO - # - name: LINK_STATS - # format_name: CR_{parent}_{name} - # type_name: R3L1_STATS - # desc: R3L1 link statistics - # type: R - # bitfield: - # - range: 63..48 - # type: R - # name: L1_RECEIVED_COUNT - # default: 0x0 - # desc: The number of L1 frames received from TTC system since last reset - # - range: 47..32 - # type: R - # name: R3_RECEIVED_COUNT - # default: 0x0 - # desc: The number of R3 frames received from RoI system since last reset - # - range: 31..16 - # type: R - # name: L1_SENT_COUNT - # default: 0x0 - # desc: The number of L1 frames sent to front-end since last reset - # - range: 15..0 - # type: R - # name: R3_SENT_COUNT - # default: 0x0 - # desc: The number of R3 frames sent to front-end since last reset - # - name: ELINK_RECENT_DATA - # format_name: CR_{parent}_{name} - # desc: Most recent data sent into this elink from host (MSB = oldest) - # type: R - # bitfield: - # - range: any - # type: R - # name: value - # default: 0x0 - # - name: ELINK_BYTE_COUNT - # format_name: CR_{parent}_{name} - # desc: The number of bytes written to the elink since last reset - # type: R - # bitfield: - # - range: any - # type: R - # name: value - # default: 0x0 - -# ----------------------- ITk strips link configuration end ----------------------- - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO_{index:02}.FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO_{index:02}.EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: TOHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: FROMHOST - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 14..0 - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - -CR_DEFAULT_EPROC_ENCODING: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - bitfield: - - range: 15..0 - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - -CR_BLOCK_COUNTERS: - desc: Counters to count blocks per GBT channel - endpoints: 0,1 - number: 24 - entries: - - name: BLOCK_COUNT - type_name: CR_BLOCK_COUNT - format_name: CR_{name}_GBT{index:02} - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - type: W - bitfield: - - range: any - type: T - name: RESET - desc: Any write clears the counter value - value: 1 - - range: 31..0 - type: R - name: VAL - desc: Counts the number of blocks that were transferred ToHost in the specified GBT - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS = true - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: any - name: WE - type: T - desc: Any write to this register executes a write enable - value: 1 - - range: 35 - name: LAST_LINE - desc: Last line of the sequence - - range: 34 - name: REPEAT - desc: Repeat the sequence - - range: 32 - name: BROADCAST5 - desc: Broadcast 5 - - range: 31 - name: BROADCAST4 - desc: Broadcast 4 - - range: 30 - name: BROADCAST3 - desc: Broadcast 3 - - range: 29 - name: BROADCAST2 - desc: Broadcast 2 - - range: 28 - name: BROADCAST1 - desc: Broadcast 1 - - range: 27 - name: BROADCAST0 - desc: Broadcast 0 - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - range: 21..0 - name: STEP_COUNTER - desc: Step counter value - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - bitfield: - - range: 56..0 - entries: - - name: BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => fromhost_busy_latched_40_s) - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - -ELINK_BUSY_ENABLE: - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - number: 24 - endpoints: 0 - type: W - bitfield: - - range: 56..0 - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS = true - entries: - - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - name: FMEMU_EVENT_INFO - type: W - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 32 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 0 - desc: Debug Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: DATA_SRC_SEL - default: 0 - desc: | - Data source select - 0: Data input comes from EMURAM - 1: Data input comes from PCIe - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 31..16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 15..0 - type: W - name: FFU_FM_EMU_W - default: 0 - desc: For Future Use (write registers) - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - diff --git a/sources/templates/yaml/registers-4.7.yaml b/sources/templates/yaml/registers-4.7.yaml deleted file mode 100644 index 23b41ca3841dd3bfecf814c7661c7c3a6df9b178..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.7.yaml +++ /dev/null @@ -1,2777 +0,0 @@ -Registers: - version: '4.7' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - - name: Wishbone - record_name: wishbone_monitor - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupg controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: Wishbone - offset: 0xC000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUPS - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - -INCLUDE_EGROUPS: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 0 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 0 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 0 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 0 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 0 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 0 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 0 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 0 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA_G - - ref: CR_DEFAULT_EPROC_ENCODING_G - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - ref: CR_BLOCK_COUNTERS - - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -#CR_XOFF_CTRL: -# number: 24 -# type: W -# bitfield: -# - range: 39..0 -# entries: -# - name: FROMHOST_XOFF_ENABLE -# format_name: FROMHOST_XOFF_ENABLE_{index:02} -# desc: When the corresponding ToHost (FULL Mode) channel reports full, this FromHost 2-bit elink will transmit Xoff -# range: 39..0 -# default: 0 -# - name: FROMHOST_SOFT_XOFF -# format_name: FROMHOST_SOFT_XOFF_{index:02} -# desc: Transmit Xoff on corresponding 2-bit FromHost elink if configured in 8b10b mode. Transmit Xon when cleared -# range: 39..0 -# default: 0 - - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO({index}).FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO({index}).EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: CR_TOHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: CR_FROMHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA_G: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - type_name: CR_DEFAULT_EPROC_ENA - bitfield: - - range: 14..0 - - -CR_DEFAULT_EPROC_ENCODING_G: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - type_name: CR_DEFAULT_EPROC_ENCODING - bitfield: - - range: 15..0 - - -CR_BLOCK_COUNTERS: - desc: Counters to count blocks per GBT channel - endpoints: 0,1 - number: 24 - entries: - - name: BLOCK_COUNT - type_name: CR_BLOCK_COUNT - format_name: CR_{name}_GBT{index:02} - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - type: W - bitfield: - - range: any - type: T - name: RESET - desc: Any write clears the counter value - value: 1 - - range: 31..0 - type: R - name: VAL - desc: Counts the number of blocks that were transferred ToHost in the specified GBT - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED_G - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: any - name: WE - type: T - desc: Any write to this register executes a write enable - value: 1 - - range: 35 - name: LAST_LINE - desc: Last line of the sequence - - range: 34 - name: REPEAT - desc: Repeat the sequence - - range: 32 - name: BROADCAST5 - desc: Broadcast 5 - - range: 31 - name: BROADCAST4 - desc: Broadcast 4 - - range: 30 - name: BROADCAST3 - desc: Broadcast 3 - - range: 29 - name: BROADCAST2 - desc: Broadcast 2 - - range: 28 - name: BROADCAST1 - desc: Broadcast 1 - - range: 27 - name: BROADCAST0 - desc: Broadcast 0 - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - range: 21..0 - name: STEP_COUNTER - desc: Step counter value - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: TTC_BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - type_name: TTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - -ELINK_BUSY_ENABLE: - number: 24 - endpoints: 0 - type: W - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - type_name: ELINK_BUSY_ENABLE - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - bitfield: - - range: 56..0 - default: 0 - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST_4 - offset: 0x0800 - type: T - value: 1 - bitfield: - - range: any - desc: Fire a test MSIx interrupt \#4 - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS - entries: - - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - name: FMEMU_EVENT_INFO - type: W - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 32 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 0 - desc: Debug Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: DATA_SRC_SEL - default: 0 - desc: | - Data source select - 0: Data input comes from EMURAM - 1: Data input comes from PCIe - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 31..16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 15..0 - type: W - name: FFU_FM_EMU_W - default: 0 - desc: For Future Use (write registers) - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - - name: FMEMU_CONFIG_WRADDR - type: W - bitfield: - - range: 9..0 - value: 0 - desc: write enable for the FMEmu ram block - - - name: FMEMU_CONFIG - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to register WRDATA triggers a write to the ramblock - - range: 55..32 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 31..0 - name: WRDATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - -Wishbone: - desc: Wishbone - endpoints: 0 - entries: - - name: WISHBONE_CONTROL - type: W - bitfield: - - range: 32 - name: WRITE_NOT_READ - desc: wishbone write command wishbone read command - - range: 31..0 - name: ADDRESS - desc: Slave address for Wishbone bus - - name: WISHBONE_WRITE - type: T - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to Wishbone fifo - - range: 32 - name: FULL - type: R - - range: 31..0 - name: DATA - type: W - - name: WISHBONE_READ - type: T - bitfield: - - range: any - type: T - value: 1 - name: READ_ENABLE - desc: Any write to this register triggers a read from the Wishbone to Wupper fifo - - range: 32 - name: EMPTY - type: R - desc: Indicates that the Wishbone to Wupper fifo is empty - - range: 31..0 - name: DATA - type: R - desc: Wishbone read data - - name: WISHBONE_STATUS - type: R - bitfield: - - range: 4 - name: INT - desc: interrupt - - range: 3 - name: RETRY - desc: Interface is not ready to accept data cycle should be retried - - range: 2 - name: STALL - desc: When pipelined mode slave can't accept additional transactions in its queue - - range: 1 - name: ACKNOWLEDGE - desc: Indicates the termination of a normal bus cycle - - range: 0 - name: ERROR - desc: Address not mapped by the crossbar diff --git a/sources/templates/yaml/registers-4.8.yaml b/sources/templates/yaml/registers-4.8.yaml deleted file mode 100644 index 5ed82fd457811d8c59b68db30eba578be1182208..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.8.yaml +++ /dev/null @@ -1,2797 +0,0 @@ -Registers: - version: '4.8' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - - name: Wishbone - record_name: wishbone_monitor - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_FIFO_FLUSH - type: T - bitfield: - - range: any - desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupg controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: Wishbone - offset: 0xC000 - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: BOARD_ID_SVN - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - desc: Board ID SVN Revision - - - name: GIT_COMMIT_TIME - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): VC-709 - - 710 (0x2c6): HTG-710 - - 711 (0x2c7): BNL-711 - - 712 (0x2c8): BNL-712 - - - name: GBT_MAPPING - bitfield: - - range: 7..0 - desc: | - CXP-to-GBT mapping: - 0: NORMAL CXP1 1-12 CXP2 13-24 - 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST - type: R - bitfield: - - range: 1 - type: R - name: GENERATE_TTC_EMU - desc: 1 when TTC emulator is generated - - range: 0 - type: R - name: TTC_TEST_MODE - desc: 1 when TTC Test mode is anabled - - - name: CR_INTERNAL_LOOPBACK_MODE - type: R - bitfield: - - range: 0 - desc: 1 when Central Router internal loopback mode is enabled - - - ref: INCLUDE_EGROUPS - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: DEBUG_MODE - type: R - bitfield: - - range: 0 - desc: | - 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - - name: CHUNK_TRAILER_32B - type: R - desc: Indicator that the chunk trailer is in the new 32-bit format - bitfield: - - range: 0 - -INCLUDE_EGROUPS: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - - name: CR_FALLBACK_OPTIONS - desc: Julias personal register with Hello Kitty options - type: W - bitfield: - - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 1 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 1 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 1 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 1 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 1 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 1 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 1 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 1 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - - name: CR_STATIC_CONFIGURATION - type: R - bitfield: - - range: 0 - - ref: CR_DEFAULT_EPROC_ENA_G - - ref: CR_DEFAULT_EPROC_ENCODING_G - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO({index}).FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO({index}).EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: CR_TOHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: CR_FROMHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -CR_DEFAULT_EPROC_ENA_G: - desc: Static CR default enable bits - endpoints: 0,1 - number: 8 - type: R - entries: - - name: ENABLE - format_name: CR_DEFAULT_EPROC_ENA{index} - type_name: CR_DEFAULT_EPROC_ENA - bitfield: - - range: 14..0 - - -CR_DEFAULT_EPROC_ENCODING_G: - desc: Static CR default encoding bits - endpoints: 0,1 - number: 8 - type: R - entries: - - name: ENCODING - format_name: CR_DEFAULT_EPROC_ENCODING{index} - type_name: CR_DEFAULT_EPROC_ENCODING - bitfield: - - range: 15..0 - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0, 1 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - - ref: PATH_HAS_STREAM_ID - -PATH_HAS_STREAM_ID: - number: 24 - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - name: TOHOST - format_name: LINK_{index:02}_HAS_STREAM_ID - type_name: HAS_STREAM_ID - type: W - bitfield: - - range: 55..48 - name: EGROUP6 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 47..40 - name: EGROUP5 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 39..32 - name: EGROUP4 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 31..24 - name: EGROUP3 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 23..16 - name: EGROUP2 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 15..8 - name: EGROUP1 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 7..0 - name: EGROUP0 - default: 0x0 - desc: EPATH is associated with a STREAM ID, use only bit0 for FULL mode. - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED_G - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: any - name: WE - type: T - desc: Any write to this register executes a write enable - value: 1 - - range: 35 - name: LAST_LINE - desc: Last line of the sequence - - range: 34 - name: REPEAT - desc: Repeat the sequence - - range: 32 - name: BROADCAST5 - desc: Broadcast 5 - - range: 31 - name: BROADCAST4 - desc: Broadcast 4 - - range: 30 - name: BROADCAST3 - desc: Broadcast 3 - - range: 29 - name: BROADCAST2 - desc: Broadcast 2 - - range: 28 - name: BROADCAST1 - desc: Broadcast 1 - - range: 27 - name: BROADCAST0 - desc: Broadcast 0 - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - range: 21..0 - name: STEP_COUNTER - desc: Step counter value - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: TTC_BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - type_name: TTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 11..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 23..12 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 11..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 23..12 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 11..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - -ELINK_BUSY_ENABLE: - number: 24 - endpoints: 0 - type: W - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - type_name: ELINK_BUSY_ENABLE - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - bitfield: - - range: 56..0 - default: 0 - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - - name: SPI_WR - type: W - offset: 0x0400 - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - name: SPI_WREN - desc: Any write to this register triggers an SPI Write - - range: 32 - type: R - name: SPI_FULL - desc: SPI FIFO Full - - range: 31..0 - type: W - name: SPI_DIN - desc: SPI WRITE Data - - - name: SPI_RD - type: T - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - name: SPI_RDEN - desc: Any write to this register pops the last SPI data from the FIFO - - range: 32 - type: R - name: SPI_EMPTY - desc: SPI FIFO Empty - - range: 31..0 - type: R - name: SPI_DOUT - desc: SPI READ Data - - - name: I2C_WR - type: W - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - - name: DEBUG_PORT_GBT - offset: 0x0500 - type: W - bitfield: - - range: 6..0 - desc: Debug GBT data bit N (119..0) on SMA HTGx#3 - - - name: DEBUG_PORT_CLK - type: W - bitfield: - - range: 3..0 - desc: Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST - offset: 0x0800 - type: W - value: 1 - bitfield: - - name: TRIGGER - type: T - range: any - desc: Fire a test MSIx interrupt set in IRQ - - name: IRQ - type: W - range: 3..0 - desc: Set this field to a value equal to the MSIX interrupt to be fired. The write triggers the interrupt immediately. - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - - - name: RXUSRCLK_FREQ - type: W - bitfield: - - range: 38 - name: VALID - type: R - desc: Indicates that the frequency measurement is valid - - range: 37..32 - name: CHANNEL - type: W - desc: Select the Transceiver channel to measure the clock from. - - range: 31..0 - name: VAL - type: R - desc: Frequency in Hz of the selected channel - - - - name: RXUSRCLK_FREQ - type: W - bitfield: - - range: 38 - name: VALID - type: R - desc: Indicates that the frequency measurement is valid - - range: 37..32 - name: CHANNEL - type: W - desc: Select the Transceiver channel to measure the clock from. - - range: 31..0 - name: VAL - type: R - desc: Frequency in Hz of the selected channel - - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS - entries: - - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - name: FMEMU_EVENT_INFO - type: W - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 32 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 0 - desc: Debug Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: DATA_SRC_SEL - default: 0 - desc: | - Data source select - 0: Data input comes from EMURAM - 1: Data input comes from PCIe - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 31..16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 15..0 - type: W - name: FFU_FM_EMU_W - default: 0 - desc: For Future Use (write registers) - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - -Wishbone: - desc: Wishbone - endpoints: 0 - entries: - - name: WISHBONE_CONTROL - type: W - bitfield: - - range: 32 - name: WRITE_NOT_READ - desc: wishbone write command wishbone read command - - range: 31..0 - name: ADDRESS - desc: Slave address for Wishbone bus - - name: WISHBONE_WRITE - type: T - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to Wishbone fifo - - range: 32 - name: FULL - type: R - - range: 31..0 - name: DATA - type: W - - name: WISHBONE_READ - type: T - bitfield: - - range: any - type: T - value: 1 - name: READ_ENABLE - desc: Any write to this register triggers a read from the Wishbone to Wupper fifo - - range: 32 - name: EMPTY - type: R - desc: Indicates that the Wishbone to Wupper fifo is empty - - range: 31..0 - name: DATA - type: R - desc: Wishbone read data - - name: WISHBONE_STATUS - type: R - bitfield: - - range: 4 - name: INT - desc: interrupt - - range: 3 - name: RETRY - desc: Interface is not ready to accept data cycle should be retried - - range: 2 - name: STALL - desc: When pipelined mode slave can't accept additional transactions in its queue - - range: 1 - name: ACKNOWLEDGE - desc: Indicates the termination of a normal bus cycle - - range: 0 - name: ERROR - desc: Address not mapped by the crossbar diff --git a/sources/templates/yaml/registers-4.9.yaml b/sources/templates/yaml/registers-4.9.yaml deleted file mode 100644 index 0924ca023923c198f43c4847651100d6392a458a..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-4.9.yaml +++ /dev/null @@ -1,2919 +0,0 @@ -Registers: - version: '4.9' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CentralRouterControlsAndMonitors - record_name: register_map_cr_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: GBTWrapperMonitors - record_name: register_map_gbt_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - - name: Wishbone - record_name: wishbone_monitor - bitfield: - - range: 0..0 - type: R - - name: DecodingControlsAndMonitors - record_name: register_map_decoding_monitor - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - #- name: DMA_FIFO_FLUSH - # type: T - # bitfield: - # - range: any - # desc: Flush (reset). Any write clears the DMA Main output FIFO - - name: DMA_RESET - offset: 0x420 - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 1 - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupg controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CentralRouterControlsAndMonitors - offset: 0x1000 - - ref: GBTEmulatorControlsAndMonitors - offset: 0x5000 - - ref: GBTWrapperControls - offset: 0x6000 - - ref: GBTWrapperMonitors - offset: 0x7000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x8000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: Wishbone - offset: 0xC000 - - ref: DecodingControlsAndMonitors - offset: 0xD000 - #- ref: EncodingControlsAndMonitors - # offset: 0xE000 - - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - #- name: BOARD_ID_SVN - # bitfield: - # - range: 15..0 - # value: std_logic_vector(to_unsigned(SVN_VERSION,16)) - # desc: OBSOLETE Board ID SVN Revision - - - name: GIT_COMMIT_TIME - offset: 0x30 - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT or FULL mode Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): FLX709, VC709 - - 710 (0x2c6): FLX710, HTG710 - - 711 (0x2c7): FLX711, BNL711 - - 712 (0x2c8): FLX712, BNL712 - - 128 (0x080): FLX128, VCU128 - - #- name: GBT_MAPPING - # bitfield: - # - range: 7..0 - # desc: | - # OBSOLETE CXP-to-GBT mapping: - # 0: NORMAL CXP1 1-12 CXP2 13-24 - # 1: ALTERNATE CXP1 1-4,9-12,17-20 - - - name: GENERATE_GBT - offset: 0xc0 - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: TTC_EMU_CONST_GENERATE_TTC_EMU - type: R - bitfield: - - range: 1 - type: R - desc: 1 when TTC emulator is generated - - #- range: 0 - # type: R - # name: TTC_TEST_MODE - # desc: OBSOLETE 1 when TTC Test mode is anabled - - #- name: CR_INTERNAL_LOOPBACK_MODE - # type: R - # bitfield: - # - range: 0 - # desc: OBSOLETE 1 when Central Router internal loopback mode is enabled - - - offset: 0x100 - ref: INCLUDE_EGROUPS - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - #- name: DEBUG_MODE - # type: R - # bitfield: - # - range: 0 - # desc: | - # OBSOLETE - # 0: SMA X3 is constant 0, SMA X4 is connected to clk40 (output). - # 1: Debug port module (SMA X3 and SMA X4) can be controlled using DEBUG_PORT_GBT and DEBUG_PORT_CLK - - - name: FIRMWARE_MODE - type: R - offset: 0x190 - bitfield: - - range: 3..0 - desc: | - 0: GBT mode - 1: FULL mode - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG - 7: FULL mode emulator - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - - name: CHUNK_TRAILER_32B - type: R - desc: Indicator that the chunk trailer is in the new 32-bit format - bitfield: - - range: 0 - - - name: PCIE_ENDPOINTS - type: R - desc: Number of PCIe endpoints on the card. The BNL71x cards have 2 endpoints - bitfield: - - range: 1..0 - -INCLUDE_EGROUPS: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 8 - name: FROMHOST_02 - desc: FromHost EPROC02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPROC04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPROC8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPROC02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPROC04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPROC08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPROC16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CentralRouterControlsAndMonitors: - group: CRC - desc: Central Router Controls and Monitors - endpoints: 0,1 - entries: - - name: IC_FROMHOST_PACKET_RDY - type: W - bitfield: - - range: 23..0 - desc: Rising edge indicates the complete packet can be read - - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - - ref: CR_GBT_CTRL - desc: See Central Router Doc - offset: 0x0100 - - - ref: IC_FIFOS - desc: See Central Router Doc - offset: 0x1400 - - - ref: MINI_EGROUP_CTRL - desc: Controls EC and TTC channels of Mini Egroups - - #- name: CR_FALLBACK_OPTIONS - # desc: OBSOLETE Julias personal register with Hello Kitty options - # type: W - # bitfield: - # - range: 63..0 - - - name: CR_TTC_TOHOST - desc: Enables the ToHost Mini Egroup in TTC mode - offset: 0x1a10 - type: W - bitfield: - - range: 63 - name: EMU_FAKE_READY_ENABLE - default: 0 - - range: 60..48 - name: EMU_FAKE_READY_VALUE - default: 0x1000 - - range: 15..4 - name: TIMEOUT_VALUE - default: 0xFFF - - range: 2 - name: EMU_ENABLE - default: 0 - - range: 1 - name: TIMEOUT_ENABLE - default: 1 - - range: 0 - name: ENABLE - default: 1 - - - name: CR_REVERSE_10B - desc: Reverse 10-bit word of elink data - type: W - bitfield: - - range: 1 - name: FROMHOST - default: 1 - desc: | - 1: Serialize 10-bit word in FromHost EPROCS MSB first - 0: Serialize 10-bit word in FromHost EPROCS LSB first - - range: 0 - name: TOHOST - default: 1 - desc: | - 1: Receive 10-bit word in ToHost EPROCS, MSB first - 0: Receive 10-bit word in ToHost EPROCS, LSB first - - - name: CR_LTDB_TTC_DELAY - desc: Controls TTC BCR delay in LTDB mode firmware - type: W - bitfield: - - range: 7 - name: EGROUP4_EPATH6 - default: 1 - desc: | - Egroup 4, Epath 6 - 1: Half a clock delay - 0: no delay - - range: 6 - name: EGROUP4_EPATH5 - default: 1 - desc: | - Egroup 4, Epath 5 - 1: Half a clock delay - 0: no delay - - range: 5 - name: EGROUP4_EPATH4 - default: 1 - desc: | - Egroup 4, Epath 4 - 1: Half a clock delay - 0: no delay - - range: 4 - name: EGROUP4_EPATH3 - default: 1 - desc: | - Egroup 4, Epath 3 - 1: Half a clock delay - 0: no delay - - range: 3 - name: EGROUP4_EPATH0 - default: 1 - desc: | - Egroup 4, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 2 - name: EGROUP3 - default: 1 - desc: | - Egroup 3, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 1 - name: EGROUP2 - default: 1 - desc: | - Egroup 2, Epath 0 - 1: Half a clock delay - 0: no delay - - range: 0 - name: EGROUP1 - default: 1 - desc: | - Egroup 1, Epath 0 - 1: Half a clock delay - 0: no delay -# - ref: CR_XOFF_CTRL -# offset: 0x2800 -# desc: Configure FromHost Xoff - - -#Central Router monitors - - ref: CR_GBT_MON - offset: 0x3000 - #- name: CR_STATIC_CONFIGURATION - # type: R - # bitfield: - # - range: 0 - #- ref: CR_DEFAULT_EPROC_ENA_G - #- ref: CR_DEFAULT_EPROC_ENCODING_G - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - offset: 0x3410 - bitfield: - - range: 31..0 - -CR_GBT_CTRL: - number: 24 - bitfield: - - range: 50..0 - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - ref: EGROUP_TOHOST - - ref: EGROUP_FROMHOST - -EGROUP_TOHOST: - number: 7 - format_name: GBT{index:02} - name: GBT - entries: - - name: TOHOST - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_TOHOST_EGROUP_CTRL - bitfield: - - range: 58..51 - name: INSTANT_TIMEOUT_ENA - default: 0x0 - desc: instantly initiate a timeout for the given epath - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..31 - name: MAX_CHUNK_LEN - default: MAX_CHUNK_LEN_array - desc: set the maximum length of a chunk, 0 disables truncation - - range: 30..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - default: - - PATH_ENCODING_array(0) - - PATH_ENCODING_array(1) - - PATH_ENCODING_array(2) - - PATH_ENCODING_array(3) - - PATH_ENCODING_array(4) - - PATH_ENCODING_array(5) - - PATH_ENCODING_array(6) - - - range: 14..0 - name: EPROC_ENA - desc: Enable bits per EPROC - default: - - EPROC_ENA_bits_array(0) - - EPROC_ENA_bits_array(1) - - EPROC_ENA_bits_array(2) - - EPROC_ENA_bits_array(3) - - EPROC_ENA_bits_array(4) - - EPROC_ENA_bits_array(5) - - EPROC_ENA_bits_array(6) - -EGROUP_FROMHOST: - number: 5 - format_name: GBT{index:02} - entries: - - name: FROMHOST - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: CR_{name}_{parent}_EGROUP{index:1}_CTRL - type_name: CR_FROMHOST_EGROUP_CTRL - bitfield: - - range: 54..47 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 46..15 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 8 EPATHS per EGROUP - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - greater than 3: TTC mode, see CentralRouter doc - default: - - FROMHOST_PATH_ENCODING_array(0) - - FROMHOST_PATH_ENCODING_array(1) - - FROMHOST_PATH_ENCODING_array(2) - - FROMHOST_PATH_ENCODING_array(3) - - FROMHOST_PATH_ENCODING_array(4) - - FROMHOST_PATH_ENCODING_array(5) - - FROMHOST_PATH_ENCODING_array(6) - - range: 14..0 - desc: Enable bits per EPROC - name: EPROC_ENA - -IC_FIFOS: - number: 24 - format_name: IC_FROMHOST_TOHOST_FIFOS - entries: - - name: FROMHOST - format_name: IC_FROMHOST_FIFO_{index:02} - type_name: IC_FROMHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_FROMHOST_FIFO({index}).FULL - name: WE - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a write to the FIFO - - range: 8 - type: R - name: FULL - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Full flag of the fifo, do not write if 1 - - range: 7..0 - type: W - name: DATAIN - format_name: IC_FROMHOST_FIFO_{index:02}_{bitfield} - desc: Data input of fifo - - name: TOHOST - format_name: IC_TOHOST_FIFO_{index:02} - type_name: IC_TOHOST_FIFO - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: any - type: T - value: not register_map_monitor_s.register_map_cr_monitor.IC_TOHOST_FIFO({index}).EMPTY - name: RE - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Any write to this register will trigger a read enable from the fifo - - range: 8 - type: R - name: EMPTY - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Empty flag of the fifo, do not read if 1 - - range: 7..0 - type: R - name: DATAOUT - format_name: IC_TOHOST_FIFO_{index:02}_{bitfield} - desc: Data output of fifo - - -MINI_EGROUP_CTRL: - number: 24 - format_name: MINI_EGROUP_CTRLS - entries: - - name: EC_TOHOST - format_name: EC_TOHOST_{index:02} - type_name: EC_TOHOST - desc: Configures the ToHost Mini egroup in EC mode - type: W - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 7 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 6 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 5 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 4 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 3 - name: BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 2..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - desc: Enables the EC channel - default: 1 - - name: EC_FROMHOST - format_name: EC_FROMHOST_{index:02} - type_name: EC_FROMHOST - type: W - desc: Configures the FromHost Mini egroup in EC mode - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 9 - name: SCA_AUX_BIT_SWAPPING - desc: "0: two input bits of SCA AUX e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 8 - name: SCA_AUX_ENABLE - desc: Enables the SCA AUX channel - default: 1 - - range: 7 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 6 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 5 - name: BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: ENABLE - default: 1 - - -CR_GBT_MON: - desc: See Central Router Doc - endpoints: 0 - number: 24 - entries: - - name: TOHOST - type_name: CR_TOHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 58 - name: CROUTFIFO_PROG_FULL - - range: 57 - name: WMFIFO_FULL - - range: 56 - name: MINI_EGROUP_ALMOST_FULL - - range: 55..48 - name: EPATH6_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP6 - - range: 47..40 - name: EPATH5_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP5 - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - - name: FROMHOST - type_name: CR_FROMHOST_GBT_MON - format_name: CR_{name}_GBT{index:02}_MON - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - bitfield: - - range: 40 - name: MINI_EGROUP_ALMOST_FULL - - range: 39..32 - name: EPATH4_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP4 - - range: 31..24 - name: EPATH3_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP3 - - range: 23..16 - name: EPATH2_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP2 - - range: 15..8 - name: EPATH1_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP1 - - range: 7..0 - name: EPATH0_ALMOST_FULL - desc: Almost full bits of the EPATH fifos in EGROUP0 - -#CR_DEFAULT_EPROC_ENA_G: -# desc: OBSOLETE Static CR default enable bits -# endpoints: 0,1 -# number: 8 -# type: R -# entries: -# - name: ENABLE -# format_name: CR_DEFAULT_EPROC_ENA{index} -# type_name: CR_DEFAULT_EPROC_ENA -# bitfield: -# - range: 14..0 -# -# -#CR_DEFAULT_EPROC_ENCODING_G: -# desc: OBSOLETE Static CR default encoding bits -# endpoints: 0,1 -# number: 8 -# type: R -# entries: -# - name: ENCODING -# format_name: CR_DEFAULT_EPROC_ENCODING{index} -# type_name: CR_DEFAULT_EPROC_ENCODING -# bitfield: -# - range: 15..0 - - -GBTEmulatorControlsAndMonitors: - group: GEC - desc: GBT Emulator Controls and Monitors - endpoints: 0, 1 - entries: - - name: GBT_EMU_ENA - type: W - bitfield: - - range: 1 - name: TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - range: 0 - name: TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: GBT_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 6..0 - desc: write enable array, every bit is one emulator RAM block - - - name: GBT_EMU_CONFIG - type: W - bitfield: - - range: 63..48 - name: RDDATA - type: R - desc: read data bus - - range: 45..32 - name: WRADDR - desc: write address bus - - range: 15..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_ENA_TOHOST - type: W - bitfield: - - range: 0 - desc: Enable FULL mode dummy emulator ToHost - - - name: GBT_FM_EMU_CONFIG_WE_ARRAY - type: W - bitfield: - - range: 0 - desc: write enable for the full mode emulator ram block - - - name: GBT_FM_EMU_CONFIG - type: W - bitfield: - - range: 53..40 - name: WRADDR - desc: write address bus - - range: 35..0 - name: WRDATA - desc: write data bus - - - name: GBT_FM_EMU_READ - type: R - bitfield: - - range: 35..0 - desc: read emu ram data - - - - name: CR_FM_PATH_ENA - type: W - bitfield: - - range: 11..0 - desc: FULL mode CR enable array, every bit is one path - - - ref: PATH_HAS_STREAM_ID - -PATH_HAS_STREAM_ID: - number: 24 - generate: register_map_monitor_s.register_map_gen_board_info.NUM_OF_CHANNELS > {index:1} - entries: - - name: TOHOST - format_name: LINK_{index:02}_HAS_STREAM_ID - type_name: HAS_STREAM_ID - type: W - bitfield: - - range: 55..48 - name: EGROUP6 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 47..40 - name: EGROUP5 - default: 0x0 - desc: EPATH (Wide mode) is associated with a STREAM ID - - range: 39..32 - name: EGROUP4 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 31..24 - name: EGROUP3 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 23..16 - name: EGROUP2 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 15..8 - name: EGROUP1 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 7..0 - name: EGROUP0 - default: 0x0 - desc: EPATH is associated with a STREAM ID, use only bit0 for FULL mode. - - -GBTWrapperControls: - group: GWC - desc: GBT Wrapper Controls - type: W - endpoints: 0 - entries: - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0xFFFFFFFFFFFF - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - -GBTWrapperMonitors: - group: GWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - generate: GBT_GENERATE_ALL_REGS - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED_G - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - ref: TTC_DELAY - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: 32..27 - name: BROADCAST - desc: Broadcast data - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - - name: TTC_EMU_L1A_PERIOD - type: W - desc: L1A period in BC. 0 means manual L1A with TTC_EMU_CONTROL.L1A - bitfield: - - range: 31..0 - - - name: TTC_EMU_ECR_PERIOD - type: W - desc: ECR period in BC. 0 means manual ECR with TTC_EMU_CONTROL.ECR - bitfield: - - range: 31..0 - - - name: TTC_EMU_BCR_PERIOD - type: W - desc: BCR period in BC. 0 means manual BCR with TTC_EMU_CONTROL.BCR - bitfield: - - range: 31..0 - default: 3564 - - - name: TTC_EMU_LONG_CHANNEL_DATA - type: W - desc: Long channel data for the TTC emulator - bitfield: - - range: 31..0 - - - name: TTC_EMU_RESET - desc: Any write to this register resets the TTC Emulator to the default state. - type: W - bitfield: - - range: any - value: 1 - type: T - - - name: TTC_L1ID_MONITOR - desc: Monitor L1ID and XL1ID. - type: R - bitfield: - - range: 31..0 - - - name: TTC_ECR_MONITOR - desc: Counts the number of ECRs received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_TTYPE_MONITOR - desc: Counts the number of TType received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_PERIODICITY_MONITOR - desc: Counts the number of times the BCR period does not match 3564, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: TTC_BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - type_name: TTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - - - -TTC_DELAY: - number: 48 - type: W - entries: - - name: TTC_DELAY - format_name: TTC_DELAY_{index:02} - type_name: TTC_DELAY - desc: Controls the TTC Fanout delay values - bitfield: - - range: 3..0 - default: 0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - desc: Controls the low theshold of the channel fifo in FULL mode on which an Xon will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - desc: Controls the high theshold of the channel fifo in FULL mode on which an Xoff will be asserted, bitfields control 4 MSB - type: W - bitfield: - - range: 47..44 - name: CH11 - default: 0xB - - range: 43..40 - name: CH10 - default: 0xB - - range: 39..36 - name: CH09 - default: 0xB - - range: 35..32 - name: CH08 - default: 0xB - - range: 31..28 - name: CH07 - default: 0xB - - range: 27..24 - name: CH06 - default: 0xB - - range: 23..20 - name: CH05 - default: 0xB - - range: 19..16 - name: CH04 - default: 0xB - - range: 15..12 - name: CH03 - default: 0xB - - range: 11..8 - name: CH02 - default: 0xB - - range: 7..4 - name: CH01 - default: 0xB - - range: 3..0 - name: CH00 - default: 0xB - - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 23..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 47..24 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 23..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 2 - type: R - name: FROMHOST_BUSY_LATCHED - desc: A fromhost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => fromhost_busy_latched_40_s) - - range: 1 - type: R - name: FROMHOST_BUSY - desc: A fromhost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => fromhost_busy_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 47..24 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 23..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - -ELINK_BUSY_ENABLE: - number: 24 - endpoints: 0 - type: W - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - type_name: ELINK_BUSY_ENABLE - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - bitfield: - - range: 56..0 - default: 0 - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - - name: HK_CTRL_FMC - type: W - bitfield: - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, only connected on FLX711 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x0 - desc: Si5345 active low output enable (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: HK_MON_FMC - type: W - bitfield: - - range: 1 - name: SI5345_LOL - desc: Si5345 Loss Of Lock pin - - range: 0 - name: SI5345_INTR - desc: Si5345 Interrupt flagging chip change of status - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - - #- name: SPI_WR - # type: W - # offset: 0x0400 - # bitfield: - # - range: any - # type: T - # value: OBSOLETE not register_map_monitor_s.register_map_hk_monitor.SPI_WR.SPI_FULL - # name: SPI_WREN - # desc: Any write to this register triggers an SPI Write - # - range: 32 - # type: R - # name: SPI_FULL - # desc: OBSOLETE SPI FIFO Full - # - range: 31..0 - # type: W - # name: SPI_DIN - # desc: OBSOLETE SPI WRITE Data - # - #- name: SPI_RD - # type: T - # bitfield: - # - range: any - # type: T - # value: not register_map_monitor_s.register_map_hk_monitor.SPI_RD.SPI_EMPTY - # name: SPI_RDEN - # desc: OBSOLETE Any write to this register pops the last SPI data from the FIFO - # - range: 32 - # type: R - # name: SPI_EMPTY - # desc: OBSOLETE SPI FIFO Empty - # - range: 31..0 - # type: R - # name: SPI_DOUT - # desc: OBSOLETE SPI READ Data - - - name: I2C_WR - type: W - offset: 0x420 - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - - #- name: DEBUG_PORT_GBT - # offset: 0x0500 - # type: W - # bitfield: - # - range: 6..0 - # desc: OBSOLETE Debug GBT data bit N (119..0) on SMA HTGx#3 - - #- name: DEBUG_PORT_CLK - # type: W - # bitfield: - # - range: 3..0 - # desc: OBSOLETE Debug clock and L1A port on SMA HTGx#4 - - - name: INT_TEST - offset: 0x0800 - type: W - value: 1 - bitfield: - - name: TRIGGER - type: T - range: any - desc: Fire a test MSIx interrupt set in IRQ - - name: IRQ - type: W - range: 3..0 - desc: Set this field to a value equal to the MSIX interrupt to be fired. The write triggers the interrupt immediately. - - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - - - name: RXUSRCLK_FREQ - type: W - bitfield: - - range: 38 - name: VALID - type: R - desc: Indicates that the frequency measurement is valid - - range: 37..32 - name: CHANNEL - type: W - desc: Select the Transceiver channel to measure the clock from. - - range: 31..0 - name: VAL - type: R - desc: Frequency in Hz of the selected channel - - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - generate: EMU_GENERATE_REGS - entries: - - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - - name: FELIG_MON_FREQ_GLOBAL - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - - name: FELIG_RESET - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - ref: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR - - ref: FELIG_MON_ITK_STRIPS_ARR - - - name: FMEMU_EVENT_INFO - type: W - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 32 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 0 - desc: Debug Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: DATA_SRC_SEL - default: 0 - desc: | - Data source select - 0: Data input comes from EMURAM - 1: Data input comes from PCIe - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 31..16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 15..0 - type: W - name: FFU_FM_EMU_W - default: 0 - desc: For Future Use (write registers) - - - name: FMEMU_RANDOM_RAM_ADDR - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: USERDATA - range: 63..48 - default: 0 - desc: Sets static payload word. When PATTERN_SEL=1. - - name: CHUNK_LENGTH - range: 47..32 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 19..15 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 14..10 - default: 0 - desc: FELIG elink bus state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 9..5 - default: 0 - desc: FELIG data generator format. 0:8b10b, 1:direct. - - name: PATTERN_SEL - range: 4..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 39..35 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 34..30 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 9..0 - default: 0 - desc: FELIG elink data output width. - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - -FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - entries: - - name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - format_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - desc: ITk Strips emulator specific configuration test registers - bitfield: - - name: ITKS_FIFO_CTL - range: 19..17 - default: 0 - desc: data fifo control 2:rst 1:rd 0:wr. - - name: ITKS_FIFO_DATA - range: 16..0 - default: 0 - desc: itks emu data 16:last word 15-0:data word - -FELIG_MON_ITK_STRIPS_ARR: - number: 24 - type: R - entries: - - name: FELIG_MON_ITK_STRIPS - format_name: FELIG_MON_ITK_STRIPS_{index:02} - type_name: FELIG_MON_ITK_STRIPS - desc: ITk Strips emulator specific status registers - bitfield: - - name: ITKS_FIFO_STATUS - range: 2..0 - default: 0 - desc: data fifo status 2:write done 1:full 0:empty. - - - -Wishbone: - desc: Wishbone - endpoints: 0 - entries: - - name: WISHBONE_CONTROL - type: W - bitfield: - - range: 32 - name: WRITE_NOT_READ - desc: wishbone write command wishbone read command - - range: 31..0 - name: ADDRESS - desc: Slave address for Wishbone bus - - name: WISHBONE_WRITE - type: T - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to Wishbone fifo - - range: 32 - name: FULL - type: R - - range: 31..0 - name: DATA - type: W - - name: WISHBONE_READ - type: T - bitfield: - - range: any - type: T - value: 1 - name: READ_ENABLE - desc: Any write to this register triggers a read from the Wishbone to Wupper fifo - - range: 32 - name: EMPTY - type: R - desc: Indicates that the Wishbone to Wupper fifo is empty - - range: 31..0 - name: DATA - type: R - desc: Wishbone read data - - name: WISHBONE_STATUS - type: R - bitfield: - - range: 4 - name: INT - desc: interrupt - - range: 3 - name: RETRY - desc: Interface is not ready to accept data cycle should be retried - - range: 2 - name: STALL - desc: When pipelined mode slave can't accept additional transactions in its queue - - range: 1 - name: ACKNOWLEDGE - desc: Indicates the termination of a normal bus cycle - - range: 0 - name: ERROR - desc: Address not mapped by the crossbar - -DecodingControlsAndMonitors: - desc: Decoding block - endpoints: 0,1 - entries: - - ref: DECODING_LINK_STATUS_ARR - -DECODING_LINK_STATUS_ARR: - number: 24 - type: R - entries: - - name: DECODING_LINK_ALIGNED - format_name: DECODING_LINK_ALIGNED_{index:02} - type_name: DECODING_LINK_ALIGNED - desc: Every bit corresponds to an E-link on one (lp)GBT or FULL-mode frame. For FULL mode only bit 0 is used - bitfield: - - range: 57..0 - - -#EncodingControlsAndMonitors: -# desc: Encoding block -# endpoints: 0,1 -# entries: - - - diff --git a/sources/templates/yaml/registers-5.0.yaml b/sources/templates/yaml/registers-5.0.yaml deleted file mode 100644 index 360acb9e0bfbc0fa1c01a44be05de48445d87fa2..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-5.0.yaml +++ /dev/null @@ -1,4248 +0,0 @@ -Registers: - version: '5.0' - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CRToHostControlsAndMonitors - record_name: register_map_crtohost_monitor - bitfield: - - range: 0..0 - type: R - - name: CRFromHostControlsAndMonitors - record_name: register_map_crfromhost_monitor - bitfield: - - range: 0..0 - type: R - - name: DecodingControlsAndMonitors - record_name: register_map_decoding_monitor - bitfield: - - range: 0..0 - type: R - - name: EncodingControlsAndMonitors - record_name: register_map_encoding_monitor - bitfield: - - range: 0..0 - type: R - - name: FrontendEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: LinkWrapperMonitors - record_name: register_map_link_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: LTITTCBUSYControlsAndMonitors - record_name: register_map_ltittc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - - name: Wishbone - record_name: wishbone_monitor - bitfield: - - range: 0..0 - type: R - - name: MRODmonitors - record_name: regmap_mrod_monitor - bitfield: - - range: 0..0 - type: R - - name: IPBus - record_name: ipbus_monitor - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_RESET - offset: 0x420 - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - - - name: TOHOSTFIFO_EMPTY - type: R - desc: Empty flags of the ToHost FIFOs in Wupper - bitfield: - - range: 3..0 - - - name: TOHOSTFIFO_PEMPTY - type: R - desc: Programmable empty flags of the ToHost FIFOs in Wupper - bitfield: - - range: 3..0 - - - name: FROMHOSTFIFO_FULL - type: R - desc: Full flag of the FromHost FIFO in Wupper - bitfield: - - range: 0 - - - name: FROMHOSTFIFO_PFULL - type: R - desc: Programmable full flag of the FromHost FIFO in Wupper - bitfield: - - range: 0 - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - type: R - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmwarre, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupg controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CRToHostControlsAndMonitors - offset: 0x0800 - - ref: CRFromHostControlsAndMonitors - offset: 0x1000 - - ref: DecodingControlsAndMonitors - offset: 0x1800 - - ref: EncodingControlsAndMonitors - offset: 0x3000 - - ref: FrontendEmulatorControlsAndMonitors - offset: 0x4000 - - ref: LinkWrapperControls - offset: 0x5000 - - ref: LinkWrapperMonitors - offset: 0x6000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x7000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8000 - - ref: LTITTCBUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: Wishbone - offset: 0xC000 - - ref: IPBus - offset: 0xC800 - - ref: ITK_STRIPS_CTRL # ITk strips global controls - offset: 0xD000 - - ref: MRODregisters - offset: 0xF000 - - ref: MRODmonitors - offset: 0xF800 - - - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: GIT_COMMIT_TIME - offset: 0x30 - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 35..32 - name: TRICKLE_DESCRIPTOR_INDEX - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,4)) - desc: Index of the (first if more than one) Trickle descriptor - - range: 31..28 - name: FROMHOST_DESCRIPTOR_INDEX - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS-1,4)) - desc: Index of the (first if more than one) FromHost descriptor - - range: 27..24 - name: TRICKLE_DESCRIPTORS - value: std_logic_vector(to_unsigned(1,4)) - desc: Number of Trickle descriptors - - range: 23..20 - name: FROMHOST_DESCRIPTORS - value: std_logic_vector(to_unsigned(1,4)) - desc: Number of FromHost descriptors - - range: 19..16 - name: TOHOST_DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS-1,4)) - desc: Number of ToHost descriptors - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors Tohost + FromHost excluding trickle descriptor - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT or FULL mode Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): FLX709, VC709 - - 710 (0x2c6): FLX710, HTG710 - - 711 (0x2c7): FLX711, BNL711 - - 712 (0x2c8): FLX712, BNL712 - - 128 (0x080): FLX128, VCU128 - - 180 (0x0B4): FLX180, VMK180 - - 181 (0x0B5): FLX181, BNL181 - - 182 (0x0B6): FLX182, BNL182 - - - name: GENERATE_GBT - offset: 0xc0 - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: GENERATE_TTC_EMU - type: R - bitfield: - - range: 1 - type: R - desc: 1 when TTC emulator is generated - - - offset: 0x100 - ref: INCLUDE_EGROUPS - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: FIRMWARE_MODE - type: R - offset: 0x190 - bitfield: - - range: 4..0 - desc: | - 0: GBT mode - 1: FULL-GBT - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG GBT - 7: FULL mode emulator - 8: FELIX_MROD mode - 9: lpGBT mode - 10: 25G Interlaken - 11: FELIG LPGBT - 12: HGTD_LUMI - 13: BCMPRIME - 14: FELIG_PIXEL - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - - name: CHUNK_TRAILER_32B - type: R - desc: Indicator that the chunk trailer is in the new 32-bit format - bitfield: - - range: 0 - - - name: NUMBER_OF_PCIE_ENDPOINTS - type: R - desc: Number of PCIe endpoints on the card. The BNL71x cards have 2 endpoints - bitfield: - - range: 1..0 - - - name: AXI_STREAMS_TOHOST - type: R - bitfield: - - range: 23..16 - name: IC_INDEX - desc: The AXIs ID (EPath-ID) of the ToHost IC E-Link - - range: 15..8 - name: EC_INDEX - desc: The AXIs ID (EPath-ID) of the ToHost EC E-Link - - range: 7..0 - name: NUMBER_OF_STREAMS - desc: Total number of AXIs IDs (EPath-IDs) per physical link ToHost - - - name: AXI_STREAMS_FROMHOST - type: R - bitfield: - - range: 23..16 - name: IC_INDEX - desc: The AXIs ID (EPath-ID) of the FromHost IC E-Link - - range: 15..8 - name: EC_INDEX - desc: The AXIs ID (EPath-ID) of the FromHost EC E-Link - - range: 7..0 - name: NUMBER_OF_STREAMS - desc: Total number of AXIs IDs (EPath-IDs) per physical link FromHost - - - name: FROMHOST_DATA_FORMAT - type: R - desc: | - 0: The data format is as it was in phase1, supporting only multiples of 2 bytes - 1: FromHost header uses a 5-bit length field as described in FLX-1355 - 2: FromHost header is 32-bit and the packet length is 256-bit (32 bytes) including the header FLX-1601 - 3: FromHost header is 32-bit and the packet length is 512-bit (32 bytes) including the header FLX-1601 - bitfield: - - range: 1..0 - - - name: FULLMODE_HALFRATE - type: R - desc: If set to 1 the FULL mode firmware is running at 4.8Gb instead of the default 9.6Gb - bitfield: - - range: 0 - - - name: SUPPORT_HDLC_DELAY - type: R - desc: The HDLC encoders can offload a 1us delay as described in FLX-1826 - bitfield: - - range: 0 - - -INCLUDE_EGROUPS: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 9 - name: TOHOST_32 - desc: ToHost EPATH32 is included in this EGROUP - - range: 8 - name: FROMHOST_02 - desc: FromHost EPATH02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPATH04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPATH8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPATH02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPATH04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPATH08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPATH16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CRToHostControlsAndMonitors: - group: CRTHC - desc: Central Router ToHost Controls and Monitors - endpoints: 0,1 - entries: - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - name: CRTOHOST_FIFO_STATUS - type: W - descr: Status of the width matching FIFOs in the CRToHost block - bitfield: - - range: any - name: CLEAR - type: T - desc: Any write to this register clears the latched FULL flags - value: 1 - - range: 47..24 - type: R - name: FULL - desc: Every bit represents the full flag of a channel FIFO - - range: 23..0 - type: R - name: FULL_LATCHED - desc: like FULL but a latched state, clear by writing to this register - - name: CRTOHOST_DMA_DESCRIPTOR_1 - type: W - bitfield: - - range: any - name: WR_EN - type: T - value: 1 - desc: Any write to this register assigns the DMA ID to the AXIS_ID set in CRTOHOST_DMA_DESCRIPTOR_2.AXIS_ID - - range: 2..0 - name: DESCR - desc: Target descriptor - - name: CRTOHOST_DMA_DESCRIPTOR_2 - type: W - bitfield: - - range: 13..11 - name: DESCR_READ - type: R - desc: Read back the value of the descriptor assigned to AXIS_ID - - range: 10..0 - name: AXIS_ID - desc: ID of the AXI stream (E-Path ID) to associate with CRTOHOST_DMA_DESCRIPTOR_1.DESCR - type: W - - ref: CRTOHOST_INSTANT_TIMEOUT_ENA_GEN - - name: DISCARD_DATA_FOR_DESCR - type: W - bitfield: - - range: 15..8 - name: FIFO_FULL - desc: Discard data for a given DMA channel when Wupper FIFO is full, even if DMA is enabled - default: 0 - - range: 7..0 - name: DMA_DISABLED - desc: Discard data for a given DMA channel when Wupper FIFO is full, and the descriptor is not enabled - default: 0xFF - -CRTOHOST_INSTANT_TIMEOUT_ENA_GEN: - number: 24 - type: W - entries: - - name: CRTOHOST_INSTANT_TIMEOUT_ENA - format_name: CRTOHOST_INSTANT_TIMEOUT_ENA_{index:02} - type_name: CRTOHOST_INSTANT_TIMEOUT_ENA - desc: Enable instant timeout after the first data arrives in CRToHost. - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 41..0 - -CRFromHostControlsAndMonitors: - group: CRFHC - desc: Central Router FromHost Controls and Monitors - endpoints: 0,1 - entries: - - name: CRFROMHOST_FIFO_STATUS - type: W - descr: Status of the width matching FIFOs in the CRFromHost block - bitfield: - - range: any - name: CLEAR - type: T - desc: Any write to this register clears the latched FULL flags - value: 1 - - range: 47..24 - type: R - name: FULL - desc: Every bit represents the full flag of a channel FIFO - - range: 23..0 - type: R - name: FULL_LATCHED - desc: like FULL but a latched state, clear by writing to this register - - ref: BROADCAST_ENABLE_GEN - - name: CRFROMHOST_RESET - descr: Self clearing reset for CRFromHost and Encoding - type: W - bitfield: - - range: any - type: T - value: 1 - - -BROADCAST_ENABLE_GEN: - number: 24 - type: W - entries: - - name: BROADCAST_ENABLE - format_name: BROADCAST_ENABLE_{index:02} - type_name: BROADCAST_ENABLE - desc: Enable path to be included in a broadcast message. - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 41..0 - -DecodingControlsAndMonitors: - desc: Decoding block - endpoints: 0,1 - entries: - - name: ELINK_REALIGNMENT - type: W - fw_modes: 0,2,3,4,5,6,9,11,12,13 - bitfield: - - range: any - name: CLEAR_REALIGNMENT_STATUS - type: T - value: 1 - desc: Clears the ELINK Realignment event flags - - range: 0 - name: ENABLE - default: 1 - desc: Enable realignment mechanism in 8b10b E-Links after illegal character reception. - - - ref: ELINK_REALIGNMENT_STATUS_GEN - - ref: ELINK_REALIGNMENT_COUNT_GEN - - ref: PATH_HAS_STREAM_ID - offset: 0x800 - - ref: DECODING_LINK_STATUS_ARR - - ref: DECODING_EGROUP_CTRL_GEN - - ref: MINI_EGROUP_TOHOST_GEN - - name: TTC_TOHOST_ENABLE - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 0 - default: 1 - - name: DECODING_REVERSE_10B - desc: | - Reverse 10-bit word of elink data for 8b10b E-links - 1: Receive 10-bit word in ToHost E-Paths, MSB first - 0: Receive 10-bit word in ToHost E-Paths, LSB first - type: W - fw_modes: 0,2,3,4,5,6,9,11,12,13 - bitfield: - - range: 0 - default: 1 - - name: DECODING_ENDIANNESS_FULL_MODE - desc: | - Specify the byte order in FULL mode - 1: Big-endian - 0: Little-endian - type: W - fw_modes: 1 - bitfield: - - range: 0 - type: W - default: 0 - -# - ref: RD53B_PROCESSOR_GEN - - ref: YARR_DEBUG_ALLEGROUP_TOHOST_GEN - desc: Count receive packets of a given value - - ref: PATH_ERRORS - - name: INTERLAKEN_CONTROL - desc: Configures Interlaken decoder - type: W - fw_modes: 10 - bitfield: - - range: 12 - type: R - name: HEALTH_INTERFACE - default: 1 - desc: Automatically detect the lane number in the interlaken descrambler - - range: 11..0 - name: PACKET_LENGTH - desc: Lenth of an interlaken metaframe - default: 2024 - - ref: INTERLAKEN_STATUS_GEN - - ref: SUPER_CHUNK_FACTOR_GEN - offset: 0x15E0 - - ref: DECODING_LINK_CB_GEN - - name: DECODING_MASK64B66BKBLOCK - desc: Mask User K-Block based on its block number (see sp011) - type: W - fw_modes: 4 - bitfield: - - range: 3..0 - default: 10 - - name: DECODING_DISEGROUP - desc: Disable egroups for debugging purposes - type: W - bitfield: - - range: 6..0 - default: 0 - - - name: FULLMODE_32B_SOP - type: W - desc: When set to 1, use 32-bit 0x0000003C as start of chunk, otherwise only 8-bit 0x3C (FULL mode only) - fw_modes: 1 - bitfield: - - range: 0 - default: 0 - - - name: DECODING_HGTD_ALTIROC - type: W - desc: Set to 1 to use HGTD Altiroc K characters in the 8b10b decoders (LPGBT firmware mode) - fw_modes: 9 - bitfield: - - range: 0 - default: 0 - - - name: DECODING_HGTD_LUMI_CONF - type: W - desc: HGTD Luminosity firmware configuration - fw_modes: 12 - bitfield: - - range: 36 - name: DEBUG_DATASOURCE - default: 0 - desc: enable local data source for debugging - - range: 35 - name: RAW_MODE - default: 0 - desc: enable RAW mode (just forwarding 6b8b data) - - range: 34..25 - name: LHC_TURNS - default: 100 - desc: number of LHC turns to aggregate - - range: 24..16 - name: TRIG_LAT - default: 0 - desc: trigger latency for per-event luminosity - - range: 15..0 - name: SYNC_WORD - default: 0x4778 - desc: sync word for luminosity stream - -ELINK_REALIGNMENT_STATUS_GEN: - endpoints: 0, 1 - number: 12 - fw_modes: 0,2,3,4,5,6,9,11,12,13 - entries: - - name: ELINK_REALIGNMENT_STATUS - type_name: ELINK_REALIGNMENT_STATUS - format_name: ELINK_REALIGNMENT_STATUS_{index:02} - generate: GBT_NUM > {index:1} - desc: | - A realignment event due to an illegal 8b10b symbol has occurred. - 1 bit per Epath. - Clear status by writing to ELINK_REALIGNMENT.CLEAR_REALIGNMENT_STATUS - bitfield: - - range: 41..0 - -ELINK_REALIGNMENT_COUNT_GEN: - endpoints: 0, 1 - number: 12 - fw_modes: 0,2,3,4,5,6,9,11,12,13 - entries: - - name: ELINK_REALIGNMENT_COUNT - type_name: ELINK_REALIGNMENT_COUNT - format_name: ELINK_REALIGNMENT_COUNT_{index:02} - generate: GBT_NUM > {index:1} - desc: | - A realignment event due to an illegal 8b10b symbol on any E-Link in the link increments the counter. - Clear status by writing to ELINK_REALIGNMENT.CLEAR_REALIGNMENT_STATUS - bitfield: - - range: 31..0 - -PATH_HAS_STREAM_ID: - number: 24 - generate: GBT_NUM > {index:1} - entries: - - name: HAS_STREAM_ID - format_name: LINK_{index:02}_HAS_STREAM_ID - type_name: HAS_STREAM_ID - type: W - bitfield: - - range: 55..48 - name: EGROUP6 - default: 0x0 - desc: EPATH (Wide mode or lpGBT) is associated with a STREAM ID - - range: 47..40 - name: EGROUP5 - default: 0x0 - desc: EPATH (Wide mode or lpGBT) is associated with a STREAM ID - - range: 39..32 - name: EGROUP4 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 31..24 - name: EGROUP3 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 23..16 - name: EGROUP2 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 15..8 - name: EGROUP1 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 7..0 - name: EGROUP0 - default: 0x0 - desc: EPATH is associated with a STREAM ID, use only bit0 for FULL mode. - -DECODING_LINK_STATUS_ARR: - number: 24 - type: R - entries: - - name: DECODING_LINK_ALIGNED - format_name: DECODING_LINK_ALIGNED_{index:02} - type_name: DECODING_LINK_ALIGNED - desc: Every bit corresponds to an E-link on one (lp)GBT or FULL-mode frame. For FULL mode only bit 0 is used - bitfield: - - range: 57..0 - -DECODING_EGROUP_CTRL_GEN: - number: 12 - format_name: DECODING_EGROUP_GEN - generate: GBT_NUM > {index:1} - entries: - - ref: DECODING_EGROUP - -DECODING_EGROUP: - number: 7 - format_name: LINK{index:02} - type_name: DECODING_EGROUP - entries: - - name: EGROUP - format_name: DECODING_{parent}_{name}{index:1}_CTRL - type_name: DECODING_EGROUP_CTRL - desc: Contols Egroup for lpGBT and GBT based links - type: W - bitfield: - - range: 59 - name: ENABLE_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 58..51 - name: EPATH_ALMOST_FULL - type: R - desc: FIFO full indication - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..11 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 4 bits per E-path - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - 3: TTC - 4: ITk Strips 8b10b - 5: ITk Pixel - 6: Endeavour - 7-15: reserved - default: 0x11111111 - - range: 10..8 - name: EPATH_WIDTH - default: 0 - desc: Width in bits of all EPATHS in an EGROUP 0:2, 1:4, 2:8, 3:16, 4:32 - - range: 7..0 - name: EPATH_ENA - desc: Enable bits per EPATH - default: 0 - -MINI_EGROUP_TOHOST_GEN: - number: 24 - type: W - fw_modes: 0,2,3,4,5,9,12,13 - entries: - - name: MINI_EGROUP_TOHOST - format_name: MINI_EGROUP_TOHOST_{index:02} - type_name: MINI_EGROUP_TOHOST - desc: Configures the ToHost Mini egroup - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 15 - name: ENABLE_AUX_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 14 - name: ENABLE_IC_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 13 - name: ENABLE_EC_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 12 - type: R - name: AUX_ALMOST_FULL - desc: Indicator that the AUX path FIFO is almost full - - range: 11 - name: AUX_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 10 - name: AUX_ENABLE - desc: Enables the AUX channel - default: 1 - - range: 9 - type: R - name: IC_ALMOST_FULL - desc: Indicator that the IC path FIFO is almost full - - range: 8 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 7 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 6 - type: R - name: EC_ALMOST_FULL - desc: Indicator that the EC path FIFO is almost full - - range: 5 - name: EC_BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 4..1 - name: EC_ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: EC_ENABLE - desc: Enables the EC channel - default: 1 - - -#RD53B_PROCESSOR_GEN: -# number: 64 -# entries: -# - name: RD53B_PROCESSOR -# format_name: RD53B_PROCESSOR_{index:02} -# type_name: RD53B_PROCESSOR -# bitfield: -# - range: 3 -# name: ENABLE_MULTICHIP -# - range: 2 -# name: ENABLE_BINARYTREE -# - range: 1 -# name: ENABLE_TOT -# - range: 0 -# name: DROP_TOT - -SUPER_CHUNK_FACTOR_GEN: - number: 12 - entries: - - name: SUPER_CHUNK_FACTOR_LINK - format_name: SUPER_CHUNK_FACTOR_LINK_{index:02} - type_name: SUPER_CHUNK_FACTOR_LINK - type: W - desc: number of chunks glued together - bitfield: - - range: 7..0 - default: 1 - -DECODING_LINK_CB_GEN: - number: 12 - fw_modes: 4 - entries: - - name: DECODING_LINK_CB - format_name: DECODING_LINK_{index:02}_CB - type_name: DECODING_LINK_CB - type: W - bitfield: - - name: DESKEWED - range: 61..4 - type: R - desc: | - Every bit corresponds to an E-link on one (lp)GBT frame. - Register indicates whether the E-link has been de-skewed in the channel. - E-link are grouped in a channel according to CBOPT - - name: CBOPT - range: 3..0 - desc: | - Channel bonding option - 0: no bonding - 3: Bonding 0/1/2 3/4/5 - other values: reserved - default: 0 - -YARR_DEBUG_ALLEGROUP_TOHOST_GEN: - number: 12 - fw_modes: 4,5 - entries: - - name: YARR_DEBUG_ALLEGROUP_TOHOST - format_name: YARR_DEBUG_ALLEGROUP_TOHOST_{index:02} - type_name: YARR_DEBUG_ALLEGROUP_TOHOST - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 63..32 - name: REF_PACKET - type: W - desc: Reference packet to be matched - default: 0x02000000 - - range: 31..0 - name: CNT_RX_PACKET - type: R - desc: Count packets of a given value - -YARR_DEBUG_ALLEGROUP_FROMHOST_GEN: - fw_modes: 4,5 - number: 12 - entries: - - name: YARR_DEBUG_ALLEGROUP_FROMHOST1 - format_name: YARR_DEBUG_ALLEGROUP_FROMHOST1_{index:02} - type_name: YARR_DEBUG_ALLEGROUP_FROMHOST1 - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 48 - type: W - name: RD53A_AZ_EN - desc: Auto zeroing module enable - default: 0 - - range: 47..16 - type: R - name: CNT_TRIG_CMD - desc: Number of issued triggers via cmd - - range: 15..8 - type: R - name: ERR_GENCALTRIG_DLY - desc: Number of mismatches between CNT_GENCALTRIG_DLY and REF_DLY_GENCALTRIG - - range: 7..0 - type: W - name: REF_DLY_GENCALTRIG - desc: Reference distance between GenCal and First Trigger - default: 0x0F - - name: YARR_DEBUG_ALLEGROUP_FROMHOST2 - format_name: YARR_DEBUG_ALLEGROUP_FROMHOST2_{index:02} - type_name: YARR_DEBUG_ALLEGROUP_FROMHOST2 - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 47..16 - type: R - name: CNT_CMD - desc: Number of issued commands - - range: 15..0 - type: W - name: REF_CMD - desc: Cmd type to be counted. See RD53 Manual for list of allowed commands - default: 0x6666 - -PATH_ERRORS: - number: 24 - generate: GBT_NUM > {index:1} - entries: - - name: LINK_ERRORS - fw_modes: 0,4,5,9 - format_name: LINK_{index:02}_ERRORS - type_name: LINK_ERRORS - type: W - bitfield: - - range: 35 - name: CLEAR_COUNTERS - type: W - desc: Set to 1 to clear all counter values for all egroups in the link. Set to 0 to start counting errors. - - range: 34..32 - name: EGROUP_SELECT - desc: Errors for Egroup1 - type: W - - range: 31..0 - name: COUNT - desc: Errors for the selected egroup - type: R - - -INTERLAKEN_STATUS_GEN: - number: 12 - generate: GBT_NUM > {index:1} - entries: - - name: INTERLAKEN_STATUS - fw_modes: 4 - format_name: INTERLAKEN_LANE_{index:02}_STATUS - type_name: INTERLAKEN_STATUS - type: W - fw_modes: 10 - bitfield: - - range: any - type: T - name: CLEAR_STATUS - value: 1 - - range: 8 - type: R - name: DECODER_ERROR_SYNC - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 7 - type: R - name: DESCRAMBLER_ERROR_BADSYNC - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 6 - type: R - name: DESCRAMBLER_ERROR_STATEMISMATCH - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 5 - type: R - name: DESCRAMBLER_ERROR_NOSYNC - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 4 - type: R - name: BURST_CRC24_ERROR - desc: Sticky CRC error bit, clear with CLEAR_STATUS - - range: 3 - type: R - name: META_CRC32_ERROR - desc: Sticky CRC error bit, clear with CLEAR_STATUS - - range: 2 - type: R - name: HEALTH_LANE - desc: Health bit for this lane - - range: 1 - type: R - name: DESCRAMBLER_ALIGNED - desc: This channels descrambler is aligned - - range: 0 - type: R - name: DECODER_ALIGNED - desc: This channels decoder is aligned - - - -EncodingControlsAndMonitors: - desc: Encoding block - endpoints: 0,1 - entries: - - name: ENCODING_REVERSE_10B - desc: Reverse 10-bit word of elink data for 8b10b E-links. 1 MSB first, 0 LSB first - type: W - fw_modes: 0,1,2,3,6,9,10,11,12 - bitfield: - - range: 0 - default: 1 - - ref: ENCODING_EGROUP_CTRL_GEN - - ref: MINI_EGROUP_FROMHOST_GEN - - ref: ENCODING_EGROUP_CTRL_FEI4_GEN - - ref: YARR_DEBUG_ALLEGROUP_FROMHOST_GEN - desc: Count triggers, compare distance between GenCal and Trigger with reference. Check YARR doc - - name: YARR_FROMHOST_CALTRIGSEQ_WE - fw_modes: 4,5 - desc: enable to store CalPulse+Trigger Sequence into memory - type: W - bitfield: - - range: 0 - default: 0 - - name: YARR_FROMHOST_CALTRIGSEQ_WRDATA - fw_modes: 4,5 - desc: CalPulse+Trigger Sequence to be stored in memory - type: W - bitfield: - - range: 15..0 - - name: YARR_FROMHOST_CALTRIGSEQ_WRADDR - fw_modes: 4,5 - desc: memory address to store CalPulse+Trigger Sequence - type: W - bitfield: - - range: 4..0 - - name: HGTD_ALTIROC_FASTCMD - fw_modes: 9 - desc: Controls the HGTD Altiroc FASTCMD TTC encoder functionality (TTC option 8). - type: W - bitfield: - - range: 14 - name: ALTIROC3_IDLE - desc: 0 for ALTIROC2 10101100, 1 for ALTIROC3 11110000 - default: 0 - - range: 13 - name: USE_CAL - desc: When set to 1, CAL will be sent on L1A, then after TRIG_DELAY BC clocks a TRIGGER. When 0, TRIGGER will be sent on L1A. - default: 1 - - range: 12 - name: SYNCLUMI - desc: Set to 1 to trigger a SYNCLUMI command, rising edge of this bit. Clear in software - default: 0 - - range: 11 - name: GBRST - desc: Set to 1 to trigger a GBRST command, rising edge of this bit. Clear in software - default: 0 - - range: 10..0 - name: TRIG_DELAY - desc: Number of BC clocks between CAL and TRIGGER command if USE_CAL is set to 1 - default: 5 - - name: ITKSTRIP_LCB_R3L1_ELINK_SWAP - fw_modes: 5 - desc: Setting a bit, moves the LCB E-Link to the odd E-Link position and R3L1 to the even one on the lpGBT downlink. 4 bits per lpGBT link - type: W - bitfield: - - range: 47..0 - - - -ENCODING_EGROUP_CTRL_GEN: - number: 12 - type: W - generate: GBT_NUM > {index:1} - entries: - - ref: ENCODING_EGROUP - - -ENCODING_EGROUP: - number: 5 - format_name: LINK{index:02} - entries: - - name: ENCODING_EGROUP_CTRL - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: ENCODING_{parent}_EGROUP{index:1}_CTRL - type_name: ENCODING_EGROUP_CTRL - bitfield: - - range: 63 - name: ENABLE_DELAY - desc: Enable inter-packet delay generation in HDLC encoder - default: 0x0 - - range: 62..59 - name: TTC_OPTION - desc: Selects TTC bits sent to the E-link - - range: 58..51 - name: EPATH_ALMOST_FULL - type: R - desc: Indiator that the EPATH FIFO is almost full - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..40 - name: EPATH_WIDTH - default: 0x0 - desc: | - Width of the Elinks in the egroup - 0: 2 bit 80 Mb/s - 1: 4 bit 160 Mb/s - 2: 8 bit 320 Mb/s - - range: 39..8 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 4 bits per E-Path - 0: No encoding - 1: 8b10b mode - 2: HDLC mode - 3: ITk Strip LCB - 4: ITk Pixel - 5: Endeavour - 6: reserved - 7: reserved - greater than 7: TTC mode, see firmware Phase 2 specification doc - default: 0x11111111 - - range: 7..0 - desc: Enable bits per E-PATH - name: EPATH_ENA - -MINI_EGROUP_FROMHOST_GEN: - number: 24 - type: W - generate: GBT_NUM > {index:1} - fw_modes: 0,1,2,3,4,5,9,10,12,13 - entries: - - name: MINI_EGROUP_FROMHOST - format_name: MINI_EGROUP_FROMHOST_{index:02} - type_name: MINI_EGROUP_FROMHOST - type: W - desc: Configures the FromHost Mini egroup - generate: GBT_NUM > {index:1} - bitfield: - - range: 17..14 - name: AUX_ENCODING - desc: Configures encoding of the AUX channel - default: 0x2 - - range: 13 - name: ENABLE_DELAY - desc: Enable inter-packet delay generation in HDLC encoder - default: 0x0 - - range: 12 - name: AUX_ALMOST_FULL - type: R - desc: Indicator that the AUX Path FIFO is almost full - - range: 11 - name: AUX_BIT_SWAPPING - desc: "0: two input bits of AUX e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 10 - name: AUX_ENABLE - desc: Enables the AUX channel - default: 1 - - range: 9 - name: IC_ALMOST_FULL - type: R - desc: Indicator that the IC Path FIFO is almost full - - range: 8 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 7 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 6 - name: EC_ALMOST_FULL - type: R - desc: Indicator that the EC Path FIFO is almost full - - range: 5 - name: EC_BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: EC_ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: EC_ENABLE - default: 1 - -ENCODING_EGROUP_CTRL_FEI4_GEN: - number: 12 - type: W - fw_modes: 3 - generate: GBT_NUM > {index:1} and FIRMWARE_MODE = FIRMWARE_MODE_FEI4 - entries: - - ref: ENCODING_EGROUP_FEI4 - - -ENCODING_EGROUP_FEI4: - number: 5 - format_name: LINK{index:02} - entries: - - name: ENCODING_EGROUP_FEI4_CTRL - desc: FEI4 encoder configuration registers. - format_name: ENCODING_{parent}_EGROUP{index:1}_FEI4_CTRL - type_name: ENCODING_EGROUP_FEI4_CTRL - bitfield: - - range: 11..9 - name: PHASE_DELAY1 - desc: phase delay of output data, with 320 Bb/s e-link 8 phases per BC - - range: 8 - name: MANCHESTER_ENABLE1 - desc: enable manchester encoding - - range: 7 - name: AUTOMATIC_MERGE_DISABLE1 - desc: Disable automatic merging - - range: 6 - name: TTC_SELECT1 - desc: TTC/FromHost select (if automatic merging is disabled) - - range: 5..3 - name: PHASE_DELAY0 - desc: phase delay of output data, with 320 Bb/s e-link 8 phases per BC - - range: 2 - name: MANCHESTER_ENABLE0 - desc: enable manchester encoding - - range: 1 - name: AUTOMATIC_MERGE_DISABLE0 - desc: Disable automatic merging - - range: 0 - name: TTC_SELECT0 - desc: TTC/FromHost select (if automatic merging is disabled) - -FrontendEmulatorControlsAndMonitors: - group: FEC - desc: Frontend Emulator Controls and Monitors - endpoints: 0, 1 - entries: - - name: FE_EMU_ENA - type: W - bitfield: - - range: 1 - name: EMU_TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - - range: 0 - name: EMU_TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: FE_EMU_CONFIG - type: W - bitfield: - - range: 54..47 - name: WE - desc: write enable array, every bit is one emulator RAM block - - range: 46..33 - name: WRADDR - desc: write address bus - - range: 32..0 - name: WRDATA - desc: write data bus - - - name: FE_EMU_READ - type: W - bitfield: - - range: 35..33 - name: SEL - desc: Select ramblock to read back - - range: 32..0 - name: DATA - type: R - desc: Read back ramblock at FE_EMU_CONFIG.WRADDR - - - name: FE_EMU_LOGIC - type: W - bitfield: - - range: 33 - name: L1A_TRIGGERED - desc: 1 Send a chunk on every L1A, 0 use the IDLES to determine the rate - - range: 32 - name: ENA - desc: Enable logic based FrontEnd emulator, instead of RAM based. - - range: 31..16 - name: IDLES - desc: Number of IDLE bytes between chunks. - - range: 15..0 - name: CHUNK_LENGTH - desc: Chunk length in bytes - - #Continue decoding here, as the decoding space is full. - - ref: DECODING_BCM_PRIME_L1A_CONTROLS_GEN - offset: 0x200 - - - name: DECODING_BCM_PRIME_ONLY_L1A - type: W - desc: If enabled, the BCM_PRIME firmware, will only readout data when an L1A is sent. - fw_modes: 13 - bitfield: - - range: 0 - - name: DECODING_BCM_PRIME_EMU_BCID - type: W - fw_modes: 13 - desc: If enabled, the BCM_PRIME firmware will use internally generated BCIDs instead of the TTC one. - bitfield: - - range: 0 - - - name: DECODING_BCM_PRIME_PUBLISH_ZEROS - type: W - fw_modes: 13 - desc: If enabled, the BCM_PRIME firmware publish empty data-events if they are matched with L1A - bitfield: - - range: 0 - - - -DECODING_BCM_PRIME_L1A_CONTROLS_GEN: - number: 24 - fw_modes: 13 - type: W - - entries: - - name: DECODING_BCM_PRIME_L1A - format_name: DECODING_BCM_PRIME_LINK_{index:02}_L1A - type_name: DECODING_BCM_PRIME_L1A - - generate: GBT_NUM > {index:1} - bitfield: - - range: 9..5 - name: DELAY - default: 5 - desc: The data in fiber is delayed N clock cycles to match with TTC L1A - - range: 4..0 - name: WINDOW - default: 5 - desc: The L1A signal is extended to cover multiple BCID's - -LinkWrapperControls: - group: LWC - desc: Link Wrapper Controls - type: W - endpoints: 0 - entries: - - name: LINK_FULLMODE_LTI - fw_modes: 1, 7 - desc: Set to 1 to enable LTI format TTC distribution (8b10b at 9.6Gb) in the FULLMODE flavour, one bit per channel. Set to 0 for 4.8Gb GBT distribution - type: W - bitfield: - - range: 23..0 - default: 0 - - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected lpGBT, GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: LPGBT_FEC - desc: | - 0: FEC5 - 1: FEC12 - bitfield: - - range: 47..0 - default: 0 - - - name: LPGBT_DATARATE - desc: | - 0: 10.24 Gbps - 1: 5.12 Gbps - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: FULLMODE_AUTO_RX_RESET - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: Enable the Automatic RX Reset mechanism - - range: 31..0 - name: TIMEOUT - default: 0x00100000 - desc: Number of 40 MHz clock cycles until an unaligned link results in a reset pulse - - - ref: TCLINK_CNTRL_GEN - -TCLINK_CNTRL_GEN: - desc: TClink status and control registers that dont have a default value - number: 24 - endpoints: 0 - entries: - - name: TCLINK_CONTROL - format_name: TCLINK_CONTROL_{index:02} - type_name: TCLINK_CONTROL - type: W - desc: tclink control register - bitfield: - - range: 63..16 - name: OFFSET_ERROR - desc: Error-offset for phase-control Recommended to freeze with an initial value read - - range: 15 - name: CLOSE_LOOP - desc: Close TCLink loop (enables compensation) - - range: 14..8 - name: TX_PI_PHASE_CALIB - desc: UI alignment Tx PI calibrated phase - - range: 7 - name: TX_UI_ALIGN_CALIB - desc: UI alignment Tx PI activate - - range: 6 - name: TX_FINE_REALIGN - desc: Repeats fine alignment procedure - - range: 5 - name: PS_STROBE - desc: Shifts phase of transmitter serial data - - range: 4 - name: PS_INC_NDEC - desc: Shifts phase of transmitter serial data - - range: 3 - name: MASTER_MGT_RX_READY - desc: MGT rx is ready (used as reset) - - -LinkWrapperMonitors: - group: LWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - - - ref: GT_FEC_ERR_CNT_GEN - - ref: GT_AUTO_RX_RESET_CNT_GEN - - ref: TCLINK_MON_GEN - - name: GBT_PLL_LOL_LATCHED - type: W - bitfield: - - range: any - name: CLEAR - value: 1 - desc: Any write to this bitfield clears the latched LOL bits - type: T - - range: 59..48 - name: QPLL_LOL_LATCHED - desc: Asserted when CPLL lock is lost, clear by writing to CLEAR - type: R - - range: 47..0 - name: CPLL_LOL_LATCHED - desc: Asserted when CPLL lock is lost, clear by writing to CLEAR - type: R - - - name: GBT_ALIGNMENT_LOST - type: W - bitfield: - - range: any - name: CLEAR - value: 1 - desc: Any write to this bitfield clears the latched ALIGNMENT_LOST bits - type: T - - range: 47..0 - type: R - name: ALIGNMENT_LOST - desc: Asserted when GBT_ALIGNMENT_DONE bit is 0, clear by writing to CLEAR - - - -GT_FEC_ERR_CNT_GEN: - desc: Counts the number of FEC errors in the (lp)GBT frame - number: 24 - endpoints: 0 - entries: - - name: GT_FEC_ERR_CNT - format_name: GT_FEC_ERR_CNT_{index:02} - type_name: GT_FEC_ERR_CNT - desc: Counts the number of FEC errors in the given channel. - fw_modes: 0,2,3,4,5,6,9,11,12,13 - type: R - bitfield: - - range: 31..0 - -GT_AUTO_RX_RESET_CNT_GEN: - desc: Counts the number of AUTO RX RESET events that happend on the FULLMODE, GBT or lpGBT link - number: 24 - endpoints: 0 - entries: - - name: GT_AUTO_RX_RESET_CNT - format_name: GT_AUTO_RX_RESET_CNT_{index:02} - type_name: GT_AUTO_RX_RESET_CNT - type: W - bitfield: - - range: any - value: 1 - type: T - name: CLEAR - desc: Any write to this register clears the counter value - - range: 31..0 - name: VALUE - type: R - -TCLINK_MON_GEN: - desc: TClink status and control registers that dont have a default value - number: 24 - endpoints: 0 - entries: - - name: TCLINK_MONITOR_1 - format_name: TCLINK_MONITOR_1_{index:02} - type_name: TCLINK_MONITOR_1 - type: R - desc: tclink monitor register - bitfield: - - range: 62..15 - name: ERROR_CONTROLLER - desc: Error-signal for controller Signed complement 2 number. - - range: 14 - name: LOOP_CLOSED - desc: TCLink loop is closed (compensation is enabled) - - range: 13 - name: TX_ALIGNED - desc: Transmitter alignment procedure finished Use as reset for transmitter user logic - - range: 12 - name: PS_DONE - desc: Phase shift is done - - range: 11..5 - name: TX_PI_PHASE - desc: Tx PI phase after alignment - - name: TCLINK_MONITOR_2 - format_name: TCLINK_MONITOR_2_{index:02} - type_name: TCLINK_MONITOR_2 - desc: Phase detector monitoring bits - type: R - bitfield: - - range: 63..32 - name: PHASE_DETECTOR - desc: Phase detector response - - range: 31..0 - name: TX_FIFO_FILL_PD - desc: Phase detector current value - - name: TCLINK_MONITOR_3 - format_name: TCLINK_MONITOR_3_{index:02} - type_name: TCLINK_MONITOR_3 - desc: tclink monitoring bits - type: W - bitfield: - - range: 58..54 - name: LOOP_NOT_CLOSED_REASON - type: R - desc: Reason why the TCLink loop is not closed - - range: 53..38 - name: PHASE_ACC - type: R - desc: phase accumulated output (integrated output) - - range: 37 - name: OPERATION_ERROR - type: R - desc: error output indicating that a clk_en_i pulse has arrived before the done_i signal arrived from the previous strobe_o request - - range: 36..27 - name: DEBUG_TESTER_ADDR_READ - type: W - desc: read address for reading stocked TCLink phase accumulated results - - range: 26..11 - name: DEBUG_TESTER_DATA_READ - type: R - desc: data of stocked TCLink phase accumulated results - - range: 10..7 - name: PS_PHASE_STEP - type: R - desc: number of units to shift the phase of the receiver clock - - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED_G - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - name: TTC_DELAY - type: W - desc: Controls the TTC Fanout delay value, in 25ns (1BC) units - bitfield: - - range: 3..0 - default: 0 - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - offset: 0x4b0 - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: 33 - name: BUSY_IN_ENABLE - desc: Enable internal BUSY input to stop L1A on BUSY - default: 1 - - range: 32..27 - name: BROADCAST - desc: Broadcast data - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - - name: TTC_EMU_L1A_PERIOD - type: W - desc: L1A period in BC. 0 means manual L1A with TTC_EMU_CONTROL.L1A - bitfield: - - range: 31..0 - - - name: TTC_EMU_ECR_PERIOD - type: W - desc: ECR period in BC. 0 means manual ECR with TTC_EMU_CONTROL.ECR - bitfield: - - range: 31..0 - - - name: TTC_EMU_BCR_PERIOD - type: W - desc: BCR period in BC. 0 means manual BCR with TTC_EMU_CONTROL.BCR - bitfield: - - range: 31..0 - default: 3564 - - - name: TTC_EMU_LONG_CHANNEL_DATA - type: W - desc: Long channel data for the TTC emulator - bitfield: - - range: 31..0 - - - name: TTC_EMU_RESET - desc: Any write to this register resets the TTC Emulator to the default state. - type: W - bitfield: - - range: any - value: 1 - type: T - - - name: TTC_L1ID_MONITOR - desc: Monitor L1ID and XL1ID. - type: R - bitfield: - - range: 31..0 - - - name: TTC_ECR_MONITOR - desc: Counts the number of ECRs received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_TTYPE_MONITOR - desc: Counts the number of TType received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_PERIODICITY_MONITOR - desc: Counts the number of times the BCR period does not match 3564, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_COUNTER - desc: Counts the number of times BCR is issued, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_EMU_TP_DELAY - desc: Number of BC that the testpulse should be sent before the L1A, 0 means no test pulse is sent - type: W - bitfield: - - range: 31..0 - default: 64 - - - name: TTC_L1A_DELAY - desc: In Phase1 the L0A bit is generated from L1A, but with a variable delay between 0 and 63 BC cycles from L0A to L1A - type: W - bitfield: - - range: 5..0 - default: 0 - - - name: TTC_CDRLOCK_MONITOR - desc: Monitor TTC CDR locked and ADN2814 LOL and LOS signals - type: W - bitfield: - - range: any - type: T - name: CLEAR - value: 1 - desc: Clears the latching cdrlock, LOL and LOS bitfields - - range: 5 - type: R - name: CDRLOCK_LOST - desc: asserted when CDRLOCKED has been 0, Clear by writing to CLEAR bitfield - - range: 4 - type: R - name: CDRLOCKED - desc: Set to 1 if the clock can be successfully recovered from the TTC signal - - range: 3 - type: R - name: ADN_LOL_LATCHED - desc: Latched Loss of lock from ADN2814, Clear by writing to CLEAR bitfield - - range: 2 - type: R - name: ADN_LOS_LATCHED - desc: Latched Loss of signal from ADN2814, Clear by writing to CLEAR bitfield - - range: 1 - type: R - name: ADN_LOL - desc: Loss of lock from ADN2814 - - range: 0 - type: R - name: ADN_LOS - desc: Loss of signal from ADN2814 - - - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 30..27 - name: B_CHAN_DELAY - type: W - desc: Number of BC to delay the L1A distribution to the frontends - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 1 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: TTC_BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - type_name: TTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - -LTITTCBUSYControlsAndMonitors: - group: LTITTCBUSY - desc: LTITTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - name: LTITTC_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE - bitfield: - - range: 0..0 - - - name: LTITTC_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST - bitfield: - - range: 0..0 - - - name: LTITTC_PLL_LOCK - bitfield: - - range: 1..1 - name: QPLL_LOCK - desc: QPLL LOCK - - range: 0..0 - name: CPLL_LOCK - desc: CPLL LOCK - - - name: LTITTC_RXCDR_LOCK - desc: RX CDR LOCK - bitfield: - - range: 0..0 - - - name: LTITTC_RXRESET_DONE - desc: RX Reset done - bitfield: - - range: 0..0 - - - name: LTITTC_RX_BYTEISALIGNED - bitfield: - - range: 0..0 - desc: LTITTC link not aligned - - - name: LTITTC_RX_DISP_ERROR - bitfield: - - range: 3..0 - desc: Rx disp error in byte 3,2,1,0 of LTITTC link - - - name: LTITTC_RX_NOTINTABLE - bitfield: - - range: 3..0 - desc: Character in byte 3,2,1,0 of LTITTC link not in 8b10b table - - - ref: LTITTC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: LTITTC_BUSY_ACCEPTED_G - - - name: LTITTC_SL0ID_MONITOR - desc: Counts Set L0ID input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_SORB_MONITOR - desc: Counts SetOrbit input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_GRST_MONITOR - desc: Counts GRST input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_SYNC_MONITOR - desc: Counts the Sync input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_TTYPE_MONITOR - desc: Counts the number of TType received from the LTITTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 46..15 - type: R - name: VALUE - - range: 15..0 - type: W - name: REFVALUE - - - name: LTITTC_L0ID_ERR_MONITOR - desc: Counts the number of times the internal l0id /= input L0ID - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_BCR_ERR_MONITOR - desc: Counts the number of times the BCR period does not match 3564, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_CRC_ERR_MONITOR - desc: Counts the number of time the internally computed crc /= input CRC - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - -LTITTC_CTRLMON: - group: TDCM - format_name: LTITTC_CTRLMON - entries: - - name: LTITTC_CTRL - format_name: LTITTC_CTRL - type_name: LTITTC_CTRLS - type: W - bitfield: - - range: 11..9 - name: LTITTC_GTH_LOOPBACK_CONTROL - desc: GTH_LOOPBACK_CONTROL for LTITTC Link - default: 0 - - range: 8 - name: LTITTC_SOFT_RESET - desc: SOFT_RESET - default: 0 - - range: 7 - name: LTITTC_QPLL_RESET - desc: QPLL_RESET - default: 0 - - range: 6 - name: LTITTC_CPLL_RESET - desc: CPLL_RESET - default: 0 - - range: 5 - name: LTITTC_SOFT_TX_RESET - desc: SOFT_TX_RESET_ALL - default: 0 - - range: 4 - name: LTITTC_SOFT_RX_RESET - desc: SOFT_RX_RESET_ALL - default: 0 - - range: 3..2 - name: LTITTC_GENERAL_CTRL - desc: Alignment chk reset (not self clearing) - default: 0 - - range: 1 - name: LTITTC_CHANNEL_DISABLE - desc: clear toHostData - default: 0 - - range: 0 - name: TOHOST_RST - desc: clear toHostData - default: 0 - - name: LTITTC_MON - format_name: LTITTC_MON - type_name: LTITTC_MONS - type: R - bitfield: - - range: 3 - name: BUSY_OUTPUT_STATUS - desc: Actual status of the BUSY LEMO output signal - - range: 2..0 - name: LTITTC_BIT_ERR - desc: Alignment comma not received correctly. Place holder - - -LTITTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: LTITTC_BUSY_ACCEPTED - format_name: LTITTC_BUSY_ACCEPTED{index:02} - type_name: LTITTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the low threshold of the channel fifo in FULL mode on which - an Xon will be asserted, bitfields control 4 MSB - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the high threshold of the channel fifo in FULL mode on which - an Xoff will be asserted, bitfields control 4 MSB - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 23..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 47..24 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 23..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 47..24 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 23..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - ref: XOFF_STATISTICS - - - name: BUSY_TOHOST_ENABLE - type: W - desc: Enable the busy ToHost Virtual Elink - bitfield: - - range: 0 - default: 0 - - - -ELINK_BUSY_ENABLE: - number: 24 - endpoints: 0 - type: W - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - type_name: ELINK_BUSY_ENABLE - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - bitfield: - - range: 56..0 - default: 0 - -XOFF_STATISTICS: - number: 24 - endpoints: 0,1 - type: R - entries: - - name: XOFF_PEAK_DURATION - format_name: XOFF_PEAK_DURATION{index:02} - type_name: XOFF_PEAK_DURATION - desc: Maximum occurred duration of XOFF on the given channel in 25ns bins since reset - bitfield: - - range: 63..0 - - name: XOFF_TOTAL_DURATION - format_name: XOFF_TOTAL_DURATION{index:02} - type_name: XOFF_TOTAL_DURATION - desc: Total occurred duration of XOFF on the given channel in 25ns bins, divide by number of Xoffs to calculate the average since reset - bitfield: - - range: 63..0 - - name: XOFF_COUNT - format_name: XOFF_COUNT{index:02} - type_name: XOFF_COUNT - desc: Total number of XOFF events per channel that occurred since a reset. - bitfield: - - range: 63..0 - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - name: HK_CTRL_FMC - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - desc: Write to this bitfield clears the latched SI5345_LOL status, SI5345_LOL_LATCHED - - range: 14 - name: SI5345_LOL_LATCHED - type: R - desc: Latched version of SI5345_LOL, clear by writing to CLEAR bitfield - - range: 13..12 - name: SI5345_INTR_B - type: R - desc: Connects to SI5345_INTR_B pins - - range: 11..10 - name: SI5345_FINC_B - type: W - desc: Connects to FINC_B pins of SI5345 - default: 1 - - range: 9..8 - name: SI5345_FDEC_B - type: W - desc: Connects to FDEC_B pins of SI5345 - default: 1 - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, not connected on VC709 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x1 - desc: Si5345 active low reset (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - desc: Clears the LOL_LATCHED status - - range: 4 - name: LOL_LATCHED - type: R - desc: Main MMCM has lost lock, clear by writing to the CLEAR bitfield - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - name: I2C_WR - type: W - offset: 0x420 - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 34..27 - name: DATA_BYTE3 - type: W - desc: Data byte 3 used when RW16BIT is set - - range: 26 - name: RW16BIT - type: W - desc: Set to 1 to Write 3 bytes (ADDR + 16 data bits) or read 16 data bits. - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - name: INT_TEST - offset: 0x0800 - type: W - value: 1 - bitfield: - - name: TRIGGER - type: T - range: any - desc: Fire a test MSIx interrupt set in IRQ - - name: IRQ - type: W - range: 3..0 - desc: Set this field to a value equal to the MSIX interrupt to be fired. The write triggers the interrupt immediately. - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - - name: RXUSRCLK_FREQ - type: W - bitfield: - - range: 38 - name: VALID - type: R - desc: Indicates that the frequency measurement is valid - - range: 37..32 - name: CHANNEL - type: W - desc: Select the Transceiver channel to measure the clock from. - - range: 31..0 - name: VAL - type: R - desc: Frequency in Hz of the selected channel - - -Generators: - group: GEN - desc: Specific registers for Hardware based Generators - endpoints: 0 - entries: - - name: FELIG_L1ID_RESET - fw_modes: 6,11 - type: W - desc: Any write to this register clears the FELIG L1ID - bitfield: - - range: any - type: T - value: 1 - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - fw_modes: 6,11 - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - name: FELIG_MON_FREQ_GLOBAL - fw_modes: 6,11 - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - name: FELIG_RESET - fw_modes: 6,11 - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - fw_modes: 6,11 - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - ref: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR - - ref: FELIG_MON_ITK_STRIPS_ARR - - ref: FELIG_DATA_GEN_CONFIG_USERDATA_ARR - - - name: FMEMU_EVENT_INFO - fw_modes: 7 - type: R - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - fw_modes: 7 - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - fw_modes: 7 - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 48 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 1 - desc: Enable Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: CONSTANT_CHUNK_LENGTH - default: 0 - desc: | - Data source select - 0: Random chunk length - 1: Constant chunk length - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 0 - type: W - name: FE_BUSY_ENABLE - default: 1 - desc: Enable the BUSY mechanism if L1A counter passes threshold - - - name: FMEMU_RANDOM_RAM_ADDR - fw_modes: 7 - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - fw_modes: 7 - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - fw_modes: 7 - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - - name: FMEMU_CONFIG_WRADDR - fw_modes: 7 - type: W - bitfield: - - range: 9..0 - value: 0 - desc: write enable for the FMEmu ram block - - - name: FMEMU_CONFIG - fw_modes: 7 - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to register WRDATA triggers a write to the ramblock - - range: 55..32 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 31..0 - name: WRDATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11 - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: CHUNK_LENGTH - range: 50..35 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 34..28 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 27..21 - default: 0 - desc: FELIG elink busy state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 20..7 - default: 0 - desc: FELIG data generator format, 2 bits per e-group. 00 8b10b, 01 direct, 10 Aurora - - name: PATTERN_SEL - range: 6..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11 - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 34..28 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 27..21 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 20..0 - default: 0 - desc: FELIG elink data output width. 3 bits per egroup. 0:2b, 1:4b, 2:8b, 3:16b, 4:32b - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - fw_modes: 6,11 - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11 - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - fw_modes: 6,11 - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - fw_modes: 6,11 - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - fw_modes: 6,11 - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - fw_modes: 6,11 - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - fw_modes: 6,11 - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - fw_modes: 6,11 - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - -FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11 - entries: - - name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - format_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - desc: ITk Strips emulator specific configuration test registers - bitfield: - - name: ITKS_FIFO_CTL - range: 19..17 - default: 0 - desc: data fifo control 2:rst 1:rd 0:wr. - - name: ITKS_FIFO_DATA - range: 16..0 - default: 0 - desc: itks emu data 16:last word 15-0:data word - -FELIG_MON_ITK_STRIPS_ARR: - number: 24 - type: R - fw_modes: 6,11 - entries: - - name: FELIG_MON_ITK_STRIPS - format_name: FELIG_MON_ITK_STRIPS_{index:02} - type_name: FELIG_MON_ITK_STRIPS - desc: ITk Strips emulator specific status registers - bitfield: - - name: ITKS_FIFO_STATUS - range: 2..0 - default: 0 - desc: data fifo status 2:write done 1:full 0:empty. - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_USERDATA_ARR: - number: 24 - type: W - fw_modes: 6 - entries: - - name: FELIG_DATA_GEN_CONFIG_USERDATA - format_name: FELIG_DATA_GEN_CONFIG_{index:02}_USERDATA - type_name: FELIG_DATA_GEN_CONFIG_USERDATA - desc: Sets static payload word. When FELIG_DATA_GEN_CONFIG.PATTERN_SEL=1. - bitfield: - - range: 15..0 - default: 0 - -Wishbone: - desc: Wishbone - endpoints: 0 - fw_modes: 1 - entries: - - name: WISHBONE_CONTROL - type: W - bitfield: - - range: 32 - name: WRITE_NOT_READ - desc: wishbone write command wishbone read command - - range: 31..0 - name: ADDRESS - desc: Slave address for Wishbone bus - - name: WISHBONE_WRITE - type: T - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to Wishbone fifo - - range: 32 - name: FULL - type: R - - range: 31..0 - name: DATA - type: W - - name: WISHBONE_READ - type: T - bitfield: - - range: any - type: T - value: 1 - name: READ_ENABLE - desc: Any write to this register triggers a read from the Wishbone to Wupper fifo - - range: 32 - name: EMPTY - type: R - desc: Indicates that the Wishbone to Wupper fifo is empty - - range: 31..0 - name: DATA - type: R - desc: Wishbone read data - - name: WISHBONE_STATUS - type: R - bitfield: - - range: 4 - name: INT - desc: interrupt - - range: 3 - name: RETRY - desc: Interface is not ready to accept data cycle should be retried - - range: 2 - name: STALL - desc: When pipelined mode slave can't accept additional transactions in its queue - - range: 1 - name: ACKNOWLEDGE - desc: Indicates the termination of a normal bus cycle - - range: 0 - name: ERROR - desc: Address not mapped by the crossbar - -# ----------------------- ITk strips link configuration start ----------------------- - -ITK_STRIPS_CTRL: - entries: - - name: GLOBAL_STRIPS_CONFIG - desc: Configuration affecting all Strips links on this FELIX device - type: W - fw_modes: 5 - bitfield: - - range: 63..59 - type: W - name: TEST_MODULE_MASK - desc: (for tests only) contains R3 mask for the simulated trigger data - default: 0x0 - - range: 58..52 - type: W - name: TEST_R3L1_TAG - desc: (for tests only) contains R3 or L1 tag for the simulated trigger data - default: 0x0 - - range: 51 - type: W - name: TTC_GENERATE_GATING_ENABLE - desc: Global control for gating signal generation. Enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - default: 0x0 - - range: 50 - type: W - name: TTC_GATING_OVERRIDE - desc: Overrides and disables gating signal generation when set to '1' - (use if the elink is deadlocked and commands don't reach it). - default: 0x0 - - range: 4 - type: W - name: INVERT_AMAC_IN - desc: Invert the polarity of all FELIX AMAC_IN elinks - default: 0x0 - - range: 3 - type: W - name: INVERT_AMAC_OUT - desc: Invert the polarity of all FELIX AMAC_OUT elinks - default: 0x0 - - range: 2 - type: W - name: INVERT_DIN - desc: Invert the polarity of all FELIX 8-bit IN 8b10b elinks - default: 0x0 - - range: 1 - type: W - name: INVERT_R3L1_OUT - desc: Invert the polarity of all FELIX R3L1 elinks - default: 0x0 - - range: 0 - type: W - name: INVERT_LCB_OUT - desc: Invert the polarity of all FELIX LCB elinks - default: 0x0 - - - name: GLOBAL_TRICKLE_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - value: 1 - desc: writing to this register issues a single trickle trigger for every LCB link connected to this FELIX device - - - name: STRIPS_R3_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - value: 1 - desc: (for tests only) simulate R3 trigger (issues 4-5 sequential triggers) - - name: STRIPS_L1_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - desc: (for tests only) simulate L1 trigger (issues 4-5 sequential triggers) - value: 1 - - name: STRIPS_R3L1_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - desc: (for tests only) simulate simultaneous R3 and L1 trigger (issues 4-5 sequential triggers) - value: 1 - -# ----------------------- ITk strips link configuration end ----------------------- - - -MRODregisters: - group: MROD_CONTROL - fw_modes: 8 - desc: Specific registers for MROD - endpoints: 0 - entries: - - name: MROD_CTRL - type: W - bitfield: - - range: 15..8 - name: OPTIONS - default: 0 - desc: Extra options for MROD - - range: 7..7 - name: ENASPARE1 - default: 0 - desc: Enable spare1 - - range: 6..6 - name: ENAMANSLIDE - default: 0 - desc: Enable Manual Slide in Rx Locking - - range: 5..5 - name: ENAPASSALL - default: 0 - desc: Enable PassAll in EmptySuppress - - range: 4..4 - name: ENATXCOUNT - default: 0 - desc: Enable SimpleCount in TxDriver for locking - - range: 3..0 - name: GOLTESTMODE - default: 0 - desc: | - GOL Test Mode (emulate CSM): - 0: Run Data Emulator when 1; 0: stop, load emulator fifo - 1: Enable Circulate when 1; 0: send fifo data only once - 2: Enable Triggered Mode when 1; 0: run continueously (no TTC) - 3: Enable pattern generator - - name: MROD_TCVRCTRL - type: W - bitfield: - - range: 23..16 - name: SLIDEMAX - default: 0xFF - desc: Maximum RXSLIDES before fire a TCVR reset - - range: 15..8 - name: SLIDEWAIT - default: 32 - desc: RXclk delay in TCVR for next RX_SLIDE operation - - range: 7..0 - name: FRAMESIZE - default: 20 - desc: Number of 32 data words in 1 frame - - name: MROD_EP0_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP0 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP0_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP0 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP0_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP0 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP0_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP0 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP0_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP0 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP0_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP0_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP0_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP0_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transmitter Reset channel 23-0 - default: 0 - - name: MROD_EP1_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP1 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP1_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP1 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP1_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP1 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP1_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP1 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP1_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP1 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP1_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP1_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP1_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP1_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transmitter Reset channel 23-0 - default: 0 - -MRODmonitors: - group: MROD_MONITOR - desc: Specific registers for MROD - endpoints: 0 - fw_modes: 8 - entries: - - name: MROD_EP0_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Empty 23-0 - - name: MROD_EP0_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Full 23-0 - - name: MROD_EP0_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Aligned monitor 23-0 - - name: MROD_EP0_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Data monitor 23-0 - - name: MROD_EP0_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Idle monitor 23-0 - - name: MROD_EP0_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP0 Transmitter Locked monitor 23-0 - - name: MROD_EP1_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Empty 23-0 - - name: MROD_EP1_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Full 23-0 - - name: MROD_EP1_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Aligned monitor 23-0 - - name: MROD_EP1_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Data monitor 23-0 - - name: MROD_EP1_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Idle monitor 23-0 - - name: MROD_EP1_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP1 Transmitter Locked monitor 23-0 - -IPBus: - desc: IPbus bridge registers - endpoints: 0 - fw_modes: 1 - entries: - - name: IPBUS_WRITE_ADDRESS - type: W - desc: Address of the IPBus Write RAM - bitfield: - - range: 31..0 - - name: IPBUS_WRITE_DATA - type: T - desc: IPbus data to write to RAM - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to IPBus inout RAM - - range: 63..0 - name: DATA - type: W - - name: IPBUS_READ_ADDRESS - type: W - desc: Address of the IPBus Read RAM - bitfield: - - range: 31..0 - - name: IPBUS_READ_DATA - type: R - desc: IPbus data from Read RAM - bitfield: - - range: 63..0 - - name: IPBUS_PKT_DONE - type: R - desc: IPbus packet ready to read - bitfield: - - range: 0 - diff --git a/sources/templates/yaml/registers-5.1.yaml b/sources/templates/yaml/registers-5.1.yaml deleted file mode 100644 index c7fc38e595feefe82d14e9185165525a19d1a078..0000000000000000000000000000000000000000 --- a/sources/templates/yaml/registers-5.1.yaml +++ /dev/null @@ -1,4307 +0,0 @@ -Registers: - version: '5.1' -#The warning message below can be disregarded, this is the part that gets into the generated files. -#***This file is actually the one that you are allowed to edit! - warning: | - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - DO NOT EDIT THIS FILE - - This file was generated from template '{{ metadata.template }}' - and register map {{ metadata.config }}, version {{ tree.version }} - by the script '{{ metadata.name }}', version: {{ metadata.version }}, - using the following commandline: - - {{ metadata.cmdline }} - - Please do NOT edit this file, but edit the source file at '{{ metadata.template }}' - - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - *************************************************************************** - - type: R - step: 0x010 - default: 0 - endpoints: 0,1 - entries: - - ref: Bar0 - offset: 0x0000 - - ref: Bar1 - offset: 0x0000 - - ref: Bar2 - offset: 0x0000 - - ref: Monitorsections - offset: 0x0000 - -Monitorsections: - endpoints: 0,1 - entries: - - name: GenericBoardInformation - record_name: register_map_gen_board_info - bitfield: - - range: 0..0 - type: R - - name: CRToHostControlsAndMonitors - record_name: register_map_crtohost_monitor - bitfield: - - range: 0..0 - type: R - - name: CRFromHostControlsAndMonitors - record_name: register_map_crfromhost_monitor - bitfield: - - range: 0..0 - type: R - - name: DecodingControlsAndMonitors - record_name: register_map_decoding_monitor - bitfield: - - range: 0..0 - type: R - - name: EncodingControlsAndMonitors - record_name: register_map_encoding_monitor - bitfield: - - range: 0..0 - type: R - - name: FrontendEmulatorControlsAndMonitors - record_name: register_map_gbtemu_monitor - bitfield: - - range: 0..0 - type: R - - name: LinkWrapperMonitors - record_name: register_map_link_monitor - bitfield: - - range: 0..0 - type: R - - name: TTCBUSYControlsAndMonitors - record_name: register_map_ttc_monitor - bitfield: - - range: 0..0 - type: R - - name: LTITTCBUSYControlsAndMonitors - record_name: register_map_ltittc_monitor - bitfield: - - range: 0..0 - type: R - - name: XOFF_BUSYControlsAndMonitors - record_name: register_map_xoff_monitor - bitfield: - - range: 0..0 - type: R - - name: HouseKeepingControlsAndMonitors - record_name: register_map_hk_monitor - bitfield: - - range: 0..0 - type: R - - name: Generators - record_name: register_map_generators - bitfield: - - range: 0..0 - type: R - - name: Wishbone - record_name: wishbone_monitor - bitfield: - - range: 0..0 - type: R - - name: MRODmonitors - record_name: regmap_mrod_monitor - bitfield: - - range: 0..0 - type: R - - name: IPBus - record_name: ipbus_monitor - bitfield: - - range: 0..0 - type: R - -#Bar0 contains the registers dedicated to Wupper. Please only edit registers in Bar2 -#Registers in this group will not be generated with WupperCodeGen -Bar0: - endpoints: 0,1 - entries: - - ref: DMA_DESC - - ref: DMA_DESC_STATUS - offset: 0x0200 - - name: BAR0_VALUE - offset: 0x0300 - bitfield: - - range: 31..0 - desc: Copy of BAR0 offset reg. - - name: BAR1_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR1 offset reg. - - name: BAR2_VALUE - bitfield: - - range: 31..0 - desc: Copy of BAR2 offset reg. - - name: DMA_DESC_ENABLE - offset: 0x0400 - bitfield: - - range: 7..0 - type: W - desc: Enable descriptors 7:0. One bit per descriptor. Cleared when Descriptor is handled. - - name: DMA_RESET - offset: 0x420 - type: T - bitfield: - - range: any - desc: Reset Wupper Core (DMA Controller FSMs) - - name: SOFT_RESET - type: T - bitfield: - - range: any - desc: Global Software Reset. Any write resets applications, e.g. the Central Router. - - name: REGISTER_RESET - type: T - bitfield: - - range: any - desc: Resets the register map to default values. Any write triggers this reset. - - name: FROMHOST_FULL_THRESH - type: W - bitfield: - - range: 22..16 - name: THRESHOLD_ASSERT - desc: Assert value of the FromHost programmable full flag - - range: 6..0 - name: THRESHOLD_NEGATE - desc: Negate value of the FromHost programmalbe full flag - - name: TOHOST_FULL_THRESH - type: W - bitfield: - - range: 27..16 - name: THRESHOLD_ASSERT - desc: Assert value of the ToHost programmable full flag - - range: 11..0 - name: THRESHOLD_NEGATE - desc: Negate value of the ToHost programmalbe full flag - - - name: BUSY_THRESHOLD_ASSERT - type: W - desc: Tohost or Fromhost busy will be asserted in circular DMA mode when the server PC buffer gets full (space below ASSERT threshold).. - default: 0x6400000 - bitfield: - - range: 63..0 - - - name: BUSY_THRESHOLD_NEGATE - type: W - desc: Tohost or Fromhost busy will be negated in circular DMA mode when the server PC buffer gets less full (space above NEGATE threshold). - default: 0x6E00000 - bitfield: - - range: 63..0 - - - name: BUSY_STATUS - type: R - bitfield: - - range: 0 - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - - - name: PC_PTR_GAP - type: W - desc: This is the minimum value that the pc_pointer in a descriptor has to decrease in order to flip the evencycle_pc bit - default: 0x1000000 - bitfield: - - range: 63..0 - - - name: TOHOSTFIFO_EMPTY - type: R - desc: Empty flags of the ToHost FIFOs in Wupper - bitfield: - - range: 3..0 - - - name: TOHOSTFIFO_PEMPTY - type: R - desc: Programmable empty flags of the ToHost FIFOs in Wupper - bitfield: - - range: 3..0 - - - name: FROMHOSTFIFO_FULL - type: R - desc: Full flag of the FromHost FIFO in Wupper - bitfield: - - range: 0 - - - name: FROMHOSTFIFO_PFULL - type: R - desc: Programmable full flag of the FromHost FIFO in Wupper - bitfield: - - range: 0 - - -DMA_DESC: - number: 8 - type: W - entries: - - name: DMA_DESC_{index} - bitfield: - - range: 127..64 - name: END_ADDRESS - desc: End Address - - range: 63..0 - name: START_ADDRESS - desc: Start Address - - name: DMA_DESC_{index}a - bitfield: - - range: 127..64 - name: SW_POINTER - desc: Pointer controlled by the software, indicating read or write status for circular DMA - - range: 12 - name: WRAP_AROUND - desc: Wrap around - - range: 11 - type: R - name: FROMHOST - desc: "1: fromHost/ 0: toHost" - - range: 10..0 - name: NUM_WORDS - desc: Number of 32 bit words - -DMA_DESC_STATUS: - number: 8 - entries: - - name: DMA_DESC_STATUS_{index} - bitfield: - - range: 66 - name: EVEN_PC - desc: Even address cycle PC - - range: 65 - name: EVEN_DMA - desc: Even address cycle DMA - - range: 64 - name: DESC_DONE - desc: Descriptor Done - - range: 63..0 - name: FW_POINTER - desc: Pointer controlled by the firmware, indicating where the DMA is busy reading or writing - - -#Bar1 contains the registers dedicated to the Wupper interrupt controller. -#Please only edit registers in Bar2. -#Registers in this group will not be generated with WupperCodeGen -Bar1: - endpoints: 0,1 - type: W - entries: - - ref: INT_VEC - - name: INT_TAB_ENABLE - offset: 0x100 - bitfield: - - range: 7..0 - desc: | - Interrupt Table enable - Selectively enable Interrupts - -INT_VEC: - number: 16 - type: W - entries: - - name: INT_VEC_{index} - bitfield: - - range: 127..96 - name: INT_CTRL - desc: Interrupt Control - - range: 95..64 - name: INT_DATA - desc: Interrupt Data - - range: 64..0 - name: INT_ADDRESS - desc: Interrupt Address - -#Bar 2 contains application specific registers, used in the example application. -#Registers in this group (and it's referenced subroups) will be generated with -#WupperCodeGen for wupper Firmware, Software and Documentation -Bar2: - entries: - - ref: GenericBoardInformation - offset: 0x0000 - - ref: CRToHostControlsAndMonitors - offset: 0x0800 - - ref: CRFromHostControlsAndMonitors - offset: 0x1000 - - ref: DecodingControlsAndMonitors - offset: 0x1800 - - ref: EncodingControlsAndMonitors - offset: 0x3000 - - ref: FrontendEmulatorControlsAndMonitors - offset: 0x4000 - - ref: LinkWrapperControls - offset: 0x5000 - - ref: LinkWrapperMonitors - offset: 0x6000 - - ref: TTCBUSYControlsAndMonitors - offset: 0x7000 - - ref: XOFF_BUSYControlsAndMonitors - offset: 0x8000 - - ref: LTITTCBUSYControlsAndMonitors - offset: 0x8800 - - ref: HouseKeepingControlsAndMonitors - offset: 0x9000 - - ref: Generators - offset: 0xA000 - - ref: Wishbone - offset: 0xC000 - - ref: IPBus - offset: 0xC800 - - ref: ITK_STRIPS_CTRL # ITk strips global controls - offset: 0xD000 - - ref: MRODregisters - offset: 0xF000 - - ref: MRODmonitors - offset: 0xF800 - - - -GenericBoardInformation: - group: GEN - desc: Generic Board Information - endpoints: 0,1 - entries: - - name: REG_MAP_VERSION - bitfield: - - range: 15..0 - value: std_logic_vector(to_unsigned({{ tree.version|version }},16)) - desc: Register Map Version, {{ tree.version }} formatted as {{ tree.version|version|xhex }} - - - name: BOARD_ID_TIMESTAMP - bitfield: - - range: 39..0 - value: BUILD_DATETIME - desc: Board ID Date / Time in BCD format YYMMDDhhmm - - - name: GIT_COMMIT_TIME - offset: 0x30 - bitfield: - - range: 39..0 - value: COMMIT_DATETIME - desc: Board ID GIT Commit time of current revision, Date / Time in BCD format YYMMDDhhmm - - - name: GIT_TAG - bitfield: - - range: 63..0 - value: GIT_TAG(63 downto 0) - desc: String containing the current GIT TAG - - - name: GIT_COMMIT_NUMBER - bitfield: - - range: 31..0 - value: std_logic_vector(to_unsigned(GIT_COMMIT_NUMBER,32)) - desc: Number of GIT commits after current GIT_TAG - - - name: GIT_HASH - bitfield: - - range: 31..0 - value: GIT_HASH(159 downto 128) - desc: Short GIT hash (32 bit) - - - name: STATUS_LEDS - type: W - bitfield: - - range: 7..0 - default: 0xAB - desc: Board GPIO Leds - - - name: GENERIC_CONSTANTS - bitfield: - - range: 35..32 - name: TRICKLE_DESCRIPTOR_INDEX - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,4)) - desc: Index of the (first if more than one) Trickle descriptor - - range: 31..28 - name: FROMHOST_DESCRIPTOR_INDEX - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS-1,4)) - desc: Index of the (first if more than one) FromHost descriptor - - range: 27..24 - name: TRICKLE_DESCRIPTORS - value: std_logic_vector(to_unsigned(1,4)) - desc: Number of Trickle descriptors - - range: 23..20 - name: FROMHOST_DESCRIPTORS - value: std_logic_vector(to_unsigned(1,4)) - desc: Number of FromHost descriptors - - range: 19..16 - name: TOHOST_DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS-1,4)) - desc: Number of ToHost descriptors - - range: 15..8 - name: INTERRUPTS - value: std_logic_vector(to_unsigned(NUMBER_OF_INTERRUPTS,8)) - desc: Number of Interrupts - - range: 7..0 - name: DESCRIPTORS - value: std_logic_vector(to_unsigned(NUMBER_OF_DESCRIPTORS,8)) - desc: Number of Descriptors Tohost + FromHost excluding trickle descriptor - - - name: NUM_OF_CHANNELS - bitfield: - - range: 7..0 - desc: Number of GBT or FULL mode Channels - - - name: CARD_TYPE - bitfield: - - range: 63..0 - value: std_logic_vector(to_unsigned(CARD_TYPE,64)) - desc: | - Card Type: - - 709 (0x2c5): FLX709, VC709 - - 710 (0x2c6): FLX710, HTG710 - - 711 (0x2c7): FLX711, BNL711 - - 712 (0x2c8): FLX712, BNL712 - - 128 (0x080): FLX128, VCU128 - - 180 (0x0B4): FLX180, VMK180 - - 181 (0x0B5): FLX181, BNL181 - - 182 (0x0B6): FLX182, BNL182 - - - name: GENERATE_GBT - offset: 0xc0 - bitfield: - - range: 0 - desc: 1 when the GBT Wrapper is included in the design - - - name: OPTO_TRX_NUM - bitfield: - - range: 7..0 - desc: Number of optical transceivers in the design - - - name: GENERATE_TTC_EMU - type: R - bitfield: - - range: 1 - type: R - desc: 1 when TTC emulator is generated - - - offset: 0x100 - ref: INCLUDE_EGROUPS - - - - name: WIDE_MODE - type: R - bitfield: - - range: 0 - desc: GBT is configured in Wide mode - - - name: FIRMWARE_MODE - type: R - offset: 0x190 - bitfield: - - range: 4..0 - desc: | - 0: GBT mode - 1: FULL-GBT - 2: LTDB mode (GBT mode with only IC and TTC links) - 3: FEI4 mode - 4: ITK Pixel - 5: ITK Strip - 6: FELIG GBT - 7: FULL mode emulator - 8: FELIX_MROD mode - 9: lpGBT mode - 10: 25G Interlaken - 11: FELIG LPGBT - 12: HGTD_LUMI - 13: BCMPRIME - 14: FELIG_PIXEL - 15: FELIG_STRIP - - - name: GTREFCLK_SOURCE - type: R - bitfield: - - range: 1..0 - desc: | - 0: Transceiver reference Clock source from Si5345 - 1: Transceiver reference Clock source from Si5324 - 2: Transceiver reference Clock from internal BUFG (GREFCLK) - - - name: CR_GENERICS - type: R - bitfield: - - range: 2 - name: XOFF_INCLUDED - desc: Xoff bits (usually full mode) can be generated by the FromHost Central Router - - range: 1 - name: DIRECT_MODE_INCLUDED - desc: Indicates that the Direct mode functionality was built in the Central Router - - range: 0 - name: FROM_HOST_INCLUDED - desc: Indicates that the From Host path of the Central router was included in the design - - - name: BLOCKSIZE - type: R - desc: Number of bytes in a block - bitfield: - - range: 15..0 - - - name: PCIE_ENDPOINT - type: R - desc: Indicator of the PCIe endpoint on BNL71x cards with two endpoints. 0 or 1 - bitfield: - - range: 0 - value: std_logic_vector(to_unsigned(PCIE_ENDPOINT, 1)) - - - name: CHUNK_TRAILER_32B - type: R - desc: Indicator that the chunk trailer is in the new 32-bit format - bitfield: - - range: 0 - - - name: NUMBER_OF_PCIE_ENDPOINTS - type: R - desc: Number of PCIe endpoints on the card. The BNL71x cards have 2 endpoints - bitfield: - - range: 1..0 - - - name: AXI_STREAMS_TOHOST - type: R - bitfield: - - range: 23..16 - name: IC_INDEX - desc: The AXIs ID (EPath-ID) of the ToHost IC E-Link - - range: 15..8 - name: EC_INDEX - desc: The AXIs ID (EPath-ID) of the ToHost EC E-Link - - range: 7..0 - name: NUMBER_OF_STREAMS - desc: Total number of AXIs IDs (EPath-IDs) per physical link ToHost - - - name: AXI_STREAMS_FROMHOST - type: R - bitfield: - - range: 23..16 - name: IC_INDEX - desc: The AXIs ID (EPath-ID) of the FromHost IC E-Link - - range: 15..8 - name: EC_INDEX - desc: The AXIs ID (EPath-ID) of the FromHost EC E-Link - - range: 7..0 - name: NUMBER_OF_STREAMS - desc: Total number of AXIs IDs (EPath-IDs) per physical link FromHost - - - name: FROMHOST_DATA_FORMAT - type: R - desc: | - 0: The data format is as it was in phase1, supporting only multiples of 2 bytes - 1: FromHost header uses a 5-bit length field as described in FLX-1355 - 2: FromHost header is 32-bit and the packet length is 256-bit (32 bytes) including the header FLX-1601 - 3: FromHost header is 32-bit and the packet length is 512-bit (64 bytes) including the header FLX-1601 - 4: FromHost header is 32-bit and the packet length is 256-bit (32 bytes) including the header FLX-2294. All header bitfields are 8 bit - 5: FromHost header is 32-bit and the packet length is 512-bit (64 bytes) including the header FLX-2294. All header bitfields are 8 bit - 6: FromHost header is 32-bit and the packet length is 1024-bit (128 bytes) including the header FLX-2294. All header bitfields are 8 bit - bitfield: - - range: 2..0 - - - name: FULLMODE_HALFRATE - type: R - desc: If set to 1 the FULL mode firmware is running at 4.8Gb instead of the default 9.6Gb - bitfield: - - range: 0 - - - name: SUPPORT_HDLC_DELAY - type: R - desc: The HDLC encoders can offload a 1us delay as described in FLX-1826 - bitfield: - - range: 0 - - - name: TOHOST_DATA_FORMAT - type: R - desc: | - 0: Use subchunk trailer format - 1: Use subchunk header format - 2: Use blockless header format - bitfield: - - range: 1..0 - - -INCLUDE_EGROUPS: - number: 7 - entries: - - format_name: INCLUDE_EGROUP_{index} - name: INCLUDE_EGROUP - type_name: INCLUDE_EGROUP - type: R - bitfield: - - range: 9 - name: TOHOST_32 - desc: ToHost EPATH32 is included in this EGROUP - - range: 8 - name: FROMHOST_02 - desc: FromHost EPATH02 is included in this EGROUP - - range: 7 - name: FROMHOST_04 - desc: FromHost EPATH04 is included in this EGROUP - - range: 6 - name: FROMHOST_08 - desc: FromHost EPATH8 is included in this EGROUP - - range: 5 - name: FROMHOST_HDLC - desc: FromHost HDLC is included in this EGROUP - - range: 4 - name: TOHOST_02 - desc: ToHost EPATH02 is included in this EGROUP - - range: 3 - name: TOHOST_04 - desc: ToHost EPATH04 is included in this EGROUP - - range: 2 - name: TOHOST_08 - desc: ToHost EPATH08 is included in this EGROUP - - range: 1 - name: TOHOST_16 - desc: ToHost EPATH16 is included in this EGROUP - - range: 0 - name: TOHOST_HDLC - desc: ToHost HDLC is included in this EGROUP - - -CRToHostControlsAndMonitors: - group: CRTHC - desc: Central Router ToHost Controls and Monitors - endpoints: 0,1 - entries: - - name: TIMEOUT_CTRL - type: W - descr: Controls the timout mechanism in the ToHost central router. - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: 1 enables the timout trailer generation for ToHost mode - - range: 31..0 - name: TIMEOUT - default: 0xFFFFFFFF - desc: Number of 40 MHz clock cycles after which a timeout occurs. - - name: MAX_TIMEOUT - type: R - desc: Maximum allowed timeout value - bitfield: - - range: 31..0 - - name: CRTOHOST_FIFO_STATUS - type: W - descr: Status of the width matching FIFOs in the CRToHost block - bitfield: - - range: any - name: CLEAR - type: T - desc: Any write to this register clears the latched FULL flags - value: 1 - - range: 47..24 - type: R - name: FULL - desc: Every bit represents the full flag of a channel FIFO - - range: 23..0 - type: R - name: FULL_LATCHED - desc: like FULL but a latched state, clear by writing to this register - - name: CRTOHOST_DMA_DESCRIPTOR_1 - type: W - bitfield: - - range: any - name: WR_EN - type: T - value: 1 - desc: Any write to this register assigns the DMA ID to the AXIS_ID set in CRTOHOST_DMA_DESCRIPTOR_2.AXIS_ID - - range: 2..0 - name: DESCR - desc: Target descriptor - - name: CRTOHOST_DMA_DESCRIPTOR_2 - type: W - bitfield: - - range: 13..11 - name: DESCR_READ - type: R - desc: Read back the value of the descriptor assigned to AXIS_ID - - range: 10..0 - name: AXIS_ID - desc: ID of the AXI stream (E-Path ID) to associate with CRTOHOST_DMA_DESCRIPTOR_1.DESCR - type: W - - ref: CRTOHOST_INSTANT_TIMEOUT_ENA_GEN - - name: DISCARD_DATA_FOR_DESCR - type: W - bitfield: - - range: 15..8 - name: FIFO_FULL - desc: Discard data for a given DMA channel when Wupper FIFO is full, even if DMA is enabled - default: 0 - - range: 7..0 - name: DMA_DISABLED - desc: Discard data for a given DMA channel when Wupper FIFO is full, and the descriptor is not enabled - default: 0xFF - -CRTOHOST_INSTANT_TIMEOUT_ENA_GEN: - number: 24 - type: W - entries: - - name: CRTOHOST_INSTANT_TIMEOUT_ENA - format_name: CRTOHOST_INSTANT_TIMEOUT_ENA_{index:02} - type_name: CRTOHOST_INSTANT_TIMEOUT_ENA - desc: Enable instant timeout after the first data arrives in CRToHost. - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 41..0 - -CRFromHostControlsAndMonitors: - group: CRFHC - desc: Central Router FromHost Controls and Monitors - endpoints: 0,1 - entries: - - name: CRFROMHOST_FIFO_STATUS - type: W - descr: Status of the width matching FIFOs in the CRFromHost block - bitfield: - - range: any - name: CLEAR - type: T - desc: Any write to this register clears the latched FULL flags - value: 1 - - range: 47..24 - type: R - name: FULL - desc: Every bit represents the full flag of a channel FIFO - - range: 23..0 - type: R - name: FULL_LATCHED - desc: like FULL but a latched state, clear by writing to this register - - ref: BROADCAST_ENABLE_GEN - - name: CRFROMHOST_RESET - descr: Self clearing reset for CRFromHost and Encoding - type: W - bitfield: - - range: any - type: T - value: 1 - - -BROADCAST_ENABLE_GEN: - number: 24 - type: W - entries: - - name: BROADCAST_ENABLE - format_name: BROADCAST_ENABLE_{index:02} - type_name: BROADCAST_ENABLE - desc: Enable path to be included in a broadcast message. - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 41..0 - -DecodingControlsAndMonitors: - desc: Decoding block - endpoints: 0,1 - entries: - - name: ELINK_REALIGNMENT - type: W - fw_modes: 0,2,3,4,5,6,9,11,12,13,14,15 - bitfield: - - range: any - name: CLEAR_REALIGNMENT_STATUS - type: T - value: 1 - desc: Clears the ELINK Realignment event flags - - range: 0 - name: ENABLE - default: 1 - desc: Enable realignment mechanism in 8b10b E-Links after illegal character reception. - - - ref: ELINK_REALIGNMENT_STATUS_GEN - - ref: ELINK_REALIGNMENT_COUNT_GEN - - ref: PATH_HAS_STREAM_ID - offset: 0x800 - - ref: DECODING_LINK_STATUS_ARR - - ref: DECODING_EGROUP_CTRL_GEN - - ref: MINI_EGROUP_TOHOST_GEN - - name: TTC_TOHOST_ENABLE - desc: Enables the ToHost Mini Egroup in TTC mode - type: W - bitfield: - - range: 0 - default: 1 - - name: DECODING_REVERSE_10B - desc: | - Reverse 10-bit word of elink data for 8b10b E-links - 1: Receive 10-bit word in ToHost E-Paths, MSB first - 0: Receive 10-bit word in ToHost E-Paths, LSB first - type: W - fw_modes: 0,2,3,4,5,6,9,11,12,13,14,15 - bitfield: - - range: 0 - default: 1 - - name: DECODING_ENDIANNESS_FULL_MODE - desc: | - Specify the byte order in FULL mode - 1: Big-endian - 0: Little-endian - type: W - fw_modes: 1 - bitfield: - - range: 0 - type: W - default: 0 - -# - ref: RD53B_PROCESSOR_GEN - - ref: YARR_DEBUG_ALLEGROUP_TOHOST_GEN - desc: Count receive packets of a given value - - ref: PATH_ERRORS - - name: INTERLAKEN_CONTROL - desc: Configures Interlaken decoder - type: W - fw_modes: 10 - bitfield: - - range: 12 - type: R - name: HEALTH_INTERFACE - default: 1 - desc: Automatically detect the lane number in the interlaken descrambler - - range: 11..0 - name: PACKET_LENGTH - desc: Lenth of an interlaken metaframe - default: 2024 - - ref: INTERLAKEN_STATUS_GEN - - ref: SUPER_CHUNK_FACTOR_GEN - offset: 0x15E0 - - ref: DECODING_LINK_CB_GEN - - name: DECODING_MASK64B66BKBLOCK - desc: Mask User K-Block based on its block number (see sp011) - type: W - fw_modes: 4 - bitfield: - - range: 3..0 - default: 10 - - name: DECODING_DISEGROUP - desc: Disable egroups for debugging purposes - type: W - bitfield: - - range: 6..0 - default: 0 - - - name: FULLMODE_32B_SOP - type: W - desc: When set to 1, use 32-bit 0x0000003C as start of chunk, otherwise only 8-bit 0x3C (FULL mode only) - fw_modes: 1 - bitfield: - - range: 0 - default: 0 - - - name: DECODING_HGTD_ALTIROC - type: W - desc: Set to 1 to use HGTD Altiroc K characters in the 8b10b decoders (LPGBT firmware mode) - fw_modes: 9 - bitfield: - - range: 0 - default: 0 - - - name: DECODING_HGTD_LUMI_CONF - type: W - desc: HGTD Luminosity firmware configuration - fw_modes: 12 - bitfield: - - range: 36 - name: DEBUG_DATASOURCE - default: 0 - desc: enable local data source for debugging - - range: 35 - name: RAW_MODE - default: 0 - desc: enable RAW mode (just forwarding 6b8b data) - - range: 34..25 - name: LHC_TURNS - default: 100 - desc: number of LHC turns to aggregate - - range: 24..16 - name: TRIG_LAT - default: 0 - desc: trigger latency for per-event luminosity - - range: 15..0 - name: SYNC_WORD - default: 0x4778 - desc: sync word for luminosity stream - -ELINK_REALIGNMENT_STATUS_GEN: - endpoints: 0, 1 - number: 12 - fw_modes: 0,2,3,4,5,6,9,11,12,13,14,15 - entries: - - name: ELINK_REALIGNMENT_STATUS - type_name: ELINK_REALIGNMENT_STATUS - format_name: ELINK_REALIGNMENT_STATUS_{index:02} - generate: GBT_NUM > {index:1} - desc: | - A realignment event due to an illegal 8b10b symbol has occurred. - 1 bit per Epath. - Clear status by writing to ELINK_REALIGNMENT.CLEAR_REALIGNMENT_STATUS - bitfield: - - range: 41..0 - -ELINK_REALIGNMENT_COUNT_GEN: - endpoints: 0, 1 - number: 12 - fw_modes: 0,2,3,4,5,6,9,11,12,13,14,15 - entries: - - name: ELINK_REALIGNMENT_COUNT - type_name: ELINK_REALIGNMENT_COUNT - format_name: ELINK_REALIGNMENT_COUNT_{index:02} - generate: GBT_NUM > {index:1} - desc: | - A realignment event due to an illegal 8b10b symbol on any E-Link in the link increments the counter. - Clear status by writing to ELINK_REALIGNMENT.CLEAR_REALIGNMENT_STATUS - bitfield: - - range: 31..0 - -PATH_HAS_STREAM_ID: - number: 24 - generate: GBT_NUM > {index:1} - entries: - - name: HAS_STREAM_ID - format_name: LINK_{index:02}_HAS_STREAM_ID - type_name: HAS_STREAM_ID - type: W - bitfield: - - range: 55..48 - name: EGROUP6 - default: 0x0 - desc: EPATH (Wide mode or lpGBT) is associated with a STREAM ID - - range: 47..40 - name: EGROUP5 - default: 0x0 - desc: EPATH (Wide mode or lpGBT) is associated with a STREAM ID - - range: 39..32 - name: EGROUP4 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 31..24 - name: EGROUP3 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 23..16 - name: EGROUP2 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 15..8 - name: EGROUP1 - default: 0x0 - desc: EPATH is associated with a STREAM ID - - range: 7..0 - name: EGROUP0 - default: 0x0 - desc: EPATH is associated with a STREAM ID, use only bit0 for FULL mode. - -DECODING_LINK_STATUS_ARR: - number: 24 - type: R - entries: - - name: DECODING_LINK_ALIGNED - format_name: DECODING_LINK_ALIGNED_{index:02} - type_name: DECODING_LINK_ALIGNED - desc: Every bit corresponds to an E-link on one (lp)GBT or FULL-mode frame. For FULL mode only bit 0 is used - bitfield: - - range: 57..0 - -DECODING_EGROUP_CTRL_GEN: - number: 12 - format_name: DECODING_EGROUP_GEN - generate: GBT_NUM > {index:1} - entries: - - ref: DECODING_EGROUP - -DECODING_EGROUP: - number: 7 - format_name: LINK{index:02} - type_name: DECODING_EGROUP - entries: - - name: EGROUP - format_name: DECODING_{parent}_{name}{index:1}_CTRL - type_name: DECODING_EGROUP_CTRL - desc: Contols Egroup for lpGBT and GBT based links - type: W - bitfield: - - range: 59 - name: ENABLE_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 58..51 - name: EPATH_ALMOST_FULL - type: R - desc: FIFO full indication - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..11 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 4 bits per E-path - 0: direct mode - 1: 8b10b mode - 2: HDLC mode - 3: TTC - 4: ITk Strips 8b10b - 5: ITk Pixel - 6: Endeavour - 7-15: reserved - default: 0x11111111 - - range: 10..8 - name: EPATH_WIDTH - default: 0 - desc: Width in bits of all EPATHS in an EGROUP 0:2, 1:4, 2:8, 3:16, 4:32 - - range: 7..0 - name: EPATH_ENA - desc: Enable bits per EPATH - default: 0 - -MINI_EGROUP_TOHOST_GEN: - number: 24 - type: W - fw_modes: 0,2,3,4,5,9,12,13 - entries: - - name: MINI_EGROUP_TOHOST - format_name: MINI_EGROUP_TOHOST_{index:02} - type_name: MINI_EGROUP_TOHOST - desc: Configures the ToHost Mini egroup - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 15 - name: ENABLE_AUX_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 14 - name: ENABLE_IC_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 13 - name: ENABLE_EC_TRUNCATION - type: W - desc: Enable truncation mechanism in HDLC decoder for chunks > 12 bytes - default: 0 - - range: 12 - type: R - name: AUX_ALMOST_FULL - desc: Indicator that the AUX path FIFO is almost full - - range: 11 - name: AUX_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 10 - name: AUX_ENABLE - desc: Enables the AUX channel - default: 1 - - range: 9 - type: R - name: IC_ALMOST_FULL - desc: Indicator that the IC path FIFO is almost full - - range: 8 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 7 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 6 - type: R - name: EC_ALMOST_FULL - desc: Indicator that the EC path FIFO is almost full - - range: 5 - name: EC_BIT_SWAPPING - desc: "0: two input bits of EC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 4..1 - name: EC_ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: EC_ENABLE - desc: Enables the EC channel - default: 1 - - -#RD53B_PROCESSOR_GEN: -# number: 64 -# entries: -# - name: RD53B_PROCESSOR -# format_name: RD53B_PROCESSOR_{index:02} -# type_name: RD53B_PROCESSOR -# bitfield: -# - range: 3 -# name: ENABLE_MULTICHIP -# - range: 2 -# name: ENABLE_BINARYTREE -# - range: 1 -# name: ENABLE_TOT -# - range: 0 -# name: DROP_TOT - -SUPER_CHUNK_FACTOR_GEN: - number: 12 - entries: - - name: SUPER_CHUNK_FACTOR_LINK - format_name: SUPER_CHUNK_FACTOR_LINK_{index:02} - type_name: SUPER_CHUNK_FACTOR_LINK - type: W - desc: number of chunks glued together - bitfield: - - range: 7..0 - default: 1 - -DECODING_LINK_CB_GEN: - number: 12 - fw_modes: 4 - entries: - - name: DECODING_LINK_CB - format_name: DECODING_LINK_{index:02}_CB - type_name: DECODING_LINK_CB - type: W - bitfield: - - name: DESKEWED - range: 61..4 - type: R - desc: | - Every bit corresponds to an E-link on one (lp)GBT frame. - Register indicates whether the E-link has been de-skewed in the channel. - E-link are grouped in a channel according to CBOPT - - name: CBOPT - range: 3..0 - desc: | - Channel bonding option - 0: no bonding - 3: Bonding 0/1/2 3/4/5 - other values: reserved - default: 0 - -YARR_DEBUG_ALLEGROUP_TOHOST_GEN: - number: 12 - fw_modes: 4,5 - entries: - - name: YARR_DEBUG_ALLEGROUP_TOHOST - format_name: YARR_DEBUG_ALLEGROUP_TOHOST_{index:02} - type_name: YARR_DEBUG_ALLEGROUP_TOHOST - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 63..32 - name: REF_PACKET - type: W - desc: Reference packet to be matched - default: 0x02000000 - - range: 31..0 - name: CNT_RX_PACKET - type: R - desc: Count packets of a given value - -YARR_DEBUG_ALLEGROUP_FROMHOST_GEN: - fw_modes: 4,5 - number: 12 - entries: - - name: YARR_DEBUG_ALLEGROUP_FROMHOST1 - format_name: YARR_DEBUG_ALLEGROUP_FROMHOST1_{index:02} - type_name: YARR_DEBUG_ALLEGROUP_FROMHOST1 - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 48 - type: W - name: RD53A_AZ_EN - desc: Auto zeroing module enable - default: 0 - - range: 47..16 - type: R - name: CNT_TRIG_CMD - desc: Number of issued triggers via cmd - - range: 15..8 - type: R - name: ERR_GENCALTRIG_DLY - desc: Number of mismatches between CNT_GENCALTRIG_DLY and REF_DLY_GENCALTRIG - - range: 7..0 - type: W - name: REF_DLY_GENCALTRIG - desc: Reference distance between GenCal and First Trigger - default: 0x0F - - name: YARR_DEBUG_ALLEGROUP_FROMHOST2 - format_name: YARR_DEBUG_ALLEGROUP_FROMHOST2_{index:02} - type_name: YARR_DEBUG_ALLEGROUP_FROMHOST2 - type: W - generate: GBT_NUM > {index:1} - bitfield: - - range: 47..16 - type: R - name: CNT_CMD - desc: Number of issued commands - - range: 15..0 - type: W - name: REF_CMD - desc: Cmd type to be counted. See RD53 Manual for list of allowed commands - default: 0x6666 - -PATH_ERRORS: - number: 24 - generate: GBT_NUM > {index:1} - entries: - - name: LINK_ERRORS - fw_modes: 0,4,5,9 - format_name: LINK_{index:02}_ERRORS - type_name: LINK_ERRORS - type: W - bitfield: - - range: 35 - name: CLEAR_COUNTERS - type: W - desc: Set to 1 to clear all counter values for all egroups in the link. Set to 0 to start counting errors. - - range: 34..32 - name: EGROUP_SELECT - desc: Errors for Egroup1 - type: W - - range: 31..0 - name: COUNT - desc: Errors for the selected egroup - type: R - - -INTERLAKEN_STATUS_GEN: - number: 12 - generate: GBT_NUM > {index:1} - entries: - - name: INTERLAKEN_STATUS - fw_modes: 4 - format_name: INTERLAKEN_LANE_{index:02}_STATUS - type_name: INTERLAKEN_STATUS - type: W - fw_modes: 10 - bitfield: - - range: any - type: T - name: CLEAR_STATUS - value: 1 - - range: 8 - type: R - name: DECODER_ERROR_SYNC - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 7 - type: R - name: DESCRAMBLER_ERROR_BADSYNC - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 6 - type: R - name: DESCRAMBLER_ERROR_STATEMISMATCH - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 5 - type: R - name: DESCRAMBLER_ERROR_NOSYNC - desc: Sticky error bit, clear with CLEAR_STATUS - - range: 4 - type: R - name: BURST_CRC24_ERROR - desc: Sticky CRC error bit, clear with CLEAR_STATUS - - range: 3 - type: R - name: META_CRC32_ERROR - desc: Sticky CRC error bit, clear with CLEAR_STATUS - - range: 2 - type: R - name: HEALTH_LANE - desc: Health bit for this lane - - range: 1 - type: R - name: DESCRAMBLER_ALIGNED - desc: This channels descrambler is aligned - - range: 0 - type: R - name: DECODER_ALIGNED - desc: This channels decoder is aligned - - - -EncodingControlsAndMonitors: - desc: Encoding block - endpoints: 0,1 - entries: - - name: ENCODING_REVERSE_10B - desc: Reverse 10-bit word of elink data for 8b10b E-links. 1 MSB first, 0 LSB first - type: W - fw_modes: 0,1,2,3,6,9,10,11,12,13,14,15 - bitfield: - - range: 0 - default: 1 - - ref: ENCODING_EGROUP_CTRL_GEN - - ref: MINI_EGROUP_FROMHOST_GEN - - ref: ENCODING_EGROUP_CTRL_FEI4_GEN - - ref: YARR_DEBUG_ALLEGROUP_FROMHOST_GEN - desc: Count triggers, compare distance between GenCal and Trigger with reference. Check YARR doc - - name: YARR_FROMHOST_CALTRIGSEQ_WE - fw_modes: 4,5 - desc: enable to store CalPulse+Trigger Sequence into memory - type: W - bitfield: - - range: 0 - default: 0 - - name: YARR_FROMHOST_CALTRIGSEQ_WRDATA - fw_modes: 4,5 - desc: CalPulse+Trigger Sequence to be stored in memory - type: W - bitfield: - - range: 15..0 - - name: YARR_FROMHOST_CALTRIGSEQ_WRADDR - fw_modes: 4,5 - desc: memory address to store CalPulse+Trigger Sequence - type: W - bitfield: - - range: 4..0 - - name: HGTD_ALTIROC_FASTCMD - fw_modes: 9 - desc: Controls the HGTD Altiroc FASTCMD TTC encoder functionality (TTC option 8). - type: W - bitfield: - - range: 14 - name: ALTIROC3_IDLE - desc: 0 for ALTIROC2 10101100, 1 for ALTIROC3 11110000 - default: 0 - - range: 13 - name: USE_CAL - desc: When set to 1, CAL will be sent on L1A, then after TRIG_DELAY BC clocks a TRIGGER. When 0, TRIGGER will be sent on L1A. - default: 1 - - range: 12 - name: SYNCLUMI - desc: Set to 1 to trigger a SYNCLUMI command, rising edge of this bit. Clear in software - default: 0 - - range: 11 - name: GBRST - desc: Set to 1 to trigger a GBRST command, rising edge of this bit. Clear in software - default: 0 - - range: 10..0 - name: TRIG_DELAY - desc: Number of BC clocks between CAL and TRIGGER command if USE_CAL is set to 1 - default: 5 - - name: ITKSTRIP_LCB_R3L1_ELINK_SWAP - fw_modes: 5 - desc: Setting a bit, moves the LCB E-Link to the odd E-Link position and R3L1 to the even one on the lpGBT downlink. 4 bits per lpGBT link - type: W - bitfield: - - range: 47..0 - - - name: ENCODING_ITKPIX_TRIGGER_GENERATOR - fw_modes: 4 - desc: Controls the trigger generator for ItkPix - type: W - bitfield: - - range: 28 - name: NO_INJECT - default: 0 - - range: 27 - name: EDGE_MODE - default: 1 - - range: 26..22 - name: EDGE_DELAY - default: 0 - - range: 21..14 - name: EDGE_DURATION - default: 20 - - range: 13..6 - name: TRIG_DELAY - default: 58 - - range: 5..0 - name: TRIG_MULTIPLIER - default: 16 - - name: LTI_FE_OUTPUT_SELECTOR - fw_modes: 1, 10 - type: W - desc: | - 0: Low latency LTI-FE distribution - 1: 40 MHz sync LTI-FE distribution - bitfield: - - range: 1..0 - - -ENCODING_EGROUP_CTRL_GEN: - number: 12 - type: W - generate: GBT_NUM > {index:1} - entries: - - ref: ENCODING_EGROUP - - -ENCODING_EGROUP: - number: 5 - format_name: LINK{index:02} - entries: - - name: ENCODING_EGROUP_CTRL - desc: See Central Router Doc, indices [3,4] are optimized out in wideMode - format_name: ENCODING_{parent}_EGROUP{index:1}_CTRL - type_name: ENCODING_EGROUP_CTRL - bitfield: - - range: 63 - name: ENABLE_DELAY - desc: Enable inter-packet delay generation in HDLC encoder - default: 0x0 - - range: 62..59 - name: TTC_OPTION - desc: Selects TTC bits sent to the E-link - - range: 58..51 - name: EPATH_ALMOST_FULL - type: R - desc: Indiator that the EPATH FIFO is almost full - - range: 50..43 - name: REVERSE_ELINKS - default: 0x0 - desc: enables bit reversing for the elink in the given epath - - range: 42..40 - name: EPATH_WIDTH - default: 0x0 - desc: | - Width of the Elinks in the egroup - 0: 2 bit 80 Mb/s - 1: 4 bit 160 Mb/s - 2: 8 bit 320 Mb/s - - range: 39..8 - name: PATH_ENCODING - desc: | - Encoding for every EPATH, 4 bits per E-Path - 0: No encoding - 1: 8b10b mode - 2: HDLC mode - 3: ITk Strip LCB - 4: ITk Pixel - 5: Endeavour - 6: reserved - 7: reserved - greater than 7: TTC mode, see firmware Phase 2 specification doc - default: 0x11111111 - - range: 7..0 - desc: Enable bits per E-PATH - name: EPATH_ENA - -MINI_EGROUP_FROMHOST_GEN: - number: 24 - type: W - generate: GBT_NUM > {index:1} - fw_modes: 0,1,2,3,4,5,9,10,12,13 - entries: - - name: MINI_EGROUP_FROMHOST - format_name: MINI_EGROUP_FROMHOST_{index:02} - type_name: MINI_EGROUP_FROMHOST - type: W - desc: Configures the FromHost Mini egroup - generate: GBT_NUM > {index:1} - bitfield: - - range: 17..14 - name: AUX_ENCODING - desc: Configures encoding of the AUX channel - default: 0x2 - - range: 13 - name: ENABLE_DELAY - desc: Enable inter-packet delay generation in HDLC encoder - default: 0x0 - - range: 12 - name: AUX_ALMOST_FULL - type: R - desc: Indicator that the AUX Path FIFO is almost full - - range: 11 - name: AUX_BIT_SWAPPING - desc: "0: two input bits of AUX e-link are as documented, 1: two input bits are swapped" - default: 1 - - range: 10 - name: AUX_ENABLE - desc: Enables the AUX channel - default: 1 - - range: 9 - name: IC_ALMOST_FULL - type: R - desc: Indicator that the IC Path FIFO is almost full - - range: 8 - name: IC_BIT_SWAPPING - desc: "0: two input bits of IC e-link are as documented, 1: two input bits are swapped" - default: 0 - - range: 7 - name: IC_ENABLE - desc: Enables the IC channel - default: 1 - - range: 6 - name: EC_ALMOST_FULL - type: R - desc: Indicator that the EC Path FIFO is almost full - - range: 5 - name: EC_BIT_SWAPPING - desc: "0: two output bits of EC e-link are as documented, 1: two output bits are swapped" - default: 0 - - range: 4..1 - name: EC_ENCODING - desc: Configures encoding of the EC channel - default: 0x2 - - range: 0 - name: EC_ENABLE - default: 1 - -ENCODING_EGROUP_CTRL_FEI4_GEN: - number: 12 - type: W - fw_modes: 3 - generate: GBT_NUM > {index:1} and FIRMWARE_MODE = FIRMWARE_MODE_FEI4 - entries: - - ref: ENCODING_EGROUP_FEI4 - - -ENCODING_EGROUP_FEI4: - number: 5 - format_name: LINK{index:02} - entries: - - name: ENCODING_EGROUP_FEI4_CTRL - desc: FEI4 encoder configuration registers. - format_name: ENCODING_{parent}_EGROUP{index:1}_FEI4_CTRL - type_name: ENCODING_EGROUP_FEI4_CTRL - bitfield: - - range: 11..9 - name: PHASE_DELAY1 - desc: phase delay of output data, with 320 Bb/s e-link 8 phases per BC - - range: 8 - name: MANCHESTER_ENABLE1 - desc: enable manchester encoding - - range: 7 - name: AUTOMATIC_MERGE_DISABLE1 - desc: Disable automatic merging - - range: 6 - name: TTC_SELECT1 - desc: TTC/FromHost select (if automatic merging is disabled) - - range: 5..3 - name: PHASE_DELAY0 - desc: phase delay of output data, with 320 Bb/s e-link 8 phases per BC - - range: 2 - name: MANCHESTER_ENABLE0 - desc: enable manchester encoding - - range: 1 - name: AUTOMATIC_MERGE_DISABLE0 - desc: Disable automatic merging - - range: 0 - name: TTC_SELECT0 - desc: TTC/FromHost select (if automatic merging is disabled) - -FrontendEmulatorControlsAndMonitors: - group: FEC - desc: Frontend Emulator Controls and Monitors - endpoints: 0, 1 - entries: - - name: FE_EMU_ENA - type: W - bitfield: - - range: 1 - name: EMU_TOFRONTEND - desc: Enable GBT dummy emulator ToFrontEnd - - - range: 0 - name: EMU_TOHOST - desc: Enable GBT dummy emulator ToHost - - - name: FE_EMU_CONFIG - type: W - bitfield: - - range: 54..47 - name: WE - desc: write enable array, every bit is one emulator RAM block - - range: 46..33 - name: WRADDR - desc: write address bus - - range: 32..0 - name: WRDATA - desc: write data bus - - - name: FE_EMU_READ - type: W - bitfield: - - range: 35..33 - name: SEL - desc: Select ramblock to read back - - range: 32..0 - name: DATA - type: R - desc: Read back ramblock at FE_EMU_CONFIG.WRADDR - - - name: FE_EMU_LOGIC - type: W - bitfield: - - range: 33 - name: L1A_TRIGGERED - desc: 1 Send a chunk on every L1A, 0 use the IDLES to determine the rate - - range: 32 - name: ENA - desc: Enable logic based FrontEnd emulator, instead of RAM based. - - range: 31..16 - name: IDLES - desc: Number of IDLE bytes between chunks. - - range: 15..0 - name: CHUNK_LENGTH - desc: Chunk length in bytes - - #Continue decoding here, as the decoding space is full. - - ref: DECODING_BCM_PRIME_L1A_CONTROLS_GEN - offset: 0x200 - - - name: DECODING_BCM_PRIME_ONLY_L1A - type: W - desc: If enabled, the BCM_PRIME firmware, will only readout data when an L1A is sent. - fw_modes: 13 - bitfield: - - range: 0 - - name: DECODING_BCM_PRIME_EMU_BCID - type: W - fw_modes: 13 - desc: If enabled, the BCM_PRIME firmware will use internally generated BCIDs instead of the TTC one. - bitfield: - - range: 0 - - - name: DECODING_BCM_PRIME_PUBLISH_ZEROS - type: W - fw_modes: 13 - desc: If enabled, the BCM_PRIME firmware publish empty data-events if they are matched with L1A - bitfield: - - range: 0 - - - -DECODING_BCM_PRIME_L1A_CONTROLS_GEN: - number: 24 - fw_modes: 13 - type: W - - entries: - - name: DECODING_BCM_PRIME_L1A - format_name: DECODING_BCM_PRIME_LINK_{index:02}_L1A - type_name: DECODING_BCM_PRIME_L1A - - generate: GBT_NUM > {index:1} - bitfield: - - range: 9..5 - name: DELAY - default: 5 - desc: The data in fiber is delayed N clock cycles to match with TTC L1A - - range: 4..0 - name: WINDOW - default: 5 - desc: The L1A signal is extended to cover multiple BCID's - -LinkWrapperControls: - group: LWC - desc: Link Wrapper Controls - type: W - endpoints: 0 - entries: - - name: LINK_FULLMODE_LTI - fw_modes: 1, 7 - desc: Set to 1 to enable LTI format TTC distribution (8b10b at 9.6Gb) in the FULLMODE flavour, one bit per channel. Set to 0 for 4.8Gb GBT distribution - type: W - bitfield: - - range: 23..0 - default: 0 - - - name: GBT_CHANNEL_DISABLE - offset: 0x0400 - bitfield: - - range: 47..0 - desc: Disable selected lpGBT, GBT or FULL mode channel - - - name: GBT_GENERAL_CTRL - bitfield: - - range: 63..0 - desc: Alignment chk reset (not self clearing) - - - name: GBT_MODE_CTRL - bitfield: - - range: 2 - name: RX_ALIGN_TB_SW - desc: RX_ALIGN_TB_SW - - range: 1 - name: RX_ALIGN_SW - desc: RX_ALIGN_SW - - range: 0 - name: DESMUX_USE_SW - desc: DESMUX_USE_SW - - - name: GBT_RXSLIDE_SELECT - offset: 0x0480 - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXSLIDE_MANUAL - desc: RxSlide select [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXUSRRDY - desc: TxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_RXUSRRDY - desc: RxUsrRdy [47:0] - bitfield: - - range: 47..0 - default: 0xFFFFFFFFFFFF - - - name: GBT_SOFT_RESET - desc: SOFT_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTTX_RESET - desc: GTTX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GTRX_RESET - desc: GTRX_RESET [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_RESET - bitfield: - - range: 59..48 - name: QPLL_RESET - desc: QPLL_RESET [11:0] - - range: 47..0 - name: CPLL_RESET - desc: CPLL_RESET [47:0] - - - name: GBT_SOFT_TX_RESET - offset: 0x0500 - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_SOFT_RX_RESET - bitfield: - - range: 59..48 - name: RESET_ALL - desc: SOFT_TX_RESET_ALL [11:0] - - range: 47..0 - name: RESET_GT - desc: SOFT_TX_RESET_GT [47:0] - - - name: GBT_ODD_EVEN - desc: OddEven [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TOPBOT - desc: TopBot [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_DLY_VALUE1 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [47:0] - - - name: GBT_TX_TC_DLY_VALUE2 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [95:48] - - - name: GBT_TX_TC_DLY_VALUE3 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [143:96] - - - name: GBT_TX_TC_DLY_VALUE4 - bitfield: - - range: 47..0 - default: 0x333333333333 - desc: TX_TC_DLY_VALUE [191:144] - - - name: GBT_DATA_TXFORMAT1 - desc: DATA_TXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_TXFORMAT2 - desc: DATA_TXFORMAT [95:48] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT1 - desc: DATA_RXFORMAT [47:0] - bitfield: - - range: 47..0 - - - name: GBT_DATA_RXFORMAT2 - desc: DATA_RXFORMAT [95:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_RESET - desc: TX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_RESET - desc: RX Logic reset [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TX_TC_METHOD - desc: TX time domain crossing method [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUTMUX_SEL - desc: Descrambler output MUX selection [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TC_EDGE - desc: Sampling edge selection for TX domain crossing [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for transmitter of GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_RXPOLARITY - desc: | - 0: default polarity - 1: reversed polarity for the receiver of the GTH channels - bitfield: - - range: 47..0 - default: 0 - - - name: GTH_LOOPBACK_CONTROL - bitfield: - - range: 2..0 - default: 0x0 - desc: | - Controls loopback for loopback: read UG476 for the details. NOTE: the TXBUFFER is disabled, near end PCS loopback is not supported. - 000: Normal operation - 001: Near-End PCS Loopback - 010: Near-End PMA Loopback - 011: Reserved - 100: Far-End PMA Loopback - 101: Reserved - 110: Far-End PCS Loopback - - - name: LPGBT_FEC - desc: | - 0: FEC5 - 1: FEC12 - bitfield: - - range: 47..0 - default: 0 - - - name: LPGBT_DATARATE - desc: | - 0: 10.24 Gbps - 1: 5.12 Gbps - bitfield: - - range: 47..0 - default: 0 - - - name: GBT_TOHOST_FANOUT - offset: 0x0700 - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToHost FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific CentralRouter channel - 0 : GBT_WRAP, select real GBT link for a specific CentralRouter channel - - - name: GBT_TOFRONTEND_FANOUT - bitfield: - - range: 48 - name: LOCK - default: 0x0 - desc: Locks this particular register. If set prevents software from touching it. - - range: 47..0 - name: SEL - default: 0x0 - desc: | - ToFrontEnd FanOut/Selector. Every bitfield is a channel: - 1 : GBT_EMU, select GBT Emulator for a specific GBT link - 0 : TTC_DEC, select CentralRouter data (including TTC) for a specific GBT link - - - name: FULLMODE_AUTO_RX_RESET - bitfield: - - range: 32 - name: ENABLE - default: 1 - desc: Enable the Automatic RX Reset mechanism - - range: 31..0 - name: TIMEOUT - default: 0x00100000 - desc: Number of 40 MHz clock cycles until an unaligned link results in a reset pulse - - - ref: TCLINK_CNTRL_GEN - -TCLINK_CNTRL_GEN: - desc: TClink status and control registers that dont have a default value - number: 24 - endpoints: 0 - entries: - - name: TCLINK_CONTROL - format_name: TCLINK_CONTROL_{index:02} - type_name: TCLINK_CONTROL - type: W - desc: tclink control register - bitfield: - - range: 63..16 - name: OFFSET_ERROR - desc: Error-offset for phase-control Recommended to freeze with an initial value read - - range: 15 - name: CLOSE_LOOP - desc: Close TCLink loop (enables compensation) - - range: 14..8 - name: TX_PI_PHASE_CALIB - desc: UI alignment Tx PI calibrated phase - - range: 7 - name: TX_UI_ALIGN_CALIB - desc: UI alignment Tx PI activate - - range: 6 - name: TX_FINE_REALIGN - desc: Repeats fine alignment procedure - - range: 5 - name: PS_STROBE - desc: Shifts phase of transmitter serial data - - range: 4 - name: PS_INC_NDEC - desc: Shifts phase of transmitter serial data - - range: 3 - name: MASTER_MGT_RX_READY - desc: MGT rx is ready (used as reset) - - -LinkWrapperMonitors: - group: LWM - desc: GBT Wrapper Monitors - endpoints: 0 - entries: - - name: GBT_VERSION - offset: 0x0600 - bitfield: - - range: 63..48 - name: DATE - desc: Date - - range: 47..32 - name: GBT_VERSION - desc: GBT Version - - range: 31..16 - name: GTH_IP_VERSION - desc: GTH IP Version - - range: 15..3 - name: RESERVED - desc: Reserved - - range: 2 - name: GTHREFCLK_SEL - desc: GTHREFCLK SEL - - range: 1 - name: RX_CLK_SEL - desc: RX CLK SEL - - range: 0 - name: PLL_SEL - desc: PLL SEL - - - name: GBT_TXRESET_DONE - offset: 0x0680 - desc: TX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXRESET_DONE - desc: RX Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_TXFSMRESET_DONE - desc: TX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RXFSMRESET_DONE - desc: RX FSM Reset done [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST [47:0] - bitfield: - - range: 47..0 - - - name: GBT_PLL_LOCK - bitfield: - - range: 59..48 - name: QPLL_LOCK - desc: QPLL LOCK [11:0] - - range: 47..0 - name: CPLL_LOCK - desc: CPLL LOCK [47:0] - - - name: GBT_RXCDR_LOCK - desc: RX CDR LOCK [47:0] - bitfield: - - range: 47..0 - - - name: GBT_CLK_SAMPLED - desc: clk sampled [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_HEADER - desc: RX IS HEADER [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_IS_DATA - desc: RX IS DATA [47:0] - bitfield: - - range: 47..0 - - - name: GBT_RX_HEADER_FOUND - desc: RX HEADER FOUND [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE [47:0] - bitfield: - - range: 47..0 - - - name: GBT_OUT_MUX_STATUS - desc: GBT output mux status [47:0] - bitfield: - - range: 47..0 - - - name: GBT_ERROR - desc: Error flags [47:0] - bitfield: - - range: 47..0 - - - name: GBT_GBT_TOPBOT_C - desc: TopBot_c [47:0] - bitfield: - - range: 47..0 - - - name: GBT_FM_RX_DISP_ERROR1 - offset: 0x0800 - bitfield: - - range: 47..0 - desc: Rx disparity error [47:0] - - - name: GBT_FM_RX_DISP_ERROR2 - bitfield: - - range: 47..0 - desc: Rx disparity error [96:48] - - - name: GBT_FM_RX_NOTINTABLE1 - bitfield: - - range: 47..0 - desc: Rx not in table [47:0] - - - name: GBT_FM_RX_NOTINTABLE2 - bitfield: - - range: 47..0 - desc: Rx not in table [96:48] - - - ref: GT_FEC_ERR_CNT_GEN - - ref: GT_AUTO_RX_RESET_CNT_GEN - - ref: TCLINK_MON_GEN - - name: GBT_PLL_LOL_LATCHED - type: W - bitfield: - - range: any - name: CLEAR - value: 1 - desc: Any write to this bitfield clears the latched LOL bits - type: T - - range: 59..48 - name: QPLL_LOL_LATCHED - desc: Asserted when CPLL lock is lost, clear by writing to CLEAR - type: R - - range: 47..0 - name: CPLL_LOL_LATCHED - desc: Asserted when CPLL lock is lost, clear by writing to CLEAR - type: R - - - name: GBT_ALIGNMENT_LOST - type: W - bitfield: - - range: any - name: CLEAR - value: 1 - desc: Any write to this bitfield clears the latched ALIGNMENT_LOST bits - type: T - - range: 47..0 - type: R - name: ALIGNMENT_LOST - desc: Asserted when GBT_ALIGNMENT_DONE bit is 0, clear by writing to CLEAR - - - -GT_FEC_ERR_CNT_GEN: - desc: Counts the number of FEC errors in the (lp)GBT frame - number: 24 - endpoints: 0 - entries: - - name: GT_FEC_ERR_CNT - format_name: GT_FEC_ERR_CNT_{index:02} - type_name: GT_FEC_ERR_CNT - desc: Counts the number of FEC errors in the given channel. - fw_modes: 0,2,3,4,5,6,9,11,12,13,14,15 - type: R - bitfield: - - range: 31..0 - -GT_AUTO_RX_RESET_CNT_GEN: - desc: Counts the number of AUTO RX RESET events that happend on the FULLMODE, GBT or lpGBT link - number: 24 - endpoints: 0 - entries: - - name: GT_AUTO_RX_RESET_CNT - format_name: GT_AUTO_RX_RESET_CNT_{index:02} - type_name: GT_AUTO_RX_RESET_CNT - type: W - bitfield: - - range: any - value: 1 - type: T - name: CLEAR - desc: Any write to this register clears the counter value - - range: 31..0 - name: VALUE - type: R - -TCLINK_MON_GEN: - desc: TClink status and control registers that dont have a default value - number: 24 - endpoints: 0 - entries: - - name: TCLINK_MONITOR_1 - format_name: TCLINK_MONITOR_1_{index:02} - type_name: TCLINK_MONITOR_1 - type: R - desc: tclink monitor register - bitfield: - - range: 62..15 - name: ERROR_CONTROLLER - desc: Error-signal for controller Signed complement 2 number. - - range: 14 - name: LOOP_CLOSED - desc: TCLink loop is closed (compensation is enabled) - - range: 13 - name: TX_ALIGNED - desc: Transmitter alignment procedure finished Use as reset for transmitter user logic - - range: 12 - name: PS_DONE - desc: Phase shift is done - - range: 11..5 - name: TX_PI_PHASE - desc: Tx PI phase after alignment - - name: TCLINK_MONITOR_2 - format_name: TCLINK_MONITOR_2_{index:02} - type_name: TCLINK_MONITOR_2 - desc: Phase detector monitoring bits - type: R - bitfield: - - range: 63..32 - name: PHASE_DETECTOR - desc: Phase detector response - - range: 31..0 - name: TX_FIFO_FILL_PD - desc: Phase detector current value - - name: TCLINK_MONITOR_3 - format_name: TCLINK_MONITOR_3_{index:02} - type_name: TCLINK_MONITOR_3 - desc: tclink monitoring bits - type: W - bitfield: - - range: 58..54 - name: LOOP_NOT_CLOSED_REASON - type: R - desc: Reason why the TCLink loop is not closed - - range: 53..38 - name: PHASE_ACC - type: R - desc: phase accumulated output (integrated output) - - range: 37 - name: OPERATION_ERROR - type: R - desc: error output indicating that a clk_en_i pulse has arrived before the done_i signal arrived from the previous strobe_o request - - range: 36..27 - name: DEBUG_TESTER_ADDR_READ - type: W - desc: read address for reading stocked TCLink phase accumulated results - - range: 26..11 - name: DEBUG_TESTER_DATA_READ - type: R - desc: data of stocked TCLink phase accumulated results - - range: 10..7 - name: PS_PHASE_STEP - type: R - desc: number of units to shift the phase of the receiver clock - - -TTCBUSYControlsAndMonitors: - group: TTCBUSY - desc: TTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - - ref: TTC_DEC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: TTC_BUSY_ACCEPTED_G - - - name: TTC_EMU - type: W - bitfield: - - range: 2 - name: FULL - type: R - desc: TTC Emulator memory full indication - - range: 1 - name: SEL - desc: Select TTC data source 1 TTC Emu | 0 TTC Decoder - - range: 0 - name: ENA - desc: Clear to load into the TTC emulator’s memory the required sequence, Set to run the TTC emulator sequence - - - name: TTC_DELAY - type: W - desc: Controls the TTC Fanout delay value, in 25ns (1BC) units - bitfield: - - range: 3..0 - default: 0 - - - name: TTC_BUSY_TIMING_CTRL - descr: Controls the BUSY Logic - offset: 0x4b0 - type: W - bitfield: - - range: 51..32 - name: PRESCALE - default: 0x0000F - desc: Prescales the 40MHz clock to create an internal slow clock - - range: 31..16 - name: BUSY_WIDTH - default: 0x000F - desc: Minimum number of 40MHz clocks that the busy is asserted - - range: 15..0 - name: LIMIT_TIME - default: 0x000F - desc: Number of prescaled clocks a given busy must be asserted before it is recognized - - - name: TTC_BUSY_CLEAR - desc: clears the latching busy bits in TTC_BUSY_ACCEPTED - type: T - value: 1 - bitfield: - - range: any - - - name: TTC_EMU_CONTROL - type: W - bitfield: - - range: 33 - name: BUSY_IN_ENABLE - desc: Enable internal BUSY input to stop L1A on BUSY - default: 1 - - range: 32..27 - name: BROADCAST - desc: Broadcast data - - range: 26 - name: ECR - desc: Event counter reset - - range: 25 - name: BCR - desc: Bunch counter reset - - range: 24 - name: L1A - desc: Level 1 Accept - - - name: TTC_EMU_L1A_PERIOD - type: W - desc: L1A period in BC. 0 means manual L1A with TTC_EMU_CONTROL.L1A - bitfield: - - range: 31..0 - - - name: TTC_EMU_ECR_PERIOD - type: W - desc: ECR period in BC. 0 means manual ECR with TTC_EMU_CONTROL.ECR - bitfield: - - range: 31..0 - - - name: TTC_EMU_BCR_PERIOD - type: W - desc: BCR period in BC. 0 means manual BCR with TTC_EMU_CONTROL.BCR - bitfield: - - range: 31..0 - default: 3564 - - - name: TTC_EMU_LONG_CHANNEL_DATA - type: W - desc: Long channel data for the TTC emulator - bitfield: - - range: 31..0 - - - name: TTC_EMU_RESET - desc: Any write to this register resets the TTC Emulator to the default state. - type: W - bitfield: - - range: any - value: 1 - type: T - - - name: TTC_L1ID_MONITOR - desc: Monitor L1ID and XL1ID. - type: R - bitfield: - - range: 31..0 - - - name: TTC_ECR_MONITOR - desc: Counts the number of ECRs received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_TTYPE_MONITOR - desc: Counts the number of TType received from the TTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_PERIODICITY_MONITOR - desc: Counts the number of times the BCR period does not match 3564, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_BCR_COUNTER - desc: Counts the number of times BCR is issued, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: TTC_EMU_TP_DELAY - desc: Number of BC that the testpulse should be sent before the L1A, 0 means no test pulse is sent - type: W - bitfield: - - range: 31..0 - default: 64 - - - name: TTC_L1A_DELAY - desc: In Phase1 the L0A bit is generated from L1A, but with a variable delay between 0 and 63 BC cycles from L0A to L1A - type: W - bitfield: - - range: 5..0 - default: 0 - - - name: TTC_CDRLOCK_MONITOR - desc: Monitor TTC CDR locked and ADN2814 LOL and LOS signals - type: W - bitfield: - - range: any - type: T - name: CLEAR - value: 1 - desc: Clears the latching cdrlock, LOL and LOS bitfields - - range: 5 - type: R - name: CDRLOCK_LOST - desc: asserted when CDRLOCKED has been 0, Clear by writing to CLEAR bitfield - - range: 4 - type: R - name: CDRLOCKED - desc: Set to 1 if the clock can be successfully recovered from the TTC signal - - range: 3 - type: R - name: ADN_LOL_LATCHED - desc: Latched Loss of lock from ADN2814, Clear by writing to CLEAR bitfield - - range: 2 - type: R - name: ADN_LOS_LATCHED - desc: Latched Loss of signal from ADN2814, Clear by writing to CLEAR bitfield - - range: 1 - type: R - name: ADN_LOL - desc: Loss of lock from ADN2814 - - range: 0 - type: R - name: ADN_LOS - desc: Loss of signal from ADN2814 - - - - name: TTC_ASYNCUSERDATA - desc: Write AsyncUserData to the LTI-FE link if legacy TTC or TTC Emulator are selected - type: W - bitfield: - - range: any - type: T - name: WR_EN - value: 1 - desc: Any write to this registers triggers a FIFO write into AsyncUserData - - range: 63..0 - type: W - name: DATA - - -TTC_DEC_CTRLMON: - group: TDCM - format_name: TTC_DEC_CTRLMON - entries: - - name: TTC_DEC_CTRL - format_name: TTC_DEC_CTRL - type_name: TTC_DEC_CTRLS - type: W - bitfield: - - range: 30..27 - name: B_CHAN_DELAY - type: W - desc: Number of BC to delay the L1A distribution to the frontends - - range: 26..15 - name: BCID_ONBCR - type: W - desc: BCID is set to this value when BCR arrives - - range: 14 - name: BUSY_OUTPUT_STATUS - type: R - desc: Actual status of the BUSY LEMO output signal - - range: 13 - name: ECR_BCR_SWAP - default: 0 - desc: ECR and BCR signals are swapped at the output of the TTC decoder (needed only for LAr TTC) - - range: 12 - name: BUSY_OUTPUT_INHIBIT - default: 0 - desc: forces the Busy LEMO output to BUSY-OFF - - range: 11 - name: TOHOST_RST - desc: reset toHost in ttc decoder - default: 0 - - range: 10 - name: TT_BCH_EN - desc: trigger type enable / disable for TTC-ToHost - default: 0 - - range: 9..2 - name: XL1ID_SW - desc: set XL1ID value, the value to be set by XL1ID_RST signal - default: 0x00 - - range: 1 - name: XL1ID_RST - desc: giving a trigger signal to reset XL1ID value - default: 0 - - range: 0 - name: MASTER_BUSY - desc: L1A trigger throttling - default: 0 - - name: TTC_DEC_MON - format_name: TTC_DEC_MON - type_name: TTC_DEC_MONS - type: R - bitfield: - - range: 15..5 - name: TH_FF_COUNT - desc: ToHostData Fifo counts - - range: 4 - name: TH_FF_FULL - desc: ToHostData Fifo status 1:full 0:not full - - range: 3 - name: TH_FF_EMPTY - desc: ToHostData Fifo status 1:empty 0:not empty - - range: 2..0 - name: TTC_BIT_ERR - desc: double bit, single bit and comm error in TTC data - -TTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: TTC_BUSY_ACCEPTED - format_name: TTC_BUSY_ACCEPTED{index:02} - type_name: TTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - -LTITTCBUSYControlsAndMonitors: - group: LTITTCBUSY - desc: LTITTC and BUSY Controls and Monitors - endpoints: 0 - entries: - - name: LTITTC_ALIGNMENT_DONE - desc: RX ALIGNMENT DONE - bitfield: - - range: 0..0 - - - name: LTITTC_CPLL_FBCLK_LOST - desc: CPLL FBCLK LOST - bitfield: - - range: 0..0 - - - name: LTITTC_PLL_LOCK - bitfield: - - range: 1..1 - name: QPLL_LOCK - desc: QPLL LOCK - - range: 0..0 - name: CPLL_LOCK - desc: CPLL LOCK - - - name: LTITTC_RXCDR_LOCK - desc: RX CDR LOCK - bitfield: - - range: 0..0 - - - name: LTITTC_RXRESET_DONE - desc: RX Reset done - bitfield: - - range: 0..0 - - - name: LTITTC_RX_BYTEISALIGNED - bitfield: - - range: 0..0 - desc: LTITTC link not aligned - - - name: LTITTC_RX_DISP_ERROR - bitfield: - - range: 3..0 - desc: Rx disp error in byte 3,2,1,0 of LTITTC link - - - name: LTITTC_RX_NOTINTABLE - bitfield: - - range: 3..0 - desc: Character in byte 3,2,1,0 of LTITTC link not in 8b10b table - - - ref: LTITTC_CTRLMON - desc: control and monitor bits for TTC decoder - - - ref: LTITTC_BUSY_ACCEPTED_G - - - name: LTITTC_SL0ID_MONITOR - desc: Counts Set L0ID input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_SORB_MONITOR - desc: Counts SetOrbit input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_GRST_MONITOR - desc: Counts GRST input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_SYNC_MONITOR - desc: Counts the Sync input bits - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_TTYPE_MONITOR - desc: Counts the number of TType received from the LTITTC system, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 46..15 - type: R - name: VALUE - - range: 15..0 - type: W - name: REFVALUE - - - name: LTITTC_L0ID_ERR_MONITOR - desc: Counts the number of times the internal l0id /= input L0ID - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_BCR_ERR_MONITOR - desc: Counts the number of times the BCR period does not match 3564, any write to this register clears the counter - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - name: LTITTC_CRC_ERR_MONITOR - desc: Counts the number of time the internally computed crc /= input CRC - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - - range: 31..0 - type: R - name: VALUE - - - -LTITTC_CTRLMON: - group: TDCM - format_name: LTITTC_CTRLMON - entries: - - name: LTITTC_CTRL - format_name: LTITTC_CTRL - type_name: LTITTC_CTRLS - type: W - bitfield: - - range: 11..9 - name: LTITTC_GTH_LOOPBACK_CONTROL - desc: GTH_LOOPBACK_CONTROL for LTITTC Link - default: 0 - - range: 8 - name: LTITTC_SOFT_RESET - desc: SOFT_RESET - default: 0 - - range: 7 - name: LTITTC_QPLL_RESET - desc: QPLL_RESET - default: 0 - - range: 6 - name: LTITTC_CPLL_RESET - desc: CPLL_RESET - default: 0 - - range: 5 - name: LTITTC_SOFT_TX_RESET - desc: SOFT_TX_RESET_ALL - default: 0 - - range: 4 - name: LTITTC_SOFT_RX_RESET - desc: SOFT_RX_RESET_ALL - default: 0 - - range: 3..2 - name: LTITTC_GENERAL_CTRL - desc: Alignment chk reset (not self clearing) - default: 0 - - range: 1 - name: LTITTC_CHANNEL_DISABLE - desc: clear toHostData - default: 0 - - range: 0 - name: TOHOST_RST - desc: clear toHostData - default: 0 - - name: LTITTC_MON - format_name: LTITTC_MON - type_name: LTITTC_MONS - type: R - bitfield: - - range: 3 - name: BUSY_OUTPUT_STATUS - desc: Actual status of the BUSY LEMO output signal - - range: 2..0 - name: LTITTC_BIT_ERR - desc: Alignment comma not received correctly. Place holder - - -LTITTC_BUSY_ACCEPTED_G: - desc: busy has been asserted by the given ELINK. Reset by writing to TTC_BUSY_CLEAR - number: 24 - endpoints: 0,1 - type: R - entries: - - name: LTITTC_BUSY_ACCEPTED - format_name: LTITTC_BUSY_ACCEPTED{index:02} - type_name: LTITTC_BUSY_ACCEPTED - bitfield: - - range: 56..0 - -XOFF_BUSYControlsAndMonitors: - group: XOFF - desc: XOFF Controls and Monitors, see table 2 of Busy specs manual - endpoints: 0, 1 - entries: - - name: XOFF_FM_CH_FIFO_THRESH_LOW - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the low threshold of the channel fifo in FULL mode on which - an Xon will be asserted, bitfields control 4 MSB - - name: XOFF_FM_CH_FIFO_THRESH_HIGH - type: W - bitfield: - - range: 3..0 - default: 0xB - desc: | - Controls the high threshold of the channel fifo in FULL mode on which - an Xoff will be asserted, bitfields control 4 MSB - - name: XOFF_FM_LOW_THRESH_CROSSED - desc: FIFO filled beyond the low threshold, 1 bit per channel - type: R - bitfield: - - range: 23..0 - - name: XOFF_FM_HIGH_THRESH - type: W - bitfield: - - range: any - name: CLEAR_LATCH - desc: Writing this register will clear all CROSS_LATCHED bits - type: T - value: 1 - - range: 47..24 - type: R - name: CROSS_LATCHED - desc: FIFO filled beyond the high threshold, 1 latch bit per channel - - range: 23..0 - type: R - name: CROSSED - desc: FIFO filled beyond the high threshold, 1 bit per channel - - - name: XOFF_FM_SOFT_XOFF - type: W - desc: Set any bit in this register to assert XOFF for the given channel, clearing bits will assert XON - bitfield: - - range: 23..0 - - - name: XOFF_ENABLE - type: W - desc: Enable XOFF assertion (To Frontend) in case the FULL mode CH FIFO gets beyond thresholds. One bit per channel - bitfield: - - range: 23..0 - - - name: DMA_BUSY_STATUS - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR_LATCH - desc: Any write to this register clears TOHOST_BUSY_LATCHED - - range: 4 - type: W - name: ENABLE - desc: Enable the DMA buffer on the server as a source of busy - default: 0 - - range: 3 - type: R - name: TOHOST_BUSY_LATCHED - desc: A tohost descriptor has passed BUSY_THRESHOLD_ASSERT in the past, busy flag was set - value: (others => tohost_busy_latched_40_s) - - range: 0 - type: R - name: TOHOST_BUSY - desc: A tohost descriptor passed BUSY_THRESHOLD_ASSERT, busy flag set - value: (others => tohost_busy_40_s) - - - name: FM_BUSY_CHANNEL_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCH - type: T - value: 1 - desc: Any write to this register will clear the BUSY_LATCHED bits - - range: 47..24 - type: R - name: BUSY_LATCHED - desc: one Indicates that the given FULL mode channel has received BUSY-ON - - range: 23..0 - type: R - name: BUSY - desc: one Indicates that the given FULL mode channel is currently in BUSY state - - - name: BUSY_MAIN_OUTPUT_FIFO_THRESH - type: W - bitfield: - - range: 24 - name: BUSY_ENABLE - desc: Enable busy generation if thresholds are crossed - default: 0 - - range: 23..12 - name: LOW - desc: Low, Negate threshold of busy generation from main output fifo - default: 0x3FF - - range: 11..0 - name: HIGH - desc: High, Assert threshold of busy generation from main output fifo - default: 0x4FF - - - name: BUSY_MAIN_OUTPUT_FIFO_STATUS - type: W - bitfield: - - range: any - name: CLEAR_LATCHED - value: 1 - desc: Any write to this register will clear the - type: T - - range: 2 - type: R - name: HIGH_THRESH_CROSSED_LATCHED - desc: Main output fifo has been full beyond HIGH THRESHOLD, write to clear - - range: 1 - type: R - name: HIGH_THRESH_CROSSED - desc: Main output fifo is full beyond HIGH THRESHOLD - - range: 0 - type: R - name: LOW_THRESH_CROSSED - desc: Main output fifo is full beyond LOW THRESHOLD - - ref: ELINK_BUSY_ENABLE - - ref: XOFF_STATISTICS - - - name: BUSY_TOHOST_ENABLE - type: W - desc: Enable the busy ToHost Virtual Elink - bitfield: - - range: 0 - default: 0 - - - -ELINK_BUSY_ENABLE: - number: 24 - endpoints: 0 - type: W - entries: - - name: ELINK_BUSY_ENABLE - format_name: ELINK_BUSY_ENABLE{index:02} - type_name: ELINK_BUSY_ENABLE - desc: Per elink (and FULL mode link) enable of the busy signal towards the LEMO output - bitfield: - - range: 56..0 - default: 0 - -XOFF_STATISTICS: - number: 24 - endpoints: 0,1 - type: R - entries: - - name: XOFF_PEAK_DURATION - format_name: XOFF_PEAK_DURATION{index:02} - type_name: XOFF_PEAK_DURATION - desc: Maximum occurred duration of XOFF on the given channel in 25ns bins since reset - bitfield: - - range: 63..0 - - name: XOFF_TOTAL_DURATION - format_name: XOFF_TOTAL_DURATION{index:02} - type_name: XOFF_TOTAL_DURATION - desc: Total occurred duration of XOFF on the given channel in 25ns bins, divide by number of Xoffs to calculate the average since reset - bitfield: - - range: 63..0 - - name: XOFF_COUNT - format_name: XOFF_COUNT{index:02} - type_name: XOFF_COUNT - desc: Total number of XOFF events per channel that occurred since a reset. - bitfield: - - range: 63..0 - - - -HouseKeepingControlsAndMonitors: - group: HKC - desc: House Keeping Controls and Monitors - endpoints: 0 - entries: - - name: HK_CTRL_I2C - type: W - bitfield: - - range: 1 - name: CONFIG_TRIG - desc: i2c_config_trig - - range: 0 - name: CLKFREQ_SEL - desc: i2c_clkfreq_sel - - name: HK_CTRL_FMC - type: W - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - desc: Write to this bitfield clears the latched SI5345_LOL status, SI5345_LOL_LATCHED - - range: 14 - name: SI5345_LOL_LATCHED - type: R - desc: Latched version of SI5345_LOL, clear by writing to CLEAR bitfield - - range: 13..12 - name: SI5345_INTR_B - type: R - desc: Connects to SI5345_INTR_B pins - - range: 11..10 - name: SI5345_FINC_B - type: W - desc: Connects to FINC_B pins of SI5345 - default: 1 - - range: 9..8 - name: SI5345_FDEC_B - type: W - desc: Connects to FDEC_B pins of SI5345 - default: 1 - - range: 7 - name: SI5345_LOL - type: R - desc: Loss of lock pin, not connected on VC709 - - range: 6..5 - name: SI5345_INSEL - default: 0x0 - desc: | - Selects the input clock source - 0 : FPGA (FMC LA01) - 1 : FMC OSC (40.079 MHz) - 2 : FPGA (FMC LA18) - - range: 4..3 - name: SI5345_A - default: 0x0 - desc: Si5345 I2C address select 2 LSB (0x0:default, dev id 0x68) - - range: 2 - name: SI5345_OE - default: 0x1 - desc: Si5345 active low output enable (0:enable) - - range: 1 - name: SI5345_RSTN - default: 0x1 - desc: Si5345 active low reset (0:reset) - - range: 0 - name: SI5345_SEL - default: 0x1 - desc: | - Si5345 programming mode - 1 : I2C mode (default) - 0 : SPI mode - - - name: MMCM_MAIN - type: W - offset: 0x0300 - bitfield: - - range: any - type: T - value: 1 - name: CLEAR - desc: Clears the LOL_LATCHED status - - range: 4 - name: LOL_LATCHED - type: R - desc: Main MMCM has lost lock, clear by writing to the CLEAR bitfield - - range: 3 - type: W - name: LCLK_SEL - default: 0x1 - desc: | - 1: LCLK - 0: TTC - - range: 2..1 - type: R - name: MAIN_INPUT - desc: | - Main MMCM Oscillator Input - 2: LCLK fixed - 1: TTC fixed - 0: selectable - - range: 0 - type: R - name: PLL_LOCK - desc: Main MMCM PLL Lock Status - - name: LMK_LOCKED - type: R - bitfield: - - range: 0 - desc: LMK Chip on BNL-711 locked - - name: FPGA_CORE_TEMP - type: R - bitfield: - - range: 11..0 - desc: | - XADC temperature monitor for the FPGA CORE - for FLX709, FLX710 - temp (C)= ((FPGA_CORE_TEMP* 503.975)/4096)-273.15 - for FLX711 - temp (C)= ((FPGA_CORE_TEMP* 502.9098)/4096)-273.8195 - - name: FPGA_CORE_VCCINT - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCINT = (FPGA_CORE_VCCINT *3.0)/4096 - - name: FPGA_CORE_VCCAUX - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCAUX = (FPGA_CORE_VCCAUX *3.0)/4096 - - name: FPGA_CORE_VCCBRAM - type: R - bitfield: - - range: 11..0 - desc: XADC voltage measurement VCCBRAM = (FPGA_CORE_VCCBRAM *3.0)/4096 - - name: FPGA_DNA - type: R - bitfield: - - range: 63..0 - desc: Unique identifier of the FPGA - - name: I2C_WR - type: W - offset: 0x420 - bitfield: - - range: any - name: I2C_WREN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_WR.I2C_FULL - desc: Any write to this register triggers an I2C read or write sequence - - range: 34..27 - name: DATA_BYTE3 - type: W - desc: Data byte 3 used when RW16BIT is set - - range: 26 - name: RW16BIT - type: W - desc: Set to 1 to Write 3 bytes (ADDR + 16 data bits) or read 16 data bits. - - range: 25 - type: R - name: I2C_FULL - desc: I2C FIFO full - - range: 24 - name: WRITE_2BYTES - type: W - desc: Write two bytes - - range: 23..16 - name: DATA_BYTE2 - type: W - desc: Data byte 2 - - range: 15..8 - name: DATA_BYTE1 - type: W - desc: Data byte 1 - - range: 7..1 - name: SLAVE_ADDRESS - type: W - desc: Slave address - - range: 0 - name: READ_NOT_WRITE - type: W - desc: READ/<o>WRITE</o> - - name: I2C_RD - type: T - bitfield: - - range: any - name: I2C_RDEN - type: T - value: not register_map_monitor_s.register_map_hk_monitor.I2C_RD.I2C_EMPTY - desc: Any write to this register pops the last I2C data from the FIFO - - range: 8 - type: R - name: I2C_EMPTY - desc: I2C FIFO Empty - - range: 7..0 - type: R - name: I2C_DOUT - desc: I2C READ Data - - name: INT_TEST - offset: 0x0800 - type: W - value: 1 - bitfield: - - name: TRIGGER - type: T - range: any - desc: Fire a test MSIx interrupt set in IRQ - - name: IRQ - type: W - range: 3..0 - desc: Set this field to a value equal to the MSIX interrupt to be fired. The write triggers the interrupt immediately. - - name: CONFIG_FLASH_WR - type: W - bitfield: - - range: 57 - type: W - name: FAST_WRITE - desc: Write command only. Only used for fast programming. - - range: 56 - type: W - name: FAST_READ - desc: Status reading without command writing. Only used for fast programming. - - range: 55 - type: W - name: PAR_CTRL - desc: Choose use FW or uC to select the Flash partition. 1 FW | 0 uC. - - range: 54..53 - type: W - name: PAR_WR - desc: Choose Flash partition. Valid when PAR_CTRL is 1. - - range: 52 - type: W - name: FLASH_SEL - desc: 1 takes control over flash, 0 gives JTAG control over flash - - range: 51 - type: W - name: DO_INIT - desc: Untested feature, don't use it yet. - - range: 50 - type: W - name: DO_READSTATUS - desc: Reads status from flash - - range: 49 - type: W - name: DO_CLEARSTATUS - desc: Clears status reading from flash, back to normal flash operation - - range: 48 - type: W - name: DO_ERASEBLOCK - desc: Erased the current block of the flash, this register has to be cleared by software - - range: 47 - name: DO_UNLOCK_BLOCK - type: W - desc: Unlock writes to the current block, this register has to be cleared by software - - range: 46 - name: DO_READ - type: W - desc: Reads the 16 bits from current address, this register has to be cleared by software - - range: 45 - name: DO_WRITE - type: W - desc: Writes the 16 bits to current address, this register has to be cleared by software - - range: 44 - name: DO_READDEVICEID - type: W - desc: DIN should return 0x0089, this register has to be cleared by software - - range: 43 - name: DO_RESET - type: W - desc: Can be used in the future, currently disconnected in firmware - - range: 42..16 - name: ADDRESS - type: W - desc: Address for read and write operations (25 bits, upper 2 bits are controlled by uC) - - range: 15..0 - name: WRITE_DATA - type: W - desc: Value of data to write towards flash - - name: CONFIG_FLASH_RD - type: R - bitfield: - - range: 19..18 - name: PAR_RD - type: R - desc: Show which Flash partition is selected. - - range: 17 - name: FLASH_REQ_DONE - type: R - desc: Request done - - range: 16 - name: FLASH_BUSY - type: R - desc: Flash operation busy - - range: 15..0 - name: READ_DATA - type: R - desc: Value of data read from flash - - name: SI5324_STATUS - type: R - bitfield: - - range: 15..8 - name: LOL - desc: Loss of Lock Si5324 - - range: 8..0 - name: LOS - desc: Loss of Signal Si5324 - - name: TACH_CNT - type: R - desc: Readout of the Fan tachometer speed of the BNL712 board - bitfield: - - range: 19..0 - - name: RXUSRCLK_FREQ - type: W - bitfield: - - range: 38 - name: VALID - type: R - desc: Indicates that the frequency measurement is valid - - range: 37..32 - name: CHANNEL - type: W - desc: Select the Transceiver channel to measure the clock from. - - range: 31..0 - name: VAL - type: R - desc: Frequency in Hz of the selected channel - - -Generators: - group: GNR - desc: Specific registers for Hardware based Generators - endpoints: 0 - entries: - - name: FELIG_L1ID_RESET - fw_modes: 6,11,14,15 - type: W - desc: Any write to this register clears the FELIG L1ID - bitfield: - - range: any - type: T - value: 1 - - ref: FELIG_DATA_GEN_CONFIG_ARR - offset: 0x20 - - ref: FELIG_ELINK_CONFIG_ARR - - ref: FELIG_ELINK_ENABLE_ARR - - - name: FELIG_GLOBAL_CONTROL - type: W - fw_modes: 6,11,14,15 - bitfield: - - range: 63..36 - name: FAKE_L1A_RATE - default: 0 - desc: Sets the internal fake L1 trigger rate. [25ns/LSB] - - range: 35..14 - name: PICXO_OFFSET_PPM - default: 0 - desc: When OFFSET_EN is 1, this directly sets the output frequency, within the given adjustment range. - - range: 12..12 - name: TRACK_DATA - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 11..11 - name: RXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 10..10 - name: TXUSERRDY - default: 0 - desc: FELIG GT core control. Must be set to enable normal operation. - - range: 9..9 - name: AUTO_RESET - default: 0 - desc: FELIG GT core control. If set the GT core automatically resets on data error. - - range: 8..8 - name: PICXO_RESET - default: 0 - desc: FELIG GT core control. Manual PICXO reset. - - range: 7..7 - name: GTTX_RESET - default: 0 - desc: FELIG GT core control. Manual GT TX reset - - range: 6..6 - name: CPLL_RESET - default: 0 - desc: FELIG GT core control. Manual CPLL reset. - - range: 5..0 - name: X3_X4_OUTPUT_SELECT - default: 0 - desc: X3/X4 SMA output source select. - - ref: FELIG_LANE_CONFIG_ARR - - ref: FELIG_MON_TTC_0_ARR - - ref: FELIG_MON_TTC_1_ARR - - ref: FELIG_MON_COUNTERS_ARR - - ref: FELIG_MON_FREQ_ARR - - name: FELIG_MON_FREQ_GLOBAL - fw_modes: 6,11,14,15 - type: W - bitfield: - - range: 63..32 - name: XTAL_100MHZ - default: 0 - desc: FELIG local oscillator frequency[Hz]. - - range: 31..0 - name: CLK_41_667MHZ - desc: FELIG PCIE MGTREFCLK frequency[Hz]. - - ref: FELIG_MON_L1A_ID_ARR - - ref: FELIG_MON_PICXO_ARR - - name: FELIG_RESET - fw_modes: 6,11,14,15 - type: W - bitfield: - - range: 63..48 - name: LB_FIFO - default: 0 - desc: One bit per lane. When set to 1, resets all loopback FIFOs. - - range: 47..24 - name: FRAMEGEN - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG link checking logic. - - range: 23..0 - name: LANE - default: 0 - desc: One bit per lane. When set to 1, resets all FELIG lane logic. - - - name: FELIG_RX_SLIDE_RESET - fw_modes: 6,11,14,15 - type: W - bitfield: - - range: 23..0 - default: 0 - desc: One bit per lane. When set to 1, resets the gbt rx slide counter. - - - ref: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR - - ref: FELIG_MON_ITK_STRIPS_ARR - - ref: FELIG_DATA_GEN_CONFIG_USERDATA_ARR - - - name: FMEMU_EVENT_INFO - fw_modes: 7 - type: R - offset: 0x1800 - bitfield: - - range: 63..32 - name: L1ID - default: 0 - desc: 32b field to show L1ID - - range: 31..0 - name: BCID - default: 0 - desc: 32b field to show BCID - - - name: FMEMU_COUNTERS - fw_modes: 7 - type: W - bitfield: - - range: 63..48 - name: WORD_CNT - default: 32 - desc: Number of 32b words in one chunk - - range: 47..32 - name: IDLE_CNT - default: 3 - desc: Minimum number of idles between chunks - - range: 31..16 - name: L1A_CNT - default: 256 - desc: Number of chunks to send if not in TTC mode - - range: 15..8 - name: BUSY_TH_HIGH - default: 20 - desc: Assert BUSY-ON above this threshold - - range: 7..0 - name: BUSY_TH_LOW - default: 15 - desc: De-assert BUSY-ON below this threshold - - - name: FMEMU_CONTROL - fw_modes: 7 - type: W - bitfield: - - range: 63..56 - type: W - name: L1A_BITNR - default: 48 - desc: Bitfield for L1A in TTC frame - - range: 55..48 - type: W - name: XONXOFF_BITNR - default: 32 - desc: Bitfield for Xon/Xoff in TTC frame - - range: 47..47 - type: W - name: EMU_START - default: 0 - desc: Start emulator functionality - - range: 46..46 - type: W - name: TTC_MODE - default: 0 - desc: Control the emulator by TTC input or by RegMap (1/0) - - range: 45..45 - type: W - name: XONXOFF - default: 1 - desc: Enable Xon/Xoff functionality (1/0) - - range: 44..44 - type: W - name: INLC_CRC32 - default: 0 - desc: | - 0: No checksum - 1: Append the data with a CRC32 - - range: 43..43 - type: W - name: BCR - default: 0 - desc: Reset BCID to 0 - - range: 42..42 - type: W - name: ECR - default: 0 - desc: Reset L1ID to 0 - - range: 41..41 - type: W - name: CONSTANT_CHUNK_LENGTH - default: 0 - desc: | - Data source select - 0: Random chunk length - 1: Constant chunk length - - range: 40..32 - type: R - name: INT_STATUS_EMU - default: 0 - desc: Read internal status emulator - - range: 16 - type: W - name: FFU_FM_EMU_T - default: 0 - desc: For Future Use (trigger registers) - - range: 0 - type: W - name: FE_BUSY_ENABLE - default: 1 - desc: Enable the BUSY mechanism if L1A counter passes threshold - - - name: FMEMU_RANDOM_RAM_ADDR - fw_modes: 7 - type: W - desc: Controls the address of the ramblock for the random number generator - bitfield: - - range: 9..0 - - name: FMEMU_RANDOM_RAM - fw_modes: 7 - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to this register (DATA) triggers a write to the ramblock - - range: 39..16 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 15..0 - name: DATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - name: FMEMU_RANDOM_CONTROL - fw_modes: 7 - type: W - desc: Controls the random chunk length generator - bitfield: - - name: SELECT_RANDOM - range: 20 - desc: 1 enables the random chunk length, 0 uses a constant chunk length - default: 0 - - name: SEED - range: 19..10 - desc: Seed for the random number generator, should not be 0 - default: 0x200 - - name: POLYNOMIAL - range: 9..0 - desc: POLYNOMIAL for the random number generator (10b LFSR) Bit9 should always be 1 - default: 0x240 - - - name: FMEMU_CONFIG_WRADDR - fw_modes: 7 - type: W - bitfield: - - range: 9..0 - value: 0 - desc: write enable for the FMEmu ram block - - - name: FMEMU_CONFIG - fw_modes: 7 - type: W - bitfield: - - range: any - type: T - name: WE - value: 1 - desc: Any write to register WRDATA triggers a write to the ramblock - - range: 55..32 - name: CHANNEL_SELECT - value: 0xFFFFFF - desc: Enable write enable only for the selected channel - - range: 31..0 - name: WRDATA - type: W - desc: DATA field to be written to FMEMU_RANDOM_RAM_ADDR - - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11,14,15 - entries: - - name: FELIG_DATA_GEN_CONFIG - format_name: FELIG_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_DATA_GEN_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: CHUNK_LENGTH - range: 50..35 - default: 0 - desc: FELIG data generator chunk-length in bytes. - - name: RESET - range: 34..28 - default: 0 - desc: FELIG data generator reset. One bit per group, 0:normal operation, 1:egroup emulation held in reset. - - name: SW_BUSY - range: 27..21 - default: 0 - desc: FELIG elink busy state. One bit per group, 0:normal operation, 1:elink enter busy state. - - name: DATA_FORMAT - range: 20..7 - default: 0 - desc: FELIG data generator format, 2 bits per e-group. 00 8b10b, 01 direct, 10 Aurora - - name: PATTERN_SEL - range: 6..0 - default: 0 - desc: FELIG data payload type. One bit per group, 0:byte counter, 1:USERDATA - - -FELIG_ELINK_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11,14,15 - entries: - - name: FELIG_ELINK_CONFIG - format_name: FELIG_ELINK_CONFIG_{index:02} - type_name: FELIG_ELINK_CONFIG - desc: FELIG specific configuration test registers - bitfield: - - name: ENDIAN_MOD - range: 34..28 - default: 0 - desc: FELIG elink data input endian control. One bit per egroup. 0:little-endian (8b10b), 1:big-endian. - - name: INPUT_WIDTH - range: 27..21 - default: 0 - desc: FELIG elink data input width. One bit per egroup. 0:8-bit (direct), 1:10-bit (8b10b). - - name: OUTPUT_WIDTH - range: 20..0 - default: 0 - desc: FELIG elink data output width. 3 bits per egroup. 0:2b, 1:4b, 2:8b, 3:16b, 4:32b - -FELIG_ELINK_ENABLE_ARR: - number: 24 - type: W - fw_modes: 6,11,14,15 - entries: - - name: FELIG_ELINK_ENABLE - format_name: FELIG_ELINK_ENABLE_{index:02} - type_name: FELIG_ELINK_ENABLE - desc: FELIG specific configuration registers - bitfield: - - range: 39..0 - default: 0 - desc: FELIG elink enable. One bit per elink. 0:disabled, 1:enabled. - -FELIG_LANE_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11,14,15 - entries: - - name: FELIG_LANE_CONFIG - format_name: FELIG_LANE_CONFIG_{index:02} - type_name: FELIG_LANE_CONFIG - desc: FELIG specific configuration registers - bitfield: - - name: B_CH_BIT_SEL - range: 63..42 - default: 0 - desc: When OFFSET_EN is 1. this directly sets the output frequency. within the given adjustment range. - - name: A_CH_BIT_SEL - range: 41..35 - default: 0 - desc: Selects the bit from the received FELIX data from which to extract the L1A. - - name: LB_FIFO_DELAY - range: 34..30 - default: 0 - desc: When the GTH or GTB loopback is enabled, this controls the loopback latency in clock cycles. - - name: ELINK_SYNC - range: 7..7 - default: 0 - desc: When set, synchronizes the elink word boundaries. Must be set back to 0 to resume normal operation. - - name: PICXO_OFFEST_EN - range: 6..6 - default: 0 - desc: FELIG TX frequency override. 0:frequency tracking enabled, 1:TX frequency set by PICXO_OFFSET_PPM. - - name: PI_HOLD - range: 5..5 - default: 0 - desc: FELIG phase-interpolator hold. 0:frequency tracking enabled, 1:freeze TX frequency. - - name: GBT_LB_ENABLE - range: 4..4 - default: 0 - desc: FELIG GBT direct loopback enable. 0:disabled, 1:enabled. - - name: GBH_LB_ENABLE - range: 3..3 - default: 0 - desc: FELIG GTH direct loopback enable. 0:disabled, 1:enabled. - - name: L1A_SOURCE - range: 2..2 - default: 0 - desc: FELIG L1A data source select. 0:from local counter, 1:from FELIX. - - name: GBT_EMU_SOURCE - range: 1..1 - default: 0 - desc: FELIG emulation data source select. 0:state-machine emulator, 1:ram-based emulator. - - name: FG_SOURCE - range: 0..0 - default: 0 - desc: FELIG link check data source selection control. 0:normal operation, 1:PRBS link checker (not elink emulation data) - -FELIG_MON_TTC_0_ARR: - number: 24 - type: R - fw_modes: 6,11,14,15 - entries: - - name: FELIG_MON_TTC_0 - format_name: FELIG_MON_TTC_0_{index:02} - type_name: FELIG_MON_TTC_0 - desc: FELIG specific configuration registers - bitfield: - - name: L1ID - range: 63..40 - default: 0 - desc: Live TTC data monitor. - - name: XL1ID - range: 39..32 - default: 0 - desc: Live TTC data monitor. - - name: BCID - range: 31..20 - default: 0 - desc: Live TTC data monitor. - - name: RESERVED0 - range: 19..16 - default: 0 - desc: Live TTC data monitor. - - name: LEN - range: 15..8 - default: 0 - desc: Live TTC data monitor. - - name: FMT - range: 7..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_TTC_1_ARR: - number: 24 - type: R - fw_modes: 6,11,14,15 - entries: - - name: FELIG_MON_TTC_1 - format_name: FELIG_MON_TTC_1_{index:02} - type_name: FELIG_MON_TTC_1 - desc: FELIG specific configuration registers - bitfield: - - name: RESERVED1 - range: 63..48 - default: 0 - desc: Live TTC data monitor. - - name: TRIGGER_TYPE - range: 47..32 - default: 0 - desc: Live TTC data monitor. - - name: ORBIT - range: 31..0 - default: 0 - desc: Live TTC data monitor. - -FELIG_MON_COUNTERS_ARR: - number: 24 - type: R - fw_modes: 6,11,14,15 - entries: - - name: FELIG_MON_COUNTERS - format_name: FELIG_MON_COUNTERS_{index:02} - type_name: FELIG_MON_COUNTERS - desc: FELIG specific configuration registers - bitfield: - - name: SLIDE_COUNT - range: 63..32 - default: 0 - desc: Counts the number of rx slides commanded by the GBT logic. Should be static once a link is established. - - name: FC_ERROR_COUNT - range: 31..0 - default: - desc: When FG_DATA_SELECT is 1, this counter reports the number of detected data errors. - -FELIG_MON_FREQ_ARR: - number: 24 - type: R - fw_modes: 6,11,14,15 - entries: - - name: FELIG_MON_FREQ - format_name: FELIG_MON_FREQ_{index:02} - type_name: FELIG_MON_FREQ - desc: FELIG specific configuration registers - bitfield: - - name: TX - range: 63..32 - default: 0 - desc: FELIG regenerated TX clock frequency[Hz]. - - name: RX - range: 31..0 - default: 0 - desc: FELIG recovered RX clock frequency[Hz]. - -FELIG_MON_L1A_ID_ARR: - number: 24 - type: R - fw_modes: 6,11,14,15 - entries: - - name: FELIG_MON_L1A_ID - format_name: FELIG_MON_L1A_ID_{index:02} - type_name: FELIG_MON_L1A_ID - desc: FELIG specific configuration registers - bitfield: - - range: 31..0 - default: 0 - desc: FELIG's last L1 ID. - -FELIG_MON_PICXO_ARR: - number: 24 - type: R - fw_modes: 6,11,14,15 - entries: - - name: FELIG_MON_PICXO - format_name: FELIG_MON_PICXO_{index:02} - type_name: FELIG_MON_PICXO - desc: FELIG specific configuration registers - bitfield: - - name: VLOT - range: 53..32 - default: 0 - desc: Value indicates TX clock (recovered RX clock) to RX reference clock frequency offset. - - name: ERROR - range: 20..0 - default: 0 - desc: Value indicates RX to TX frequency tracking error. - -FELIG_ITK_STRIPS_DATA_GEN_CONFIG_ARR: - number: 24 - type: W - fw_modes: 6,11,14,15 - entries: - - name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - format_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG_{index:02} - type_name: FELIG_ITK_STRIPS_DATA_GEN_CONFIG - desc: ITk Strips emulator specific configuration test registers - bitfield: - - name: ITKS_FIFO_CTL - range: 19..17 - default: 0 - desc: data fifo control 2:rst 1:rd 0:wr. - - name: ITKS_FIFO_DATA - range: 16..0 - default: 0 - desc: itks emu data 16:last word 15-0:data word - -FELIG_MON_ITK_STRIPS_ARR: - number: 24 - type: R - fw_modes: 6,11,14,15 - entries: - - name: FELIG_MON_ITK_STRIPS - format_name: FELIG_MON_ITK_STRIPS_{index:02} - type_name: FELIG_MON_ITK_STRIPS - desc: ITk Strips emulator specific status registers - bitfield: - - name: ITKS_FIFO_STATUS - range: 2..0 - default: 0 - desc: data fifo status 2:write done 1:full 0:empty. - -#Registers that are replicated 24 times under Generators: -FELIG_DATA_GEN_CONFIG_USERDATA_ARR: - number: 24 - type: W - fw_modes: 6 - entries: - - name: FELIG_DATA_GEN_CONFIG_USERDATA - format_name: FELIG_DATA_GEN_CONFIG_{index:02}_USERDATA - type_name: FELIG_DATA_GEN_CONFIG_USERDATA - desc: Sets static payload word. When FELIG_DATA_GEN_CONFIG.PATTERN_SEL=1. - bitfield: - - range: 15..0 - default: 0 - -Wishbone: - desc: Wishbone - endpoints: 0 - fw_modes: 1 - entries: - - name: WISHBONE_CONTROL - type: W - bitfield: - - range: 32 - name: WRITE_NOT_READ - desc: wishbone write command wishbone read command - - range: 31..0 - name: ADDRESS - desc: Slave address for Wishbone bus - - name: WISHBONE_WRITE - type: T - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to Wishbone fifo - - range: 32 - name: FULL - type: R - - range: 31..0 - name: DATA - type: W - - name: WISHBONE_READ - type: T - bitfield: - - range: any - type: T - value: 1 - name: READ_ENABLE - desc: Any write to this register triggers a read from the Wishbone to Wupper fifo - - range: 32 - name: EMPTY - type: R - desc: Indicates that the Wishbone to Wupper fifo is empty - - range: 31..0 - name: DATA - type: R - desc: Wishbone read data - - name: WISHBONE_STATUS - type: R - bitfield: - - range: 4 - name: INT - desc: interrupt - - range: 3 - name: RETRY - desc: Interface is not ready to accept data cycle should be retried - - range: 2 - name: STALL - desc: When pipelined mode slave can't accept additional transactions in its queue - - range: 1 - name: ACKNOWLEDGE - desc: Indicates the termination of a normal bus cycle - - range: 0 - name: ERROR - desc: Address not mapped by the crossbar - -# ----------------------- ITk strips link configuration start ----------------------- - -ITK_STRIPS_CTRL: - entries: - - name: GLOBAL_STRIPS_CONFIG - desc: Configuration affecting all Strips links on this FELIX device - type: W - fw_modes: 5 - bitfield: - - range: 63..59 - type: W - name: TEST_MODULE_MASK - desc: (for tests only) contains R3 mask for the simulated trigger data - default: 0x0 - - range: 58..52 - type: W - name: TEST_R3L1_TAG - desc: (for tests only) contains R3 or L1 tag for the simulated trigger data - default: 0x0 - - range: 51 - type: W - name: TTC_GENERATE_GATING_ENABLE - desc: Global control for gating signal generation. Enables generating trickle gating signal in response to TTC BCR. - TRICKLE_TRIG_RUN must also be enabled for the trickle configuration to work. - (See also BC_START, and BC_STOP fields) - default: 0x0 - - range: 50 - type: W - name: TTC_GATING_OVERRIDE - desc: Overrides and disables gating signal generation when set to '1' - (use if the elink is deadlocked and commands don't reach it). - default: 0x0 - - range: 4 - type: W - name: INVERT_AMAC_IN - desc: Invert the polarity of all FELIX AMAC_IN elinks - default: 0x0 - - range: 3 - type: W - name: INVERT_AMAC_OUT - desc: Invert the polarity of all FELIX AMAC_OUT elinks - default: 0x0 - - range: 2 - type: W - name: INVERT_DIN - desc: Invert the polarity of all FELIX 8-bit IN 8b10b elinks - default: 0x0 - - range: 1 - type: W - name: INVERT_R3L1_OUT - desc: Invert the polarity of all FELIX R3L1 elinks - default: 0x0 - - range: 0 - type: W - name: INVERT_LCB_OUT - desc: Invert the polarity of all FELIX LCB elinks - default: 0x0 - - - name: GLOBAL_TRICKLE_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - value: 1 - desc: writing to this register issues a single trickle trigger for every LCB link connected to this FELIX device - - - name: STRIPS_R3_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - value: 1 - desc: (for tests only) simulate R3 trigger (issues 4-5 sequential triggers) - - name: STRIPS_L1_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - desc: (for tests only) simulate L1 trigger (issues 4-5 sequential triggers) - value: 1 - - name: STRIPS_R3L1_TRIGGER - fw_modes: 5 - type: T - bitfield: - - range: any - desc: (for tests only) simulate simultaneous R3 and L1 trigger (issues 4-5 sequential triggers) - value: 1 - -# ----------------------- ITk strips link configuration end ----------------------- - - -MRODregisters: - group: MROD_CONTROL - fw_modes: 8 - desc: Specific registers for MROD - endpoints: 0 - entries: - - name: MROD_CTRL - type: W - bitfield: - - range: 15..8 - name: OPTIONS - default: 0 - desc: Extra options for MROD - - range: 7..7 - name: ENASPARE1 - default: 0 - desc: Enable spare1 - - range: 6..6 - name: ENAMANSLIDE - default: 0 - desc: Enable Manual Slide in Rx Locking - - range: 5..5 - name: ENAPASSALL - default: 0 - desc: Enable PassAll in EmptySuppress - - range: 4..4 - name: ENATXCOUNT - default: 0 - desc: Enable SimpleCount in TxDriver for locking - - range: 3..0 - name: GOLTESTMODE - default: 0 - desc: | - GOL Test Mode (emulate CSM): - 0: Run Data Emulator when 1; 0: stop, load emulator fifo - 1: Enable Circulate when 1; 0: send fifo data only once - 2: Enable Triggered Mode when 1; 0: run continueously (no TTC) - 3: Enable pattern generator - - name: MROD_TCVRCTRL - type: W - bitfield: - - range: 23..16 - name: SLIDEMAX - default: 0xFF - desc: Maximum RXSLIDES before fire a TCVR reset - - range: 15..8 - name: SLIDEWAIT - default: 32 - desc: RXclk delay in TCVR for next RX_SLIDE operation - - range: 7..0 - name: FRAMESIZE - default: 20 - desc: Number of 32 data words in 1 frame - - name: MROD_EP0_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP0 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP0_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP0 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP0_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP0 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP0_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP0 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP0_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP0 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP0_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP0_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP0_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP0_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP0 Transmitter Reset channel 23-0 - default: 0 - - name: MROD_EP1_CSMENABLE - type: W - bitfield: - - range: 23..0 - desc: EP1 CSM Data Enable channel 23-0 - default: 0 - - name: MROD_EP1_EMPTYSUPPR - type: W - bitfield: - - range: 23..0 - desc: EP1 Set Empty Suppression channel 23-0 - default: 0 - - name: MROD_EP1_HPTDCMODE - type: W - bitfield: - - range: 23..0 - desc: EP1 Set HPTDC Mode channel 23-0 - default: 0 - - name: MROD_EP1_CLRFIFOS - type: W - bitfield: - - range: 23..0 - desc: EP1 Clear FIFOs channel 23-0 - default: 0 - - name: MROD_EP1_EMULOADENA - type: W - bitfield: - - range: 23..0 - desc: EP1 Emulator Load Enable channel 23-0 - default: 0 - - name: MROD_EP1_TRXLOOPBACK - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Loopback Enable channel 23-0 - default: 0 - - name: MROD_EP1_TXCVRRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transceiver Reset all channel 23-0 - default: 0 - - name: MROD_EP1_RXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Receiver Reset channel 23-0 - default: 0 - - name: MROD_EP1_TXRESET - type: W - bitfield: - - range: 23..0 - desc: EP1 Transmitter Reset channel 23-0 - default: 0 - -MRODmonitors: - group: MROD_MONITOR - desc: Specific registers for MROD - endpoints: 0 - fw_modes: 8 - entries: - - name: MROD_EP0_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Empty 23-0 - - name: MROD_EP0_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP0 CSM Handler FIFO Full 23-0 - - name: MROD_EP0_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Aligned monitor 23-0 - - name: MROD_EP0_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Data monitor 23-0 - - name: MROD_EP0_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP0 Receiver Idle monitor 23-0 - - name: MROD_EP0_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP0 Transmitter Locked monitor 23-0 - - name: MROD_EP1_CSMH_EMPTY - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Empty 23-0 - - name: MROD_EP1_CSMH_FULL - type: R - bitfield: - - range: 23..0 - desc: EP1 CSM Handler FIFO Full 23-0 - - name: MROD_EP1_RXALIGNBSY - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Aligned monitor 23-0 - - name: MROD_EP1_RXRECDATA - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Data monitor 23-0 - - name: MROD_EP1_RXRECIDLES - type: R - bitfield: - - range: 23..0 - desc: EP1 Receiver Idle monitor 23-0 - - name: MROD_EP1_TXLOCKED - type: R - bitfield: - - range: 23..0 - desc: EP1 Transmitter Locked monitor 23-0 - -IPBus: - desc: IPbus bridge registers - endpoints: 0 - fw_modes: 1 - entries: - - name: IPBUS_WRITE_ADDRESS - type: W - desc: Address of the IPBus Write RAM - bitfield: - - range: 31..0 - - name: IPBUS_WRITE_DATA - type: T - desc: IPbus data to write to RAM - bitfield: - - range: any - type: T - value: 1 - name: WRITE_ENABLE - desc: Any write to this register triggers a write to the Wupper to IPBus inout RAM - - range: 63..0 - name: DATA - type: W - - name: IPBUS_READ_ADDRESS - type: W - desc: Address of the IPBus Read RAM - bitfield: - - range: 31..0 - - name: IPBUS_READ_DATA - type: R - desc: IPbus data from Read RAM - bitfield: - - range: 63..0 - - name: IPBUS_PKT_DONE - type: R - desc: IPbus packet ready to read - bitfield: - - range: 0 - diff --git a/sources/templates/yaml/regmap b/sources/templates/yaml/regmap new file mode 160000 index 0000000000000000000000000000000000000000..a8c53d194c4d29df1b5155596e9960a537fc9548 --- /dev/null +++ b/sources/templates/yaml/regmap @@ -0,0 +1 @@ +Subproject commit a8c53d194c4d29df1b5155596e9960a537fc9548