├── .gitattributes
├── .gitignore
├── .idea
├── other.xml
└── vcs.xml
├── LICENSE
├── README.md
├── docs
├── logo.png
├── workflow.pdf
├── workflow.png
├── workflow.pptx
└── worklow.pdf
├── in
├── csv
│ ├── xc7z030ffg676pkg_IC44_IBERT_info.csv
│ ├── xcku095ffvb2104pkg_IC39_IBERT_info.csv
│ ├── xcvu160flgc2104pkg_IC15_IBERT_info.csv
│ ├── xcvu160flgc2104pkg_IC4_IBERT_info.csv
│ ├── xcvu9pflgc2104pkg_IC15_IBERT_info.csv
│ └── xcvu9pflgc2104pkg_IC4_IBERT_info.csv
├── tcl
│ ├── ScanRunTemplate.tcl
│ └── SetIBERTRunTemplate.tcl
└── tex
│ ├── ScanTemplate.tex
│ ├── figEyeSummaryTemplate01.tex
│ ├── figEyeSummaryTemplate04.tex
│ ├── figEyeSummaryTemplate08.tex
│ ├── figEyeSummaryTemplate12.tex
│ └── figEyeSummaryTemplate28.tex
├── latex
├── MUCTPI_links.pdf
├── ieeemask.png
├── not_found.docx
├── not_found.pdf
├── report.pdf
└── report.tex
├── out
├── pdf
│ ├── Horizontal PercentagePlotRateV1-12.8Gbps.pdf
│ ├── Horizontal PercentagePlotRateV1-6.4Gbps.pdf
│ ├── Horizontal PercentagePlotRateV2-12.8Gbps.pdf
│ ├── Horizontal PercentagePlotRateV2-6.4Gbps.pdf
│ ├── Horizontal PercentageRateV1-12.8Gbps.pdf
│ ├── Horizontal PercentageRateV1-6.4Gbps.pdf
│ ├── Horizontal PercentageRateV2-12.8Gbps.pdf
│ ├── Horizontal PercentageRateV2-6.4Gbps.pdf
│ ├── Open Area PercentagePlotRateV1-12.8Gbps.pdf
│ ├── Open Area PercentagePlotRateV1-6.4Gbps.pdf
│ ├── Open Area PercentagePlotRateV2-12.8Gbps.pdf
│ ├── Open Area PercentagePlotRateV2-6.4Gbps.pdf
│ ├── Open Area PercentageRateV1-12.8Gbps.pdf
│ ├── Open Area PercentageRateV1-6.4Gbps.pdf
│ ├── Open Area PercentageRateV2-12.8Gbps.pdf
│ ├── Open Area PercentageRateV2-6.4Gbps.pdf
│ ├── ScatterPlotRateV1-12.8.pdf
│ ├── ScatterPlotRateV1-6.4.pdf
│ ├── ScatterPlotRateV2-12.8.pdf
│ ├── ScatterPlotRateV2-6.4.pdf
│ ├── Vertical PercentagePlotRateV1-12.8Gbps.pdf
│ ├── Vertical PercentagePlotRateV1-6.4Gbps.pdf
│ ├── Vertical PercentagePlotRateV2-12.8Gbps.pdf
│ ├── Vertical PercentagePlotRateV2-6.4Gbps.pdf
│ ├── Vertical PercentageRateV1-12.8Gbps.pdf
│ ├── Vertical PercentageRateV1-6.4Gbps.pdf
│ ├── Vertical PercentageRateV2-12.8Gbps.pdf
│ └── Vertical PercentageRateV2-6.4Gbps.pdf
├── tcl
│ ├── ScanRun 0.tcl
│ ├── ScanRun 1.tcl
│ ├── ScanRun 2.tcl
│ ├── ScanRun 3.tcl
│ ├── ScanRun 4.tcl
│ ├── SetIBERTRun 0.tcl
│ ├── SetIBERTRun 1.tcl
│ ├── SetIBERTRun 2.tcl
│ ├── SetIBERTRun 3.tcl
│ ├── SetIBERTRun 4.tcl
│ ├── SetMSP Rx.tcl
│ ├── create_links_IC39_IC15.tcl
│ ├── create_links_IC39_IC4.tcl
│ ├── create_links_J1_J1.tcl
│ ├── create_links_J3_J3.tcl
│ ├── create_links_TX1_RX11.tcl
│ ├── create_links_TX1_RX13.tcl
│ ├── create_links_TX1_RX16.tcl
│ ├── create_links_TX1_RX18.tcl
│ ├── create_links_TX2_RX10.tcl
│ ├── create_links_TX2_RX12.tcl
│ ├── create_links_TX2_RX15.tcl
│ ├── create_links_TX2_RX17.tcl
│ ├── create_links_TX3_RX2.tcl
│ ├── create_links_TX3_RX4.tcl
│ ├── create_links_TX3_RX7.tcl
│ ├── create_links_TX3_RX9.tcl
│ ├── create_links_TX4_RX1.tcl
│ ├── create_links_TX4_RX3.tcl
│ ├── create_links_TX4_RX6.tcl
│ ├── create_links_TX4_RX8.tcl
│ ├── create_links_TX5_RX14.tcl
│ ├── create_links_TX5_RX5.tcl
│ ├── flat_eq.tcl
│ ├── gtytx_powerdown.tcl
│ ├── mspa_set_polarity.tcl
│ ├── mspc_set_polarity.tcl
│ ├── power_down_gty_tx.tcl
│ ├── prbs31_all.tcl
│ ├── remove_links.tcl
│ ├── reset_all.tcl
│ ├── scan.tcl
│ ├── stop_and_remove_scans.tcl
│ ├── swing_and_term_all.tcl
│ ├── trp_set_polarity.tcl
│ └── z2t_float_rxterm.tcl
└── tex
│ ├── MSP_A_TRP_On_board_links_12.8-optimized.tex
│ ├── MSP_A_TRP_On_board_links_6.4-optimized.tex
│ ├── MSP_A_TRP_On_board_links_9.6-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX11_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX11_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX11_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX13_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX13_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX13_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX16_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX16_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX16_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX18_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX18_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX1_MSP_C_RX18_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX10_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX10_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX10_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX12_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX12_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX12_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX15_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX15_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX15_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX17_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX17_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_A_TX2_MSP_C_RX17_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TRP_On_board_links_12.8-optimized.tex
│ ├── MSP_C_TRP_On_board_links_6.4-optimized.tex
│ ├── MSP_C_TRP_On_board_links_9.6-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX2_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX2_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX2_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX4_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX4_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX4_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX7_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX7_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX7_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX9_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX9_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX3_MSP_A_RX9_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX1_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX1_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX1_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX3_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX3_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX3_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX6_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX6_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX6_Minipod_Loopback_9.6-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX8_Minipod_Loopback_12.8-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX8_Minipod_Loopback_6.4-optimized.tex
│ ├── MSP_C_TX4_MSP_A_RX8_Minipod_Loopback_9.6-optimized.tex
│ ├── Partial_TRP_TX5_MSP_A_RX5_Minipod_Loopback_12.8-optimized.tex
│ ├── Partial_TRP_TX5_MSP_A_RX5_Minipod_Loopback_6.4-optimized.tex
│ ├── Partial_TRP_TX5_MSP_A_RX5_Minipod_Loopback_9.6-optimized.tex
│ ├── Partial_TRP_TX5_MSP_C_RX14_Minipod_Loopback_12.8-optimized.tex
│ ├── Partial_TRP_TX5_MSP_C_RX14_Minipod_Loopback_6.4-optimized.tex
│ ├── Partial_TRP_TX5_MSP_C_RX14_Minipod_Loopback_9.6-optimized.tex
│ ├── TRP_J1_QSFP_Loopback_12.8-optimized.tex
│ ├── TRP_J1_QSFP_Loopback_6.4-optimized.tex
│ ├── TRP_J1_QSFP_Loopback_9.6-optimized.tex
│ ├── TRP_J3_SFP_Loopback_12.8-optimized.tex
│ ├── TRP_J3_SFP_Loopback_6.4-optimized.tex
│ └── TRP_J3_SFP_Loopback_9.6-optimized.tex
└── python
├── copy_mdate.py
├── eyescan_plot.py
├── fix_mdate.py
├── gen_mask.py
├── generate_all_hists.py
├── generate_all_plots.py
└── ibert_tcl_tex_generator.py
/.gitattributes:
--------------------------------------------------------------------------------
1 | out/**/* linguist-vendored
2 | in/**/* linguist-vendored
3 | scans/**/* linguist-vendored
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 | MANIFEST
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *.cover
47 | .hypothesis/
48 | .pytest_cache/
49 |
50 | # Translations
51 | *.mo
52 | *.pot
53 |
54 | # Django stuff:
55 | *.log
56 | local_settings.py
57 | db.sqlite3
58 |
59 | # Flask stuff:
60 | instance/
61 | .webassets-cache
62 |
63 | # Scrapy stuff:
64 | .scrapy
65 |
66 | # Sphinx documentation
67 | docs/_build/
68 |
69 | # PyBuilder
70 | target/
71 |
72 | # Jupyter Notebook
73 | .ipynb_checkpoints
74 |
75 | # pyenv
76 | .python-version
77 |
78 | # celery beat schedule file
79 | celerybeat-schedule
80 |
81 | # SageMath parsed files
82 | *.sage.py
83 |
84 | # Environments
85 | .env
86 | .venv
87 | env/
88 | venv/
89 | ENV/
90 | env.bak/
91 | venv.bak/
92 |
93 | # Spyder project settings
94 | .spyderproject
95 | .spyproject
96 |
97 | # Rope project settings
98 | .ropeproject
99 |
100 | # mkdocs documentation
101 | /site
102 |
103 | # mypy
104 | .mypy_cache/
105 |
--------------------------------------------------------------------------------
/.idea/other.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 mvsoliveira
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Python tool to manage Vivado IBERT tests by generating TCL scripts to automate the interconnection between links in Vivado, configuring their respective polarities, running the BER tests and eye-scan measurements, plotting eye-diagrams, running eye-mask checks, generating horizontal, vertical, and area opening histograms, and compile all the results into a PDF report
5 |
6 | # Workflow using PCBpy and IBERTpy
7 | 
8 | If you do not have a Cadence Allegro Schematics, you can still use IBERTpy but you need to generate yourself the connectivity CSV files.
9 |
10 | # Inputs:
11 | 1) Connectivity CSV files (in/csv) generated by PCBpy for Cadence Allegro PCB projects https://github.com/mvsoliveira/PCBpy
12 | 2) TCL (in/tcl) and LaTeX (in/tex) template files
13 |
14 | # Outputs:
15 |
16 | After Step 2 (ibert_tcl_tex_generator.py):
17 | 1) TCL (out/tcl) files to configure IBERT links connectivity, polarity and run settings
18 | 2) TEX files to compile all the eye diagrams in a single PDF
19 |
20 | After steps 6:
21 | 1) PDF (out/pdf) files with summary scatter plots of eye openning (generate_all_hists.py)
22 | 2) PDF (scans/pdf) files with eye diagrams for every link in different configurations (generate_all_plots.py)
23 |
24 | After step 7:
25 | 1) PDF Report with all the eye diagrams (latex/report.tex). Example here.
26 |
27 | # Instructions:
28 | #### 1) Board netlist and FPGA package files
29 |
30 | 1) Generate board netlist files using PCBpy.
31 | See instructions here.
32 | 2) Get FPGA package files here.
33 | PCBpy reads only the Xilinx CSV files at the moment.
34 |
35 | #### 2) Generate IBERT TCL scripts and LaTeX report files
36 |
37 | A) Edit the ibert_tcl_tex_generator.py with the following information:
38 |
39 | 1) csvfiles: Relative files to CSV package files
40 | 2) schem_map: Dictionary of schematics reference designators to ibert instance and device name for the report
41 | 3) runs: Array of dictionaries listing the connectivity of each of the testing runs. Multiple runs are needed when all the inputs/outpus can't be connected simmultaneously.
42 | 4) tex_runs: Names for different set of runs. Used to distinguish in the report results from different data rates or different board versions.
43 | 5) link_tex_templates: Make sure a LaTeX template exists for all the summary pages you need.
44 | 6) Make sure in/tcl/SetIBERTRunTemplate.tcl contains the call for each of the tcl files carrying the link settings. Examples are: polarities, power-down, PRBS mode, swing, enphasis and others. The transceiver polarirty tcl scripts are automatically generated by PCBpy.
45 |
46 | B) Run ibert_tcl_tex_generator.py and check the results at out/tcl and out/tex
47 | IBERTpy checks if each of the scan csv files exist before generating the TeX files in order to avoid latex compiling errors.
48 | Therefore, after finishing all the scans, run ibert_tcl_tex_generator.py again to double check if any scan csv is missing.
49 | The following message is shown in case of missing scan csv files:
50 | `Skipping MSP_C_FPGA-IC39-00--IC15-00-TRP_FPGA because the file ../scans/csv/V3-12.8/MSP_C_FPGA-IC39-00--IC15-00-TRP_FPGA.csv was not found`
51 |
52 | #### 3, 4 and 5) Configure the links and get the CSV scan files
53 |
54 | 1) Configure the board
55 | 2) Open the Vivado Hardware Manager
56 | 3) Connect to the board
57 | 4) Make sure the TCL console is in the folder at which the out/tcl scripts are
58 | 5) Run the SetIBERT Run?.tcl corresponding to the run you are insterested to
59 | 6) Check the link settings and status
60 | 7) Make sure ../scans/csv/ path exists
61 | 8) Change run settings at scan.tcl file if needed
62 | 9) Run ScanRun ?.tcl
63 | 10) Wait until all the scans are finished, the scan files are placed at ../scans/csv/
64 |
65 | #### 6) Generate eye-diagram and summary histogram PDF files
66 |
67 | 1) Organize the CSV scan files into a different folder for each of the different tex_runs listed in step 2.4
68 | 2) Make sure that the same folders exist at scans/pdf/
69 | 3) Make sure matplitlib is installed in your python envinronment
70 | 4) Run generate_all_plots.py to generate a PDF file for each CSV file
71 | 5) Run generate_all_hists.py to generate summary histograms
72 | Make sure rates is set according to tex_runs defined in step 2.4.
The variable link_set is set to filter the CSV files of interest.
73 |
74 | #### 7) Generate LaTeX PDF report file
75 |
76 | The main LaTeX report.tex file is not generated automatically yet. However, all the summary and detailed pages are automatically generated.
77 | One can run LaTeX in the cloud, using services such as overleaf.com or locally using a LaTeX distribution of preference.
78 | Popular distributions are TeX Live (http://tug.org/texlive/) and MiKTeX (https://miktex.org/).
79 |
80 | 1) Edit the report.tex main TeX file accordingly. The output from genTexInputCalls(tex_files) method in ibert_tcl_tex_generator.py can be useful.
81 | 2) Make sure you LaTeX environment includes the packages used in the report.tex file
82 | 3) Compile the LaTex report file. You should expect to get a Table of Contents with entries for each summary and detailed pages.
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/docs/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mvsoliveira/IBERTpy/7d702ed87f0c8fbe90f4ef0445e2d4f77a79ec02/docs/logo.png
--------------------------------------------------------------------------------
/docs/workflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mvsoliveira/IBERTpy/7d702ed87f0c8fbe90f4ef0445e2d4f77a79ec02/docs/workflow.pdf
--------------------------------------------------------------------------------
/docs/workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mvsoliveira/IBERTpy/7d702ed87f0c8fbe90f4ef0445e2d4f77a79ec02/docs/workflow.png
--------------------------------------------------------------------------------
/docs/workflow.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mvsoliveira/IBERTpy/7d702ed87f0c8fbe90f4ef0445e2d4f77a79ec02/docs/workflow.pptx
--------------------------------------------------------------------------------
/docs/worklow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mvsoliveira/IBERTpy/7d702ed87f0c8fbe90f4ef0445e2d4f77a79ec02/docs/worklow.pdf
--------------------------------------------------------------------------------
/in/csv/xc7z030ffg676pkg_IC44_IBERT_info.csv:
--------------------------------------------------------------------------------
1 | IBERT instance name,Dir,A part,A inst,A pin name,A pin,A net,Coupling cap,B part,B inst,B pin name,B pin,B net,IO#
2 | Quad_112/MGT_X0Y0,I,XC7Z030-2FFG676I,IC44,MGTXRXP0_112,AB4,GBESFP_RX_P,No,CON20P_SFP-1888247-1,J4,RD+,13,-,0
3 | Quad_112/MGT_X0Y0,O,XC7Z030-2FFG676I,IC44,MGTXTXP0_112,AA2,GBESFP_TX_P,No,CON20P_SFP-1888247-1,J4,TD+,18,-,0
4 | Quad_112/MGT_X0Y1,I,XC7Z030-2FFG676I,IC44,MGTXRXP1_112,Y4,T2Z_GT_P,No,XCKU095-1FFVB2104C,IC39,MGTYTXP3_124,AW40,-,0
5 | Quad_112/MGT_X0Y1,O,XC7Z030-2FFG676I,IC44,MGTXTXP1_112,W2,Z2T_GT_P,No,XCKU095-1FFVB2104C,IC39,MGTYRXP3_124,AV43,-,0
6 | Quad_112/MGT_X0Y2,I,XC7Z030-2FFG676I,IC44,MGTXRXP2_112,V4,A2Z_GT_P,No,XCVU160-H1FLGC2104,IC4,MGTYTXP3_133,A36,-,0
7 | Quad_112/MGT_X0Y2,O,XC7Z030-2FFG676I,IC44,MGTXTXP2_112,U2,-,-,-,-,-,-,-,-
8 | Quad_112/MGT_X0Y3,I,XC7Z030-2FFG676I,IC44,MGTXRXP3_112,T4,C2Z_GT_P,No,XCVU160-H1FLGC2104,IC15,MGTYTXP3_133,A36,-,0
9 | Quad_112/MGT_X0Y3,O,XC7Z030-2FFG676I,IC44,MGTXTXP3_112,R2,-,-,-,-,-,-,-,-
10 |
--------------------------------------------------------------------------------
/in/tcl/ScanRunTemplate.tcl:
--------------------------------------------------------------------------------
1 | ######################################################################################################################
2 | ## Title : Setting MUCTPI IBERT for Run
3 | ## Project : MUCTPI
4 | ######################################################################################################################
5 | ## File :
6 | ## Author : Marcos Oliveira
7 | ## Company : CERN
8 | ## Created :
9 | ## Last update:
10 | ## Platform : Vivado 2017.2
11 | ## Standard : TCL
12 | ######################################################################################################################
13 | ## Description: Automatically generated with ibert_tcl_generator
14 | ######################################################################################################################
15 | ## Copyright (c) CERN
16 | ######################################################################################################################
17 | ## Revisions :
18 | ## Date Version Author Description
19 | ## 1.0 msilvaol Created
20 | ######################################################################################################################
21 |
22 |
23 | # stopping and removing existing scans
24 | source stop_and_remove_scans.tcl
25 | # sourcing scan procedure
26 | source scan.tcl
27 | # run scans
28 |
--------------------------------------------------------------------------------
/in/tcl/SetIBERTRunTemplate.tcl:
--------------------------------------------------------------------------------
1 | ######################################################################################################################
2 | ## Title : Setting MUCTPI IBERT for Run
3 | ## Project : MUCTPI
4 | ######################################################################################################################
5 | ## File :
6 | ## Author : Marcos Oliveira
7 | ## Company : CERN
8 | ## Created :
9 | ## Last update:
10 | ## Platform : Vivado 2017.2
11 | ## Standard : TCL
12 | ######################################################################################################################
13 | ## Description: Automatically generated with ibert_tcl_generator
14 | ######################################################################################################################
15 | ## Copyright (c) CERN
16 | ######################################################################################################################
17 | ## Revisions :
18 | ## Date Version Author Description
19 | ## 1.0 msilvaol Created
20 | ######################################################################################################################
21 |
22 |
23 | # Setting up MGTs
24 | source z2t_float_rxterm.tcl
25 | source power_down_gty_tx.tcl
26 | source swing_and_term_all.tcl
27 | source mspa_set_polarity.tcl
28 | source mspc_set_polarity.tcl
29 | source trp_set_polarity.tcl
30 | source prbs31_all.tcl
31 |
32 | #removing existing links
33 | source remove_links.tcl
34 |
35 | # create links
36 |
37 | # reset the links
38 | source reset_all.tcl
--------------------------------------------------------------------------------
/in/tex/ScanTemplate.tex:
--------------------------------------------------------------------------------
1 |
2 | \subsection{}\label{sec:}
3 |
4 | % Please add the following required packages to your document preamble:
5 | % \usepackage{booktabs}
6 | \begin{table}[h]
7 | \centering
8 | \caption{}
9 | \label{tab:}
10 | \begin{tabular}{@{}|l|l|l|l|l|l|@{}}
11 | \toprule
12 | \textbf{SW Version} & \textbf{GT Type} & \multicolumn{2}{l|}{\textbf{Date and Time Started}} & \multicolumn{2}{l|}{\textbf{Date and Time Ended}} \\ \midrule
13 | & & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{} \\ \midrule
14 | \textbf{Reset RX} & \textbf{OA} & \textbf{HO} & \textbf{HO (\%)} & \textbf{VO} & \textbf{VO (\%)} \\ \midrule
15 | & & & \% & & \% \\ \midrule
16 | \textbf{Dwell Type} & \textbf{Dwell BER} & \textbf{Horizontal Increment} & \textbf{Vertical Increment} & \multicolumn{2}{l|}{\textbf{Misc Info}} \\ \midrule
17 | & & & & \multicolumn{2}{l|}{} \\ \bottomrule
18 | \end{tabular}
19 | \end{table}
20 |
21 | \begin{figure}[h]
22 | \includegraphicsmaybe{}
23 | \caption{} \label{fig:}
24 | \end{figure}
25 |
26 | Call back to summary Figure~\ref{fig:}.
27 |
28 |
29 | \clearpage
30 | \newpage
31 |
32 |
--------------------------------------------------------------------------------
/in/tex/figEyeSummaryTemplate01.tex:
--------------------------------------------------------------------------------
1 | % \documentclass{article}
2 | % \usepackage{graphicx}
3 | % \usepackage[a4paper, margin=0.5in]{geometry}
4 | % \usepackage{subcaption}
5 | % \usepackage{printlen}
6 | % \uselengthunit{cm}
7 |
8 | % \newlength\imageheight
9 | % \newlength\imagewidth
10 |
11 | % \begin{document}
12 |
13 | \section{}\label{sec:}
14 |
15 | \begin{figure}[h] % "[t!]" placement specifier just for this example
16 | \begin{subfigure}{1\textwidth}
17 | \hyperref[sec:]{\includegraphicsmaybe{}}
18 | \end{subfigure}
19 |
20 | \caption{} \label{fig:}
21 | \end{figure}
22 |
23 | A cross-reference to Figure~\ref{fig:}.
24 | \\
25 | Next summary Figure~\ref{fig:}.
26 | \clearpage
27 | % \end{document}
--------------------------------------------------------------------------------
/in/tex/figEyeSummaryTemplate04.tex:
--------------------------------------------------------------------------------
1 | % \documentclass{article}
2 | % \usepackage{graphicx}
3 | % \usepackage[a4paper, margin=0.5in]{geometry}
4 | % \usepackage{subcaption}
5 | % \usepackage{printlen}
6 | % \uselengthunit{cm}
7 |
8 | % \newlength\imageheight
9 | % \newlength\imagewidth
10 |
11 | % \begin{document}
12 |
13 | \section{}\label{sec:}
14 |
15 | \begin{figure}[h] % "[t!]" placement specifier just for this example
16 | \begin{subfigure}{0.5\textwidth}
17 | \hyperref[sec:]{\includegraphicsmaybe{}}
18 | \end{subfigure}\hspace*{\fill}
19 | \begin{subfigure}{0.5\textwidth}
20 | \hyperref[sec:]{\includegraphicsmaybe{}}
21 | \end{subfigure}
22 |
23 | \begin{subfigure}{0.5\textwidth}
24 | \hyperref[sec:]{\includegraphicsmaybe{}}
25 | \end{subfigure}\hspace*{\fill}
26 | \begin{subfigure}{0.5\textwidth}
27 | \hyperref[sec:]{\includegraphicsmaybe{}}
28 | \end{subfigure}
29 |
30 | \caption{} \label{fig:}
31 | \end{figure}
32 |
33 | A cross-reference to Figure~\ref{fig:}.
34 | \\
35 | Next summary Figure~\ref{fig:}.
36 | \clearpage
37 | % \end{document}
--------------------------------------------------------------------------------
/in/tex/figEyeSummaryTemplate08.tex:
--------------------------------------------------------------------------------
1 | % \documentclass{article}
2 | % \usepackage{graphicx}
3 | % \usepackage[a4paper, margin=0.4in]{geometry}
4 | % \usepackage{subcaption}
5 | % \usepackage{printlen}
6 | % \uselengthunit{cm}
7 |
8 | % \newlength\imageheight
9 | % \newlength\imagewidth
10 |
11 | % \begin{document}
12 |
13 | \section{}\label{sec:}
14 |
15 | \begin{figure}[h] % "[t!]" placement specifier just for this example
16 | \centering
17 | \begin{subfigure}{0.5\textwidth}
18 | \hyperref[sec:]{\includegraphicsmaybe{}}
19 | \end{subfigure}\hspace*{\fill}
20 | \begin{subfigure}{0.5\textwidth}
21 | \hyperref[sec:]{\includegraphicsmaybe{}}
22 | \end{subfigure}
23 |
24 | \begin{subfigure}{0.5\textwidth}
25 | \hyperref[sec:]{\includegraphicsmaybe{}}
26 | \end{subfigure}\hspace*{\fill}
27 | \begin{subfigure}{0.5\textwidth}
28 | \hyperref[sec:]{\includegraphicsmaybe{}}
29 | \end{subfigure}
30 |
31 | \begin{subfigure}{0.5\textwidth}
32 | \hyperref[sec:]{\includegraphicsmaybe{}}
33 | \end{subfigure}\hspace*{\fill}
34 | \begin{subfigure}{0.5\textwidth}
35 | \hyperref[sec:]{\includegraphicsmaybe{}}
36 | \end{subfigure}
37 |
38 | \begin{subfigure}{0.5\textwidth}
39 | \hyperref[sec:]{\includegraphicsmaybe{}}
40 | \end{subfigure}\hspace*{\fill}
41 | \begin{subfigure}{0.5\textwidth}
42 | \hyperref[sec:]{\includegraphicsmaybe{}}
43 | \end{subfigure}
44 |
45 | \caption{} \label{fig:}
46 | \end{figure}
47 |
48 | A cross-reference to Figure~\ref{fig:}.
49 | \\
50 | Next summary Figure~\ref{fig:}.
51 | \clearpage
52 | % \end{document}
--------------------------------------------------------------------------------
/in/tex/figEyeSummaryTemplate12.tex:
--------------------------------------------------------------------------------
1 | % \documentclass{article}
2 | % \usepackage{graphicx}
3 | % \usepackage[a4paper, margin=0.5in]{geometry}
4 | % \usepackage{subcaption}
5 | % \usepackage{printlen}
6 | % \uselengthunit{cm}
7 |
8 | % \newlength\imageheight
9 | % \newlength\imagewidth
10 |
11 | % \begin{document}
12 |
13 | \section{}\label{sec:}
14 |
15 | \begin{figure}[h] % "[t!]" placement specifier just for this example
16 | \begin{subfigure}{0.33\textwidth}
17 | \hyperref[sec:]{\includegraphicsmaybe{}}
18 | \end{subfigure}\hspace*{\fill}
19 | \begin{subfigure}{0.33\textwidth}
20 | \hyperref[sec:]{\includegraphicsmaybe{}}
21 | \end{subfigure}\hspace*{\fill}
22 | \begin{subfigure}{0.33\textwidth}
23 | \hyperref[sec:]{\includegraphicsmaybe{}}
24 | \end{subfigure}
25 |
26 | \begin{subfigure}{0.33\textwidth}
27 | \hyperref[sec:]{\includegraphicsmaybe{}}
28 | \end{subfigure}\hspace*{\fill}
29 | \begin{subfigure}{0.33\textwidth}
30 | \hyperref[sec:]{\includegraphicsmaybe{}}
31 | \end{subfigure}\hspace*{\fill}
32 | \begin{subfigure}{0.33\textwidth}
33 | \hyperref[sec:]{\includegraphicsmaybe{}}
34 | \end{subfigure}
35 |
36 | \begin{subfigure}{0.33\textwidth}
37 | \hyperref[sec:]{\includegraphicsmaybe{}}
38 | \end{subfigure}\hspace*{\fill}
39 | \begin{subfigure}{0.33\textwidth}
40 | \hyperref[sec:]{\includegraphicsmaybe{}}
41 | \end{subfigure}\hspace*{\fill}
42 | \begin{subfigure}{0.33\textwidth}
43 | \hyperref[sec:]{\includegraphicsmaybe{}}
44 | \end{subfigure}
45 |
46 | \begin{subfigure}{0.33\textwidth}
47 | \hyperref[sec:]{\includegraphicsmaybe{}}
48 | \end{subfigure}\hspace*{\fill}
49 | \begin{subfigure}{0.33\textwidth}
50 | \hyperref[sec:]{\includegraphicsmaybe{}}
51 | \end{subfigure}\hspace*{\fill}
52 | \begin{subfigure}{0.33\textwidth}
53 | \hyperref[sec:]{\includegraphicsmaybe{}}
54 | \end{subfigure}
55 |
56 | \caption{} \label{fig:}
57 | \end{figure}
58 |
59 | A cross-reference to Figure~\ref{fig:}.
60 | \\
61 | Next summary Figure~\ref{fig:}.
62 | \clearpage
63 | % \end{document}
--------------------------------------------------------------------------------
/in/tex/figEyeSummaryTemplate28.tex:
--------------------------------------------------------------------------------
1 | % \documentclass{article}
2 | % \usepackage{graphicx}
3 | % \usepackage[a4paper, margin=0.5in]{geometry}
4 | % \usepackage{subcaption}
5 | % \usepackage{printlen}
6 | % \uselengthunit{cm}
7 |
8 | % \newlength\imageheight
9 | % \newlength\imagewidth
10 |
11 | % \begin{document}
12 |
13 | \section{}\label{sec:}
14 |
15 | \begin{figure}[h] % "[t!]" placement specifier just for this example
16 | \begin{subfigure}{0.25\textwidth}
17 | \hyperref[sec:]{\includegraphicsmaybe{}}
18 | \end{subfigure}\hspace*{\fill}
19 | \begin{subfigure}{0.25\textwidth}
20 | \hyperref[sec:]{\includegraphicsmaybe{}}
21 | \end{subfigure}\hspace*{\fill}
22 | \begin{subfigure}{0.25\textwidth}
23 | \hyperref[sec:]{\includegraphicsmaybe{}}
24 | \end{subfigure}\hspace*{\fill}
25 | \begin{subfigure}{0.25\textwidth}
26 | \hyperref[sec:]{\includegraphicsmaybe{}}
27 | \end{subfigure}
28 |
29 | \begin{subfigure}{0.25\textwidth}
30 | \hyperref[sec:]{\includegraphicsmaybe{}}
31 | \end{subfigure}\hspace*{\fill}
32 | \begin{subfigure}{0.25\textwidth}
33 | \hyperref[sec:]{\includegraphicsmaybe{}}
34 | \end{subfigure}\hspace*{\fill}
35 | \begin{subfigure}{0.25\textwidth}
36 | \hyperref[sec:]{\includegraphicsmaybe{}}
37 | \end{subfigure}\hspace*{\fill}
38 | \begin{subfigure}{0.25\textwidth}
39 | \hyperref[sec:]{\includegraphicsmaybe{}}
40 | \end{subfigure}
41 |
42 | \begin{subfigure}{0.25\textwidth}
43 | \hyperref[sec:]{\includegraphicsmaybe{}}
44 | \end{subfigure}\hspace*{\fill}
45 | \begin{subfigure}{0.25\textwidth}
46 | \hyperref[sec:]{\includegraphicsmaybe{}}
47 | \end{subfigure}\hspace*{\fill}
48 | \begin{subfigure}{0.25\textwidth}
49 | \hyperref[sec:]{\includegraphicsmaybe{}}
50 | \end{subfigure}\hspace*{\fill}
51 | \begin{subfigure}{0.25\textwidth}
52 | \hyperref[sec:]{\includegraphicsmaybe{}}
53 | \end{subfigure}
54 |
55 | \begin{subfigure}{0.25\textwidth}
56 | \hyperref[sec:]{\includegraphicsmaybe{}}
57 | \end{subfigure}\hspace*{\fill}
58 | \begin{subfigure}{0.25\textwidth}
59 | \hyperref[sec:]{\includegraphicsmaybe{}}
60 | \end{subfigure}\hspace*{\fill}
61 | \begin{subfigure}{0.25\textwidth}
62 | \hyperref[sec:]{\includegraphicsmaybe{}}
63 | \end{subfigure}\hspace*{\fill}
64 | \begin{subfigure}{0.25\textwidth}
65 | \hyperref[sec:]{\includegraphicsmaybe{}}
66 | \end{subfigure}
67 |
68 | \begin{subfigure}{0.25\textwidth}
69 | \hyperref[sec:]{\includegraphicsmaybe{}}
70 | \end{subfigure}\hspace*{\fill}
71 | \begin{subfigure}{0.25\textwidth}
72 | \hyperref[sec:]{\includegraphicsmaybe{}}
73 | \end{subfigure}\hspace*{\fill}
74 | \begin{subfigure}{0.25\textwidth}
75 | \hyperref[sec:]{\includegraphicsmaybe{}}
76 | \end{subfigure}\hspace*{\fill}
77 | \begin{subfigure}{0.25\textwidth}
78 | \hyperref[sec:]{\includegraphicsmaybe{}}
79 | \end{subfigure}
80 |
81 | \begin{subfigure}{0.25\textwidth}
82 | \hyperref[sec:]{\includegraphicsmaybe{}}
83 | \end{subfigure}\hspace*{\fill}
84 | \begin{subfigure}{0.25\textwidth}
85 | \hyperref[sec:]{\includegraphicsmaybe{}}
86 | \end{subfigure}\hspace*{\fill}
87 | \begin{subfigure}{0.25\textwidth}
88 | \hyperref[sec:]{\includegraphicsmaybe{}}
89 | \end{subfigure}\hspace*{\fill}
90 | \begin{subfigure}{0.25\textwidth}
91 | \hyperref[sec:]{\includegraphicsmaybe{}}
92 | \end{subfigure}
93 |
94 | \begin{subfigure}{0.25\textwidth}
95 | \hyperref[sec:]{\includegraphicsmaybe{}}
96 | \end{subfigure}\hspace*{\fill}
97 | \begin{subfigure}{0.25\textwidth}
98 | \hyperref[sec:]{\includegraphicsmaybe{}}
99 | \end{subfigure}\hspace*{\fill}
100 | \begin{subfigure}{0.25\textwidth}
101 | \hyperref[sec:]{\includegraphicsmaybe{}}
102 | \end{subfigure}\hspace*{\fill}
103 | \begin{subfigure}{0.25\textwidth}
104 | \hyperref[sec:]{\includegraphicsmaybe{}}
105 | \end{subfigure}
106 |
107 | \caption{} \label{fig:}
108 | \end{figure}
109 |
110 | A cross-reference to Figure~\ref{fig:}.
111 |